Dynamic Host Configuration Protocol

DHCP () 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 ()
 DNS server (seznam jedné nebo více IP adres DNS serverů)
 a další údaje, např. servery pro NTP, WINS, …

Zpětná kompatibilita 
Protokol DHCP nebyl se svým předchůdcem BOOTP zpětně kompatibilní, což je pro internetové protokoly a vydávání RFC velmi nezvyklé. Protokol DHCP přinesl pouze možnost „pronájmu IP adresy“. Vzhledem k modularitě BOOTP protokolu ale bylo možné tuto vlastnost implementovat i do tohoto předchůdce. V tehdejších počítačových sítích (unixové stanice, DOS s NCSA Telnetem, ve Windows klient Trumpet Winsock) byl protokol BOOTP běžně používán.

Zpětně nekompatibilní protokol prosadila firma Microsoft, která pro systémy Windows 95 a novější implementovala jako standardní součást pouze podporu protokolu DHCP. Pro správce tak bylo tehdy nutné společně s novou verzí stolního systému Windows nakoupit a provozovat též serverovou edici Windows NT, protože podpora DHCP byla do stávajících BOOTP serverů (typicky provozovaných na unixových systémech) implementována až se zpožděním.

Historie 
Standard DHCP vznikl v říjnu 1993 v RFC 1531 jako nástupce protokolu BOOTP, se kterým není zpětně kompatibilní. Aktualizace z roku 1997 je aktuální definicí DHCP. Protokol přinesl možnost dynamického přidělování adres (tj. na žádost klienta server přidělí IP adresu, která nemusí být pokaždé stejná), které si stanice zapůjčuje na určitou dobu a v případě potřeby zapůjčení prodlužuje. Poslední navržený standard pro DHCP v sítích IPv6 (DHCPv6) je obsažen v RFC 3315.

V současnosti je DHCP hlavním protokolem pro automatické přidělování IP adres stanicím. Protokol BOOTP se již téměř nepoužívá (kromě míst, kde je hardwarově implementován – např. do BootROM v síťových kartách). Pro usnadnění přechodu z BOOTP na DHCP byly BOOTP i DHCP servery vybaveny schopností odpovídat na požadavky stanic oběma protokoly. Stejnou schopnost mají i někteří DHCP klienti. Avšak klient v Microsoft Windows podporuje pouze DHCP.

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í, ). 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šší.

Reference

Externí odkazy 
 
 RFC 2131 – Dynamic Host Configuration Protocol ()
 RFC 2132 – DHCP Options and BOOTP Vendor Extensions ()
 Dynamic Configuration of IPv4 Link-Local Addresses ()
 RFC 3046, Recommended Operation for Switches Running Relay Agent and Option 82 jak v DHCP funguje volba 82 ()
 RFC 3942 – Reclassifying Dynamic Host Configuration Protocol Version Four (DHCPv4) Options ()
 RFC 4361 – Node-specific Client Identifiers for Dynamic Host Configuration Protocol Version Four (DHCPv4) ()
 RFC 3315 – Dynamic Host Configuration Protocol for IPv6 (DHCPv6) ()
 DHCP Protocol Messages – Popis DHCP na stránkách znalostní databáze firmy Microsoft ()
 BusyBox – malý uDHCP klient a server pro vestavěné systémy
 DHCP Monitoring in Flowmon 8.0 - Využití monitorování DHCP protokolu v praxi ()

Aplikační protokoly IP