Linux-ի հաճախորդի երեք կարգավորումներ բոլորն էլ հնչում են որպես «փաթեթները փոքրացրու», և դրանք գործում են տարբեր շերտերում։ Միջերեսի MTU-ն սահմանափակում է սարքի ուղարկած յուրաքանչյուր փաթեթը։ Երթուղու MTU-ն սահմանափակում է այդ երթուղին օգտագործող փաթեթները, ինչը հաճախ հենց այն է, ինչ իրականում ուզում եք մեկ VPN նպատակակետի համար։ TCP MSS-ի սահմանը փոխում է այն, ինչի շուրջ պայմանավորվում են երկու ծայրերը, և UDP-ի համար ոչինչ չի անում։

Երեք կարգավորիչ, որոնք նույն կոճակի տեսք ունեն

Ընտրելուց առաջ դրեք դրանք կողք կողքի, որովհետև սխալ շարք ընտրելը բացատրում է չաշխատող խորհուրդների մեծ մասը:

ControlScopeWhat it cannot fix
Interface MTUEvery packet the device sendsNothing, but it over-constrains unrelated traffic
Route MTUPackets using that routeA send that the lookup never routes there
MSS clampTCP handshake on that pathUDP payload sizes and ICMP

Ամբողջ մեքենայի համար Ethernet MTU-ն իջեցնելը այս ուղղման կոպիտ տարբերակն է։ Այն աշխատում է և նաև պատժում է հոսթի ցանկացած այլ հավելվածի, ներառյալ նրանք, ում ուղիները կարգին էին։ Յուրաքանչյուր երթուղու արժեքը արտահայտում է նույն մտադրությունը առանց կողմնակի ծախսի։

Համեմատությունը վավեր է միայն այն երթևեկության համար, որը հոսթն ինքն է առաջացնում։ Այլ հաճախորդի համար փաթեթ փոխանցելը ներառում է նրա սեփական ուղին և թունելի արտաքին բյուջեն, և այս հոսթի երթուղու մետրիկը չի անցնում այդ սահմանը։

Կցեք բյուջեն այն երթուղուն, որը հաղթում է որոնմանը

Օրինակելի IPv4 երթուղու գրառումն այսպիսի տեսք ունի:

ip -4 route get 10.60.0.20
ip -4 route add 10.60.0.0/16 dev tun-office src 10.90.0.2 mtu 1380

Գրառումը կարդացեք որպես մտադրության նկարագրություն, ոչ որպես տեղադրման արժեք։ Նախածանցը, սարքը և նախընտրելի աղբյուրը պետք է համապատասխանեն իրական կարգավորմանը, և թիվը պետք է գա ինկապսուլացված ուղու մասին ապացույցից, ոչ թե բլոգի գրառումից։ Երթուղու MTU-ն սահմանափակում է ներքին IP փաթեթը, ինչը նույնը չէ, ինչ 1380 բայթանոց TCP բեռը կամ 1380 բայթանոց գաղտնագրված արտաքին փաթեթը։

Նախքան ինչ-որ բան ավելացնելը նայեք, թե որտեղ է իրականում լուծվում որոնումը։ Քաղաքականության կանոններ ունեցող հոսթը կարող է տվյալ նպատակակետը երթուղայնացնել այլ աղյուսակով, քան main, և միայն main աղյուսակում գոյություն ունեցող մետրիկն անտեսանելի է այդ հարցման համար։ Համեմատեք ip -4 route show table all և ip route get արդյունքները, ներառյալ նշանի կամ անվանատարածքի համատեքստը, երբ կանոններն օգտագործում են դրանք։ Եթե երկուսը չեն համընկնում, պատասխանող աղյուսակն է, որին պետք է մետրիկը, ոչ թե ավելի կոկիկ երևացողը։

mtu-ն mtu lock չէ

Լռելյայն միջուկը դեռ կարող է թարմացնել ուղու MTU-ն ICMP հետադարձ կապից, ուղու MTU-ի հայտնաբերումը դրա համար է։ lock Ավելացնելը դադարեցնում է դա։ Սա այլ որոշում է, ոչ թե նույն թիվը պահելու ավելի ուժեղ եղանակ, և IPv4-ի համար փոփոխում է «մի՛ մասնատիր» բիթի փաստաթղթավորված մշակումը։

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

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

Թունելի ծրագրաշարը ավելացնում է իր չափի կարգավորիչները

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

Մի՛ կուտակեք երթուղու MTU, միջերեսի MTU փոփոխություն և MSS սահման մեկ փոփոխության պատուհանում։ Եթե խնդիրը վերանա, չեք իմանա, թե որն էր կարևոր, և պահածները տարիներով կսահմանափակեն երթևեկությունը առանց պատճառի, որը մեկը հիշում է։

Դարձրեք այն հետշրջելի, ապա ապացուցեք

Երթուղու իրական տերը որոշում է՝ փոփոխությունը վերապրում է վերամիացումը, թե ոչ։ VPN հաճախորդը, որը երթուղին տեղադրում է դինամիկ, սովորաբար այն վերակառուցում է առանց ձեր մետրիկի, և ձեռքով ip route add ապա նման է ուղղման, որը ձախողվել է մեկ օր անց։ Դրեք արժեքը կառավարչի կարգավորման մեջ, և եթե ժամանակավոր փորձ է պետք, նախ գրանցեք սկզբնական երթուղին։

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

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

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