IPv4-ը մասնատում է ճանապարհին, IPv6-ը փոխարենը ուղարկում է չափազանց մեծ փաթեթի հաղորդագրություն
Միայն IPv4 երթուղիչները կարող են մասնատել չափազանց մեծ փաթեթը։ IPv6-ը ակնկալում է, որ ուղարկողը կարձագանքի չափազանց մեծ փաթեթի հաղորդագրությանը, որը թունելը կամ զտված ICMP կանոնը կարող են կոտրել։
IPv6-ի ձախողումները շատ ավելի հաճախ վերագրվում են արձանագրությանը, քան այն փաթեթի չափին, որն առաջացրել է դրանք։ Երկու ընտանիքները իսկապես տարբեր կերպ են վարվում չափազանց մեծ փաթեթի հետ, և հենց թունելն է, որ այդ տարբերությունը կարևոր է դարձնում։ IPv4 երթուղիչները կարող են մասնատել փաթեթը, երբ կանոնները թույլ են տալիս, մինչդեռ IPv6 երթուղիչները ճանապարհին ամենևին չպետք է մասնատեն։ IPv6-ը փոխարենը դա ասում է ուղարկողին, և ուղարկողից ակնկալվում է արձագանք։ Այն ամենը, ինչ հետո սխալ է գնում, բխում է նրանից՝ հասնում է այդ հաղորդագրությունը, թե ոչ։
Ինչ է անում յուրաքանչյուր ընտանիքը
Աղյուսակը մեխանիզմն է չորս տողով, և մեկ տողը բացատրում է շփոթության մեծ մասը։
| Behaviour | IPv4 | IPv6 |
|---|---|---|
| Router fragments an oversized packet | Allowed while DF is clear | Never |
| Signal returned to the sender | ICMP Fragmentation Needed | ICMPv6 Packet Too Big |
| Size that must always work | 68 bytes | 1280 bytes |
| Fragmentation possible | Routers or source | Source only |
IPv6-ը չունի մասնատում ճանապարհին և չունի մաքրելու DF դրոշ, ուստի ոչինչ չկա, որին վերադառնալ, երբ փաթեթը չափազանց մեծ է։ Ուղարկողին պետք է ասել, և ուղարկողը պետք է հավատա դրան։
Թունելը լուռ նեղացնում է ուղին
VPN-ը ավելացնում է արտաքին վերնագրեր, իսկ գաղտնագրված դեպքում նաև ամբողջականության տվյալներ, նախքան փաթեթը կթողնի հոսթը։ Ներքին փաթեթը կարող է տեղավորվել այն ինտերֆեյսի MTU-ի մեջ, որը տեսնում է, մինչդեռ արտաքին փաթեթը գերազանցում է հաջորդ կապի սահմանը, և դրա համար է, որ դա առաջին հերթին ի հայտ է գալիս թունելում։ Դիտավորյալ իջեցրեք թունելի ինտերֆեյսի MTU-ն կամ սեղմեք TCP MSS-ը ուղու վրա, և գրեք, թե որ թիվն եք ընտրել և ինչու։
ESP-ի ծանրաբեռնվածությունը կախված է ռեժիմից և ալգորիթմներից, ուստի ճիշտ թունելային MTU-ն հաշվարկ է, ոչ թե սովորույթ։ Ինչ էլ ընտրեք, այն պետք է տեղ թողնի 1280 բայթանոց ամբողջական ներքին IPv6 փաթեթի համար, որովհետև յուրաքանչյուր IPv6 կապ պարտավոր է տանել այդքան։ Թունելը, որը չի կարող տանել 1280 բայթ IPv6, թյունինգի խնդիր չէ, այլ կոտրված ուղի այդ ընտանիքի համար։ Հենց այդ սահմանափակումն է անհետանում, երբ MTU արժեքը պատճենվում է միայն IPv4-ով տեղակայումից։
Ինչու ախտանիշը կանգ է թվում
Ձախողումը մաքուր սխալ չէ, և դրա համար է, որ այն սխալ ախտորոշվում է։ TCP ձեռքսեղմումը ավարտվում է, փոքր պատասխաններ են գալիս, և կապը կանգ է առնում հենց որ սկսվում է մեծ պատասխան կամ մեծ վերբեռնում, որովհետև դրանք առաջին փաթեթներն են, որ բավական մեծ են դեն նետվելու համար։ SSH-ը միանում է և հետո կանգ է առնում առաջին մեծ ելքի վրա, և էջի վերնագիրը բեռնվում է, մինչ մարմինը երբեք չի ավարտվում։
Եթե ICMPv6-ի չափազանց մեծ փաթեթի հաղորդագրությունները զտվում են, ուղարկողը երբեք չի իմանում և շարունակում է փորձել նույն չափը։ Դա սև խոռոչ է, ոչ թե դանդաղ ուղի, և դրա նշանը կրկնվող չափի սահմանն է, ոչ թե պատահական կորուստ։ Համապատասխան կառավարման երթևեկությունը թույլատրելը աշխատող IPv6 տեղակայման մասն է, ոչ թե քաղաքավարություն։
Մի անջատեք այն հաղորդագրությունները, որոնցից կախված է ձեր սեփական ուղին, ապա արդյունքը մի ներկայացրեք որպես IPv6 խափանում։ Նույն փաստարկը վերաբերում է IPv4-ի Fragmentation Needed հաղորդագրություններին, որոնք հավասարապես ոչ սիրված են firewall-ների հեղինակների մոտ և հավասարապես անհրաժեշտ։
Չափեք սահմանը, ապա շտկեք շերտը
Ստուգեք, ոչ թե գուշակեք՝ օգտագործեք don't-fragment դրոշը IPv4-ում և հաստատուն ծանրաբեռնվածության չափեր IPv6-ում, և գրանցեք, թե որտեղ են դադարում պատասխանները։ ping -M do -s 1472 և ping -6 -s 1400 բավական են խնդրի ձևը որոշելու համար, և tracepath հաղորդում է ճանապարհին հայտնաբերված ուղու MTU-ն։
Ապա շտկեք այն շերտը, որին պատկանում է թիվը՝ թունելի ինտերֆեյսի MTU-ն, TCP-ի MSS սեղմումը կամ ուղին ինքը։ RFC 8200-ը IPv6 կանոնի հղումն է, և այն ավելի կարճ ընթերցում է, քան այն միջադեպը, որը կանխում է։
Փորձարկեք այն ընտանիքը, որն իրականում օգտագործում է հավելվածը, որովհետև կրկնակի կույտի անունը կարող է պատասխանել մի ընտանիքում և ոչ մյուսում, և հավելվածը կարող է փոխվել ցանցի փոփոխությունից հետո։ Գրանցեք այն հասցեն, որը փորձարկեցիք, որովհետև A գրառման դեմ արդյունքը ոչինչ չի ասում AAAA գրառման մասին։
Չափի սահմանը դիտարկեք որպես ապացույց
Կրկնվող չափի սահմանը ցանցային այն քիչ խափանումներից է, որ ճշգրտորեն վերարտադրվում է նույն բայթերի քանակով, նույն աղբյուրից, ամեն անգամ։ Դա այն դարձնում է նվեր, ոչ թե հանելուկ, և նշանակում է նաև, որ շտկումը կարելի է ստուգել, ոչ թե հուսալ։
Տոմսի մեջ գրեք հայտնաբերված MTU-ն, ձեր կարգավորած թունելի MTU-ն և այն փորձարկումը, որն ապացուցեց տարբերությունը։ Հաջորդ մարդը կհանդիպի նույն թվաբանությանը մեկ այլ կապում։