MTU յուրաքանչյուր երթուղու համար Linux-ում՝ չափի երեք կարգավորիչ, մեկ երթուղի
Միջերեսի MTU-ն, երթուղու MTU-ն և MSS-ի սահմանը գործում են տարբեր շերտերում։ Կցեք բյուջե այն երթուղուն, որը հաղթում է որոնմանը, և պահեք փոփոխությունը հետշրջելի։
Linux-ի հաճախորդի երեք կարգավորումներ բոլորն էլ հնչում են որպես «փաթեթները փոքրացրու», և դրանք գործում են տարբեր շերտերում։ Միջերեսի MTU-ն սահմանափակում է սարքի ուղարկած յուրաքանչյուր փաթեթը։ Երթուղու MTU-ն սահմանափակում է այդ երթուղին օգտագործող փաթեթները, ինչը հաճախ հենց այն է, ինչ իրականում ուզում եք մեկ VPN նպատակակետի համար։ TCP MSS-ի սահմանը փոխում է այն, ինչի շուրջ պայմանավորվում են երկու ծայրերը, և UDP-ի համար ոչինչ չի անում։
Երեք կարգավորիչ, որոնք նույն կոճակի տեսք ունեն
Ընտրելուց առաջ դրեք դրանք կողք կողքի, որովհետև սխալ շարք ընտրելը բացատրում է չաշխատող խորհուրդների մեծ մասը:
| Control | Scope | What it cannot fix |
|---|---|---|
| Interface MTU | Every packet the device sends | Nothing, but it over-constrains unrelated traffic |
| Route MTU | Packets using that route | A send that the lookup never routes there |
| MSS clamp | TCP handshake on that path | UDP 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 ապա նման է ուղղման, որը ձախողվել է մեկ օր անց։ Դրեք արժեքը կառավարչի կարգավորման մեջ, և եթե ժամանակավոր փորձ է պետք, նախ գրանցեք սկզբնական երթուղին։
Փորձարկեք նոր միացումով, որը կատարում է կանգնած գործողությունը, ապա հաստատեք, որ նախատեսված մասնավոր երթուղին դեռ հաղթում է, և անկապ նպատակակետերը չեն փոխվել։ Նորից միացրեք թունելը և կրկին կարդացեք երթուղին, որովհետև վերամիացման ժամանակ անհետացող արժեքը ուղղում չէ։
Եթե ապացույցները չեն աջակցում փոփոխությանը, հեռացրեք վերագրանցումը դրա կառավարչի միջոցով և վերականգնեք երթուղու սկզբնական ատրիբուտները՝ երթուղին ջնջելու փոխարեն։ Ապա գրեք, թե ինչ եք չափել և որ ուղու վրա, որպեսզի հաջորդ մարդը կարողանա իրական բարելավումը տարբերել աշխատանքի մեջ թողնված փորձից։