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

Ինչ է անում յուրաքանչյուր ընտանիքը

Աղյուսակը մեխանիզմն է չորս տողով, և մեկ տողը բացատրում է շփոթության մեծ մասը։

BehaviourIPv4IPv6
Router fragments an oversized packetAllowed while DF is clearNever
Signal returned to the senderICMP Fragmentation NeededICMPv6 Packet Too Big
Size that must always work68 bytes1280 bytes
Fragmentation possibleRouters or sourceSource 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-ն և այն փորձարկումը, որն ապացուցեց տարբերությունը։ Հաջորդ մարդը կհանդիպի նույն թվաբանությանը մեկ այլ կապում։

Առնչվող հոդվածներ