Երկու VPN ցատկ մեկ Pi-ի վրա՝ որ երթուղին որ գործընկերոջն է տանում
Երկու թունելային հասցե մեկ Pi-ի վրա սխալ չեն։ Յուրաքանչյուր նպատակակետի պետք է իր կրողը, իր ապացույցը և հայտարարված պահուստային տարբերակը, երբ արտաքին ցատկը մահանում է։
Երկու թունելային հասցե մեկ փոքր տախտակի վրա սխալ են թվում, և ռեֆլեքսը մեկը ջնջելն է։ Այդ ռեֆլեքսը կոտրում է այն, ինչ պետք է կարգի բերեր։ Երկու ցատկ կրող հոսթը պահում է մեկ հասցե յուրաքանչյուր կցորդի համար, և յուրաքանչյուր հասցե ընտրվում է տարբեր երթուղով։ Արժե հարցնել, թե որ երթուղին որ կրողն է ընտրում որ նպատակակետի համար, ոչ թե քանի հասցե կա։
Երեք նպատակակետ, որոնց պետք են տարբեր կրողներ
Երկու ցատկի շղթան երեք դասի նպատակակետերի շերտ է, և յուրաքանչյուրը տարբեր կցորդով է կրվում։ Արտաքին գործընկերոջը պետք է հասնել ֆիզիկական կապով։ Ներքին գործընկերոջը պետք է հասնել արտաքին թունելով։ Ծածկված հավելվածի նպատակակետին պետք է հասնել ներքին թունելով, որի սեփական տրանսպորտը կրում է արտաքինը։
| Destination class | View that names the carrier | Command that proves it | Symptom when the wrong carrier wins |
|---|---|---|---|
| Outer peer, 198.51.100.10 | the main table, by destination | ip route get 198.51.100.10 | the outer handshake never completes |
| Inner peer, 203.0.113.7 | the main table once the outer tunnel is up | ip route get 203.0.113.7 | the inner handshake leaves over the physical link |
| Application destination, 172.30.9.1 | the table the inner client's traffic is selected into | ip route get 172.30.9.1 from 10.8.0.2 | the exit address looks right and the traffic never crossed the outer hop |
| Parallel tunnels, one per source group | one policy per group, not the main table | ip rule show beside a marked test connection | both tunnels are up and one steals the other's traffic |
Լրացրեք տողերը ընթերցողի իրական հասցեներով նախքան երթուղուն դիպչելը, որովհետև աղյուսակը օգտակար է միայն երբ կոնկրետ է։ Աշխատող շղթան բավարարում է բոլոր չորս տողերը միաժամանակ, իսկ կիսաշխատող շղթան սովորաբար բավարարում է դրանցից մեկը սխալ կրողով։ Հենց սխալ տողը որպես խափանում կարդալն է, որ երթուղավորման խնդիրը վերածում է մի ամբողջ երեկոյի խմբագրումների։
Հասցեներն ունեն դերեր, ոչ թե քանակ
Լինուքսը թույլ է տալիս մի քանի հասցե մեկ ինտերֆեյսի վրա և մի քանի թունել մեկ հոսթի վրա, ուստի քանակը ոչինչ չի ասում ճշտության մասին։ Կարևոր է, թե որ հասցեն որ կցորդին է պատկանում, և արդյոք տվյալ գործընկերոջ երթուղին ընտրում է այն կցորդը, որը դուք նկատի ունեիք։ Երեք տեսք պատասխանում են դրան երեք ուղղություններից, և արժե դրանք ամեն անգամ նույն հերթականությամբ կարդալ։
Հասցեների գույքագրումը ցույց է տալիս, թե ինչ կա և որ կցորդն է տիրում դրան։ Երթուղիների աղյուսակը պատասխանում է կրողի հարցին սովորական նպատակակետային երթևեկության համար։ Քաղաքականության տեսքը նորից պատասխանում է դրան աղբյուրով կամ նշանով ընտրված երթևեկության համար, ինչը սովորական դասավորություն է, երբ երկու հաճախորդ կիսում են մեկ հոսթ։
ip -4 addr show
ip -4 route show table all
ip rule show
Հասցեն ջնջելը, քանի որ ցանկը երկար է թվում, կարող է հեռացնել ուղու մի մասը, և երթուղին ջնջելը, քանի որ այն ավելորդ է թվում, նույնն անում է ավելի լուռ։ Ոչ մեկը սխալ չի առաջացնում՝ գործընկերը պարզապես դադարում է պատասխանել այն ուղու վրա, որը դուք նկատի ունեիք, մինչդեռ մնում է հասանելի մյուսով։ Հավելվածը, որը հաղորդում է ներքին գործընկերոջ ելքի հասցեն, չի ապացուցում, որ երթևեկն անցել է արտաքին թունելով, քանի որ ուղղակի մուտքը տալիս է նույն դիտարկումը։ Հենց այդ ճեղքը դիտարկման և ապացույցի միջև է պատճառը, որ կրողը ստուգվում է երթուղավորման շերտում։
Ակտիվացման հերթականությունը հաղթում է ֆիքսված քնին
Եթե ներքին հաճախորդը կախված է հասցեից կամ երթուղուց, որը տրամադրում է արտաքին հաճախորդը, ակտիվացումը պետք է սպասի այդ ռեսուրսին, այլ ոչ թե ուշացման։ Քունը աշխատում է մինչև այն օրը, երբ արտաքին թունելը դանդաղ է, և այդ ժամանակ այն պարբերաբար ձախողվում է այնպես, որ ոչ ոք չի կարող կրկնել։ Կախվածությունների վրա հիմնված հերթականությունը վերացնում է գուշակությունը և ոչինչ չարժե, բացի կախվածությունը մեկ անգամ նկարագրելուց։ Ինտերֆեյսների անունները նույնպես հերթականության մեխանիզմ չեն։
Միջուկը տալիս է այնպիսի անուններ, ինչպիսիք են tun0 և tun1, ստեղծման հերթականությամբ, և այդ հերթականությունը կարող է փոխվել վերագործարկումների կամ վերամիացումների միջև։ Կապեք կոնֆիգուրացիան գործիքի տրամադրած ինքնությանը կամ ձեր կողմից դիտավորյալ նշանակված անվանը։ Ձեր ընտրած անունը պայմանագիր է՝ միջուկի ընտրած անունը պատահականություն է։
Պահեք յուրաքանչյուր հաճախորդի տրանսպորտը մյուսի հավելվածի երթուղուց դուրս, և եղեք ճշգրիտ այն հարցում, թե ինչ են իրականում խոստանում OpenVPN 2.6-ի երթուղավորման ընտրանքները։ Փաստաթղթավորված լռելյայն վերահասցեավորման մեխանիզմը թույլ է տալիս հաճախորդին հասնել իր հեռավոր գործընկերոջը արդեն գոյություն ունեցող դարպասով, ինչը կտրում է մեկ կոնկրետ ռեկուրսիայի օղակ։ Այն մեկ հաճախորդին չի դարձնում մյուսի կրողը, ուստի շղթայի մնացած մասը մնում է ձեր ձևավորումը։ Որտեղ շղթային պետք է ոչ թե երթուղի, այլ քաղաքականություն, գրեք ակնհայտ աղբյուրի կամ նշանի կանոն և փորձարկեք այն երթևեկությամբ, որին այն պետք է համապատասխանի։
Ինչ է լինում, երբ արտաքին ցատկը մահանում է
Նախքան շղթան ամբողջական համարելը, որոշեք, թե ինչ է լինում, երբ արտաքին ցատկը անհետանում է։ Ներքին հաճախորդի տրանսպորտը մահանում է դրա հետ, և հաջորդ քայլը տեխնիկական չէ, այլ քաղաքականության հարց՝ ձախողվել, կրկին փորձել կամ ուղղակիորեն վերամիացվել ֆիզիկական կապով։ Հենց երրորդ արդյունքն է մտածելու արժանի։ Այն լուռ կերպով երկու ցատկի ձևավորումը դարձնում է մեկ ցատկի ձևավորում այն պահին, երբ օգտվողը կարծում է, թե ծածկույթը դեռ անձեռնմխելի է։
Եթե երկու ցատկը պարտադիր են, ներքին հաճախորդը չպետք է կարողանա ուղղակի ուղի հաստատել, երբ արտաքինը գնացել է, և դա իմանալու ձևը արտաքին ցատկը կոտրելն ու ներքինի արածը դիտելն է։ Հաստատված պահուստային տարբերակը օրինական պատասխան է, բայց այն պետք է գրվի, փորձարկվի և հաղորդվի։ Պահուստային տարբերակը, որը ոչ ոք չի փաստաթղթավորել, միջադեպի վերանայման ժամանակ չի տարբերվում արտահոսքից։
DNS-ը և մյուս հասցեների ընտանիքը պատկանում են նույն որոշմանը։ Տեղում ստեղծված հարցումը հետևում է հոսթի սեփական քաղաքականությանը, ոչ թե փոխանցված հաճախորդի քաղաքականությանը, ուստի փոխանցված երթևեկության համար աշխատող լուծիչը կարող է այն չլինել, որն օգտագործում է ինքը հոսթը։
Ընդունեք յուրաքանչյուր շերտ այն հերթականությամբ, որով կառուցել եք այն
Փորձարկեք այն հերթականությամբ, որով կառուցվել է շղթան՝ նախ արտաքին թունելը միայն, ապա ներքին հաճախորդի տրանսպորտը արտաքին թունելով, ապա հավելվածը ներքին թունելով։ Յուրաքանչյուր ընդունում պետք է լինի թարմ կապ, ոչ թե արդեն բացված էջ։ Ապա կոտրեք և վերականգնեք յուրաքանչյուր շերտը առանձին և դիտեք, թե ինչ է անում հաջորդը։
Պահուստային տարբերակի արդյունքը այստեղ ամենաարժեքավոր դիտարկումն է, և այն, ինչը հանրային IP-ի էջը երբեք չի ցուցադրում։ Պահպանեք գործընկերների ուղիները, նրանց օգտագործած հասցեները և այդ արդյունքը կոնֆիգուրացիայի կողքին, որովհետև երջանիկ ուղին այն մասը չէ, որ հետագայում հարցականի տակ է դրվում։