Menu Zavrieť

4.5. DHCP: Dynamic Host Configuration Protocol

DHCP protokol je popísaný v RFC 2131.

IP adresa, maska, default router aj lokálne rekurzívne DNS servery sa dajú nastaviť manuálne cez príslušné konfiguračné nastavenia v operačnom systéme. DHCP však ponúka možnosť nastaviť si všetky tieto hodnoty dynamicky, bez nutnosti manuálneho nastavovania.

DHCP je aplikačný protokol využívajúci UDP protokol. Typický scenár, kedy sa použije DHCP protokol je pri pripojení zariadenia do siete. Toto zariadenie netuší nič o tom, aká je sieťová adresa tejto siete, ktorú IP adresu si má nastaviť, aká je dĺžka masky a podobne. Tým pádom netuší ani to, na ktorom počítači je spustený DHCP server, na ktorý sa má napojiť a popýtať si od neho potrebné údaje. Jediné, čo vie, je, že ak je DHCP server v danej sieti, tak počúva na porte 67. Vyšle cez UDP protokol teda DHCP správu, nazývanú DHCP discoverpre všetky počítače v danej sieti, t. j. nastaví ako cieľovú adresu broadcastovú adresu lokálnej siete 255.255.255.255 a ako adresu zdroja nastaví 0.0.0.0, teda stanicu lokálnej siete. Keďže cieľová adresa je broadcastová, túto správu musia prijať všetky zariadenia. Táto správa okrem iného obsahuje aj náhodne vygenerovaný identifikátor.

Ak je v sieti DHCP server, reaguje na túto správu správou, nazývanou DHCP offer, ponúkajúcou novú IP adresu. Keďže počítač, ktorému je táto správa určená nemá ešte IP adresu, aj DHCP server zvolí ako cieľovú IP adresu 255.255.255.255. Táto správa okrem ponúknutej IP adresy obsahuje ten istý identifikátor, ako bol v správe DHCP discover, ďalej IP adresu DHCP servera, ponúkanú životnosť IP adresy, default router a default DNS servery. Náš žiadajúci počítač môže takých správ dostať aj viac, ak je v sieti viac DHCP serverov. Jednu z nich si vyberie.

Teraz už náš žiadajúci počítač vie, akú adresu môže dostať. Vygeneruje správu DHCP request, ktorá požaduje pridelenie tejto IP adresy. Aj táto správa má za cieľovú adresu 255.255.255.255, a v tele má všetky parametre, ktoré sa vyskytovali v DHCP offer správe.

DHCP server teraz odpovie potvrdzovacou správou DHCP ACK, opäť so všetkými parametrami. Aj táto správa ide pre cieľovú adresu 255.255.255.255. V tejto chvíli si náš žiadajúci počítač môže nastaviť ponúkanú IP adresu a začať komunikovať s inými počítačmi v sieti alebo cez default router aj s ostatnými sieťami.

Keďže každá IP adresa pridelená DHCP serverom má svoju životnosť, môže sa stať, že počítaču už pomaly končí pôžička IP adresy (DHCP lease) a môže si požiadať o predĺženie platnosti. Na takúto požiadavku už stačia iba posledné dve správy z pôvodnej štvorsprávovej komunikácie, pretože počítač už vie, v akej je sieti a vie aj to, že o akú IP adresu žiada. Takto sa dá dosiahnuť, že počítač s dynamicky nastavenou IP adresou môže byť pripojený veľmi dlho a stále (bez prestávky) mať pridelenú svoju IP adresu. Táto komunikácia už môže prebiehať unicastom, teda ako cieľové adresy môžu byť použité priamo adresy DHCP servera resp. žiadajúcej stanice.

Protokol DHCP je rozšírením pôvodného protokolu BOOTP (RFC 951,RFC 1542), ktorý bol pôvodne určený na pomoc pri bootovaní počítačov po sieti. Vtedy musí povedať bootovanému počítaču, kde sa nachádza bootovací súbor. Typicky tento bootovací súbor je uložený na FTP serveri.

DHCP špecifikácia umožňuje aj to, aby nemusel byť v každej sieti samostatný DHCP server, ale aby stačil jeden DHCP server na pokrytie viacerých sietí. Na to slúži takzvaný relay agent, ktorý je obvykle súčasťou routrov ako doplnková služba. Relay agent preposiela DHCP požiadavky do siete, kde sa nachádza DHCP server a tiež DHCP odpovede do siete žiadajúceho počítača.

DHCP je veľmi obľúbený protokol najmä v súvislosti s masovým rozšírením notebookov, ktoré sa bežne pripájajú do rôznych sietí (doma, v škole, v práci, v kaviarni, na stanici, …) a všade si nastavia IP adresu dynamicky, bez potreby ručného nastavovania. Ďalšou výhodou je to, že sa dá vyriešiť aj stav, že je rozsah pridelených IP adries menší ako počet počítačov, ktoré sa v danej sieti zvyknú vyskytovať (nie všetky naraz). Potom sa niektoré IP adresy dajú použiť raz pre jeden, raz pre iný počítač.