아래 명령으로 DHCP 서버를 설치한다.
sudo apt install isc-dhcp-server
DHCP 서버의 설정 파일은 /etc/dhcp/dhcpd.conf 이다. 이 파일을 백업한다.
sudo mv /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.bak
같은 이름으로 새로운 설정 파일을 만든다.
sudo vi /etc/dhcp/dhcpd.conf
아래와 같은 내용을 입력한다. 해시 표시 (#) 뒤에 있는 설명 부분은 입력하지 않아도 된다.
# IP 주소 임대 시간은 600초이다. default-lease-time 600; # 최대 IP 주소 임대 시간은 2시간이다. max-lease-time 7200; # 해당 DHCP 서버가 공식적인 서버임을 의미한다. authoritative; # 서브넷을 정의한다. subnet 192.168.0.0 netmask 255.255.255.0 { range 192.168.0.201 192.168.0.220; # 할당할 IP 주소의 범위 option routers 192.168.0.1; # 디폴트 게이트웨이의 IP 주소 option domain-name-servers 8.8.8.8, 8.8.4.4; # DNS 서버의 IP 주소 }
특정 클라이언트가 항상 똑같은 IP 주소를 할당받도록 해 보자. 이 경우에 해당 클라이언트의 MAC 주소가 필요하다.
아래 명령으로 MAC 주소를 알아낸다.
ip addr show
서브넷을 정의한 괄호 안에 아래 내용을 추가한다.
host client-221 { hardware ethernet 69:41:10:91:11:22; # MAC 주소 fixed-address 192.168.2.221; # IP 주소 }
다음은 /etc/dhcp/dhcpd.conf 파일의 전체 내용이다.
default-lease-time 600; max-lease-time 7200; authoritative; subnet 192.168.0.0 netmask 255.255.255.0 { range 192.168.0.201 192.168.0.220; option routers 192.168.0.1; option domain-name-servers 8.8.8.8, 8.8.4.4; host client-221 { hardware ethernet 69:41:10:91:11:22; fixed-address 192.168.2.221; } }
DHCP 서버의 또다른 설정 파일은 /etc/default/isc-dhcp-server 이다. 이 파일은 DHCP 서버와 네트워크 인터페이스를 바인딩하는 역할을 한다. 이러한 바인딩은 DHCP 서버에 여러 개의 네트워크 인터페이스가 있을 경우에 필요하다.
/etc/default/isc-dhcp-server 파일을 열고 아래와 같은 내용으로 작성한다.
INTERFACESv4="enp4s0" INTERFACESv6=""
enp4s0 은 네트워크 인터페이스 이름이다. DHCP 서버는 이 인터페이스를 통해 클라이언트 요청에 응답하게 된다.
모든 설정을 마쳤다. 변경한 내용을 적용하기 위해 DHCP 서버를 재시작한다.
sudo systemctl restart isc-dhcp-server
DHCP 서버의 동작 상태를 확인해 보자.
sudo systemctl status isc-dhcp-server