DHCP (Dynamic Host Configuration Protocol) to protokół, dzięki któremu urządzenie po podłączeniu do sieci samo dostaje adres IP i resztę potrzebnych ustawień: maskę podsieci, bramę domyślną i adresy serwerów DNS. Działa w modelu klient-serwer: urządzenie (klient) pyta, a serwer DHCP odpowiada. Bez tego ktoś musiałby wpisywać te dane ręcznie na każdym komputerze, telefonie czy drukarce. DHCP korzysta z protokołu UDP — serwer nasłuchuje na porcie 67, a klient na porcie 68. Zasady opisuje RFC 2131 (a dodatkowe opcje RFC 2132); wersję dla IPv6, czyli DHCPv6, opisuje RFC 8415.
Jak działa DHCP? Proces DORA
Urządzenie zdobywa adres w czterech krokach. Ich pierwsze litery układają się w słowo DORA (Discover, Offer, Request, Acknowledge). Trzy z tych komunikatów to rozgłoszenia (broadcast), bo na starcie klient nie ma jeszcze adresu i nie wie, do kogo konkretnie się zwrócić:
- Discover (wykryj) — klient bez adresu wysyła do całej sieci pytanie
DHCPDISCOVER(od0.0.0.0do255.255.255.255), żeby znaleźć dostępne serwery. - Offer (zaproponuj) — każdy serwer, który usłyszał pytanie, rezerwuje wolny adres i odsyła
DHCPOFFERz propozycją adresu oraz ustawień. - Request (poproś) — klient wybiera jedną ofertę i rozgłasza
DHCPREQUESTz numerem wybranego serwera. Pozostałe serwery wiedzą wtedy, że ich propozycje odpadły. - Acknowledge (potwierdź) — wybrany serwer potwierdza przydział komunikatem
DHCPACK(albo odmawia przezDHCPNAK). Od tej chwili klient może używać adresu przez czas dzierżawy.
Poza tymi czterema klient i serwer wymieniają też inne komunikaty: DHCPDECLINE (klient zauważył, że adres jest już zajęty), DHCPRELEASE (klient oddaje adres przed czasem) oraz DHCPINFORM (urządzenie z ustawionym na stałe adresem pyta tylko o pozostałe parametry).
Czym jest dzierżawa (lease) i jak się ją odnawia?
Adres z DHCP nie jest przyznawany na zawsze, tylko na określony czas — to właśnie dzierżawa (lease). To trochę jak wypożyczenie: po czasie adres trzeba oddać albo przedłużyć. Pilnują tego dwa liczniki:
- T1 (odnowienie, domyślnie po 50% czasu dzierżawy) — klient próbuje przedłużyć dzierżawę, wysyłając
DHCPREQUESTwprost (unicast) do serwera, który mu adres przydzielił. - T2 (ponowne przypięcie, domyślnie po 87,5% czasu) — jeśli tamten serwer milczy, klient prosi o przedłużenie dowolny serwer DHCP w sieci.
Jeśli dzierżawa wygaśnie i nikt jej nie odnowi, klient musi oddać adres i zacząć cały proces DORA od początku. Dzięki dzierżawom serwer odzyskuje adresy po urządzeniach, które zniknęły z sieci — a to ważne, bo adresów IPv4 jest skończona liczba.
Jakie ustawienia przekazuje DHCP? Opcje DHCP
Oprócz samego adresu IP serwer przekazuje dodatkowe ustawienia w postaci opcji DHCP. Każda opcja ma format TLV: typ, długość i wartość. Najczęściej używane to:
- Opcja 1 — maska podsieci,
- Opcja 3 — brama domyślna (router),
- Opcja 6 — adresy serwerów DNS,
- Opcja 51 — czas trwania dzierżawy,
- Opcja 53 — typ komunikatu DHCP (DISCOVER, OFFER, REQUEST, ACK i inne),
- Opcja 82 — Relay Agent Information; dokłada ją urządzenie pośredniczące, by wskazać, z którego portu lub segmentu przyszło zapytanie, i zastosować odpowiednie reguły przydziału.
Co to jest agent przekazujący DHCP (relay)?
Komunikat DHCPDISCOVER to rozgłoszenie, które domyślnie nie wychodzi poza własną podsieć — routery nie przepuszczają rozgłoszeń dalej. Gdy sieć ma wiele podsieci, używa się więc agenta przekazującego DHCP (DHCP relay). Zwykle działa on na routerze lub przełączniku warstwy 3 (na sprzęcie Cisco służy do tego polecenie ip helper-address). Relay odbiera rozgłoszenie klienta i przekazuje je dalej jako zwykłą wiadomość (unicast) do wspólnego serwera DHCP w innej podsieci. Dzięki temu jeden serwer obsługuje wiele segmentów i nie trzeba stawiać osobnego serwera w każdej podsieci.
Jakie są metody przydziału adresów?
- Przydział dynamiczny — serwer wypożycza adres z puli (scope) na czas dzierżawy; po jej wygaśnięciu adres wraca do puli.
- Przydział automatyczny — serwer przydziela adres z puli na stałe, bez ograniczenia czasem.
- Przydział ręczny (rezerwacja) — administrator przypisuje konkretny adres IP do adresu MAC urządzenia, więc dostaje ono zawsze ten sam adres.
Jakie są zagrożenia bezpieczeństwa DHCP?
W podstawowej formie DHCP nie sprawdza tożsamości — ani klienta, ani serwera. Każdy w sieci może udawać jedną ze stron, co otwiera drogę do kilku ataków w warstwie dostępowej:
- Nieautoryzowany serwer DHCP (rogue DHCP) — podstawiony serwer odpowiada szybciej niż prawdziwy i podsuwa klientom spreparowane ustawienia (np. własny adres jako bramę i serwer DNS). Ruch zaczyna płynąć przez atakującego — to klasyczny atak man-in-the-middle (ktoś po cichu wpina się w środek). Bywa też skutkiem przypadkowo wpiętego routera domowego.
- DHCP starvation (zagłodzenie puli) — atakujący zalewa serwer komunikatami
DHCPREQUESTz fałszywymi adresami MAC, aż pula adresów się wyczerpie. Nowi użytkownicy nie dostają wtedy adresu (to atak typu DoS, odmowa usługi), a często jest to tylko przygotowanie pod podstawienie rogue DHCP. - DHCP spoofing — podszywanie się pod serwer i wysyłanie klientom błędnych ustawień.
Jak chronić DHCP? DHCP snooping
Podstawowa obrona to DHCP snooping — funkcja przełącznika, która dzieli porty na dwie grupy:
- zaufane (trusted) — prowadzące do prawdziwych serwerów DHCP; tylko z nich przełącznik przyjmuje odpowiedzi serwera (
OFFER,ACK,NAK), - niezaufane (untrusted) — porty użytkowników; jeśli z takiego portu przyjdzie odpowiedź serwera, przełącznik ją odrzuca. To blokuje rogue DHCP.
Przy okazji DHCP snooping buduje bazę powiązań (binding database), która zapamiętuje, jaki adres MAC dostał jaki adres IP, na jak długo, w którym VLAN-ie i na którym porcie. Ta baza jest fundamentem dla kolejnych zabezpieczeń, takich jak Dynamic ARP Inspection (DAI) i IP Source Guard. Snooping potrafi też ograniczać liczbę pakietów DHCP na port (rate limiting), co utrudnia atak typu starvation.
Dlaczego DHCP jest istotny dla monitorowania i bezpieczeństwa sieci?
Dane z DHCP to cenne źródło informacji dla zespołów SOC, NDR i monitorowania sieci. Logi przydziałów (DISCOVER/OFFER/REQUEST/ACK) oraz baza powiązań pozwalają powiązać adres IP z adresem MAC i konkretnym urządzeniem w danym momencie. To bywa kluczowe podczas dochodzenia po incydencie — pozwala ustalić, kto miał dany adres w czasie zdarzenia. Warto wychwytywać między innymi: odpowiedzi DHCPOFFER/DHCPACK z nieautoryzowanego źródła (rogue DHCP), nagły wysyp DHCPDISCOVER z wielu różnych adresów MAC (możliwy starvation), zmianę bramy lub serwera DNS podsuwanego klientom oraz urządzenia, które omijają DHCP i używają adresów statycznych spoza polityki.
Dowiedz się więcej
- ARP Spoofing – jak wykryć atak Man-in-the-Middle i zatruwanie ARP w sieci LAN — DHCP przydziela adresy IP, które mogą być podszywane lub przechwytywane w atakach ARP spoofing.
- Inventory — Inventory pomaga śledzić urządzenia i adresy IP, które w sieci mogą być przydzielane przez DHCP.
- O krok bliżej do Sycope w modelu zero-configuration: integracja z phpIPAM (Hosts & Subnets) — Integracja z phpIPAM ułatwia zarządzanie pulami adresów IP, z których korzysta DHCP.
- UDP Protocol — DHCP działa w oparciu o UDP, używając portów 67 i 68 do komunikacji klienta z serwerem.
- Czym jest NetFlow i jak ten protokół jest wykorzystywany w praktyce? — NetFlow pozwala analizować ruch DHCP i wykrywać nietypowe wzorce przydziału adresów.
- Jak wykrywać nieznane urządzenia w sieci? — DHCP może ujawnić nieznane urządzenie, gdy żąda ono nowego adresu IP w sieci.