DHCP (anglicky Dynamic Host Configuration Protocol) je v informatice název protokolu z rodiny TCP/IP nebo označení odpovídajícího DHCP serveru či klienta. Používá se pro automatickou konfiguraci počítačů připojených do počítačové sítě. DHCP server přiděluje počítačům pomocí DHCP protokolu zejména IP adresu, masku sítě, implicitní bránu (default gateway) a adresu DNS serveru. Protože je platnost přidělených údajů omezená, je na počítači spuštěn DHCP klient, který jejich platnost prodlužuje.
Charakteristika
DHCP protokol umožňuje prostřednictvím DHCP serveru nastavovat stanicím v počítačové síti sadu parametrů nutných pro komunikaci pomocí IP protokolu (tj. využívat rodinu protokolů TCP/IP). Umožňuje předávat i doplňující a uživatelsky definované parametry. Významným způsobem tak zjednodušuje a centralizuje správu počítačové sítě (například při přidávání nových stanic, hromadné změně parametrů nebo pro skrytí technických detailů před uživateli). DHCP servery mohou být sdruženy do skupin, aby bylo přidělování adres odolné vůči výpadkům. Pokud klient některým parametrům nerozumí, ignoruje je.
Typicky se pomocí DHCP nastavují tyto parametry:
-
IP adresa
-
maska sítě
-
implicitní brána (anglicky default gateway)
-
DNS server (seznam jedné nebo více IP adres DNS serverů)
-
a další údaje, např. servery pro NTP, WINS, …
Princip činnosti
Klienti žádají server o IP adresu, ten u každého klienta eviduje půjčenou IP adresu a čas, do kdy ji klient smí používat (doba zapůjčení, anglicky lease time). Poté, co vyprší, smí server adresu přidělovat jiným klientům.
Klient komunikuje na UDP portu 68, server naslouchá na UDP portu 67. Po připojení do sítě klient vyšle broadcastem DHCPDISCOVER paket. Na ten odpoví DHCP server paketem DHCPOFFER s nabídkou IP adresy. Klient si z (teoreticky několika) nabídek vybere jednu IP adresu a o tu požádá paketem DHCPREQUEST. Server mu ji vzápětí potvrdí odpovědí DHCPACK. Jakmile klient obdrží DHCPACK, může už IP adresu a zbylá nastavení používat. Klient musí před uplynutím doby zapůjčení z DHCPACK obnovit svou IP adresu. Pokud lhůta uplyne aniž by dostal nové potvrzení, klient musí IP adresu přestat používat.
Protokol definuje roli i tzv. DHCP relay agenta. Používá se v situaci, kdy existují dvě nebo více sítí oddělené směrovačem a jen jedna síť obsahuje DHCP server. V takovém případě správce na směrovači zapne relay agenta a nastaví jej tak, aby všesměrové (broadcast) DHCP dotazy ze sítí bez DHCP serveru přeposílal DHCP serveru. Agent k přeposílanému dotazu přidá číslo sítě a masku sítě, na které klienta zaslechl, aby DHCP server poznal, ze kterého adresního rozsahu má klientovi adresu přiřadit.
Možnosti přidělení IP adresy
IP adresa může být stanici přidělena několika způsoby:
Ruční nastavení V tomto případě správce sítě nevyužívá DHCP serveru a konfiguraci jednotlivých stanic zapisuje jednotlivě přímo do konfigurace jednotlivých stanic.
Statická alokace DHCP server obsahuje seznam MAC adres a ke každé z nich jednu příslušnou IP adresu. Pokud je žádající stanice s MAC adresou nacházející se v seznamu, dostane vždy přidělenu stejnou pevně definovanou IP adresu.
Dynamická alokace Správce sítě na DHCP serveru vymezí rozsah adres, které budou přidělovány stanicím, které nejsou registrovány. Časové omezení pronájmu IP adresy dovoluje DHCP serveru již nepoužívané adresy přidělovat jiným stanicím. Registrace dříve pronajatých IP adres umožňuje DHCP serveru při příštím pronájmu přidělit stejnou IP adresu.
V IPv6 sítích je automatickému nastavení stanice věnována vyšší pozornost, aby byla konfigurace počítačové sítě ještě jednodušší.
authoritative;
default-lease-time 3600;
max-lease-time 86400;
option domain-name-servers 192.168.140.1;
option ntp-servers 192.168.140.1;
shared-network eth1-1 {
subnet 192.168.140.0 netmask 255.255.255.0 {
range 192.168.140.150 192.168.140.249;
option routers 192.168.140.1;
option domain-name "example.com";
option domain-name-servers 192.168.140.1;
option netbios-name-servers 192.168.140.17;
option netbios-node-type 8;
}
subnet 192.168.133.0 netmask 255.255.255.0 {
option routers 192.168.133.1;
option domain-name "example.net";
option domain-name-servers 192.168.133.1;
option netbios-name-servers 192.168.133.254;
option netbios-node-type 8;
}
}
host tiskarna-hp4515 { hardware ethernet 00:21:5a:7c:0f:5f; fixed-address 192.168.140.120; }
host muj-pc { hardware ethernet 10:bf:48:75:eb:79; fixed-address 192.168.140.121; }
host w7test { hardware ethernet 08:00:27:8e:6c:45; fixed-address 192.168.133.253; }