Երկու VPN ցատկ անընդմեջ՝ ո՞վ է իրականում տեսնում ձեր տրաֆիկը։
Հերթական ցատկերը վերծանում և նորից գաղտնագրում են առաջին դարպասում. ներդրված ցատկերը հեռացնում են միայն արտաքին շերտը։ Անցեք երկու ձևավորումներով և տեսեք, թե որ օպերատորն ինչ է կարդում։
Յուրաքանչյուր հաճախորդի պրոֆիլ նշում է մեկ սերվեր, ուստի օգտատիրոջ տեղից կա մեկ թունել և մեկ տեղ, որտեղ ավարտվում է պաշտպանությունը։ Թե ինչ է կատարվում այդ առաջին դարպասից հետո, ձևավորման որոշում է, որը հաճախորդը երբեք չի տեսնում, և երկու սովորական ձևավորումները ստուգման տակ շատ տարբեր են վարվում։ Հերթական շղթայում առաջին դարպասը վերծանում է և նորից գաղտնագրում։ Ներդրված շղթայում այն հեռացնում է արտաքին շերտը և փոխանցում ներքին թունել, որը չի կարող բացել։ Ցատկերի քանակը երկուսում էլ նույնն է, դրա համար էլ տարբերությունը պետք է նկարել, ոչ թե հաշվել։
Սկսեք հաճախորդից և անվանեք երկու ծայրերը
Սկսեք այնտեղ, որտեղ սկսում է օգտատերը՝ միացման պրոֆիլում։ Այն պարունակում է մեկ հեռավոր հասցե, մեկ նույնականացման մեթոդ և, երբ ձևավորումը դա աջակցում է, երթուղիների ցանկ։ Նշեք այդ արտաքին թունելը հաճախորդից մինչև A դարպաս և տվեք օրինակելի հասցեներ՝ հաճախորդի թունելի հասցեն 10.77.0.2, A-ինը՝ 10.77.0.1, և A-ի հանրային վերջնակետը՝ 198.51.100.10, վերցված TEST-NET-2 փաստաթղթային տիրույթից, որպեսզի օրինակում ոչինչ չբախվի իրական հոսթի հետ։
Այդ պրոֆիլում ոչինչ չի հիշատակում B դարպասը, և դա արատ չէ։ Երկրորդ ցատկը պատկանում է A-ին, և հաճախորդի միակ պարտականությունը տրաֆիկը A-ին հասցնելն ու վերադարձածը ընդունելն է։ Թե A-ն ավարտում է թունելը, փոխանցում այն, թե՞ նորն է բացում, այն հարցն է, որին պատասխանում է այս շրջագայության մնացած մասը, և դա է որոշում, թե ինչ կարող է կարդալ A-ն։
Հերթական՝ A-ն վերծանում է, ապա նորից գաղտնագրում
Հերթական ձևավորման մեջ A-ն ավարտում է տրաֆիկը երկու անգամ։ Այն հեռացնում է պաշտպանությունը հաճախորդից, ստանում է հավելվածի IP փաթեթը, ապա այդ փաթեթն ուղարկում է երկրորդ թունելով, որը A-ն ստեղծում է դեպի B։ Այդ երկու գործողությունների միջև փաթեթը գտնվում է A-ի փոխանցման ուղու վրա՝ որպես սովորական IP փաթեթ՝ հասցեավորված մասնավոր նպատակակետի։
Դա տալիս է երկու հետևանք, որ արժե ուղիղ ասել։ A-ն կարող է քաղաքականություն կիրառել ներքին փաթեթի նկատմամբ՝ երթուղիների, զտիչ կանոնների և աղբյուրի ու նպատակակետի գրանցման տեսքով, և A-ն պետք է պահի երկու հավաքածու նույնականացման տվյալներ՝ մեկը որպես սերվեր հաճախորդի համար, մյուսը որպես B-ի հաճախորդ։ Պաշտպանությունը գոյություն ունի ամեն պահի, սակայն պաշտպանվող օբյեկտը A-ի մոտ փոխում է ինքնությունը։
Դրանից չի հետևում, թե A-ն կարդում է հավելվածի բաց տեքստը։ Երբ հաճախորդն ու ծառայությունն աշխատացնում են TLS և ստուգում միմյանց վկայագրերը, A-ն տեսնում է TLS գրառումների հոսք, այլ ոչ թե ընթեռնելի հարցում։ Հաստատելու, թե որտեղ է ավարտվում այդ պաշտպանությունը, պետք է նայել ծառայության վկայագրերի շղթային, ոչ թե թունելի սխեմային։
Ներդրված՝ A-ն հեռացնում է միայն արտաքին շերտը
Ներդրված ձևավորման մեջ հաճախորդը նախ կառուցում է ներքին թունել դեպի B, ապա այդ թունելը տանում է արտաքինի ներսում մինչև A։ A-ն հանում է արտաքին վերնագիրը, գտնում է ներքին թունել և փոխանցում այն՝ չպահելով դրա բանալիները, այնպես որ ներքին պաշտպանությունը դեռ ավարտվում է B-ի մոտ։
Այնուհետև հաճախորդի վերին կապուղին կրում է երկու շերտ, մինչդեռ A-ի և B-ի միջև ուղին կրում է մեկը։ A-ն տեսնում է ներքին թունելի արտաքին հասցեները, ինչը բավական է իմանալու, որ տրաֆիկ կա և մոտավորապես ուր է գնում, և բավարար չէ բեռը կարդալու համար։ Սա է ամբողջ տարբերությունը հերթական դեպքից, և ոչ մի ցատկահաշվիչ դա չի ցույց տալիս։ Ինչ A-ն դեռ կարող է անել, այն է հրաժարվել փոխանցելուց այն, ինչ չի կարող կարդալ, և դա միշտ հասանելի է այդ դարպասի օպերատորին։
Ներդրումը վճարում է այդ հատկության համար։ Յուրաքանչյուր շերտ ավելացնում է վերնագրի ծախս, ուստի MTU-ի և MSS-ի պլանավորումը դառնում է պարտադիր, ոչ թե պարզապես կոկիկ, և մեկ շերտով աշխատող ուղին երկուսով կարող է լուռ կորցնել մեծ փաթեթներ։ Յուրաքանչյուր շերտի անհրաժեշտ է նաև իր վերամիացման և կենդանի պահման վարքագիծը, և մի շերտի ձախողումը մյուսի միջով երևում է որպես մասնակի ընդհատում։
Նկարեք դիտորդներին, ոչ միայն թունելները
Թունելները նկարի հեշտ մասն են։ Դիտորդներն են ձևավորման էությունը, ուստի գրեք մեկ տող յուրաքանչյուր դիտակետի համար և լրացրեք, թե յուրաքանչյուրն ինչ կարող է իրականում կարդալ։
| Vantage point | Serial chain | Nested chain |
|---|---|---|
| Client's access network | Outer tunnel only | Outer tunnel only |
| Operator of A | Inner IP packet between A and B | Outer addresses of the inner tunnel, not its payload |
| Path between A and B | Second tunnel | Second tunnel |
| Operator of B | Inner packet re-originated by A | Payload after the inner layer is removed |
| Service edge | Traffic from the exit address | Traffic from the exit address |
Երկու տող անընդհատ շփոթում են՝ A-ի օպերատորը և հաճախորդի թունելի մատակարարը։ Նրանք կարող են մեկ միավոր լինել, և առանձին դարպասների անունները նրանց անկախ չեն դարձնում։ Անկախ սեփականությունը պահանջում է առանձին վարչական վերահսկողություն, առանձին նույնականացման տվյալներ և առանձին գրանցում։
Մետատվյալները գոյատևում են երկու ձևավորումներում։ Ժամանակը, փաթեթների չափերը և միացումների քանակը մնում են դիտելի յուրաքանչյուր ցատկում, ուստի երկու ցատկը բարձրացնում է հարաբերակցության արժեքը, այլ ոչ թե հեռացնում ազդանշանը։ Անտեսանելիություն խոստացող ձևավորումը պետք է ստուգվի այդ ցանկի դեմ, նախքան ինչ-որ մեկը կհենվի դրա վրա։
Անցեք ձախողման ուղիներով, նախքան ընտրելը
Կոտրեք իրերը դիտավորյալ հաճախորդի կողմից՝ այն հերթականությամբ, որով օգտատերը կհանդիպի դրանց։ Սկսեք ինտերֆեյսից և դրա MTU-ից, որովհետև ներդրումը ձախողվում է փաթեթի չափի վրա շատ ավելի վաղ, քան նույնականացման վրա։
ip -4 addr show dev tun0
ip link show dev tun0 | grep mtu
ping -M do -s 1380 -c 2 10.77.1.1
Ապա հաստատեք պաշտպանության վերջնակետերը՝ դրանք ենթադրելու փոխարեն։ Խնդրեք ծառայությունից նրա վկայագիրը բաց թունելի ներսից և համեմատեք այն շղթան, որը տեսնում է հաճախորդը, այն շղթայի հետ, որը ծառայությունն իրականում ներկայացնում է։ Վերասահմանող կամ ընդհատող դարպասը փոխում է այդ վկայագիրը, և ստուգումը տեսանելի է դառնում մեկ հրամանով։
openssl s_client -connect intranet.example.com:443 -brief < /dev/null
Ավարտեք վերամիացման մատրիցով՝ հաճախորդի թունելն ընկնում է, B-ի թունելն ընկնում է, A-ի և B-ի միջև ուղին փոխվում է։ Նշեք, թե ինչ է վերադառնում և ինչ ոչ, և արդյոք ներքին միացումը երբևէ ընկնում է իր նախատեսված կրիչից դուրս ուղու վրա։ Գրանցեք այն հասցեները, որոնք օգտագործել է յուրաքանչյուր փորձարկում, որովհետև այլ մուտքի ցանցում կրկնելը պատասխանում է այլ հարցի։ Կրկնեք նաև MTU-ի ստուգումը յուրաքանչյուր վերամիացումից հետո, որովհետև փոխված ուղին կարող է իջեցնել օգտագործելի չափը՝ առանց մեկ կարգավորման տողի շարժման։
Ընտրեք հերթականը, երբ A-ն պետք է քաղաքականություն կիրառի ներքին փաթեթի վրա, կամ երբ հաճախորդը չի կարող երկու շերտավորված թունել աշխատացնել։ Ընտրեք ներդրումը, երբ ներքին բեռը A-ի մոտ պետք է մնա անընթեռնելի։ Գրեք ընտրությունը դրա դիտորդներով և MTU թվերով, և հաջորդ մարդը ստիպված չի լինի նորից նկարել ամբողջ պատկերը մեկ հարցի պատասխանելու համար։