DHCP

DHCP jeb Dinamiskais saimniekdatora konfigurācijas protokols, arī Dinamiskā resursdatora konfigurācijas protokols () ir lietojuma slāņa protokols, kuru lieto lai automātiski iedalītu IP adreses un citus TCP/IP uzstādījumus tīkla datoriem. Šis ir uz klienta-servera arhitektūras bāzēts protokols. Serveri ir pieejami visām populārākajām operētājsistēmām un bieži ir iebūvēti jau no sākuma. Klienti ir vēl izplatītāki. Windows operētājsistēmās DHCP klients ir iebūvēts jau sākot ar Windows 95.

DHCP par transporta slāņa protokolu lieto UDP. Serveri vienmēr darbojas uz 67 porta. DHCP pieprasījums satur datora MAC adresi. Atbilde (veiksmīga) vienmēr satur IP adresi, bet var arī saturēt tīkla masku, default gateway, DNS un WINS serverus (to adreses). DHCP serveris ir arī PXE boot servera sastāvdaļa, PXE DHCP servera atbilde satur arī TFTP servera adresi, no kura uzsākt operētājsistēmas ielādi. Klienti izjejošajām UDP paketēm kā source port vienmēr norādā 68 portu un uz turieni arī serveri sūta savas atbildes.

Darbība 
Vienā tīklā var būt vairāki klientu un serveri. Klients, pēc ieslēgšanas, parasti nezin savu IP adresi, bet zin tikai savu MAC adresi. Pilnajā variantā caur tīklu šādā secībā tiek pārsūtītas 4 paketes:
 Klients nosūta tīklā broadcast paketi, kurā prasa, lai atsaucas DHCP serveri (IP lease request). Šeit klients nosūta tīklā paketi ar destination adresi 255.255.255.255. Rūteri parasti šādas paketes nelaiž cauri, bet ja vajag, tās ir iespējams pārsūtīt uz citus subnetu. Ja klients zin savu iepriekšējo adresi, tas var pieprasīt apstiprināt veco adresi. Ja tā attiecīgajā tīklā ir derīga, serveris to var apstiprināt.
 Visi serveri nosūta tam klientam savus piedāvājumus (IP lease offer). Šeit serveris rezervē klientam IP adresi un nosūta to kopā ar pārējo konfigurāciju (tā parasti ir nemainīga visam tīklam) unicast (sūtot tikai uz attiecīgo MAC adresi) paketē.
 Klients izvēlas vienu no piedāvājumiem un paziņo savu izvēli atiecīgajam serverim (IP lease selection). Šeit klients nosūta broadcast paketi visam tīklam, kas satur paņemto IP adresi un izvēlētā DHCP servera adresi, lai pārējie serveri varētu nomest iepriekšējā stadijā rezervēto IP adresi.
 Attiecīgais, izvēlētais serveris apstiprina izsniegto konfigurāciju (IP lease acknowledgement). Parasti šī pakete neatšķiras no 2. stadijā lietotās. Šī pakete vienmēr satur informāciju par lietoto lease time un pilnu konfigurāciju. 2. stadijā lietotajai paketei pilnīgi notiekti ir jāsatur tikai IP adrese.

DHCP adrešu piešķiršana ir iespējama 3 veidos:
 Dinamiskā metode (dynamic allocation). Serverī norāda noteiktu tīklā lietojamo IP adrešu apgabalu un klientiem izsniedz IP adreses no tā apgabala uz notektu laiku. Šī ir visplašāk lietotā metode un vienkāršākajām DHCP serveru implementācijām tā bieži vien ir vienīgā metode.
 Statiskā metode (static allocation). Serveris permanenti piešķir IP adresi no norādīta IP adrešu apgabala. Šeit atšķirībā no dinamiskās metodes, IP adreses piešķir uz neierobežoti ilgu laiku.
 Manuālā metode (manual allocation). Serveris piešķir IP adresi no tabulas, kurā sarakstītas visas nodefinētās MAC adreses un tām atbilstošās IP adreses. Klientiem, kuru MAC adrese nav tajā tabulā, IP adresi nedod.

Vēsture 

DHCP protokola standarts tika pieņemts 1993. gada oktobrī. Strādājoša pašreizējā protokola versija (pieņemta 1997. gada martā) ir aprakstīta 2131 RFC. Jaunā DHCP protokola versija ir paredzēta izmantošanai Ipv6 vidē, tās nosaukums ir DHCPv6 un tā ir noteikta  (2003. gada jūlijā).

DHCP iespējas 

Bez IP adreses DHCP var arī sniegt klientam papildus parametrus, kas nepieciešami darbībai tīklā. Šos parametrus sauc par DHCP iespējām. Standarta iespēju saraksts atrodams .

Dažas no visbiežāk izmantojamajām iespējām:

 Maršrutētāja IP adrese pēc noklusējuma;
 Apakštīkla maska;
 Servera DNS adrese;
 Domēna DNS vārds.

Daži programmatūras pārdevēji var noteikt savas papildu DHCP iespējas.

Protokola uzbūve 

DHCP protokols ir klienta-servera protokols, tas ir, viņa darbībā piedalās DHCP klients un DHCP serveris. Datu pārraide tiek veikta izmantojot UDP protokolu, serveris pieņem ziņojumus no klientiem uz 67. portu un sūta ziņojumus klientiem uz 68.portu.

DHCP ziņojumu struktūra 

Visi DHCP ziņojumi tiek sadalīti laukos, kur katrs no tiem satur noteiktu informāciju. Visiem laukiem, izņemot pēdējo (lauku DHCP iespējas), ir fiksēts to garums.

Adreses saņemšanas procesa piemērs 

Aplūkosim IP adreses iegūšanas piemēru, kad klients to iegūst no DHCP servera. Pieņemsim, ka klientam vēl nav savas IP adreses, bet tam ir zināma iepriekšējā IP adrese – 192.168.1.100. Process sastāv no četrām fāzēm.

DHCP noteikšana 

Sākotnēji klients veic plašu pieprasījumu visā fiziskajā tīklā ar mērķi atrast pieejamos DHCP serverus. Tas nosūta DHCPDISCOVER tipa ziņojumu, un kā avota IP adrese tiek norādīta 0.0.0.0 (jo datoram vēl nav savas IP adreses), bet kā galamērķa adrese tiek norādīta 255.255.255.255.

Klients aizpilda dažus ziņojuma laukus ar sākotnējām vērtībām:

 Laukā xid tiek ielikts unikāls transakcijas identifikators, kas ļauj atšķirt IP adreses iegūšanas procesu no citiem procesiem, kuri norit tajā pašā laikā.
 Laukā chaddr tiek ielikta klienta aparatūras adrese (MAC adrese).
 Laukā iespējas tiek norādīta pēdējā zināmā klienta IP adrese. Šajā piemērā tā ir 192.168.1.100. Tas nav obligāti norādāms lauks, un var tikt ignorēts serverī.

DHCPDISCOVER ziņojums var tikt izplatīta ārpus lokālā fiziskā tīkla, izmantojot īpaši konfigurētus DHCP aģentus, kas novirza no klienta ienākošos ziņojumus citu apakštīklu DHCP serveriem.

DHCP piedāvājums 

Saņemot ziņojumu no klienta, serveris nosaka vēlamo klienta konfigurāciju saskaņā ar tīkla administratora iestatījumiem. Šajā gadījumā DHCP serveris piekrīt klienta pieprasītajai IP adresei 192.168.1.100. Serveris nosūta klientam atbildi (DHCPOFFER), kurā piedāvā tam konfigurāciju. Klientam piedāvātā IP adrese tiek norādīta laukā yiaddr. Pārējie parametri ( maršrutētāja un DNS servera adreses) ir norādīti kā iespējas attiecīgajā laukā.

Šo ziņojumu DHCP serveris sūta resursdatoram (kurš sūtīja DHCPDISCOVER) uz tā MAC adresi. Klients var saņemt vairākus dažādus DHCP piedāvājumus no dažādiem serveriem, no kuriem tam ir jāizvēlas viens kurš to "apmierinās."

DHCP pieprasījums 

Izvēloties vienu no DHCP servera piedāvātajām konfigurācijām, klients nosūta DHCP (DHCPREQUEST) pieprasījumu, pievienojot laukā iespējās īpaša iezīme – servera identifikators – kas norāda DHCP servera adresi, kuru izvēlējies klients (šajā gadījumā – 192.168.1.1).

DHCP apstiprināšana 

Visbeidzot, serveris apstiprina pieprasījumu un nosūta apstiprinājumu (DHCPACK) klientam. Pēc tā klientam jānokonfigurē savu tīkla saskarni izmantojot piedāvātās iespējas.

Ziņojumu izskats 

Šeit ir apskatāmi katra lauka vērtības, katram procesa laikā nosūtītajam DHCP ziņojumam.

Pārējie DHCP ziņojumi 

Papildus ziņojumiem, kas nepieciešami sākotnējai klienta IP adreses saņemšanai DHCP paredz dažus papildus ziņojumus izpildāmajiem uzdevumiem.

DHCP noraidījums 

Ja pēc apstiprinājuma saņemšanas (DHCPACK) no servera, klients atklāj, ka servera norādītā IP adrese jau tiek lietota tīklā, tas izsūta DHCP atteikuma ziņojumu (DHCPDECLINE) pēc kura atkārtojas IP adrese iegūšanas procedūra. Lai noteiktu vai IP adresi jau lieto cits klients, tiek veikts ARP pieprasījums.

DHCP atteikums 

Ja kāda iemesla dēļ serveris nevar sniegt klientam viņa pieprasīto IP adresi, serveris sūta apraides ziņojumu par DHCP atteikumu (DHCPNAK) pēc kura atkārtojas IP adrese iegūšanas procedūra.. Saņemot šādu ziņojumu klientam jāveic atkārtotu IP adreses pieprasīšanas procedūru.

DHCP atbrīvošana 

Klients var izbeigt IP adreses izmantošanu. Lai to izdarītu, tas nosūta uz serveri ziņojumu atbrīvot DHCP (DHCPRELEASE) tam serverim, kurš viņam piešķīra IP adresi.

DHCP informācija 

DHCP informācijas ziņojumi (DHCPINFORM) ir paredzēta, lai noteiktu papildus parametrus TCP / IP (piemēram, noklusētā maršrutētāja IP adrese, DNS serveri utt) tiem klientiem, kuriem nav nepieciešama dinamiskā IP adrese. Serveri uz šādu ziņojumu atbild ar pieprasījuma apstiprinājumu (DHCPACK) bez IP adreses izdalīšanas.

Ieviešanas vēsture 
Microsoft pirmo reizi DHCP serveri iekļāva „Windows NT 3.5” servera versijā, kuru izlaida 1994. gadā. Sākot ar „Windows 2000 Server” versiju DHCP serveris spēja dinamiski atjaunināt DNS ierakstus, kas tiek izmantots aktīvajā direktorijā (Angliski - Active Directory).

Interneta Systems Consortium 1997. gada 6. decembrī izlaida ISC DHCP Server pirmo versiju (Unix veidīgajām sistēmām). 1999. gada 22. jūnijā tika izlaista 2.0 versija, kura daudz precīzāk atbilda standartam.

Cisco DHCP serveri iekļāva savā produktā - „Cisco IOS 12.0” 1999. gada februārī. 
Sun iekļāva DHCP serveri „Solaris 8” produktā 2001. gada jūlijā.

Pašlaik DHCP servera risinājumi, priekš Windows operētājsistēmām, pastāv atsevišķu programmu izskatā, kas ļauj datoriem veikt DHCP servera lomu neizmantojot servera OS versijas.

Atsauces 

Interneta protokoli