Tak działa DHCP

Sieci podlegają stałym przemianom - starsze urządzenia idą na złom, przybywa nowych komputerów, mobilni użytkownicy logują się i wylogowują. Ręczna konfiguracja sieci wymagałaby nieprawdopodobnego nakładu pracy. Protokół DHCP (Dynamic Host Configuration Protocol) rozwiązuje ten problem poprzez dynamiczne przydzielanie adresów IP.

Sieci podlegają stałym przemianom - starsze urządzenia idą na złom, przybywa nowych komputerów, mobilni użytkownicy logują się i wylogowują. Ręczna konfiguracja sieci wymagałaby nieprawdopodobnego nakładu pracy. Protokół DHCP (Dynamic Host Configuration Protocol) rozwiązuje ten problem poprzez dynamiczne przydzielanie adresów IP.

W sieci opartej na protokole TCP/IP każdy komputer ma co najmniej jeden adres IP i jedną maskę podsieci; dzięki temu może się komunikować z innymi urządzeniami w sieci. Centralne przydzielanie adresów za pomocą wydzielonego komputera opłaca się już w małej sieci. Administrator uzyskuje w ten sposób kilka korzyści od razu. Konserwacja sieci wymaga mniej czasu, ponieważ odpadają manipulacje przy poszczególnych klientach. Konflikty adresów należą do przeszłości, ponieważ serwer DHCP steruje centralnie przydzielaniem adresów IP.

Protokół DHCP opiera się na protokole BOOTP (Bootstrap Protocol), jednak w stosunku do niego zawiera wiele ulepszeń. Niewątpliwie najbardziej interesującym jest dynamiczne przydzielanie adresów IP. Serwer DHCP korzysta przy tym z predefiniowanego obszaru adresowego (range, czasem nazywany też scope) i przydziela kolejnym klientom, które o to występują, adres IP na określony czas (lease). W czasie trwania okresu lease klient DHCP nie występuje do serwera DHCP podczas startu systemu o nowy adres, a jedynie żąda potwierdzenia istniejącego stanu lease.

Protokół DHCP minimalizuje również możliwe źródła błędów. Na życzenie podaje oprócz adresu IP również inne parametry, jak choćby standardowa brama, czy adresy serwerów nazw. Specyfikacja techniczna protokołu DHCP zawarta jest w RFC 2131.

Interakcja między klientem a serwerem

Interakcja - serwer DHCP i klient współdziałają w określonym cyklu.

Interakcja - serwer DHCP i klient współdziałają w określonym cyklu.

Już uproszczony opis przydzielania adresów unaocznia cykliczny charakter interakcji między klientem a serwerem. Cały proces uzgadniania i przydzielania jest czteroetapowy.

Klient wysyła do znajdującego się w sieci serwera DHCP wiadomość DHCPDISCOVER. Jej sens można jest mniej więcej taki: "Do wszystkich serwerów DHCP w sieci. Potrzebny mi adres IP". Ponieważ jak dotąd klient nie ma adresu IP, nie może wykorzystywać protokołu TCP/IP do komunikacji z innymi systemami sieciowymi. Z tego względu korzysta z protokołu UDP.

W odpowiedzi na zapytanie klienta serwer DHCP przesyła mu propozycję DHCPOFFER, w której zawarty jest adres IP. Ponieważ w sieciach, szczególnie w dużych sieciach, może się znajdować większa liczba serwerów DHCP, oferta ta ma szczególne znaczenie.

Teraz piłeczka jest po stronie klienta - musi się zdecydować na jeden z zaproponowanych adresów. W tej fazie istotne znaczenie ma rodzaj implementacji DHCP - kryteria wyboru nie są opisane w RFC, lecz różnią się w zależności od platformy systemowej. Gdy klient zdecyduje się już na jeden z adresów, wysyła do serwera DHCP komunikat DHCPREQUEST. Również w tym wypadku protokołem transportowym jest UDP.

Na ostatnim chwilowo etapie piłeczka wraca na pole serwera. Po otrzymaniu komunikatu DHCPREQUEST serwer przydziela klientowi za pomocą DHCPPACK tymczasowy adres IP. Po otrzymaniu tej wiadomości klient z reguły sprawdza, czy adresu nie stosuje inny komputer w sieci. Na koniec klient wpisuje otrzymane parametry sieciowe do konfiguracji swojego systemu.

Odświeżanie DHCP

Nieodłącznym elementem przydzielenia klientowi adresu IP przez serwer DHCP jest przyznanie dodatkowo tzw. czasu użytkowania (lease). Określa on czas ważności ustawień. W tle pracują dwa zegary - T1 odmierza połowę czasu użytkowania, zaś T2 - 87,5 procent pełnego czasu użytkowania. Obie wartości można zmienić w opcjonalnych ustawieniach serwera DHCP - jeśli takie funkcje zostały zaimplementowane.

Po upływie czasu T1 klient wysyła komunikat DHCPREQUEST do serwera i pyta, czy serwer może przedłużyć czas użytkowania. Stan ten określa się jako renewing status. Z reguły serwer odpowiada wiadomością DHCPACK i przydziela nowy czas użytkowania. Serwer resetuje wówczas zegary T1 i T2.

Jeżeli po upływie czasu T2 klient nie otrzyma wiadomości DHCPACK, rozpoczyna się tak zwany rebinding status. Klient musi wysłać komunikat DHCPREQUEST, żeby uzyskać przedłużenie czasu użytkowania. Serwer może odpowiedzieć na to żądanie potwierdzeniem DHCPACK. Jeżeli jednak i to żądanie pozostanie bez odpowiedzi, klient musi zażądać nowego adresu IP. Wkracza wówczas ponownie opisany na początku mechanizm, który rozsyła zapytania do wszystkich serwerów DHCP w sieci.

Obszar adresowy a czas użytkowania

Zanim serwer DHCP będzie w ogóle mógł zacząć przydzielać klientom adresy IP, musi zostać wyposażony w informacje na temat przewidzianego do tych celów obszaru adresowego (range). Obszar adresowy jest zdefiniowany poprzez adres początkowy i końcowy. W zależności od implementacji mogą też być też obszary wykluczone, a więc takie, których serwer nie może przydzielać. Gwarantuje to bezkolizyjne współistnienie w sieci adresów stałych i dynamicznie przydzielanych.

Czas użytkowania określany jest zwykle w dniach, godzinach i minutach. Nie ma w tym względzie żadnej złotej reguły. Parametr ten, jeśli w ogóle jest zaimplementowany w poszczególnych produktach, musi uwzględniać obciążenie serwera, zachowanie klientów i stabilność sieci. Decydujące znaczenie ma liczba potencjalnych klientów. Reguła brzmi: Czas użytkowania powinien być dwukrotnie dłuższy niż czas potrzebny do przywrócenia pracy serwera w razie jego awarii. Uwaga - w przypadku długiego czasu użytkowania odpowiednio później uwzględniane są zmiany opcji DHCP po stronie klientów.


Zobacz również