DHCP - dynamic host configuration (nasępca BOOTP)
RFC 1541
RFC 2131
DHCP korzysta z UDP, klient wysyła do serwera na port 67 i odbiera na 63
Serwer DHCP nie może być klientem DHCP
-automatyczna alokacja, serwer przypisuje stały adres klientowi na podstawie MAC
-manualna alokacja, przydziału dokonuje admin
-dynamiczna alokacja, serwer wypożycza adresy
DHCP DISCOVER
255.255.255.255 - super rozgłoszenie na intersieci
K->S
DHCP OFFER
K<-S
DHCP REQEST DHCP DECLINE
K->S KS
DHCP ACK DHCP NACK
K<-S KS
DHCP RELEASE
K->S
DHCP najczęściej przydziela
IP, subnet mask, Router, DNS, Domain
-Inicjacja (klient przypisuje sobie adres 0.0.0.0, wysyła DHCP DISCOVER)
-Wybieranie (klient zaczyna odbierać DHCP OFFER z podstawowymi parametrami (IP, Sub mask, DHCP addr)); wybieranie może się nie udać wtedy klient sam przydziela sobie IP
-Zgłoszenie (DHCP Reqest od klienta, DHCP.ACK od serwera)
-Stan związania (czas w którym klient trzyma adres, jak mu się znudzi DHCP RELEASE)
-Stan odnawiania (DHCP REQEST od klienta, gdzie w jednym z pól proponuje odnowienie tego adresu IP (po upływie 50% czasu korzystania))
-Ponowne związanie (po czasie 87,5% czasu korzystania)
Komunikatory DHCP
op 1 -kod operacji (wiadomości) 1. BOOT REQEST 2.BOOT REPLAY
htyp 1 -typ adresu sprzętowego (identyfikator warstwy łącza danych u klienta)
hlen 1 -dł. adresu sprzętowego (6 -otetów 48bit)
hops 1 -liczba hopów (np. gdy DHCP Server jest za routerem)
xid 4 -identyfikator transakcji
sccs 2 -czas jaki upłyną od konfiguracji klienta
flags 2 -MSB 0 odpowiedzi muszą być odsyłane na 0.0.0.0
1 odpowiedzi muszą być odsyłane na 255.255.255.255
ciaddr 4 -(client addr) w przypadku DHCP REQ klient wpisuje adres który chciałby od serwera uzyskać
yiaddr 4 -(youne ip addr) -serwer wpisuje proponowany adres
siad dr 4 -adres ip serwera
qiaddr 4 -gateway ip address (serwer wysyła)
chaddr 16 -client hardware address
snare 64 -dhcp server name (domain)
file 128 -scieżka do pliku z systemem
options 312 -wszystkie dane konfiguracyjne jakie serwer chciałby przekazać klientowi
OFFER ACK NACK
op BOOTREPLAY------
htyp -> clients info
hlen -> clients info
hops 0 0 0
xid clients info
sccs 0 0 0
ciaddr 0 DHCP REQEST ----
from client
yiaddr IP offered IP assigned
siaddr DHCP IP DHCP IP 0
flags clients info
chaddr clients info
srame name name name
DISCOVER REQEST DECLINE, RELEASE
op BOOT REQEST
htype clients info
hlen clients info
hops 0 0 0
xid selected by client
secs optional optional 0
flags MSB {0,1}
ciaddr 0 previous IP addr.
yiaddr 0 0 0
siaddr 0 0 0
qiaddr 0 0 0
chaddr adres MAC klienta