**IPv6 համացանցային հաղորդակարգ** (անգլ.՝ Internet Protocol Version 6 (IPv6)), համացանցային հաղորդակարգի 6-րդ սերունդը Ցանցային շերտի (Network Layer) հաղորդակարգ է, որը թույլ է տալիս հաղորդակցությունը ցանցի միջոցով։ IPv6-ը նախագծվել է Համացանցային հաղորդակարգերի փաթեթի նախորդ սերնդի՝ IPv4-ի կիրառման ընթացքում առաջացած խնդիրների լուծման համար, որոնք առնչվում էին IP հասցեների սպառման, անվտանգության, ավտոմատ կազմաձևման (auto-configuration), ընդլայնման հետ և այլն։ Համացանցում այն ապահովում է համակարգիչների նույնականացման, տեղորոշման համակարգը և տվյալների փոխանցման երթուղիները։ IPv6-ն օգտագործում է 128-բիթանոց հասցե՝ տեսականորեն թույլ տալով 2128 կամ մոտավորապես 3,4×1038 ընդհանուր հասցեներ։ Փաստացի թիվը ինչ-որ չափով փոքր է, քանի որ մի քանի միջակայքեր վերապահված են հատուկ օգտագործման համար կամ ամբողջովին բացառված են օգտագործման համար։ IPv6-ը, բացի հասցեների ընդլայնումից, տալիս է դրանց տեղաբաշխման հիերարխիկ մեթոդների հնարավորություն, որոնք հեշտացնում են համացանցում երթուղիների միացումը։ Multicast հասցեավորման օգտագործումն ընդլայնված ու պարզեցված է և ապահովում է լրացուցիչ օպտիմալացում ծառայությունների մատուցման համար։ Հաղորդակարգի նախագծման ժամանակ հաշվի են առնվել սարքի շարժունակության, անվտանգության և կազմաձևման առանձնահատկությունները։ IPv6 հասցեները ներկայացված են որպես չորս տասնվեցական թվանշաններից բաղկացած ութ խումբ՝ բաժանված երկու կետով։ Ամբողջական ներկայացումը կարող է կրճատվել, օրինակ՝ 2001:0db8:0000:0000: 0000:7a6e:0680:9668 կարող է կրճատվել մինչև 2001:db8::7a6e:680:9668: IPv6-ը ստեղծվել է Internet Engineering Task Force-ի (IETF) կողմից, որը 1998 թվականի դեկտեմբերին դարձավ IETF-ի Ստանդարտ նախագիծ (Draft Standart)։ 2017 թվականի հուլիսի 14-ին IPv6-ը հաստատվեց որպես գլոբալ տեղակայման համացանցային ստանդարտ։

IPv6 հաղորդակարգի առանձնահատկություններ (IPv6 Features)
-------------------------------------------------------

IPv6 հաղորդակարգի հասցե
IPv6 փաթեթի վերնագրի (Header) դիագրամ
* Հասցեների ավելի մեծ տարածք (Address Space)

IPv6 հաղորդակարգը, ի տարբերություն IPv4 հաղորդակարգի, համացանցում օգտագործում է 4 անգամ շատ բիթ հասցեագրման համար։ Սրա շնորհիվ IPv6 հաղորդակարգը կարող է ապահովել հասցեների մոտ 3,4\*1038 տարբեր համակցություններ։ Ըստ հաշվարկների՝ Երկիր մոլորակի յուրաքանչյուր քառակուսի մետրին կարող է հատկացվել 1564 հասցե։

* Պարզեցված վերնագիր (Header)

IPv6 հիդերն ունի նոր՝ պարզեցված վերնագրի ձևաչափ, որը նախատեսված է ավելի հեշտ մշակման համար՝ ի տարբերութուն IPv4-ի։ Նոր կառուցվածքը կազմաձևելիս վերնագրերի ընտրովի դաշտերը (Optional Fields)
և ոչ էական դաշտերը (Non-Essential Fields) տեղափոխվում են ընդլայնման վերնագրեր (Extension Headers), որոնք հայտնվում են IPv6 վերնագրից հետո։ Այսպիսով՝ IPv6-ի վերնագիրն ընդամենը երկու անգամ ավելի ընդարձակ է, քան IPv4-ը՝ չնայած IPv6 հասցեները չորս անգամ ավելի մեծ են։

* Ծայրից ծայր (End-to-End) միացում

Յուրաքանչյուր համակարգ ունի իր եզակի IP հասցեն։ IPv6-ի ամբողջական ներդրումից հետո յուրաքանչյուր հոսթ տեղական ցանցին (Local Network) կամ գլոբալ ցանցին (Global Network) միացված ցանկացած համակարգիչ) համացանցում կարող է ուղղակիորեն կապվել այլ հոսթի հետ՝ ներառելով որոշ սահմանափակումներ, ինչպիսիք են՝ Firewall-ը (տեղական ցանցի (Local Network) կամ առանձին հանգույցների պաշտպանությունն արտաքին հարձակումներից), կազմակերպության քաղաքականությունը և այլն։ 

* Ավտոմատ կազմաձևում (Auto-configuration)

IPv6 հաղորդակարգն աջակցում է հոսթերի ավտոմատ կազմաձևման ռեժիմը։ Այդպիսով՝ DHCP սերվերի (հաղորդակարգ, որն ավտոմատ կերպով տրամադրում է հանգույց IP հաղորդակարգի հոսթին իր IP հասցով և հարակից կոնֆիգուրացիայի տեղեկություններով՝ ենթացանցային դիմակով (Subnet Mask) և լռելյայն դարպասով (Default Gateway)) բացակայությունը չի դադարեցնում միջսեգմենտային հաղորդակցությունը։ 

* Ավելի արագ վերահասցեավորում (Faster Forwarding)

Քանի որ արդեն պարզեցված հիդերում ավելորդ տեղեկատվությունը դրվում է վերջում, իսկ առաջին մասում պարունակվող տեղեկատվությունը բավարար է երթուղին որոշելու համար, ուստի ավելի հեշտ և արագ է իրականանում փաթեթների (Packets) մշակումը երթուղիչներում (Router)։ 

* Չունի հեռարձակում (No Broadcast)

IPv6-ն այլևս հեռարձակման աջակցություն չունի։ Այն օգտագործում է խմբային հեռարձակման բազմակաղապար (Multicast) ձևը՝ մի քանի հոսթերի հետ հաղորդակցվելու համար։

* Ցանկացած կաղապար (Anycast) տեխնոլոգիայի աջակցություն

IPv6-ում ընտրվել է փաթեթների երթուղավորման Anycast տեխնոլոգիան։ Այս դեպքում մի քանի ինտերֆեյսներ համացանցում նշանակվում են նույն Anycast IP հասցեով։ Երթուղիչները փաթեթն ուղարկում են մոտակա նպատակակետ։

* Շարժունակություն (Mobility)

IPv6-ը նախագծվել է՝ հաշվի առնելով շարժունակությունը։ Այս հատկությունը հոսթերին (օրինակ՝ բջջային հեռախոսներին) հնարավորություն է տալիս շրջել տարբեր աշխարհագրական տարածքներում և կապվել նույն IP հասցեով։ IPv6-ի շարժունակության առանձնահատկությունն օգտվում է IP-ի ավտոմատ կոնֆիգուրացիայից և ընդլայնման վերնագրերից։

* Ընդլայնված առաջնահերթության աջակցություն (Enhanced Priority Support)

Սպասարկաման որակ ապահովելու համար IPv6-ում Traffic Class-ը, որը ցույց է տալիս IPv6 փաթեթի առաջնահերթությունը, և Flow Label-ը, որը սահմանում է փաթեթների՝ որոշակի հոսքի հստակեցման մեխանիզմը, կարգավորում են փաթեթների մշակումը երթուղիչներում (Routers), այսինքն՝ սահմանվում է փաթեթների երթևեկություն՝ ելնելով դրանց առաջնահերթությունից և հաջորդականությունից։ Եթե երթուղիչի վրա գերծանրաբեռնվածություն է առաջանում, ապա նվազագույն առաջնահերթություն ունեցող փաթեթները հեռացվում են։

* Հարթ անցում (Smooth Transition)

IPv6-ում IP հասցեների մեծ սխեման հնարավորություն է տալիս գլոբալ եզակի IP հասցեներով սարքերի բաշխում։ Այս մեխանիզմը պահպանում է IP հասցեները՝ դարձնելով NAT-ը` ցանցային հասցեի թարգմանությունը, անհրաժեշտություն։ Այս մեխանիզմը թույլ է տալիս փոխարկել տարանցիկ փաթեթների IP հասցեները TCP/IP ցանցային տվյալների փոխանցման մոդելում։

* Ընդարձակելիություն (Extensibility)

IPv6 վերնագրի էական առավելություններից մեկն այն է, որ այն ընդարձակելի է՝ լրացուցիչ տեղեկություններ ավելացնելու տարբերակների մասով։ Եթե IPv4-ն ապահովում է ընդամենը 40 բայթ տարբերակների համար, ապա IPv6-ի տարբերակները կարող են լինել այնքան, որքան IPv6 փաթեթի չափը։

IPv6 հաղորդակարգի հասցե (IPv6 Address)
--------------------------------------

IPv6 հասցեի օրինակ՝ երկուական ձևավորման մեջ առաջատար զրոներով
IPv6 հասցեն օգտագործում է 128 բիթ` ի տարբերություն IPv4 հասցեի,որը կիրառում է 32 բիթ։ IPv6 հասցեի 128 բիթերը ներկայացված են 16 բիթանոց 8 խմբերով։ Յուրաքանչյուր խումբ բաղկացած է չորս տասնվեցական թվանշաններից (երբեմն կոչվում են տասնվեցական թվեր) և միմյանցից առանձնացված են երկու կետով (:), օրինակ ՝ 2001:0db8:0000:0000:0000:ff00:0042:8329: Հասցեի առաջատար բիթերը նշում են IPv6 հասցեի տեսակը։ Այս առաջատար բիթերը պարունակող փոփոխական երկարությամբ դաշտը կոչվում է ձևաչափի նախածանց (FP-Format Prefix): Հասցեի միջին բիթերը ցույց են տալիս ենթացանցային ID-ն։  

IPv6 hասցեն բաժանված է երկու 64-բիթանոց հատվածների։ Վերին 64-բիթանոց հատվածը ցանցի բաղադրիչն (Network Component) է, իսկ ստորին 64-բիթանոցը` հանգույցի բաղադրիչն (Node Component) է։ Վերին 64-բիթանոց հատվածը (ցանցային բաղադրիչ) օգտագործվում է երթուղման համար, իսկ ստորին 64-բիթանոց հատվածը (հանգույցի բաղադրիչ) նույնականացնում է ինտերֆեյսի կամ հանգույցի հասցեն։ Հանգույցի բաղադրիչը ստացվում է իրական ֆիզիկական կամ Mac հասցեից՝ օգտագործելով IEEE-ի ընդլայնված եզակի նույնացուցիչի (Identifier) EUI-64 ձևաչափը։ Ցանցային բաղադրիչը բաժանված է երկու բլոկի՝ համապատասխանաբար 48 և 16 բիթանոց։ Ստորին 16-բիթերը վերահսկվում են ցանցի ադմինիստրատորի կողմից և օգտագործվում են ներքին ցանցի ենթացանցերի համար։ Վերին 48-բիթերը նախատեսված են ինտերնետով երթուղելու համար և օգտագործվում են գլոբալ ցանցի հասցեների համար։   

Հասցեի ներկայացման հարմարության և պարզության համար IPv6 հասցեն կարող է կրճատվել՝ օգտագործելով հետևյալ կանոնները`

* Մեկ կամ մի քանի առաջնային զրոներ տասնվեցական թվանշանների ցանկացած խմբից հանվում են։ Օրինակ` 0042 խումբը վերածվում է 42-ի,
* Զրոների հաջորդական մասերը փոխարինվում են երկու կետով (::)։ Սա կարող է օգտագործվել միայն մեկ հասցեի համար, քանի որ կրկնակի օգտագործումը հասցեն կդարձնի անորոշ։ Օրինակ՝ 2001:0db8:0000:0000: 0000:7a6e: 0680:9668 IPv6 հասցեն կարող է կրճատվել մինչև 2001:db8::7a6e:680:9668:

Գոյություն ունի IPv6 հասցեավորման 3 տեսակ՝

1. Միահեռարձակում (Unicast),
2. Բազմահեռարձակում (Multicast),
3. Ցանկացած հասցե (Anycast):

Unicast հասցեն նույնականացնում է մեկ ցանյին ինտերֆեյս և այդ հասցեին ուղարկված փաթեթն առաքվում է հենց այդ հասցեով ճանաչված ինտերֆեյսին։
Unicast-ի տեսակներ են՝

* Հղում տեղական հասցե (Link-Local Address), որը նախատեսված է մեկ հղումով տեղական ցանցը (Local Network) օգտագործելու համար։ Այս հասցեներն ավտոմատ կերպով ձևավորվում են բոլոր ինտերֆեյսերի վրա։ Հղում տեղական հասցեի համար օգտագործվում է հետևյալ նախածանցը՝ fe80::/10 :
* Համաշխարհային հասցե (Global Address)

IPv6 Global Unicast հասցեի կառուցվածքը
Գլոբալ հասցեները նախատեսված են ցանկացած ցանցում օգտագործելու համար։ Գլոբալ հասցեի համար օգտագործվող նախածանցը սկսվում է երկուական 001-ով։

* Չճշտված հասցե (Unspecified Address)

Չճշտված հասցեն է՝ 0:0:0:0:0:0:0:0: Հասցեն կարելի է կրճատել երկու կետով (::)։ Չճշտված հասցեն ցույց է տալիս հասցեի բացակայությունը, և այն երբեք չի կարող վերագրվել հոսթին։ Այն կարող է օգտագործվել IPv6 հոսթի կողմից, որը դեռ չունի իրեն հատկացված հասցե։ Օրինակ՝ երբ հոսթն ուղարկում է փաթեթ՝ պարզելու, թե արդյոք հասցեն օգտագործվում է մեկ այլ հանգույցի կողմից, օգտագործում է չճշտված հասցեն որպես իր սկզբնաղբյուր հասցե։

* Ետ հանգույց հասցե (Loopback)

Loopback հասցեն է՝ 0:0:0:0:0:0:0:1, որը կարող է կրճատվել որպես ::1։ Loopback հասցեն օգտագործվում է հանգույցի կողմից՝ առանց մշակման կամ փոփոխման իրեն փաթեթ ուղարկելու համար։ Սրա նպատակը, առաջին հերթին, կապի ենթակառուցվածքի փորձարկումն է։
Multicast հասցեն օգտագործվում է մի քանի հոսթերի կողմից և ձեռք է բերում բազմահեռարձակման աջակցություն (Support)։ Եթե որևէ փաթեթ ուղարկվի Multicast հասցեին, այն կբաշխվի բոլոր ինտերֆեյսերին, որոնք համապատասխանում են այդ հասցեին։
Anycast հասցեն նշանակվում է մի խումբ ինտերֆեյսների։ Anycast հասցեին ուղարկված ցանկացած փաթեթ կհանձնվի միայն մեկ անդամի ինտերֆեյսին՝ հիմնականում հնարավոր ամենամոտ հոսթին։

IPv6 հաղորդակարգի փաթեթ (IPv6 Packet)
-------------------------------------

IPv6 փաթեթի դաշտերը և հարաբերական չափերը
IPv6 հաղորդակարգի փաթեթը բաղկացած է երկու մասից՝ Ֆիքսված վերնագիր (Fixed Header) և Ընդլայնման վերնագիր (Extension Header):  

Ֆիքսված վերնագիրը (Fixed Header) ունի բոլոր փաթեթների համար պահանջվող նվազագույն ֆունկցիոնալությունը և զբաղեցնում է IPv6 փաթեթի առաջին 40 օկտետները (320 բիթ)։ Օկտետը ութ երկուական թվանշան է, որը կարող է ընդունել 256 հնարավոր վիճակ (կոդեր, արժեքներ, բիթերի համակցություններ՝ զրոներ և միավորներ)։ Ֆիքսված վերնագիրը պարունակում է՝ Տարբերակ (Version),Երթևեկության դաս (Traffic Class), Հոսքի պիտակ (Flow Lebel), Օգտակար բեռ (Payload), Հաջորդ վերնագիր (Next Header), Ցատկի սահմանաչափ (Hop Limit), Սկզբնաղբյուրի հասցե (Source Address) և Նպատակակետի հասցե (Destination Address) դաշտերը։   

Version դաշտը (4 բիթ) ցույց է տալիս համացանցային հաղորդակարգի (IP) տարբերակը, որը պարունակում է 0110 բիթերի հաջորդականություն։  

Traffic class դաշտը (8 բիթ) ցույց է տալիս IPv6 փաթեթի առաջնահերթությունը։ Այն օգնում է երթուղիչին (Router) կարգավորել փաթեթի փոխանցումը՝ ելնելով առաջնահերթությունից։ Երթուղիչի վրա գերծանրաբեռնվածություն առաջանալու դեպքում նվազագույն առաջնահերթություն ունեցող փաթեթները հեռացվում են։   

Flow Lebel դաշտը (20 բիթ) անհրաժեշտ է նույն հոսքին պատկանող փաթեթները պիտակավորելու համար։ Հոսքը տարբերելու համար միջանկյալ երթուղիչը կարող է օգտագործել Սկզբնաղբյուրի հասցե (Source Address) և Նպատակակետի հասցե (Destination Address) դաշտերը։ Սրանց միջև կարող են լինել բամաթիվ հոսքեր, քանի որ շատ պրոցեսներ կարող են միաժամանակ գործարկվել։ Հոսքի պիտակի դաշտը սահմանվում է 0, երբ երթուղիչները կամ հոսթերը չեն աջակցում Հոսքի պիտակի դաշտի ֆունկցիոնալությանը և երթուղիչի լռելյայն մշակմանը։ Հոսքի պիտակը կարգավորելիս աղբյուրը պետք է նշի նաև հոսքի ժամկետը։  

Payload դաշտը (16 բիթ) երթուղիչներին տեղեկացնում է փաթեթի պարունակած տեղեկատվության ընդհնուր չափի և որոշակի քանակի մասին։ Եթե փաթեթը գերազանցում է 16 բիթը, ապա դաշտի արժեքը սահմանվում է 0։   

Next Header դաշտը (8 բիթ) ցույց է տալիս Ընդլայնման վերնագրի (Extension Header) տեսակը (եթե առկա է), իսկ որոշ դեպքերում՝ վերին շերտի փաթեթներում պարունակվող հաղորդակարգերը՝ TCP, UDP:  

Hop Limit դաշտ (8 բիթ) ցույց է տալիս միջանկյալ հանգույցների առավելագույն քանակը, որոնցով փաթեթներին թույլատրվում է երթևեկել։ Փաթեթի արժեքը նվազում է մեկով յուրաքանչյուր հանգույցի կողմից։ Փաթեթը մերժվում է, եթե արժեքը նվազում է մինչև 0։  

Source Address դաշտը (128 բիթ) ցույց է տալիս սկզբնական աղբյուրի IPv6 հասցեն։
Destination Address դաշտը (128 բիթ) ցույց է տալիս վերջնական նպատակակետի IPv6 հասցեն։ Բոլոր միջանկյալ հանգույցները կարող են օգտագործել այս տեղեկատվությունը փաթեթը ճիշտ ուղղորդելու համար։   

Ընդլայնման վերնագիր (Extension Header) դաշտը IPv6 հաղորդակարգում ներդրվել է IPv4 հաղորդակարգի սահմանափակումները շտկելու համար։ Extension Header մեխանիզմը IPv6 կառուցվածքի կարևոր մասն է։

IPv6 և IPv4 հաղորդակարգերի տարբերություն
----------------------------------------

Համացանցում տվյալները փաթեթներով փոխանցելու համար՝ IPv6 հաղորդակարգը սահմանում է նոր ձևաչափ՝ երթուղիչների կողմից մշակված հաղորդագրությունների վերնագրերը նվազագույնի հասցնելու նպատակով։ Քանի որ IPv4 և IPv6 հաղորդակարգերի վերնագրերը տարբեր են, ուստի այս երկու հաղորդակարգերը անհամատեղելի են՝ չնայած շատ դեպքերում IPv6-ը IPv4-ի պահպանողական ընդլայնումն է։ IPv6 հաղորդակարգը բարդության և արդյունավետության առումով շատ ավելի լավն է, քան IPv4 հաղորդակարգը։ 

IPv4 և IPv6 հաղորդակարգերի տարբերությունները| IPv4 | IPv6 |
| --- | --- |
| IPv4-ը կազմված է 32 բիթ հասցեից։ | IPv6-ը կազմված է 128 բիթ հասցեից։ |
| IPv4-ը գործակցվում է ֆիզիկապես։ | Ipv6-ը գործակցվում է ավտոմատ։ |
| IPv4-ում ծայրից ծայր կապի ամբողջականությունն անհասանելի է։ | IPv6-ում ծայրից ծայր կապի ամբողջականությունը հասանելի է։ |
| IPv4 ստեղծում է 4,29\*109 հասցեների տարածք։ | Ipv6 ստեղծում է 3,4\*1038 հասցեների տարածք։ |
| IPv4 -ի անվտանգության գործառույթը կախված է կիրառությունից (Application)։ | IPsec (Internet Protocol Security)-ը IPv6 հաղորդակարգի ներկառուցված գործառույթ է, որն ավելացնում է գաղտնագրում և նույնականացում՝ հաղորդակարգն ավելի անվտանգ դարձնելու համար։ |
| IPv4-ի դեպքում հատվածավորումը (Fragmentation) իրականացվում է ուղարկողի և վերահասցեավորող երթուղիչների կողմից | IPv6-ի դեպքում հատվածավորումը (Fragmentation) իրականացվում է միայն ուղարկողի կողմից։ |
| IPv4-ում փաթեթի հոսքի նույնականացումը հասանելի չէ։ | IPv6-ում փաթեթի հոսքի նույնականացումը հասանելի է և օգտագործվում է վերնագրի (Header) Հոսքի պիտակ դաշտում։ |
| IPv4-ում նույնականությունը ստուգելու (Cheksum) դաշտը հասանելի է։ | IPv6-ում նույնականությունը ստուգելու (Cheksum) դաշտը հասանելի չէ։ |
| IPv4-ն ունի Հեռարձակում (Boardcast)՝ տվյալների փոխանցման մեթոդ, երբ փաթեթը ստանում են ցանցի բոլոր մասնակիցները։ | IPv6-ը չունի Boardcast մեթոդը, հասանելի է տվյալների երթուղման Խմբային փոխանցում մեթոդը, երբ ցանցային փաթեթի նպատակային հասցեն բազմահեռարձակող խումբ է (Multicast), և Ցանկացած փոխանցում մեթոդը, երբ առկա է փաթեթների փոխանցման մի քանի երթուղիներ (Anycast), որից ընտրվում է ամենահարմար նպատակակետը։ |
| IPv4 հաղորդակարգը կոդավորման (Encryption) և նույնականացման (Authentication) հնարավորություն չունի։ | IPv6 հաղորդակարգն ունի կոդավորման (Encryption) և նույնականացման (Authentication) հնարավորություն։ |
| IPv4 փաթեթի վերնագիրը (Header) 20-60 բայթ է։ | IPv6 փաթեթի վերնագիրը (Header) 40 բայթ է։ |
| IPv4-ը կարող է փոխարկվել IPv6-ի։ | IPv6-ը չի կարող փոխարկվել IPv4-ի։ |
| IPv4 հաղորդակարգի հասցեն բաղկացած է 4 դաշտից, որոնք բաժանված են կետով (.)։ | IPv6 հաղորդակարգի հասցեն բաղկացած է 8 դաշտից, որոնք բաժանված են երկու կետով (:)։ |
| IPv4-ի IP հասցեները բաժանված են հինգ տարբեր դասերի՝ Դաս A, Դաս B, Դաս C, Դաս D, Դաս E։ | IPv6-ը չունի IP հասցեի որևէ դաս։ |
| IPv4-ն աջակցում է VLSM-ին (Subnet Mask), որը ցույց է տալիս, թե IP հասցեի որ բիթերն են կապված հոսթի հասցեի հետ։ | IPv6-ը չի աջակցում VLSM-ին։ |
| IPv4-ի օրինակ՝ 66.94.29.13 | IPv6-ի օրինակ՝ 2001:0000:3238:DFE1:0063:0000:0000:FEFB |

IPv4-ից IPv6 հասցեի անցում
--------------------------

IPv4-ից IPv6 հասցեի անցումը նշանակում է ոչ թե փոխարինում, այլ՝ IPv4-ից IPv6-ի փոխանցում։ IPv4-ից IPv6 հասցեի անցումը պայմանավորված է այս երկու հաղորդակարգերի միջև առկա տարբերությամբ։ Դրա համար կիրառվում են որոշակի տեխնոլոգիաներ։

### Երկակի երթուղիչ (Dual-Stack Routers) տեխնոլոգիա

Երկակի երթուղիչների տեխնոլոգիան` IPv4 և IPv6 հաղորդակարգերի միաժամանակյա օգտագործման համար
Երկակի երթուղիչ տեխնոլոգիայի դեպքում երթուղիչին (Router) միանում են երկու տարբեր ցանց, որոնցից մեկը գործում է IPv4 հասցեով, իսկ մյուսը՝ IPv6 հասցեով։ Երթուղիչն էլ սերվերին միանում է կրկնակի ձևով՝ մեկը IPv4 տիրույթով, մյուսը՝ IPv6 տիրույթով։ Երբ երթուղիչը կարդում է փաթեթի վերնագիրը (Header) և առաջին չորս բիթում տեսնում է, որ IPv4-ի փաթեթ է, ուղարկում է IPv4-ի համար նախատեսված երթուղով, իսկ եթե IPv6-ի փաթեթ է, ուղարկում է IPv6-ի համար նախատեսված երթուղով։ Երկակի երթուղիչը բոլոր հոսթերին հնարավորություն է տալիս հաղորդակցվել սերվերի հետ՝ առանց իրենց IP հասցեն փոխելու։ Երբ օգտատերը հարցում է ուղարկում սերվերին, IPv4 և IPv6 հասցեների փոխակերպման համար օգտագործվում է DNS (Domain Name System) տեխնոլոգիան։

### Թունելաշինություն (Tunneling) տեխնոլոգիա

IPv6-ի թունելաշինություն
IPv6-ի թունելաշինության օրինակ
IPv6 հաղորդակարգի թունելաշինությունը հնարավորություն է տալիս օգտագործել գոյություն ունեցող IPv4 հաղորդակարգի երթուղային ենթակառուցվածքը (Routing Infrastructure)՝ IPv6 հաղորդակարգի փաթեթների փոխանցումն իրականացնելու համար։ Հաջող անցումը պայմանավորված է IPv4-ի հոսթերի և երթուղիչների՝ գոյություն ունեցող բազայի հետ համատեղելիությամբ, որի պահպանումը հեշտացնում է անցումը IPv6-ի տեղակայման ժամանակ։ Թունելաշինությունն իրականացվում է տարբեր ձևերով՝ 

* Երթուղիչից երթուղիչ (Router-to-Router)

IPv6 կամ IPv4 երթուղիչները, որոնք փոխկապակցված են IPv4 ենթակառուցվածքով, կարող են ստեղծել թունել միմյանց միջև։ Այս դեպքում թունելն ընդգրկում է IPv6 փաթեթի` ծայրից ծայր (End-to-End) ճանապարհի մեկ հատվածը։ 

* Հոսթից երթուղիչ (Host-to-Router)

IPv6 կամ IPv4 հոսթերը կարող են ստեղծել թունել միջնորդ երթուղիչի հետ, որը հասանելի է IPv4 ենթակառուցվածքի միջոցով։ Այս տեսակի թունելն ընդգրկում է IPv6 փաթեթի՝ ծայր ծայր (End-to-End) ճանապարհի առաջին հատվածը։

* Հոսթից հոսթ (Host-to-Host)

IPv6 կամ IPv4 հոսթերը, որոնք փոխկապակցված են IPv4 ենթակառուցվածքով, կարող են ստեղծել թունել IPv6-ի փաթեթների միջև։ Այս դեպքում թունելն ընդգրկում է IPv6 փաթեթի ծայրից ծայրից (End-to-End) ամբողջ ճանապարհը։

* Երթուղիչից հոսթ (Router-to-Host)

IPv6 կամ IPv4 երթուղիչները կարող են ստեղծել թունել փաթեթները դեպի իրենց վերջնական նպատակակետ՝ IPv6 կամ IPv4 հոսթ ուղարկելու համար։ Այս թունելն ընդգրկում է միայն ծայրից ծայր (End-to-End) ճանապարհի վերջին հատվածը։
Թունելի մուտքային հանգույցը (Encapsulating Node) ստեղծում է IPv4 վերնագրի ինկապսուլյացիա (Encapsulation), այսինքն՝ գոյություն ունեցող փաթեթում նոր փաթեթ է ավելացվում և փոխանցվում։ Թունելի ելքային հանգույցը (Decapsulating Node) ստանում է պարփակված փաթեթը, հեռացնում է IPv4 վերնագիրը, թարմացնում է IPv6 վերնագիրը և մշակում ստացված IPv6 փաթեթը։ Այնուամենայնիվ, յուրաքանչյուր թունելի համար պահպանվում է տեղեկատվությունը՝ թունելի փոխանցման առավելագույն միավորը (MTU=Maximum Transmission Unit), որպեսզի մշակվեն IPv6 փաթեթները։ 
IPv6-ում կան երկու տեսակի թունելներ` 

* Ավտոմատ թունելներ (Automatic Tunnels), որոնք ստեղծվում են՝ օգտագործելով IPv4 հասցեի տեղեկատվությունը, որը ներկառուցված է IPv6 հասցեում։
* Կազմաձևված թունելներ (Configured Tunnels), որոնք ստեղծվում են ֆիզիկապես՝ օգտագործելով IPv6 հասցեներ։ Վերջիններս չունեն ներկառուցված IPv4 տեղեկատվություն։

### Ցանցային հասցեների թարգմանության (NAT) տեխնոլոգիա

IPv4 և IPv6 հասցեների փոխարկում՝ ցանցային հասցեների թարգմանության (NAT) տեխնոլոգիայի հիման վրա
Ցանցային հասցեների թարգմանության տեխնոլոգիան IPv4 հասցեն IPv6 հասցեի փոխակերպման այն տարբերակն է, որի դեպքում NAT-PT սարքը հեռացնում է ուղարկողի IP տարբերակի փաթեթի վերնագիրը և ավելացնում ստացողի IP տարբերակի վերնագիրը։ Որպեսզի ստացողը IP տարբերակի հասցեն հասկանա, հարցումն ուղարկվում է նույն IP տարբերակով, և հակառակը։

IPv6-ի շարժունակություն (Mobility)
----------------------------------

Հոսթը, միանալով ցանցին, ձեռք է բերում IP հասցե, որի հիման վրա էլ տեղի է ունենում ամբողջ հաղորդակցությունը։ Երբ հոսթը փոխում է իր ֆիզիկական դիրքը, այսինքն՝ տեղափոխվում է մեկ այլ տարածք, ենթացաց կամ ցանց, IPv6 հաղորդակարգն իր վերահասցեավորման շնորհիվ հնարավորություն է տալիս օգտատիրոջը շարունակել իր հաղորդակցությունը աշխարհի ցանկացած կետում՝ պահպանելով նույն IP հասցեն։ Յուրաքանչյուր շաժական հանգույց նույնականացվում է երկու IP հասցեով՝ տան հասցե (Home Address) և ընթացիկ հասցե (Current Address): Home Address-ը մշտական IP հասցեն է, որը ցույց է տալիս այդ հանգույցը՝ անկախ գտնվելու վայրից, իսկ Current Address-ը փոխվում է կապի հետ և պարունակում է տեղեկատվություն շարժական հանգույցի ընթացիկ գտնվելու վայրից։ IPv6 հաղորդակարգի շարժունակությունն իրականացվում Anycast տեխնոլոգիայի շնորհիվ։   

Mobility տեխնոլոգիայում առկա են մի շարք գործոններ՝

* Բջջային հանգույցները (Mobile Nodes) սարքեր են, որոնք կարող են միանալ համացանցին տարբեր վայրերից։
* Տնային հղում (Home Link), երբ IPv6 շարժական սարքը ստանում է Home Address-ից։
* Տան հասցե (Home Address), երբ բջջային հանգույցը ստանում է Home Link-ից։
* Տնային գործակալ (Home Agent), երբ տնային գործակալը միացված է Home Link-ին և պահում է բոլոր բջջային հանգույցների, նրանց Home Address-ների և ընթացիկ IP հասցեների մասին տեղեկատվությունը։ Home Agent-ը երթուղիչ է, որը գործում է որպես բջջային հանգույցի գրանցող։
* Արտաքին հղում (Foreign Link)` ցանկացած հղում, որը բջջային հանգույցի հիմնական հղումը չէ։
* Ժամանակավոր հասցե (Care of Address), երբ շարժական հանգույցը միանում է արտաքին հղմանը և ստանում է այդ արտաքին հղման նոր ենթացանցային IP հասցեն։
* Համապատասխան հանգույց (Correspondent Node), երբ IPv6 հաղորդակարգով ունակ ցանկացած սարք հաղորդակցվում է շարժական հանգույցի հետ։

IPv6 հաղորդակարգի ընթացուղի (IPv6 Routing)
------------------------------------------

IPv6-ի ընթացուղի (Routing)
Ընթացուղին երթուղային տվյալների փոխանցման գործընթացն է, որի դեպքում ընտրվում է լավագույն երթուղին դեպի նպատակակետ։   

IPv6 ընթացուղին իրականացվում է երկու ձևով՝ 

* Հեռավորության վեկտորային ընթացուղի (Distance Vector Routing Protocol), երբ նպատակակետին հասնելու ընթացուղին հաշվարկվում է սկզբնաղբյուրի (Source) և նպատակակետի (Destination) միջև ընկած ցատկերի (Hops) միջոցով։ Հեռավորության վեկտորային ընթացուղու հաղորդակարգերն են՝ RIP և BGP:
* Հղման վիճակի ընթացուղի (Link State Routing Protocol), երբ ընթացուղին, տեղեկատվությունը համընկնելու դեպքում, օգտագործում է իր ալգորիթմը՝ հաշվարկելու լավագույն երթուղին դեպի բոլոր հասանելի հղումները։ Հղման վիճակի ընթացուղու հաղորդակարգերն են՝ OSPF և IS-IS։

Ենթացանցային դիմակներ (IPv4) և նախածանցներ (IPv6)(Subnetmasks (IPv4) and Prefixes (IPv6))
-----------------------------------------------------------------------------------------

IPv6 նախածանցի ստեղծում
IPv6 նախածանցի նշանակման մեխանիզմ IANA-ի, RIR-ի և ISP-ի հետ
Բոլոր IP հասցեները բաժանված են մասերի։ Մի մասը նույնականացնում է ցանցը (ցանցի համարը), իսկ մյուս մասը նույնականացնում է ցանցում գտնվող հոսթի համարը։ Ենթացանցերի դիմակները (IPv4) և նախածանցները (IPv6) սահմանում են IP հասցեների մի շարք, որոնք կազմում են ենթացանց կամ IP հասցեների խումբ նույն ցանցում։ Կազմակերպության ցանցը ենթացանցերի բաժանելը թույլ է տալիս միանալ համացանցին՝ օգտագործելով մեկ հանրային ցանցի հասցե (Public Network Address): Ենթացանցերի դիմակներն ու նախածանցներն օգտագործվում են, երբ հոսթը փորձում է հաղորդակցվել այլ համակարգի հետ։ Եթե հոսթը գտնվում է նույն ցանցում կամ ենթացանցում, ապա փաթեթը փորձում է գտնել այդ հասցեն տեղական հղումում։ Եթե հոսթը գտնվում է այլ ցանցում, փաթեթն ուղարկվում է դարպաս (Gateway), որն այնուհետև փոխանցում է փաթեթը ճիշտ IP հասցեին։ Այս երթուղին կոչվում է Անդասակարգ միջդոմենային երթուղի (CIDR):
IPv4-ում 255.255.255.0 հասցեի ենթացանցային դիմակը 32 բիթ է և բաղկացած է չորս 8-բիթանոց օկտետներից։ Հասցե՝ 10.10.10.0, Subnetmask` 255.255.255.0, նշանակում է` ենթացանցը IP հասցեների` 10.10.10.0 - 10.10.10.255 տիրույթ է։   

IPv6-ում նախածանցի (Prefix) երկարությունը համարժեք է IPv4-ի ենթացանցային դիմակին։ Չորս օկտետների փոխարեն՝ այն արտահայտվում է որպես ամբողջ թիվ 1-ի և 128-ի միջև։ IPv6 հասցեները բաղկացած են թվերի ութ խմբից։ Ցանցի հասցեն (Network address) ենթացանցային դիմակի թվանշանների առաջին երեք խմբերն են (առաջին 48 բիթ)։
Ենթացանցային հասցեն (Subnet Address) ենթացանցային դիմակի թվերի չորրորդ խումբն է (49-ից 64-րդ բիթերը)։
Սարքի հասցեն (Device Address) ենթացանցային դիմակի թվանշանների վերջին չորս խմբերն են (վերջին 64 բիթ)։
Օրինակ՝ հետևյալ IPv6 հասցեում՝ 
2001:db8:abcd:0012:0000:0000:0000:0000
ցանցի հասցեն է՝ 2001:db8:abcd, իսկ ենթացանցը՝ 12 (կարճ նշում և առանց սկզբնական զրոների)։ Այս երկու խմբերը միասին կազմում են IPv6 նախածանցը։ Հոսթի հասցեն է՝ 0000:0000:0000:0000:
Ցանցի յուրաքանչյուր հոսթ ունի եզակի հասցե (Unique Device Address): Սակայն IPv6 հասցեի ցանցի և ենթացանցային մասերը նույնն են ցանցի յուրաքանչյուր հոսթի համար։ Այսպիսով՝ յուրաքանչյուր IPv6 հասցեում թվերի առաջին չորս խմբերը մնում են հաստատուն, իսկ թվերի վերջին չորս խմբերը տարբեր են յուրաքանչյուր հոսթի համար։ Հոսթերի ցանկը պարզեցնելու համար՝ կարելի է փոխարինել նախածանցի երկարությունը IPv6 հասցեի՝ հոսթի հասցեի մասով։ Նախածանցի երկարությունը սահմանում է հոսթերի շրջանակը։ Այն արտահայտվում է առաջ կտրվածքով (/), որին հաջորդում է 1-ից մինչև 128 ամբողջ թիվ։ Օրինակ՝ 2001:db8:abcd:0012::/64 գրառմամբ համակարգին հրահանգվում է ցանցը բաժանել 64 ենթացանցերի։

Տես նաև
-------

* TCP/IP
* UDP
* DNS

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

1. ↑  Internet Protocol Version 6 (IPv6) Overview
2. ↑  How Does IPv6 Work?IPv6 Addresses
3. ↑  What Is IPv6 (Internet Protocol Version 6) ? Definition, Features and Uses, Chiradeep Basu Mallick, October 6, 2022
4. ↑  IPv6 - Main Features
5. ↑  Traffic Class/Priority
6. ↑  Flow Labeling
7. ↑  Features of IPv6 Internet Protocol
8. ↑  IPv6 Addresses, Network and Node Addresses
9. ↑  IPv6 Address Types
10. ↑  Internet Protocol version 6 (IPv6)
11. ↑  Октет (информатика)
12. ↑  Internet Protocol version 6 (IPv6) Header
13. ↑  RFC 2460
14. ↑  RFC 4291
15. ↑  RFC 4213
16. ↑  IP-in-IP Encapsulation
17. ↑  Difference Between Encapsulation and Decapsulation
18. ↑  IPv6 Tunneling
19. ↑  Transition from IPv4 to IPv6 Address
20. ↑  RFC4213
21. ↑  Network Mobility (NEMO) Basic Protocol Support, V. Devarapalli, R. Wakikawa, A. Petrescu, P. Thubert, January 2005
22. ↑  Distance Vector Routing (DVR) Protocol
23. ↑  Unicast Routing – Link State Routing
24. ↑  Маски подсети (IPv4) и префиксы (IPv6)

Գրականություն
-------------

* Rosen, Rami (2014). *Linux Kernel Networking: Implementation and Theory*. New York: Apress. ISBN 9781430261971. OCLC 869747983.
* Coffeen, Tom (2015). *IPv6 Address Planning: Designing an Address Plan for the Future*. United States of America: O'Reilly Media, Sebastopol, CA. ISBN 9781491902769. OCLC 1047830054.
* Silvia Hagen (2014). *IPv6 Essentials: Integrating IPv6 into Your IPv4 Network*. O'Reilly Media, Inc. ISBN 9781449335267.