Դինամիկ հոսթի կազմաձևման հաղորդակարգ (DHCP)

Դինամիկ հոսթի կազմաձևման հաղորդակարգ (անգլ.՝ Dynamic Host Configuration Protocol (DHCP)), կիրառական շերտի (Application Layer) հաղորդակարգ, որն ավտոմատ կերպով ցանցին միացող հոսթերին տրամադրում է IP հասցեներ և հարակից այլ կոնֆիգուրացիայի տեղեկություններ, ինչպիսիք են՝ Ենթացանցային դիմակը (Subnet Mask) և Լռելյայն դարպասը (Default Gateway)։ DHCP հաղորդակարգը սահմանվում է որպես Internet Engineering Task Force (IETF) ստանդարտ, որը հիմնված է Սկզբնաբեռնման հաղորդակարգի (Bootstrap Protocol (BOOTP)) վրա։ DHCP-ն թույլ է տալիս հոսթերին ստանալ անհրաժեշտ TCP/IP կոնֆիգուրացիայի տեղեկատվությունը DHCP Սերվերից։ DHCP-ն հիմնված է Հաճախորդ-Սերվեր մոդելի վրա (Client-Server Model)։ Հաճախորդը և Սերվերը, կապ հաստատելու համար, փոխանակում են 4 DHCP հաղորդագրություն՝ Հայտնաբերում (Discovery), Առաջարկ (Offer), Հարցում (Request) և Հաստատում (Acknowledge (ACK)): Այս գործընթացը կոչվում է DORA, որի անվանումը կազմված է հաղորդագրությունների սկզբնատառերից։ DHCP միացքի (Port) համարը Սերվերի համար 67 է, իսկ Հաճախորդի համար՝ 68: IP հասցեն նշանակվում է հասանելի IP հասցեների տեղաբաշխման հիերարխիայի ցանկացած մակարդակի հասցեների ֆոնդից (Pool of Addresses): DHCP հաղորդակարգի ծառայություններն օգտագործում են IPv4 և IPv6 համացանցային հաղորդակարգերը։ DHCP հաղորդակարգի IPv6 տարբերակը կոչվում է DHCPv6: 


== DHCP-ի ստեղծման պատմություն ==
DHCP հաղորդակարգն առաջին անգամ սահմանվել է որպես ստանդարտ արձանագրություն RFC 1531-ում 1993 թվականի հոկտեմբերին՝ որպես Սկզբնաբեռնման հաղորդակարգի (Bootstrap Protocol (BOOTP)) ընդլայնում, որն օգտագործվում էր Ցանցային հաճախորդի (Network Client) կողմից՝ Կոնֆիգուրացիայի սերվերից (Configuration Server) IP հասցե ստանալու համար։ BOOTP հաղորդակարգի ընդլայնման շարժառիթն այն էր, որ վերջինս պահանջում էր ձեռքով միջամտություն՝ յուրաքանչյուր Հաճախորդի (Client) կազմաձևման մասին տեղեկատվություն ավելացնելու համար և չէր տրամադրում օգտագործվող IP հասցեները վերականգնելու մեխանիզմ։ 1997 թվականին թողարկվեց RFC 2131-ը, որը մնում է ստանդարտ IPv4 ցանցերի համար։ IPv6 հաղորդակարգն աջակցելու համար ներկայացվել է DHCPv6 հաղորդակարգը, որը ներկայացված է RFC 3315-ում։ DHCPv6-ը զգալիորեն տարբերվող հաղորդակարգ է։ Եթե DHCPv4-ում Հաճախորդի (Client) հիմնական նույնացուցիչը MAC հասցեն է, ապա DHCPv6-ում հիմնական նույնացուցիչը DUID-ն է (եզակի նույնացուցիչ DHCP մասնակիցների համար, որը պահպանվում է վերբեռնման ընթացքում)։ DHCPv4-ը ենթադրում է, որ յուրաքանչյուր հոսթ կունենա մեկ հասցե։ DHCPv6 սարքերը կարող են պահանջել բազմաթիվ հասցեներ։ RFC 3633-ն ավելացնում է DHCPv6-ի նախածանցի (Prefix) մեխանիզմը, որը համարժեք չունի DHCPv4-ում։ DHCPv6-ը հետագայում ընդլայնվել է՝ տրամադրելով կոնֆիգուրացիայի տեղեկատվություն Հաճախորդներին և օգտագործելով հասցեի ավտոմատ կազմաձևումը։ Ներկայումս սահմանված են մոտ 140 DHCPv6 տարբերակներ։ 


== DHCP հաղորդակարգի ընդհանուր բնութագիր ==

DHCP Սերվերը կարող է կառավարել IP կարգավորումներն իր` տեղական ցանցում (Local Area Network) գտնվող հոսթերի համար՝ նրանց հատկացնելով Ավտոմատ և Դինամիկ IP հասցեներ։ DHCP տեխնոլոգիան բաղկացած է ցանցի երկու բաղադրիչից՝ Սերվերից (Server) և Հաճախորդից (Client)։ Երբ համակարգիչը կամ այլ սարքը միանում են ցանցին, DHCP Հաճախորդի ծրագրակազմը (Client Software) ուղարկում է DHCP հեռարձակման (Broadcast) հարցում (Request)՝ պահանջելով անհրաժեշտ տեղեկատվություն։ Ցանցի ցանկացած DHCP Սերվեր կարող է սպասարկել հարցումը։ DHCP Սերվերը կառավարում է IP հասցեների և Հաճախորդի կազմաձևման պարամետրերի մասին տեղեկությունները՝ Լռելյայն դարպասը (Default Gateway), Տիրույթի անունը (Domain Name), Անունների սերվերները (Name Servers), ժամանակի սերվերները (Time Servers): DHCP հարցում ստանալու դեպքում DHCP Սերվերը կարող է պատասխանել յուրաքանչյուր Հաճախորդի համար հատուկ տեղեկություններով կամ որոշակի հասցեով և ցանկացած այլ տեղեկությամբ, որը վավեր է ողջ ցանցի և ժամանակահատվածի համար։ DHCP Հաճախորդը սովորաբար հարցում է անում այս տեղեկատվության համար բեռնումից (Booting) անմիջապես հետո և պարբերաբար՝ մինչև տեղեկատվության ժամկետի ավարտը։ DHCP-ի կարգավորումների վարձակալության ժամանակը (DHCP Setup Lease Time) երկարաձգել պահանջող Հաճախորդները կարող են ուղղակիորեն շփվել UDP Միահեռարձակման (Unicast) միջոցով, քանի որ արդեն ունեն հաստատված IP հասցե այդ պահին։ Երբ DHCP Հաճախորդը թարմացնում է հանձնարարությունը (Assignment), այն սկզբում պահանջում է նույն պարամետրի արժեքները, սակայն DHCP Սերվերը կարող է նոր հասցե նշանակել՝ հիմնվելով սահմանված հանձնարարության վրա։ 
DHCP Սերվերն ունի IP հասցեների բաշխման երեք մեթոդ՝

Դինամիկ տեղաբաշխում (Dynamic Allocation)Այս մեթոդի դեպքում DHCP հաղորդակարգի համար վերապահվում են մի շարք IP հասցեներ։ Տեղական տարածքային ցանցի (LAN) յուրաքանչյուր DHCP Հաճախորդ կազմաձևված է, որպեսզի ցանցի սկզբնավորման ընթացքում DHCP Սերվերից IP հասցե պահանջի։ Հարցման և շնորհման գործընթացն օգտագործում է վարձակալության ժամանակի (Lease Time) պարամետրը, որի համար DHCP Սերվերը IP հասցե է հատկացնում Հաճախորդին։ Լռելյայն (Default) IP հասցեն տրամադրվում է մեկ օրվա համար (86400 վայրկյան)։ Վերահսկելի ժամկետից հետո DHCP Սերվերը հետ է պահանջում և վերաբաշխում այն IP հասցեները, որոնք չեն թարմացվել։

Ավտոմատ տեղաբաշխում (Automatic Allocation)Այս մեթոդը նման է Դինամիկ տեղաբախշման մեթոդին, սակայն DHCP Սերվերը պահում է անցյալի IP հասցեների հանձնարարությունների (Past IP Address Assignments) աղյուսակը, որպեսզի կարողանա Հաճախորդին վերագրել այն նույն IP հասցեն, որը Հաճախորդն ուներ նախկինում։

Ձեռքով տեղաբաշխում (Manual Allocation)Այս մեթոդն անվանում են նաև Ստատիկ DHCP տեղաբաշխում (Static DHCP Allocation), Ֆիքսված հասցեի տեղաբաշխում (Fixed Address Allocation), Ամրագրում (Reservation) կամ Mac/IP հասցեի կապում (MAC/IP Address Binding) : Յուրաքանչյուր Հաճախորդի հատկացվում է եզակի նույնացուցիչ (Unique Identifier)՝ Հաճախորդի ID կամ MAC հասցեով։ DHCP Սերվերները ձևավորվում են այնպես, որ մեթոդի անհաջող կիրառման դեպքում օգտագործվեն մյուս մեթոդները։


== DHCP հաղորդակարգի գործընթաց ==
Արդի շրջանում DHCP հաղորդակարգը սարքերը ցանցին միացնելու լավագույն ձևն է, որը հուսալի և արագ միջոց է՝ տվյալների արագ կառավարման հնարավորության շնորհիվ։ DHCP հաղորդակարգն օգտագործում է առանց կապի հաստատման հաղորդման մոդելը՝ Օգտատիրային դեյթագրամի հաղորդակարգը (UDP), երբ ստացողը ստուգում է փաթեթների ամբողջականությունը միայն հաղորդագրություն ստանալու ժամանակ։ DHCP գործընթացի կարևոր բաղադրիչներն են՝ Սերվերը (Server) և Հաճախորդը (Client): 


=== DHCP Սերվեր (Server) ===
DHCP Սերվերը DHCP հաղորդակարգի ամենակարևոր բաղադրիչներից է։ Լոկալ ցանցերի (LAN) մեծ մասում DHCP Սերվերն իրականում երթուղիչ է։ Այն կառավարում է հարցումները (Request) և պահում IP հասցեների ու հոսթերի մասին գրառումները։ DHCP-ն տարբերակում է հոսթերը՝ օգտագործելով ցանցային քարտի MAC (Media Access Control) հասցեն, որը ցանցայի քարտի նույնականացման համարն է և տրվում է քարտին արտադրման ժամանակ արտադրող կազմակերպության կողմից։ Յուրաքանչյուր հոսթ ունի MAC հասցե, ինչն օգնում է DHCP Սերվերին տարբերել ցանցին միացող սարքերը։ Հետևաբար՝ ոչ մի սարք կամ հոսթ չի ստանում նույն IP հասցեն։ DHCP Սերվերն օգտագործվում է Հաճախորդին IP հասցե հատկացնելու կանոնները սահմանելու համար։ Այդ կանոնները ներկայացված են ստորև։ 


==== Դարպասի հասցեի նշում (Specifying a Gateway Address) ====
DHCP Սերվերն օգտագործում է Լռելյայն դարպասը (Gateway Address) IP հասցեն սահմանելու համար, որը Սերվերը նախապես հատկացնում է DHCP Հաճախորդներին։ Երբ օգտատերը ցանկանում է մուտք գործել համացանց՝ հարցումը սկզբում ուղարկվում է Լռելյայն դարպաս։ 


==== DNS Սերվերի IP հասցեի նշում (Specifying a DNS Server IP Address) ====
DHCP Սերվերը ձևավորվում է այնպես, որ յուրաքանչյուր անգամ Դոմենային անունների համակարգին (DNS=Domain Name System) թարմացման հարցումներ (Update Requests) ուղարկի, երբ նոր հասցե է հատկացնում հոսթին։ Երբ DHCP Հաճախորդը ստանում է IP հասցե, այդ տվյալներն անմիջապես ուղարկվում են DNS Սերվեր։ DNS-ը կարողանում է շարունակաբար հաջողությամբ լուծել հոսթերի հարցումները, անգամ IP հասցեների փոխվելու դեպքում։ 


==== Ենթացանցային դիմակի կիրառում (Applying a Subnet Mask) ====
Ենթացանցային դիմակը (Subnet Mask) օգնում է համացանցային երթուղուն (Internet Traffic)` փաթեթն ավելի արագ իր նպատակակետին հասնելու համար։ Այն IP հասցեն բաժանում է երկու մասի՝ պարզելու, թե որ մասն է հոսթը կամ Հաճախորդը և որ մասը՝ ցանցը։ Ենթացանցային դիմակը նաև սահմանում է IP հասցեների շրջանակը, որը կարող է օգտագործվել ցանցում կամ ենթացանցում։


==== Վարձակալության ժամկետի նշում (Specifying Lease Time) ====
DHCP-ի կարգավորումներում վարձակալության ժամանակն այն է, երբ DHCP Սերվերը թույլ է տալիս Հաճախորդին օգտագործել տվյալ IP հասցեն։ Ցանցը կարգավորելիս, որպես կանոն, սահմանվում է, որ սարքը կարող է ունենալ միայն մեկ IP հասցե որոշակի ժամանակահատվածում, նախքան նոր IP հասցեի ստանալը։ DHCP Սերվերը հավատարիմ է մնում այս կանոնին և DHCP Ձեռքսեղմման (Handshake) ժամանակ IP հասցե ուղարկելիս Հաճախորդին տեղեկացնում է նաև վարձակալության ժամկետի (Lease Time) մասին։


=== DHCP Հաճախորդ (Client) ===
DHCP գործընթացի մյուս հիմնական բաղացրիչը Հաճախորդն է։ Ցանկացած սարք, որ միանում է համացանցին, Հաճախորդ է։ Հաճախորդը կարող է միանալ ներքին ցանցին և շփվել DHCP Սերվերի հետ՝ IP հասցե ստանալու և առցանց գործելու համար։ 
DHCP Սերվերի և Հաճախորդի միջև հաղորդակցությունը հատուկ գործընթաց է, որը հայտնի է որպես DHCP Ձեռքսեղմում (Handshake): Այն իրականանում է 4 հաղորդագրություններով՝ 

Բացահայտում (Discover), երբ Հաճախորդը ցանկանում է միանալ համացանցին և հեռարձակում (Broadcast) է ուղարկում` մատչելի DHCP Սերվերներ գտնելու համար։
Առաջարկ (Offer), երբ DHCP Սերվերն ընդունում է Հաճախորդի հեռարձակումը (Broadcast), ապա պատասխանում է հասանելի IP հասցեներով և կազմաձևման տարբերակներով (Configuration Options):
Հարցում (Request), երբ Հաճախորդը պահանջում է առաջարկվող IP հասցեներից մեկը և հարցում է ուղարկում ցանցի մյուս Հաճախորդներին՝ հասկանալու, թե արդյո՞ք նրանցից որևէ մեկն արդեն օգտագործում է իր ուզած IP հասցեն։ IP հասցեն չօգտագործվելու դեպքում Հաճախորդը վերցնում է հասցեն։
Հաստատում (Acknowledgment), երբ DHCP սերվերն ընդունում է հաճախորդի տեղեկատվության հարցումը և ուղարկում է տվյալների փաթեթ, որը ներառում է վարձակալության տևողությունը (Lease Duration)` Հաճախորդի՝ IP հասցեն պահպանելու ժամանակը, և ցանկացած այլ տեղեկատվություն, որն անհրաժեշտ է IP հասցեն օգտագործելու համար։ Ստորև ներկայացված է DHCP գործընթացի 4 հաղորդագրությունների փոխանակման գործընթացը, որն անգլերեն անվանումների սկզբնատառերով կոչվում է DORA: 

Քայլ 1։ Սարքը միանում է ցանցին և հեռարձակում DHCP Discover հաղորդագրությունը։ Սա կորոշի, թե արդյո՞ք կա պոտենցիալ DHCP Սերվեր ցանցում։ 
Քայլ 2։ DHCP Discover հաղորդագրությունը ստանալուց հետո DHCP Սերվերը կպատասխանի DHCP Offer հաղորդագրությունով, որը ներառում է հասանելի IP հասցեն, Ենթացանցային դիմակը և Դարպասի հասցեն հասցեների տիրույթում։ 
Քայլ 3։ Եթե ցանցում կա մեկից ավելի DHCP Սերվեր, օգտվողը կարող է ստանալ մի քանի DHCP Offer փաթեթներ և ուղարկել DHCP Request փաթեթ այն Սերվերին, որն առաջինն է ուղարկել այդ հաղորդագրությունը։ Սա ցույց է տալիս, որ այն պատրաստ է ընդունել այդ Սերվերի առաջարկած IP հասցեն։ 
Քայլ 4։ Եթե օգտատիրոջ պահանջած հասցեն կամ Սերվերի առաջարկած հասցեն հասանելի է, Սերվերը DHCP Acknowledgment է ուղարկում հոսթին, և հոսթին հաջողությամբ հասցեագրում է։ Եթե IP հասցեն չի կարող նշանակվել հոսթին, ապա Սերվերն ուղարկում է DHCP NAK (Negative Acknowledgement) հաղորդագրությունը։ Այս դեպքում հասցեի ընտրության գործընթացը վերսկսվում է՝ ուղարկվելով նոր՝ DHCP Discover հաղորդագրությունը։


=== DHCP Ռելե գործակալ (Relay Agent) ===
 
DHCP Ռելե գործակալը ցանկացած TCP/IP հոսթ է, որն օգտագործվում է DHCP Սերվերի և Հաճախորդի միջև հարցումները և պատասխանները փոխանցելու համար, երբ Սերվերը և Հաճախորդը գտնվում են տարբեր ցանցերում։ Ռելե գործակալները ստանում են DHCP հաղորդագրությունները, ապա ստեղծում են նոր DHCP հաղորդագրություն՝ ուղարկելու այլ ինտերֆեյս (Interface): Բացի այդ` DHCP Ռելե գործակալն ավելացնում է փաթեթի Դարպասի հասցե (Gateway Address of The Packet) դաշտը։ Պարամետրերի դաշտը (Options Field) հեռացվում է, երբ Սերվերի պատասխանը փոխանցվում է հոսթին։ DHCP Ռելե գործակալն օգտակար է մեծ ցանցեր և շատ սարքեր ունեցող կազմակերպությունների համար, եթե օգտագործվում է հեռավոր DHCP Սերվեր։


=== DHCP հասցեների ֆոնդ (DHCP Address Pool) ===
DHCP հասցեների ֆոնդը IP հասցեների շարք է, որոնք հասանելի են օգտատերերին տրամադրելու համար։ DHCP Սերվերը կառավարում է IP հասցեների ֆոնդը, որպեսզի իմանա՝ արդյո՞ք կարող է IP հասցեներ հատկացնել Հաճախորդին, երբ նա IP հասցե է պահանջում։ 
DHCP հասցեների ֆոնդը լինում է 2 տեսակ՝ 

Ընդհանուր հասցեների ֆոնդ (Common Address Pool), որն աջակցում է Ստատիկ (Static DHCP Allocation) և Դինամիկ տեղաբաշխմանը (Autamatic DHCP Allocation):
Ընդլայնված հասցեների ֆոնդ (Extended Addressb Pool), որն աջակցում է միայն Դինամիկ տեղաբաշխմանը։Եթե IP հասցեն ստատիկորեն կապված է Հաճախորդի MAC հասցեին կամ ID-ին, ապա DHCP Սերվերը առկա IP հասցեների ֆոնդից կընտրի Ընդհանուր հասցեների ֆոնդը (Common Address Pool) և ստատիկորեն կապված IP հասցեն կհատկացնի Հաճախորդին։ Եթե ստացող ինտերֆեյսում նշված է Ընդլայնված հասցեների ֆոնդը, ապա DHCP Սերվերը IP հասցե կհատկացնի հենց այս ֆոնդից։ Եթե հասցեների լողավազանում չկա IP հասցե, DHCP Սերվերը չի կարողանա հասցե հատկացնել հաճախորդին։


== DHCP հաղորդակարգի առավելություններ և թերություններ ==
Ի սկզբանե` DHCP հաղորդակարգը նախատեսված էր ցանցի կառավարումը պարզեցնելու համար։ Այդուհանդերձ՝ DHCP հաղորդակարգն ունի մի շարք առավելություններ և թերություններ։


== Ծանոթագրություններ ==


== Գրականություն ==
The DHCP Handbook, Ralph Droms, Ted Lemon, Sams Publishing, October 2002
DHCP for Windows 2000, Neall Alcott, "O'Reilly Media, Inc." , January 2001


== Տես նաև ==
TCP/IP
UDP
DNS