Երթուղային աղյուսակն ընդդեմ փաստացի որոնման՝ ուր է գնում VPN երթևեկությունը
Սկսեք մեկ նպատակակետից և դրա աղբյուրից, ապա ստուգեք, թե որ կանոնն ու աղյուսակն են իրականում որոշում ուղին։ Առանց այդ համատեքստի ամբողջ աղյուսակի արտածումը մոլորեցնում է։
Երթուղային աղյուսակի արտածումը VPN-ի խնդիրների ախտորոշման մեջ ամենաանօգտակար գործիքն է և ամենահաճախ տեղադրվողը։ Քառասուն տող նախածանցեր ձեզ ասում են, թե մեքենան ինչ կարող էր անել, ոչ թե ինչ արեց ձախողված հարցման համար։ Մեխանիզմը, որն իրականում ուզում եք, որոնումն է՝ տրված այս աղբյուրը և այս նպատակակետը՝ պարզ է դառնում, թե որ կանոնը համընկավ, որ աղյուսակը հարցվեց, և որ ինտերֆեյսն ու հաջորդ թռիչքը դուրս եկան։ Սկսեք մեկ նպատակակետից և մեկ աղբյուրից, ապա կարդացեք աղյուսակը այդ հարցը ձեռքին, և նույն արտածումը աղմուկի փոխարեն ապացույց է դառնում։
Աղյուսակը թեկնածուների բազմություն է, ոչ որոշում
Յուրաքանչյուր գրառում նկարագրում է նախածանց և ինչ անել դրան համապատասխանող երթևեկության հետ՝ ուղարկել ինտերֆեյս, հանձնել հաջորդ թռիչքին կամ գցել։ Այդ ցանկում ոչինչ դասավորված չէ ըստ մտադրության, և մարդուն ամենակոնկրետ թվացող գրառումը միշտ չէ, որ այն է, ինչ ընտրում է միջուկը, որովհետև ընտրությունը հետևում է ամենաերկար նախածանցի համընկնմանը, իսկ հավասար նախածանցների դեպքում՝ մետրիկային։
Այսպիսով առաջին քայլը միջուկին հարցնելն է՝ ցանկը կարդալու փոխարեն, իսկ որոնման հրամանը պատասխանում է նպատակակետի համար և աղբյուրի արգումենտով՝ այն ճշգրիտ զույգի համար, որը կօգտագործեր փոխանցված կամ կապված միացումը։
ip route get 198.51.100.10
ip route get 198.51.100.10 from 10.80.0.25
ip -6 route get 2001:db8:10::40
Վերևի յուրաքանչյուր հասցե փաստաթղթային օրինակ է։ Խոսքը պատասխանի ձևի մասին է՝ ինտերֆեյս, ընտրված աղբյուրի հասցե, դարպաս և այն աղյուսակը, որտեղից եկել է գրառումը։ Եթե այդ արտածումը չի համընկնում սպասված ինտերֆեյսի հետ, ապա մեկ հրամանով տեղայնացրել եք խնդիրը, և ամբողջ աղյուսակը կարդալու ոչ մի քանակ չէր ասի ձեզ, թե որ թեկնածուն հաղթեց։
Որոնումն անցնում է նախ կանոններով, ապա աղյուսակներով
Linux-ում որոշումը երկու փուլով է։ Քաղաքականության կանոնները գնահատվում են առաջնահերթության կարգով, և առաջին համընկնող կանոնը նշում է խորհրդատվության ենթակա աղյուսակը՝ այդ աղյուսակն այնուհետև կատարում է ամենաերկար նախածանցի համընկնումը։ Կանոնը կարող է համընկնել աղբյուրով, նպատակակետով, firewall-ի նշանով, ինտերֆեյսով կամ դրանց համակցությամբ, այդ պատճառով հիմնական աղյուսակի արտածումը կարող է լինել լիովին ճշգրիտ և լիովին անտեղի ձեր քննած փաթեթի համար։
ip rule show
ip route show table all | head -40
ip route show table 100
Եթե ինչ-որ կանոն VPN-ի ձեր լողավազանից երթևեկությունն ուղարկում է աղյուսակ 100, ապա հենց աղյուսակ 100-ն է կարևոր, և հիմնական աղյուսակը ծուղակ է։ Սա նաև աղբյուրի վրա հիմնված երթուղավորման մեխանիզմն է երթուղիչում՝ նույն նպատակակետը կարող է ունենալ երկու տարբեր պատասխան՝ կախված նրանից, թե որտեղից է եկել փաթեթը, և միայն աղբյուրի արգումենտով որոնումն է բացահայտում, թե որը գործում է։
IPv6-ն ունի իր կանոններն ու աղյուսակները։ Երկու ընտանիքներն էլ աշխատեցնող ձևավորումը պահանջում է երկու որոնումներ, և աշխատող IPv4 պատասխանը ոչինչ չի ասում v6 ուղու մասին, որը երկկույտ հաճախորդը կարող է նախընտրել։
Ինչ է տեղադրում VPN հաճախորդը
Հաճախորդները սովորաբար չեն փոխարինում լռելյայն երթուղին, որովհետև դա կկոտրի թունելի սեփական արտաքին ուղին։ Նրանք տեղադրում են ավելի կոնկրետ բան, որ հաղթում է նախածանցի երկարությամբ՝ 0.0.0.0/1 և 128.0.0.0/1 ընդգրկող կիսալռելյայն զույգը դասական հնարք է, քանի որ երկուսն էլ 0.0.0.0/0-ից երկար նախածանցեր են և միասին ընդգրկում են ամբողջ տարածությունը։ Մյուսները տեղադրում են կոնկրետ մասնավոր նախածանցեր գումարած քաղաքականության կանոն, իսկ ոմանք ավելացնում են նշան, որպեսզի միայն ընտրված երթևեկությունը որսվի։
Այդ պատճառով "VPN-ը չփոխեց իմ լռելյայն երթուղին" ձախողման ապացույց չէ, և պետք է ստուգել, թե ինչ ավելացրեց, և արդյոք խնդրո առարկա նպատակակետն ընկնում է այդ նախածանցերի մեջ։
ip route show | grep -E 'tun|wg|ppp|ipsec'
ip route get 10.20.30.40 from 10.80.0.25
Երկու կիսաերթուղիները հեշտ է բաց թողնել արտածման մեջ, որովհետև դրանք լռելյայնի տեսք չունեն։ Այն split-tunnel կոնֆիգուրացիան, որը մոռացել է ներառել նախածանց, առաջացնում է հենց այն ախտանիշը, որին հետևում եք՝ այն հավելվածը, որը պետք է օգտագործեր թունելը, փոխարենը լուծում և միանում է տեղում։ Համեմատեք տեղադրված նախածանցները այն նպատակակետերի հետ, որոնք օգտվողին իրոք պետք են, ոչ թե այն հասցեների, որոնք պատահաբար փորձարկել եք։ Split-tunnel ցանկը, որը ծածկում է ֆայլային սերվերը, բայց ոչ նրա լուծիչը, առաջացնում է միացում, որը լուծվում է հանրային հասցեի և ապա ձախողվում է նույնականացման ժամանակ, ինչը նման է գաղտնաբառի խնդրի, բայց ուղու խնդիր է։
Արտաքին ուղին նույնպես պետք է գոյատևի
Թունելն ինքնին երթևեկություն է։ Ինկապսուլացված բեռը կրող փաթեթները ֆիզիկական ինտերֆեյսով գնում են գործընկերոջ հասցեին, և այդ ուղին չպետք է հետ երթուղավորվի թունելի մեջ։ Երբ դա տեղի է ունենում, ստանում եք բնորոշ ձախողում, երբ թունելը հաստատվում է և հետո դադարում է անցկացնել երթևեկությունը, որովհետև թունելի տրանսպորտն այժմ թունելի ներսում է։
Ստուգեք գործընկերոջ հասցեն այնպես, ինչպես ստուգել եք ներքին նպատակակետը, և հաստատեք, որ այն լուծվում է ֆիզիկական ինտերֆեյսի, այլ ոչ թունելի:
ip route get 203.0.113.10
traceroute -n -m 5 203.0.113.10
Ռեկուրսիվ երթուղին, գործընկերոջը որսացող քաղաքականության կանոնը կամ ամբողջական թունելի հաճախորդով փոխարինված լռելյայնը սովորական երեք պատճառներն են։ Երեքն էլ տեսանելի են արտաքին որոնման մեջ, և ոչ մեկը տեսանելի չէ փաստից հետո վերցված հիմնական աղյուսակի արտածման մեջ։
Ինչ չի կարող ասել երթուղավորման արտածումը
Ճիշտ որոնումը նշանակում է, որ միջուկը փաթեթը կուղարկեր ինչ-որ խելամիտ տեղ։ Դա չի նշանակում, որ firewall-ը թույլ է տալիս, IPsec քաղաքականությունը ծածկում է, NAT կանոնը թարգմանում է, կամ հեռավոր կողմն ունի վերադարձի ուղի։ Դրանցից յուրաքանչյուրը հետագա փուլ է, և strongSwan-ի փոխանցման նշումները նկարագրում են շղթան, որով փաթեթը պետք է անցնի երկու ծայրերում։
Այն նաև հաշվի չի առնում հավելվածի մակարդակի կապումը։ Գործընթացը կարող է կապվել ինտերֆեյսի, դնել նշան կամ օգտագործել իր լուծիչը և միանալ անունով, որը լուծվում է այլ կերպ, քան փորձարկել եք։ Երբ որոնումը ճիշտ է, և միացումը դեռ ձախողվում է, հաջորդ հարցը այն է, թե որ գործընթացն է դա անում և արդյոք այդ գործընթացը տեսնում է նույն աղյուսակը, ինչ դուք։
Այսպիսով պահեք ախտորոշումը կարգավորված՝ նշեք նպատակակետն ու աղբյուրը, գործարկեք որոնումը, կարդացեք միայն այն աղյուսակն ու կանոնը, որոնք նշել է որոնումը, ապա փորձարկեք հաջորդ փուլը։ Այդ հաջորդականությունը երթուղավորման հետաքննությունը պահում է րոպեների սահմանում և թողնում է գրառում, որը ուրիշը կարող է հետևել, ինչը կպցրած աղյուսակը երբեք չի անում։