DHCP – co to jest, jak działa i do czego służy w sieci

by Patryk

Gdy podłączasz do sieci jakieś urządzenie, przykładowo komputer, laptop, smartfon, drukarkę albo maszynę wirtualną musi ono dostać adres IP, żeby mogło komunikować się z innymi hostami. I to nie tylko z urządzeniami w tej samej sieci lokalnej, ale też z bramą, serwerami DNS czy internetem. Gdyby każdy adres trzeba było wpisywać ręcznie, nawet niewielka sieć bardzo szybko zrobiłaby się niewygodna w utrzymaniu. A im więcej urządzeń, tym większa szansa na pomyłki, konflikty adresów i ogólny chaos.

Właśnie tutaj pojawia się DHCP, czyli Dynamic Host Configuration Protocol. To protokół, który automatycznie przydziela hostom adresację IP i inne podstawowe ustawienia sieciowe. Z punktu widzenia użytkownika wszystko wygląda bardzo prosto: podłączasz urządzenie do sieci i po chwili “po prostu działa”. W tle jednak zachodzi konkretny proces wymiany komunikatów, rezerwacji adresu i przypisania parametrów takich jak maska, brama domyślna czy serwery DNS.

W tym artykule wyjaśnię, czym jest DHCP, jak dokładnie działa, jakie ma zalety, czym jest dzierżawa adresu, czym różni się adres dynamiczny od rezerwacji, jaką rolę odgrywa relay DHCP, a także jakie zagrożenia bezpieczeństwa warto znać. Dorzucę też kilka praktycznych rzeczy dla początkujących, na przykład skąd się bierze adres 169.254.x.x, dlaczego host czasem dostaje inny adres niż wcześniej i kiedy mimo wszystko lepiej użyć adresu statycznego.

Czym jest protokół DHCP?


DHCP to protokół dynamicznej konfiguracji hosta, który umożliwia automatyczne przypisywanie ustawień sieciowych urządzeniom w sieci. Najczęściej kojarzy się przede wszystkim z przydzielaniem adresu IP, ale w praktyce może przekazywać również inne informacje, na przykład:

  • maskę podsieci
  • bramę domyślną
  • serwery DNS
  • czas dzierżawy
  • czasem także nazwę domeny, serwer NTP albo inne opcje konfiguracyjne

Dzięki temu administrator nie musi konfigurować każdego urządzenia ręcznie. Zamiast chodzić od komputera do komputera i wpisywać kolejne adresy IP, przygotowuje zasady na serwerze DHCP, a reszta dzieje się automatycznie. To ogromna oszczędność czasu, szczególnie w większych sieciach.

DHCP poprawia też efektywność wykorzystania adresów IP. Adresy nie muszą być przypisane na stałe do urządzeń, które pojawiają się w sieci tylko od czasu do czasu. Host dostaje adres na określony czas, a po wygaśnięciu dzierżawy adres może wrócić do puli i zostać wykorzystany przez kogoś innego

Najprościej można powiedzieć, że DHCP to centralny system rozdawania ustawień sieciowych. Gdy nowe urządzenie pojawia się w sieci, zgłasza, że potrzebuje konfiguracji. Serwer DHCP odpowiada, proponuje dostępny adres i przekazuje pozostałe dane. Dzięki temu host może zacząć działać bez ręcznej ingerencji administratora. To trochę jak recepcja w hotelu: przychodzisz, zgłaszasz się, dostajesz pokój i podstawowe informacje, co dalej robić.

DHCP korzysta z protokołu UDP, a dokładniej z portów:

  • 67/UDP – po stronie serwera DHCP
  • 68/UDP – po stronie klienta DHCP

Proces działania DHCP

DHCP działa w modelu klient–serwer. Oznacza to, że host, który potrzebuje konfiguracji, pełni rolę klienta DHCP, a urządzenie rozdające ustawienia działa jako serwer DHCP. Cały proces przydzielenia adresu opiera się na wymianie kilku komunikatów. To właśnie z nich bierze się znany skrót DORA.

DHCP Discover

Gdy host nie ma jeszcze adresu IP i chce uzyskać konfigurację, wysyła do sieci komunikat DHCP Discover. Jest to zwykle wiadomość rozgłoszeniowa, ponieważ klient nie zna jeszcze adresu serwera DHCP. Innymi słowy: woła do sieci coś w stylu “czy jest tu jakiś serwer DHCP, który może mnie skonfigurować?”.

To bardzo ważne z punktu widzenia początkujących. Na tym etapie klient nie ma jeszcze gotowej pełnej konfiguracji IP, więc nie może elegancko skierować pakietu do konkretnego serwera. Dlatego używa rozgłoszenia i liczy, że odpowiednia maszyna w tej samej sieci to usłyszy.

DHCP Offer

Jeśli serwer DHCP odbierze komunikat Discover, odpowiada wiadomością DHCP Offer. W tej odpowiedzi proponuje klientowi konkretny adres IP oraz inne parametry sieciowe. To jeszcze nie jest ostateczne przydzielenie – raczej propozycja w stylu: “mogę dać Ci ten adres, maskę, bramę i DNS”.

W sieci może istnieć więcej niż jeden serwer DHCP, więc teoretycznie klient może dostać więcej niż jedną ofertę. W praktyce w małych środowiskach zwykle odpowiada jeden serwer, ale warto wiedzieć, że protokół przewiduje taką możliwość.

DHCP Request

Po otrzymaniu oferty klient wysyła komunikat DHCP Request. W tym kroku informuje, że chce skorzystać z konkretnej propozycji. To ważne, bo serwer musi wiedzieć, że klient rzeczywiście akceptuje oferowany adres i że może zarezerwować go na określony czas.

DHCP Ack

Na końcu serwer wysyła komunikat DHCP Ack, czyli potwierdzenie przydzielenia konfiguracji. Dopiero teraz host dostaje ostateczną zgodę na używanie adresu IP i pozostałych parametrów. Od tego momentu może normalnie działać w sieci.

To właśnie ten ostatni etap kończy cały proces. Jeśli wszystko poszło poprawnie, klient ma już adres IP, maskę, bramę, DNS i może zacząć komunikować się z innymi hostami.

Dzierżawa adresu – co to właściwie znaczy?

Adres IP przydzielany przez DHCP nie musi być przypisany klientowi na zawsze. Zwykle dostaje go na określony czas, który nazywa się dzierżawą. To oznacza, że adres jest zarezerwowany dla klienta tylko przez pewien okres. Po jego upływie host musi odnowić dzierżawę albo uzyskać nową.

To rozwiązanie ma dużo sensu. W sieci wiele urządzeń pojawia się tylko czasowo: laptop w biurze, telefon w Wi-Fi, maszyna testowa w laboratorium. Nie ma potrzeby, żeby taki host na zawsze blokował jeden adres. Dzięki dzierżawie adres może zostać zwolniony i wrócić do puli, jeśli urządzenie zniknie z sieci.

Odnowienie dzierżawy – T1 i T2

W praktyce klient nie czeka bezczynnie do samego końca dzierżawy. Zaczyna próbować ją odnowić wcześniej. W tym procesie pojawiają się dwa ważne momenty:

  • T1
  • T2
    Przy T1 klient próbuje odnowić dzierżawę u tego samego serwera DHCP, który przydzielił mu adres wcześniej. Jeśli się uda, wszystko toczy się dalej i host zachowuje swój adres. Jeśli się nie uda, po pewnym czasie przechodzi do etapu T2, w którym próbuje uzyskać odnowienie szerzej, potencjalnie także od innego serwera DHCP.

Rezerwacja DHCP – ten sam adres bez ręcznego ustawiania

Czasem chcesz, żeby dane urządzenie zawsze dostawało ten sam adres, ale nadal przez DHCP, a nie przez ręczne wpisywanie konfiguracji na kliencie. Właśnie do tego służy rezerwacja DHCP. Serwer rozpoznaje konkretne urządzenie po jego adresie MAC i przypisuje mu zawsze ten sam adres IP.

To bardzo praktyczne rozwiązanie dla:

  • drukarek
  • serwerów testowych
  • kamer IP
  • NAS-ów
  • innych urządzeń, które powinny być stale osiągalne pod tym samym adresem

Skąd bierze się adres 169.254.x.x?


Jeśli host nie może uzyskać adresu z DHCP, system może przypisać sobie adres z zakresu 169.254.0.0/16. W Windowsie i wielu innych systemach jest to mechanizm awaryjny znany jako APIPA.

Taki adres zwykle oznacza: nie udało się uzyskać konfiguracji z DHCP. Czyli:

  • serwer DHCP nie odpowiada
  • host nie może się z nim skomunikować
  • po drodze jest problem z siecią
  • albo coś blokuje ruch DHCP

To bardzo ważny sygnał diagnostyczny. Jeśli widzisz 169.254.x.x, nie oznacza to “dziwny adres”, tylko bardzo konkretny problem: klient nie dostał prawidłowej konfiguracji z DHCP.

Czy DHCP działa tylko w jednej sieci?


Domyślnie klient DHCP wysyła komunikat Discover jako broadcast, a routery standardowo nie przekazują broadcastów między podsieciami. Oznacza to, że serwer DHCP musi zwykle znajdować się w tej samej sieci lokalnej co klient. Jeśli jest w innej podsieci, potrzebny jest mechanizm pośredniczący.

Tutaj pojawia się pojęcie DHCP Relay. To urządzenie lub funkcja, która odbiera rozgłoszenia DHCP od klienta i przekazuje je dalej do serwera DHCP znajdującego się w innej sieci. Dzięki temu nie trzeba stawiać osobnego serwera DHCP w każdej podsieci. W większych środowiskach to bardzo wygodne i wręcz standardowe podejście.

Zagrożenia bezpieczeństwa związane z DHCP


Chociaż DHCP bardzo ułatwia konfigurację i zarządzanie siecią, wprowadza też pewne ryzyka związane z bezpieczeństwem. Jednym z najważniejszych zagrożeń jest pojawienie się w sieci fałszywego serwera DHCP, czyli sytuacja określana często jako DHCP spoofing albo rogue DHCP. Taki nieautoryzowany serwer może odpowiadać klientom szybciej niż prawdziwy serwer DHCP i rozdawać im błędne ustawienia sieciowe. W praktyce oznacza to, że host może dostać nieprawidłowy adres IP, fałszywą bramę domyślną albo podstawiony serwer DNS.

To szczególnie niebezpieczne dlatego, że klient DHCP zwykle po prostu przyjmuje pierwszą poprawnie wyglądającą odpowiedź. Jeśli więc atakujący uruchomi własny serwer DHCP w tej samej sieci, może sprawić, że ruch użytkowników zacznie przechodzić przez jego urządzenie. W ten sposób da się przygotować grunt pod podsłuchiwanie ruchu, przekierowywanie połączeń albo ataki typu man-in-the-middle. Z punktu widzenia użytkownika wszystko może wyglądać normalnie – komputer “dostał adres i działa”, ale cała konfiguracja została podana przez nieautoryzowane źródło.

Jednym z najważniejszych mechanizmów obrony przed takim scenariuszem jest DHCP snooping. To funkcja dostępna na przełącznikach, która pozwala kontrolować, z których portów wolno przesyłać odpowiedzi DHCP serwera, a z których nie. Dzięki temu przełącznik potrafi odróżnić porty zaufane od niezaufanych. Port zaufany to taki, do którego podłączony jest prawdziwy serwer DHCP albo urządzenie pośredniczące legalnie przekazujące jego odpowiedzi, natomiast zwykłe porty dostępowe dla użytkowników pozostają niezaufane.

W praktyce DHCP snooping działa tak, że przełącznik analizuje komunikaty DHCP i sprawdza, czy odpowiedzi serwera pojawiają się na właściwym porcie. Jeśli oferta DHCP albo potwierdzenie dzierżawy pojawi się na porcie niezaufanym, przełącznik uzna taki ruch za podejrzany i go odrzuci. Dzięki temu fałszywy serwer DHCP podłączony do zwykłego portu użytkownika nie będzie w stanie rozdawać konfiguracji hostom w sieci. To bardzo skuteczny mechanizm ochronny, szczególnie w większych sieciach, gdzie nie da się zakładać, że każde urządzenie podłączone do przełącznika jest godne zaufania.

Podsumowanie


DHCP to jeden z tych protokołów, które bardzo łatwo przeoczyć, bo zazwyczaj działają po cichu w tle. A jednak jego rola w sieci jest ogromna. To właśnie dzięki niemu nowe urządzenia mogą szybko i automatycznie dostać adres IP, maskę, bramę, DNS i inne podstawowe ustawienia. Bez DHCP zarządzanie większą liczbą hostów byłoby dużo bardziej czasochłonne, podatne na błędy i po prostu mniej wygodne.

You may also like

Leave a Comment