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

Երեք թիվ, որոնք մարդիկ անվանում են MTU

Ինտերֆեյսի MTU-ն այդ կապուղու վրա փաթեթի համար սահմանված սահմանն է։ Ուղու MTU-ն երթուղու ամենափոքր սահմանն է, և այն հայտնաբերվում է, ոչ թե կարգավորվում։ TCP MSS-ը այն օգտակար բեռի չափն է, որը գործընկերը հայտարարում է, որ կարող է ստանալ, և այն ածանցվում է մյուս երկուսից, այլ ոչ թե առանձին ֆիզիկական սահման է։

Թունելն ունի ներքին և արտաքին տեսք։ Արտաքին փաթեթը կրում է ինկապսուլացվածը՝ գումարած այն վերնագրերը, որոնք անհրաժեշտ են արձանագրությանը, ուստի օգտագործելի ներքին չափը փոքր է, քան թույլ է տալիս արտաքին ուղին։ VPN սերվեր տանող ուղին նույնպես տարբերվում է սերվերից նպատակակետ տանող ուղուց։

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

Ստուգեք ուղին ձեր վերահսկած բեռով

Փորձարկումը ապացույց է մեկ երթուղու և մեկ չափի մասին, ոչ թե առաջարկվող կարգավորում։ Օգտագործեք պատասխանող հոսթ և փոխեք միայն բեռի չափը։

ping -M do -s 1372 -c 2 203.0.113.20
ping -4 -f -l 1372 vpn.example

Առաջին հրամանն ուղարկում է Linux փորձարկում՝ անջատված մասնատմամբ և 1372 բայթ բեռով, երկրորդը նույնն է անում Windows-ում, որտեղ բեռը սահմանվում է -l-ով։ Պատասխանը նշանակում է, որ այդ չափը անցել է ուղին։ Մասնատման անհրաժեշտության մասին հաղորդագրությունը տեղեկատվական է, մինչդեռ ժամանակի սպառումը երկիմաստ է, քանի որ հոսթը կամ միջանկյալ սարքը կարող է պարզապես դեն նետել ICMP-ն։

Փոքրացրեք չափը մի քանի քայլով, ոչ թե բինար որոնումով մինչև բայթը։ Դուք փորձում եք պարզել՝ կա արդյոք չափի առաստաղ, ոչ թե հրապարակել թիվ յուրաքանչյուր ցանցի համար։ Գտած թիվը վերաբերում է այս ուղուն, այս արձանագրությանը և այս հասցեների ընտանիքին։

IPv4-ը և IPv6-ը մասնատվում են տարբեր կերպ, ուստի մեկ ընտանիքի արդյունքը ոչինչ չի ասում մյուսի մասին։ Փորձարկեք այն ընտանիքը, որն իրականում օգտագործում է հավելվածը։

MSS-ի սեղմումը օգնում է միայն TCP-ին

TCP-ում արդյունավետ բեռը բանակցվում է ձեռքսեղմման ընթացքում, և ուղու վրա գտնվող երթուղիչը կարող է վերագրել այդ արժեքը ներքև, որպեսզի երկու ծայրերն ուղարկեն ավելի փոքր սեգմենտներ։ Դա է անում MSS-ի սեղմումը, և այն աշխատում է առանց հաճախորդին բոլորովին դիպչելու։

iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
ip link show tun0

Առաջին կանոնը փոխանցվող TCP ձեռքսեղմումների հայտարարված MSS-ը սեղմում է ուղու MTU-ին, իսկ երկրորդը ցույց է տալիս թունելի ինտերֆեյսի սեփական MTU-ն, որպեսզի համեմատեք այն ուղու թույլատրածի հետ։ Սեղմումը ամենաքիչ ներխուժող ուղղումն է ձեռքսեղմումից հետո կախվող TCP հավելվածի համար։

UDP-ի համար այն ոչինչ չի անում։ Մեծ դեյտագրամներ ուղարկող ձայնի կամ խաղի հաճախորդը լիովին անտեսելու է MSS կարգավորումը, քանի որ վերագրելու ձեռքսեղմում չկա։ Եթե ձախողվող հավելվածը UDP է, փոխարենը նայեք հաճախորդի սեփական փաթեթի չափի ընտրանքներին։ Երկու արձանագրությունները ձախողվում են տարբեր կերպ և վերանորոգվում տարբեր գործիքներով, դրա համար արձանագրությունը պատկանում է տոմսի առաջին նախադասությանը։

OpenVPN-ը տրամադրում է այնպիսի ընտրանքներ, ինչպիսիք են tun-mtu, mssfix և մասնատման հետ կապված կարգավորումները, և դրանց վարքը կախված է տարբերակից և նրանից՝ արդյոք տվյալների ուղին AEAD է։ Կարդացեք օգտագործվող տարբերակի ձեռնարկը և միաժամանակ փոխեք մեկ ընտրանք։

Փոխեք մեկ աջակցվող կարգավորում և կրկնեք երկու անցումները

Պահպանեք սկզբնական պրոֆիլը, փոխեք մեկ աջակցվող արժեք և կրկնեք թե՛ աշխատող փոքր հարցումը, թե՛ ձախողված մեծ փոխանցումը։ Եթե փոխվում է միայն մեծը, դուք չափի հետևից էիք գնում։ Եթե փոխվում են երկուսն էլ, նրա հետ մեկ այլ բան էլ շարժվել է։

Ավելի ցածր արժեքը կարող է թուլացնել ախտանիշը՝ միաժամանակ ավելացնելով ծախս, ուստի ամենափոքր հնարավոր թիվը նպատակ չէ։ Նպատակը չափն է, որը ուղին հուսալիորեն կրում է ամենաքիչ վատնումով։ Գրանցեք արժեքը, ուղին և հաճախորդի տարբերակը տոմսում, որովհետև նույն թիվը այլ տեղ կիրառելը ենթադրություն է։

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

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