DHCP serwer w Ubuntu 14.04

Ręczne wpisywanie adresów IP w sieci lokalnej możemy zastąpić usługą DHCP, która przydzieli adresy IP wszystkim urządzeniom w sieci komputerowej za nas.

Najlepiej do tego się nadaje serwer DHCP3 z repozytoriów Ubuntu:

Żeby go zainstalować wystarczy wydać z konsoli poniższe polecenie:

root@server: apt-get install dhcp3-server

Po instalacji server DHCP domyślnie pracuje na wszystkich interfejsach dostępnych w serwerze, aby to zmienić edytujemy plik /etc/default/isc-dhcp-server i zmieniamy linię INTERFACES=””  na poniższą:

INTERFACES="eth0"

gdzie eth0 to nazwa interfejsu, na którym ma nasłuchiwać serwer. Możemy podać kilka interfejsów sieciowych oddzielając je spacją. Dla hosta wirtualnych maszyn, na którym uruchamiamy serwer DHCP możemy podać również interfejs br0 lub ovsbr0 (jak korzystamy z wirtualnego switcha), wtedy serwer DHCP będzie przydzielał adresy IP wirtualnym maszynom.

Kolejnym krokiem jest edycja pliku /etc/dhcp/dhcpd.conf i dodanie do niego deklaracji sieci jak poniżej:

subnet 192.168.2.0 netmask 255.255.255.0 {
        range 192.168.2.100 192.168.2.199;
        option routers 192.168.2.254;
        option broadcast-address 192.168.2.255;
        option domain-name-servers 192.168.2.254;
        default-lease-time 600;
        max-lease-time 7200;
        }

W opcji option domain-name-servers (serwery DNS przydzielane klientom DHCP) możemy po przecinku zdefiniować kilka serwerów nazw dla danej podsieci jak poniżej:

option domain-name-servers 192.168.2.254, 194.204.159.1, 194.204.152.43;

Restart serwera DHCP:

root@server: /etc/init.d/isc-dhcp-server restart

lub trochę ładniej:

root@server: service isc-dhcp-server restart

Od tej pory komputery w sieci LAN powinny dostawać z serwera DHCP adresy IP.

Należy oczywiście pamiętać o odblokowaniu portów 67 i 68 dla protokołu tcp i udp na firewallu dla usługi DHCP jeśli zapora jest skonfigurowana po stronie LAN serwera.

Wykonując poniższe polecenie możemy sprawdzić czy serwer działa:

root@server: netstat -pl | grep dhcpd

powinniśmy otrzymać wynik podobny do poniższego:

udp        0      0 *:bootps                *:*                                 25125/dhcpd
raw        0      0 *:icmp                  *:*                     7           25125/dhcpd

oznacza on, że serwer działa i nasłuchuje na porcie 67.