Protokół DHCP został opracowany przez Dynamic Host Configuration Working Group przy Internet Engineering Task Force. Głównym zadaniem tego protokołu jest dynamiczne przydzielanie adresów IP.
DHCP jest zbudowany na modelu klient-serwer, w którym dedykowany serwer DHCP alokuje i dostarcza adresy sieciowe, jak również parametry konfiguracyjne dla komputerów w sieci. Pod pojęciem serwer rozumiemy komputer, który dostarcza początkowe parametry przez DHCP; pojęcie klient stosowane jest dla komputerów, które pobierają konfigurację poprzez DHCP z serwera. DHCP zapewnia trzy mechanizmy alokacji adresów IP:
Jednak tylko mechanizm dynamicznej alokacji adresów IP zapewnia powtórne użycie adresu IP, który nie jest dłużej używany przez klienta. Użyteczne jest to wtedy, gdy klienci łączą się z siecią na określony czas lub gdy trzeba dzielić limitowaną pulę adresów IP dla klientów, którzy nie potrzebują stałych adresów. DHCP definiuje mechanizm, dzięki któremu klient dostaje adres sieciowy na określony czas; adres ten może być również przydzielany różnym klientom (nie jest przywiązany do jednego, określonego klienta). Druga - DHCP zapewnia mechanizm przydziału nie tylko adresu sieciowego, ale również wszystkich innych parametrów sieciowych niezbędnych do pracy w sieci (maska, gateway, inne).
DHCP w Linuksie - SERWER
Linux jest obecnie jednym z najdynamiczniej rozwijających się systemów operacyjnych, na którym zaimplementowano większość usług sieciowych, w tym także DHCP. Serwer DHCP na Linuksie opiera się na demonie dhcpd, który można uruchamiać przy starcie systemu. W przypadku braku zainstalowanego pakietu dhcpd należy go pobrać z Sieci (np. z ftp://ftp.icm. edu. pl/pub/Linux). W systemie Red Hat 6.2 wystarczy uruchomić program setup, wybrać opcje SysV init i zaznaczyć serwis DHCP. Dodatkowo należy stworzyć plik konfiguracyjny dla serwera DHCP. Przykładowy plik /etc/dhcpd.conf :
subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.10 192.168.1.250; default-lease-time 86400; max-lease-time 259200; option subnet-mask 255.255.255.0; option broadcast-address 192.168.1.255; option routers 192.168.1.1.; option domain-name-servers 192.168.1.1; option domain-name "nasza.domena.pl"; }
Pierwsza linia w pliku określa, jaką podsiecią będzie zarządzać DHCP, w tym przypadku 192.168.1.0. Następna linia zawiera zakres adresów, które udostępnia serwer DHCP od 192.168.1.10 do 192.168.1.250 (pierwszy i ostatni udostępniany adres). Trzecia linia określa domyślny czas dzierżawy linii, po którym klient (o ile dalej użytkuje adres IP) musi "odświeżyć" dzierżawę od serwera. Wartość 86400 definiuje czas jednego dnia. Czwarta linia definiuje maksymalny czas dzierżawy. Parametry w opcjach są przekazywane klientowi do konfiguracji ustawień sieciowych, jest tutaj maska sieci, adres rozgłoszeniowy (broadcast), numer IP routera, numer IP serwera nazw i nazwa domeny.
Kiedy utworzony już jest plik /etc/dhcpd.conf, należy stworzyć w katalogu /etc plik dhcp.leases zawierający informacje o numerach IP, które zostały przydzielone. Plik ten należy stworzyć komendą:
touch /etc/dhcpd.leases
Następnym krokiem jest dodanie routingu rozgłoszeniowego, można to uczynić za pomocą komendy:
/sbin/route add -host 255.255.255.255 dev eth0
Można tę komendę dodać do pliku /etc/rc.d/rc.local, wtedy przy każdym starcie systemu będzie on ustawiany.
Statyczne adresy IP.Może się zdarzyć sytuacja, że kilku komputerom w sieci trzeba za każdym razem przydzielać ten sam (statyczny) adres IP. Czynimy to poprzez DHCP, dodając odpowiednie komendy w pliku /etc/dhcpd.conf. Na przykład:
host staly { hardware ethernet 00:80:C8:85:B5:D2; fixed-address 192.168.1.2; option host-name "staly"; }
Pierwsza linijka nie zaczyna się już od słowa subnet, lecz host. Dalej definiujemy adres ethernetowy karty sieciowej zainstalowanej w komputerze, któremu chcemy nadać stały adres IP. Następna linijka zawiera adres IP, a ostatnia określa nazwę komputera. Metoda ta jest bardzo zbliżona do konfiguracji BOOTP, gdzie również podajemy adres ethernetowy komputera, któremu chcemy nadać adres IP. Po tych wszystkich czynnościach komputer z systemem Linux jest gotowy do świadczenia usług serwera DHCP.
KLIENT - Linux, Windows 9x
Linux - Aby skonfigurować komputer z Linuksem, jako klienta DHCP należy zainstalować pakiet dhcpcd. Jeżeli ściągnięty pakiet jest w postaci *.tar.gz, to należy wykonać następujące komendy (x.xx określa numer obecnej wersji):
tar -zxvf dhcpcd-x.xx.tar.gx cd dhcpcd-x.xx make make install
Operacja ta rozpakuje pakiet, skompiluje go i już z prawami roota, wykonując komendę make install, zainstaluje całość w systemie. W przypadku systemu Red Hat i pobraniu pakietu w postaci *.rpm należy jedynie wykonać komendę (x.xx - określa aktualny numer implementacji DHCP pod Linuksa):
rpm -i dhcpcd-x.xx.rpm
Po instalacji pakietu należy usunąć ustawienia stałego adresu IP (o ile taki był ustawiany). W systemie Red Hat należy przeedytować pliki:
/etc/resolv.conf /etc/sysconfig/network /etc/sysconfig/network-scripts/ifcfg-eth0
(w linii BOOTPROTO wpisać BOOTPROTO=DHCP)
Aby komputer automatycznie pobierał właściwy adres serwera DNS, najlepiej wykonać następującą czynność:
mv /etc/resolv.conf /ewtc/ resolv.conf.old ln -s /etc/dhcpcd/resolv.conf /etc/resolv.conf
Po zrestartowaniu komputera numer IP powinien być już pobrany z serwera DHCP.
Windows 9x - Konfiguracja klienta DHCP jest łatwa. W menu Start należy wybrać Ustawienia > Panel Sterowania > Sieć. Następnie Dodaj > Protokół > Microsoft TCP/IP. Po wybraniu Właściwości protokołu TCP/IP pokaże się okno z zaznaczoną od razu opcją Automatycznie uzyskaj adres IP. Po zresetowaniu komputera system Windows już sam pobierze swój numer IP z serwera DHCP.