DHCP | |
---|---|
název | DHCP, protokol dynamické konfigurace hostitelského počítače |
Úroveň (podle modelu OSI ) | Použito [1] |
Rodina | TCP/IP |
Vytvořeno v | 1990 |
Port/ID | 67, 68/ UDP |
Účel protokolu | Získání konfigurace sítě |
Specifikace | RFC 2131 |
Hlavní implementace (klienti) | ISC DHCP , jádro Windows |
Implementace jádra ( servery ) | dhcpd, ISC DHCP Server, Infoblox |
Mediální soubory na Wikimedia Commons |
DHCP ( Dynamic Host Configuration Protocol - dynamický hostitelský konfigurační protokol ) je aplikační protokol , který umožňuje síťovým zařízením automaticky získat IP adresu a další parametry nezbytné pro provoz v síti TCP/IP . Tento protokol funguje na modelu klient-server . Pro automatickou konfiguraci přistupuje klientský počítač ve fázi konfigurace síťového zařízení k tzv. DHCP serveru a přijímá z něj potřebné parametry. Správce sítě může nastavit rozsah adres distribuovaných serverem do počítačů. Vyhnete se tak ruční konfiguraci počítačů v síti a snížíte počet chyb. DHCP se používá ve většině sítí TCP/IP.
DHCP je rozšířením protokolu BOOTP , který se dříve používal k poskytování IP adres bezdiskovým pracovním stanicím při jejich spuštění. DHCP je zpětně kompatibilní s BOOTP.
Standard protokolu DHCP byl přijat v říjnu 1993 . Aktuální verze protokolu (březen 1997 ) je popsána v RFC 2131 . Nová verze DHCP určená pro použití v prostředí IPv6 se nazývá DHCPv6 a je definována v RFC 3315 (červenec 2003 ).
Protokol DHCP poskytuje tři způsoby přidělování IP adres :
Některé implementace služby DHCP jsou schopny automaticky aktualizovat záznamy DNS odpovídající klientským počítačům, když jsou jim přiděleny nové adresy. To se provádí pomocí protokolu aktualizace DNS popsaného v RFC 2136 .
Kromě IP adresy může DHCP klientovi poskytnout i další parametry nutné pro běžný provoz sítě. Tyto možnosti se nazývají možnosti DHCP . Seznam standardních možností lze nalézt v RFC 2132 .
Pole možností má proměnnou délku, ale klient DHCP musí být připraven přijmout 576bajtovou zprávu DHCP (pole možností v této zprávě je dlouhé 340 bajtů).
Pole možností začíná "magickým číslem" - čtyřmi bajty s hodnotami 99, 130, 83, 99 (0x63, 0x82, 0x53, 0x63 v šestnáctkové soustavě), což umožňuje serveru určit přítomnost tohoto pole.
Každá možnost je zakódována sekvencí „code“ (jeden byte), „length“ (jeden byte), „value“ – pole s proměnnou délkou, jehož velikost je rovna hodnotě pole „length“ včetně nuly .
Výjimky se týkají dvou kódů:
Kód | Délka | Popis |
---|---|---|
0 | (chybějící) | slouží k vyplnění a zarovnání dat |
jeden | čtyři | Maska podsítě |
2 | čtyři | Časové pásmo, podepsané číslo, posun od UTC v sekundách. |
3 | 4*n | Seznam bran v pořadí podle preferencí. |
čtyři | 4*n | Seznam Protocol |
5 | 4*n | Seznam jmenných serverů IEN 116. |
6 | 4*n | Seznam serverů DNS |
7 | 4*n | Seznam protokolových serverů (MIT-LCS UDP) |
osm | 4*n | Seznam serverů cookie ( RFC 865 ) |
9 | 4*n | Seznam serverů LPR ( RFC 1179 ) |
deset | 4*n | Seznam serverů Imagen Impress |
jedenáct | 4*n | Seznam serverů pro zjišťování zdrojů ( RFC 887 ) |
12 | n | Název hostitele klienta, řetězec. |
13 | 2 | Velikost (v 512oktetových blocích) spouštěcího obrazu pro klienta |
čtrnáct | n | Cesta k souboru, kam klient uloží výpis při selhání |
patnáct | n | doménové jméno |
16 | čtyři | Vyměňte server |
17 | n | Cesta ke kořenovému adresáři klienta. |
osmnáct | n | Cesta rozšíření BOOTP |
19 | jeden | Zda má klient povolit předávání IP (hodnota 1 nebo 0) |
dvacet | jeden | Zda má klient povolit předávání datagramů z jiných než místních zdrojů (nastaveno na 1 nebo 0) |
21 | 8*n | Seznam platných síťových adres a masek pro nelokální zdroje |
22 | jeden | Maximální velikost datagramu (minimální hodnota 576) |
23 | jeden | Výchozí hodnota IP TTL |
24 | čtyři | Časový limit (v sekundách) pro vypršení hodnot Path MTU ( RFC 1191 ) |
25 | 2*n | Seznam hodnot MTU při provádění Path MTU Discovery ( RFC 1191 ) |
26 | 2 | Hodnota MTU pro toto rozhraní (minimální hodnota 68) |
27 | jeden | Příznak, že všechny podsítě používají aktuální konfiguraci MTU (nabývá hodnoty 0 nebo 1) |
28 | čtyři | Adresa vysílání |
29 | jeden | Zda má klient požadovat masku podsítě přes ICMP (nabývá hodnoty 0 nebo 1) |
třicet | jeden | Zda má klient reagovat na požadavky masky přes ICMP (nabývá hodnoty 0 nebo 1) |
31 | jeden | Zda má klient dotazovat směrovače pomocí mechanismu RFC 1256 (nabývá hodnoty 0 nebo 1) |
32 | čtyři | Adresa, na kterou má klient zasílat požadavky směrovače |
33 | 8*n | Statický seznam směrování se skládá z párů "cílová adresa" - "adresa směrovače". |
34 | jeden | Značka přípustnosti použití upoutávek pro požadavky ARP (nabývá hodnoty 0 nebo 1) |
35 | čtyři | Časový limit mezipaměti ARP v sekundách. |
36 | jeden | Příznak pro použití zapouzdření IEEE 802.3 ( RFC 1042 ) místo Ethernet verze 2 ( RFC 894 ) (nastaveno na 0 nebo 1) |
37 | jeden | Výchozí hodnota TTL pro TCP |
38 | čtyři | Časový interval (v sekundách) před odesláním Keepalive |
39 | jeden | Zda mají být Keepalives poslány s extra garbage oktetem (má hodnotu 0 nebo 1) |
40 | n | Název domény NIS (řetězec) |
41 | 4*n | Seznam serverů NIS |
42 | 4*n | Seznam časových serverů NTP |
43 | n | Informace specifické pro prodejce |
44 | 4*n | Seznam názvových serverů (NBNS) NetBIOS |
45 | 4*n | Seznam serverů pro distribuci datagramů NetBIOS (NBDD). |
46 | jeden | Typ uzlu NetBIOS: 0x1 - B-uzel; 0x2 - P-uzel; 0x4 - M-uzel; 0x8 - H-uzel |
47 | n | oblast NetBIOS |
48 | 4*n | Seznam serverů písem systému X Window |
49 | 4*n | Seznam adres zobrazení systému X okna |
padesáti | čtyři | Požadovaná IP adresa |
51 | čtyři | Doba pronájmu IP adresy v sekundách |
52 | jeden | Příznak pro použití polí 'soubor' (1) a 'jméno' (2) nebo obou (3) pro možnosti |
53 | jeden | Typ zprávy DHCP (1 - DHCPDISCOVER; 2 - DHCPOFFER; 3 - DHCPREQUEST; 4 - DHCPDECLINE; 5 - DHCPACK; 6 - DHCPNAK; 7 - DHCPRELEASE; 8 - DHCPINFORM) |
54 | čtyři | ID serveru DHCP |
55 | n | Seznam požadovaných parametrů (každý bajt je kód parametru) |
56 | n | Chybová textová zpráva (řetězec) |
57 | 2 | Maximální velikost zprávy DHCP. Minimální hodnota 576 |
58 | čtyři | Čas T1, před aktualizací IP adresy (v sekundách) |
59 | čtyři | Čas T2 před opětovným spojením (v sekundách) |
60 | n | Identifikátor typu dodavatele (řetězec) |
61 | n | ID klienta (řetězec) |
64 | n | Název domény NIS+ |
65 | 4*n | Seznam serverů NIS+ |
66 | n | Název TFTP serveru (řetězec), pokud je pro volby použito pole 'jméno' |
67 | n | Název spouštěcího souboru (řetězec), pokud je pole 'soubor' použito pro možnosti |
68 | 4*n | Seznam adres domovského agenta Mobile IP |
69 | 4*n | Seznam SMTP serverů |
70 | 4*n | Seznam serverů POP3 |
71 | 4*n | Seznam serverů NNTP |
72 | 4*n | Seznam WWW serverů |
73 | 4*n | Seznam Finger Server |
74 | 4*n | Seznam IRC serverů |
75 | 4*n | Seznam serverů StreetTalk |
76 | 4*n | Seznam serverů StreetTalk Directory Assistance |
255 | (chybějící) | Konec seznamu možností |
Některé z nejčastěji používaných možností jsou:
Někteří dodavatelé softwaru mohou definovat své vlastní dodatečné možnosti DHCP.
Protokol DHCP je klient-server , to znamená, že na jeho provozu se podílí DHCP klient a DHCP server . Data jsou přenášena pomocí protokolu UDP . Ve výchozím nastavení jsou požadavky od klienta odesílány na server na portu 67, server zase odpovídá klientovi na portu 68 s IP adresou a dalšími nezbytnými informacemi, jako je maska sítě, router a servery DNS.
Všechny zprávy DHCP jsou rozděleny do polí, z nichž každé obsahuje určité informace. Všechna pole kromě posledního (pole možností DHCP) mají pevnou délku.
Pole | Popis | Délka (v bajtech ) |
---|---|---|
op | Typ zprávy. Může například nabývat hodnot: BOOTREPLY (0x01, požadavek klienta na server) a BOOTREPLY (0x02, odpověď serveru klientovi). | jeden |
htype | Typ hardwarové adresy. Platné hodnoty pro toto pole jsou definovány v RFC 1700 "Assigned Numbers". Například pro ethernetovou MAC adresu je toto pole 0x01. | jeden |
hlen | Délka hardwarové adresy v bajtech. Pro ethernetovou MAC adresu je to 0x06. | jeden |
chmel | Počet zprostředkujících směrovačů (nazývaných přenosoví agenti DHCP ), kterými zpráva prošla. Klient nastaví toto pole na 0x00. | jeden |
xid | Jedinečné 4bajtové ID transakce vygenerované klientem na začátku procesu získávání adresy. | čtyři |
sekund | Čas v sekundách od začátku procesu získávání adresy. Nesmí se použít (v takovém případě je nastaveno na 0x0000). | 2 |
vlajky | Pole pro příznaky jsou speciální parametry protokolu DHCP. | 2 |
ciaddr | IP adresa klienta. Vyplní se pouze v případě, že klient již má svou vlastní IP adresu a je schopen reagovat na požadavky ARP (toto je možné, pokud klient po vypršení zapůjčení provede proceduru obnovení adresy). | čtyři |
yiaddr | Nová adresa IP klienta navržená serverem. | čtyři |
siaddr | Adresa IP dalšího serveru v řetězci služeb. Server MŮŽE v tomto poli vrátit svou vlastní adresu. Možnost 54 se používá k identifikaci serveru. | čtyři |
giaddr | Adresa IP přenosového agenta, pokud byl zapojen do doručení zprávy DHCP na server. | čtyři |
chaddr | Hardwarová adresa (obvykle MAC adresa ) klienta. | 16 |
pojmenovat | Volitelný název serveru jako řetězec zakončený nulou . | 64 |
soubor | Volitelný název souboru na serveru používaný bezdiskovými pracovními stanicemi při vzdáleném spouštění. Stejně jako sname je reprezentován jako řetězec zakončený nulou. | 128 |
možnosti | pole možností DHCP . Zde jsou uvedeny různé další možnosti konfigurace. Na začátku tohoto pole jsou uvedeny čtyři speciální bajty s hodnotami 99, 130, 83, 99 („magická čísla“), což serveru umožňuje určit přítomnost tohoto pole. Pole má proměnnou délku, nicméně klient DHCP musí být připraven přijmout 576bajtovou zprávu DHCP ( pole možností v této zprávě je dlouhé 340 bajtů). | variabilní |
Podívejme se na příklad, jak klient získá IP adresu ze serveru DHCP. Předpokládejme, že klient ještě nemá svou vlastní IP adresu, ale zná svou předchozí adresu – 192.168.1.100. Proces se skládá ze čtyř fází. Tyto fáze jsou často zkráceny jako DORA (Discovery, Offer, Request, and Acknowledgement)
DHCP DiscoveryKlient nejprve odešle požadavek do celé fyzické sítě, aby zjistil dostupné servery DHCP. Odešle zprávu typu DHCPDISCOVER (hodnota volby Typ zprávy je 1), se zdrojovou IP adresou 0.0.0.0 (pokud počítač již nemá vlastní IP adresu) a adresou vysílání 255.255 jako cílovou adresou. 255,255.
Klient vyplní několik polí zpráv počátečními hodnotami:
Zprávu DHCPDISCOVER lze šířit mimo místní fyzickou síť pomocí speciálně nakonfigurovaných přenosových agentů DHCP k předávání zpráv DHCP z klientů na servery v jiných podsítích.
Ne vždy proces získání IP adresy začíná DHCPDISCOVER . Pokud klient již dříve obdržel IP adresu a její pronájem ještě nevypršel, může klient přeskočit fázi DHCPDISCOVER, počínaje požadavkem DHCPREQUEST odeslaným s identifikátorem serveru, který adresu vydal naposledy. Pokud nepřijde žádná odpověď od serveru DHCP, který naposledy vydal nastavení, klient odešle DHCPDISCOVER . Klient tedy zahájí proces příjmu od začátku a osloví všechny DHCP servery v segmentu sítě.
Nabídka DHCPPo obdržení zprávy od klienta server určí požadovanou konfiguraci klienta v souladu s nastavením zadaným správcem sítě. V tomto případě DHCP server přijímá adresu 192.168.1.100 požadovanou klientem. Server mu odešle odpověď DHCPOFFER (hodnota volby Typ zprávy je 2), ve které nabídne konfiguraci. IP adresa nabízená klientovi je uvedena v poli yiaddr . Další parametry (jako jsou adresy routeru a serveru DNS ) jsou uvedeny jako možnosti v odpovídajícím poli.
Tato zpráva je odeslána serverem DHCP hostiteli, který odeslal DHCPDISCOVER na jeho MAC, za určitých okolností může být zpráva šířena jako všesměrové vysílání. Klient může obdržet několik různých nabídek DHCP z různých serverů; z nich si musí vybrat tu, která mu vyhovuje.
Požadavek DHCPPo zvolení jedné z konfigurací nabízených DHCP servery odešle klient požadavek DHCPREQUEST (hodnota volby Typ zprávy je 3). Vysílá se; kromě možností specifikovaných klientem ve zprávě DHCPDISCOVER je přidána speciální možnost - identifikátor serveru - udávající adresu DHCP serveru zvoleného klientem (v tomto případě 192.168.1.1).
Stejný požadavek se použije, když se blíží konec zapůjčení adresy, pro prodloužení doby (obnovení) nebo proceduru opětovného svázání. V těchto případech jsou vynechány možnosti „server id“ a „requested IP address“ a pole ciaddr je vyplněno dříve přiřazenou adresou klienta. Pokud se čas prodlouží, požadavek se neodesílá, ale je adresován vydávajícímu serveru. Pouze v případě, že server neodpoví ve stanoveném čase, je zahájena procedura opětovného spojení s požadavky na vysílání.
Požadavek se také používá k inicializaci po restartu klienta (init-reboot), kdy již zná dříve přidělenou adresu. V tomto případě se DHCPDISCOVER neprovede, ale okamžitě se odešle vysílání DHCPREQUEST bez zadání možnosti „ID serveru“, ale se známou adresou ve volbě „požadovaná adresa IP“. Pole ciaddr je ponecháno prázdné.
DHCP handshakeNakonec server potvrdí požadavek a odešle klientovi potvrzení DHCPACK (typ zprávy je 5). Klient pak musí nakonfigurovat své síťové rozhraní pomocí poskytnutých možností.
Typ zprávNíže jsou uvedeny příklady hodnot pro každé pole pro každou ze zpráv DHCP odeslaných v procesu. V tomto příkladu zařízení s MAC adresou 00:1D:60:57:ED:80 požaduje IP adresu od serveru DHCP . Klient odešle svou poslední známou IP adresu 192.168.1.100 jako doporučenou
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
Kromě zpráv, které klient potřebuje k prvotnímu získání IP adresy, poskytuje DHCP několik dalších zpráv pro provádění dalších úkolů.
Selhání DHCPPokud klient po obdržení potvrzení (DHCPACK) ze serveru zjistí, že adresa zadaná serverem je již v síti používána, odešle vysílanou zprávu o odmítnutí DHCPDECLINE (hodnota možnosti Typ zprávy je 4), poté se postup pro získání IP adresy opakuje. Použití adresy IP jiným klientem lze zjistit zadáním požadavku ARP .
Zrušení DHCPV situacích, kdy server není schopen přiřadit klientovi požadovanou adresu, například pokud je klientem předána neplatná hodnota pro volbu „požadovaná IP adresa“ od klienta při provádění DHCPREQUEST, server odešle DHCPNAK Cancel Vysílat zprávu (hodnota možnosti "Typ zprávy" je 6). Po obdržení takové zprávy musí příslušný klient opakovat postup získání adresy.
Uvolněte DHCPKlient může výslovně ukončit pronájem IP adresy. Za tímto účelem odešle zprávu DHCPRELEASE (hodnota možnosti Typ zprávy je 7) na server, který mu zapůjčil adresu. Na rozdíl od jiných zpráv DHCP se DHCPRELEASE nevysílá.
Informace o DHCPInformační zpráva DHCPINFORM (hodnota volby Typ zprávy je 8) je určena k určení dalších parametrů TCP/IP (například adresy výchozího routeru , serverů DNS atd.) pro klienty, kteří nepotřebují dynamický IP adresa (to znamená, že existuje adresa, která se konfiguruje ručně). Servery na takový požadavek odpoví potvrzovací zprávou (DHCPACK) bez přidělení IP adresy.
Při odesílání zpráv DHCPOFFER a DHCPACK jako odpovědi na DHCPREQUEST server vyplní hodnotu volby 51 "Lease Time", 32bitovou hodnotu vyjadřující relativní čas v sekundách, na který je klientovi přidělena IP adresa.
Volitelně server hlásí hodnoty dvou dalších časových intervalů T1 a T2 ve volbách 42 a 43. Pokud tyto možnosti nejsou zadány, klient vypočítá T1 rovnající se 1/2 doby pronájmu a T2 rovnající se 7/8 doby pronájmu.
Po T1 klient vstoupí do stavu obnovení doby zapůjčení (obnovení) a pokusí se obnovit zapůjčení adresy IP odesláním požadavku unicast DHCPREQUEST na server, přičemž jeho adresu uvede do pole ciaddr , aniž by předal možnosti „identifikátor serveru " a " požadovaná IP adresa. Server na tento požadavek odpoví DHCPACK označujícím nový interval zapůjčení vzhledem k aktuálnímu času.
Pokud server neodpovídá, pokusy o odeslání požadavku se opakují po polovině času zbývajícího do T2 , ale ne méně než 60 sekund později.
Klient může požádat o prodloužení pronájmu i před uplynutím intervalu T1.
Pokud po uplynutí času T2 odpověď ze serveru neobdrží, přejde klient do stavu opětovného svázání. V tomto případě klient začne vysílat podobné požadavky DHCPREQUEST a v případě potřeby také opakované pokusy o odeslání po uplynutí poloviny času zbývajícího do konce zapůjčení, ale ne dříve než za 60 sekund.
Dokud nevyprší pronájem, i když vyprší T1 a T2, klient nadále používá přidělenou IP adresu jako dříve. Když však pronájem vyprší, klient MUSÍ zastavit síťovou aktivitu a pokusit se získat novou adresu, počínaje požadavkem DHCPDISCOVER.
Microsoft poprvé zahrnul DHCP server se serverovou verzí Windows NT 3.5 vydanou v roce 1994 . Počínaje systémem Windows 2000 Server umožňuje implementace serveru DHCP společnosti Microsoft dynamické aktualizace záznamů DNS , což je to, co se používá v Active Directory .
Internet Systems Consortium vydalo první verzi serveru ISC DHCP (pro systémy podobné Unixu ) 6. prosince 1997 . 22. června 1999 byla vydána verze 2.0, která více odpovídala standardu.
Cisco zahrnulo DHCP server do Cisco IOS 12.0 v únoru 1999. Sun přidal DHCP server do Solaris 8 v červenci 2001 .
V současné době existují implementace DHCP serveru pro OS Windows ve formě samostatných programů, včetně otevřených [5] , které umožňují počítačům s neserverovými verzemi tohoto OS fungovat jako DHCP server.
protokoly TCP /IP podle vrstev modelu OSI | Základní|
---|---|
Fyzický | |
odvedeny | |
síť | |
Doprava | |
zasedání | |
Zastoupení | |
Aplikovaný | |
Uplatněno jiné | |
Seznam portů TCP a UDP |