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 noteiktu 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.

 Lauks
 Apraksts
 Garums (baitos)
  op
 Ziņojuma tips. Var pieņemt divas vērtības: BOOTREQUEST (1, pieprasījums no klienta uz serveri) un BOOTREPLY (2, atbilde no servera klientam).
 1
  htype
 Aparatūras adreses tips. Šī lauka pieļaujamās vērtības ir definētas RFC «Assigned Numbers». Piemēram priekš Ethernet MAC-adreses 10 Mbit/s, šis lauks pieņem vērtību 1.
 1
  hlen
 Aparatūras adreses garums baitos. Priekš Ethernet MAC adreses - 6.
 1
  hops
 Starpposmu maršrutētāju skaits (tā saucamie DHCP retranslācijas aģenti) caur kuriem ziņojums ir izgājis cauri. Klients šī lauka vērtību iestata - 0.
 1
  xid
 Unikālais transakciju identifikators, ko ģenerē klients adreses saņemšanas posma sākumā.
 4
  secs
 Laiks sekundēs no adreses saņemšanas posma sākuma. Var tikt neizmantots (šajā gadījumā tas tiek iestatīts uz 0).
 2
  flags
 Karodziņu lauks – priekš īpašiem DHCP protokola parametriem.
 2
  ciaddr
 Klienta IP adrese. Tiek aizpildīts tikai tad, ja klientam jau ir sava IP adrese un tas spēj atbildēt uz ARP pieprasījumiem (tas ir iespējams, ja klients veic IP adreses atjaunināšanu pēc adreses derīguma termiņa beigām).
 4
  yiaddr
 Jaunā klienta IP adrese, kuru piedāvā serveris.
 4
  siaddr
 Servera IP adrese, tiek atgriezta ziņojumā no DHCP (skat. zemāk).
 4
  giaddr
 Retranslācijas aģenta IP adrese, ja tas ir piedalījies DHCP ziņojuma piegādes procesā uz serveri.
 4
  chaddr
 Klienta aparatūras adrese (parasti MAC adrese).
 16
  sname
 Neobligātais servera vārds (nosaukums), kas izpaužas kā null terminētā rinda.
 64
  file
 Neobligātais servera faila nosaukums, ko izmanto darbstacijas bez diska pie attālinātas ielādes. Tāpat kā sname, tiek attēlots kā null terminēta rinda.
 128
  options
 Lauks DHCP iespējas. Šeit tiek norādīti dažādi konfigurācijas parametri. Šī lauka sākumā tiek norādīti četri īpaši baiti ar vērtībām 99, 130, 83, 99 ("maģiskie skaitļi"), kas ļauj serverim noteikt šī lauka esamību. Šim laukam ir mainīgs garums, bet DHCP klientam ir jābūt gatavam pieņemt DHCP ziņojumu ar 576 baitu garumu (šajā ziņojumā lauka iespējas garums ir 340 baiti.)
 Mainīgs

 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.

    + DHCP noteikšana DHCPDISCOVER
   UDP src = 0.0.0.0 Dest = 255.255.255.255
    OPHTYPEHLENHOPS
    0x010x010x060x00
     XID
     0x3903F326
     SECS FLAGS
     0x0000 0x0000
     CIADDR
     0x00000000
     YIADDR
     0x00000000
     SIADDR
     0x00000000
     GIADDR
     0x00000000
     CHADDR
     0x0000001d6057ed80
     SNAME
     (tukšs lauks)
     FILE
     (tukšs lauks)
     OPTIONS
     DHCP iespēja 53: DHCP noteikšana
     DHCP iespēja 50: Adreses 192.168.1.100 pieprasījums

    +DHCP Piedāvājums DHCPOFFER
   UDP src = 192.168.1.1 Dest = 255.255.255.255
    OPHTYPEHLENHOPS
    0x020x010x060x00
     XID
     0x3903F326
     SECS  FLAGS
     0x0000  0x0000
     CIADDR
     0x00000000
     YIADDR
     0xC0A80164
     SIADDR
     0xC0A80101
     GIADDR
     0x00000000
     CHADDR
     0x0000001d6057ed80
     SNAME
     (tukšs lauks)
     FILE
     (tukšs lauks)
     OPTIONS
     DHCP iespēja 53: DHCP piedāvājums
     DHCP iespēja 1: apakštīkla maska 255.255.255.0
     DHCP iespēja 3: maršrutētājs 192.168.1.1
     DHCP iespēja 51: IP adreses derīguma laiks - 1 diena
     DHCP iespēja 54: DHCP serveris 192.168.1.1

    + DHCP pieprasījums DHCPREQUEST
   UDP Src = 0.0.0.0 Dest = 255.255.255.255
    OPHTYPEHLENHOPS
    0x010x010x060x00
     XID
     0x3903F326
    SECS FLAGS
     0x0000  0x0000
     CIADDR
     0x00000000
     YIADDR
     0x00000000
     SIADDR
     0x00000000
     GIADDR
     0x00000000
     CHADDR
     0x0000001d6057ed80
     SNAME
     (tukšs lauks)
     FILE
     (tukšs lauks)
     OPTIONS
     DHCP iespēja 53: DHCP pieprasījums
     DHCP iespēja 50: Adreses 192.168.1.100 pieprasījums
     DHCP iespēja 54: DHCP serveris 192.168.1.1

    +DHCP apstiprinājums  DHCPACK
   UDP Src = 192.168.1.1 Dest = 255.255.255.255
    OPHTYPEHLENHOPS
    0x020x010x060x00
     XID
     0x3903F326
     SECS FLAGS
     0x0000 0x0000
     CIADDR
     0x00000000
     YIADDR
     0xC0A80164
     SIADDR
     0x00000000
     GIADDR
     0x00000000
     CHADDR
     0x0000001d6057ed80
     SNAME
     (tukšs lauks)
     FILE
     (tukšs lauks)
     OPTIONS
     DHCP iespēja 53: DHCP apstiprināšana
     DHCP iespēja 1: apakštīkla maska 255.255.255.0
     DHCP iespēja 3: maršrutētājs 192.168.1.1
     DHCP iespēja 51: IP adreses derīguma laiks - 1 diena
     DHCP iespēja 54: DHCP serveris 192.168.1.1



 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 

Kategorija:Interneta protokoli