IPsec-ի հավելյալ ծավալը՝ ռեժիմը, NAT-T-ն ու ալգորիթմները փոխում են այն
Մեկ հրապարակված հավելյալ ծավալի թիվ նկարագրում է մեկ ինկապսուլացիա մեկ ուղու վրա։ Գումարեք այն վերնագրերը, որոնց շուրջ ձեր թունելը իրոք պայմանավորվում է, ապա չափեք ուղին։
Ինչ-որ տեղ ուղեցույցում կա մի թիվ, սովորաբար վաթսունից ութսուն բայթի միջև, որը ինչ-որ մեկը հանել է 1500-ից՝ ինտերֆեյսի MTU ստանալու համար։ Այդ թիվը նկարագրում է մեկ կոնկրետ ինկապսուլացիա մեկ կոնկրետ ուղու վրա։ Փոխեք ռեժիմը, արտաքին հասցեների ընտանիքը, գաղտնագրման ալգորիթմը կամ NAT-ի առկայությունը, և թվաբանությունն այլևս չի վերաբերում ձեր թունելին։
Թիվը եկել է մեկ այլ թունելից
Հավելյալ ծավալը IPsec-ի հատկությունը չէ վերացական իմաստով։ Դա այն փաթեթի հատկությունն է, որն իրոք կառուցվում է՝ պայմանավորված ռեժիմ, արտաքին վերնագիր, պաշտպանական վերնագիր, լցոնում, ամբողջականության դաշտ և հնարավոր է՝ լրացուցիչ UDP փաթաթան։
IPv4-ով և առանց NAT-ի տրանսպորտային ռեժիմի համար նշված թիվը նկարագրում է ավելի փոքր փաթեթ, քան NAT-ի անցման ներքո IPv6-ով թունելային ռեժիմը։ Երկուսն էլ ճիշտ են իրենց դեպքի համար։ Դրանցից մեկը մեկ այլ տեղաբաշխման մեջ պատճենելը հենց այն ճանապարհն է, որով մարդիկ հասնում են MTU-ի, որը կոտրում է մեծ փոխանցումները։ Ձախողումը լուռ է, որովհետև փոքր հարցումները շարունակում են աշխատել։
Գումարեք այն շերտերը, որոնք իրոք կան
Սկսեք արտաքին IP վերնագրից և գնացեք դեպի ներս։ Թունելային ռեժիմում սկզբնական փաթեթը ներսում է, ուստի արտաքին վերնագիրը հավելում է, ոչ թե փոխարինում։ RFC 4303 նկարագրում է ESP վերնագիրը, լցոնումը և դրան հաջորդող ամբողջականության տվյալները։
| Layer | What it adds | When it applies |
|---|---|---|
| Outer IP header | 20 bytes for IPv4, 40 for IPv6 | Always, and 40 rather than 20 if the outer path is v6 |
| ESP header | 8 bytes of SPI and sequence number | Always |
| Block cipher IV | 8 to 16 bytes depending on the transform | When the negotiated cipher uses one |
| Padding and trailer | Padding to the block size, plus two trailer bytes | Always, and the amount varies with payload length |
| Integrity data | 12 to 16 bytes for common authenticated ciphers | When integrity protection is negotiated |
| UDP encapsulation | 8 bytes | NAT traversal on port 4500, which is common for clients behind NAT |
Այդ տողերից ոչ մեկը հաստատուն չէ տեղաբաշխումների միջև, և լցոնման տողը հաստատուն չէ նույնիսկ մեկ տեղաբաշխման ներսում։ Սա է մեկ հրապարակված հավելյալ ծավալի թվի հիասթափեցնող լինելու ամբողջ պատճառը։
Երկու տեղամաս կարող են չհամաձայնել նույն թունելի շուրջ
Պաշտպանված փաթեթը դեռ պետք է անցնի արտաքին ուղին, և արտաքին ուղին ամենուր նույնը չէ։ PPPoE մուտքի գիծը ավելի քիչ է տանում, քան մաքուր Ethernet սեգմենտը։ Բջջային ցանցը կարող է ավելի նեղանալ, և իր սեփական երթևեկությունը թունելավորող մատակարարը ավելացնում է ևս մեկ ինկապսուլացիա, որը ոչ ոք չի նշել։ Թունելը, որն աշխատում է մի գծի վրա և ձախողվում մյուսի վրա, նկարագրում է երկրորդ գիծը, ոչ թե արձանագրությունը։
Երկու ուղղություններն էլ կարող են տարբերվել։ Ասիմետրիկ երթուղին կարող է ձեզ տալ աշխատող վերբեռնում և կանգնած ներբեռնում, ինչը կարդացվում է որպես հավելվածի խնդիր, քանի դեռ չեք նայում փաթեթների չափերին, այլ ոչ թե հասանելիությանը։ Փոքր ping-ի հաջողությունը շատ քիչ բան է ապացուցում լրիվ չափի պատասխանի մասին։
Չափեք՝ հանելու փոխարեն
Գտեք ամենամեծ դեյտագրամը, որը ողջ է մնում ուղու վրա։ Ապա համեմատեք այն արժեքի հետ, որը հայտնում է ինտերֆեյսը՝
ip link show eth0 | grep -o 'mtu [0-9]*' ip xfrm state list ping -M do -s 1400 198.51.100.7 ping -M do -s 1372 198.51.100.7 tcpdump -ni any -c 20 'esp or udp port 4500'
Նվազեցրեք ping-ի չափը, մինչև պատասխանները գան, և ամենամեծ աշխատող արժեքը համարեք այդ ուղու բյուջեն։ xfrm-ի ելքը ասում է, թե որ ռեժիմն ու որ ալգորիթմներն են պայմանավորվվել, և դա ցանկացած ազնիվ հաշվարկի մուտքն է։ Որսը հաստատում է՝ լարի վրա ESP է, թե UDP-ով փաթաթված ESP, և դա լուծում է NAT-ի հարցը՝ առանց գուշակելու։
Մեկ արժեք պահեք նաև կառավարման հարթության համար։ IKE ձեռքսեղմման փաթեթներն այլ կառուցվածք ունեն, քան տվյալների փաթեթները, ուստի ձեռքսեղմման որսից ստացված չափը տվյալների հարթության MTU չէ։
Դրեք թիվը իր տեղում
Թունելով անցնող TCP-ի համար MSS սեղմումը հաճախ ամենաքիչ ներխուժող վերահսկումն է, որովհետև այն նվազեցնում է այն, ինչ ուղարկում են ծայրերը՝ չփոխելով ինքնին թունելը։ Երթուղու վրա հիմնված թունելի համար դիտավորյալ սահմանեք թունելի ինտերֆեյսի MTU-ն և փաստաթղթավորեք, թե ինչու։ Երկուսն էլ միաժամանակ անելը և ապա չափելը ձեզ ոչինչ չի ասում այն մասին, թե որն օգնեց։
Տոմսի մեջ միասին պահեք պայմանավորված ռեժիմը, արտաքին ընտանիքը, NAT-ի վիճակը և վերարտադրվող ախտանիշը։ Չորս փաստի արձանագրված հավաքածուն գերազանցում է հիշված հաստատունին, և սա այն միակ տարբերակն է, որը կդիմանա հաջորդ հաճախորդի թարմացմանը։