Անջատիչ VPN կողային տարայի համար. արգելափակել երթևեկությունը, երբ այն դուրս է գալիս
VPN տարայի անվանատարածքի համօգտագործումը չի կանգնեցնում հավելվածը, երբ թունելը մահանում է. ավելացրեք հստակ ելքային քաղաքականություն և փորձարկեք վերագործարկումները, ոչ միայն անջատումները:
Հավելվածի տարան, որը կիսում է VPN տարայի ցանցային անվանատարածքը, չունի սեփական ինտերֆեյս, ուստի հեշտ է ենթադրել, որ թունելի ձախողման դեպքում այն ոչինչ չի կարող ուղարկել։ Այդ ենթադրությունը սխալ է այն ձախողման ռեժիմում, որը նշանակություն ունի։ Եթե VPN գործընթացը մահանում է, մինչ անվանատարածքը շարունակում է գոյություն ունենալ, հավելվածը պահպանում է իր սոքեթները, իսկ անվանատարածքը պահպանում է իր երթուղիները, և տրաֆիկը շարունակվում է այն ուղով, որը դեռ տեղադրված է։ Իսկական անջատիչը հստակ զտման քաղաքականություն է՝ գումարած գործարկման միջավայրի կյանքի ցիկլի փորձարկումները, և ոչ թե մեկնարկային կախվածություն։
Ինչու անվանատարածքի համօգտագործումը անջատիչ չէ
Անվանատարածքը կիսելը նշանակում է, որ հավելվածը օգտագործում է VPN տարայի ինտերֆեյսները, հասցեները և երթուղիների աղյուսակը։ Դա հեռացնում է հավելվածի անկախ ուղին դեպի ցանց, քանի դեռ համօգտագործվող անվանատարածքը անձեռնմխելի է, և ոչինչ չի ասում այն մասին, թե ինչ կանի այդ անվանատարածքը, երբ թունելը անհետանա։
Compose-ի կախվածության պայմանները կարող են հետաձգել հավելվածի մեկնարկը մինչև կախվածությունը առողջ դառնա։ Դա ծածկում է ժամանակի միայն մեկ պահ և ոչ մի հետագա ձախողում, ուստի դա մեկնարկի հերթականության գործիք է, և ոչ թե շարունակական ելքային հրդեհապատ։
Ինչ է իրականում տեղի ունենում, երբ տարան դուրս է գալիս
Առանձնացրեք երեք իրադարձություն։ Տարայի ներսում VPN գործընթացը կարող է մահանալ, մինչ տարան շարունակում է աշխատել։ Տարան կարող է կանգնել կամ հեռացվել, ինչը ոչնչացնում է անվանատարածքը։ Տարան կարող է վերստեղծվել, ինչը կառուցում է նոր անվանատարածք և նոր կանոններ։
Առաջին դեպքում անվանատարածքը պահպանվում է, լռելյայն երթուղին կարող է դեռ ցույց տալ ֆիզիկական ինտերֆեյսին, և հավելվածը շարունակում է ուղարկել ուղղակիորեն։ Երկրորդ դեպքում կախյալ հավելվածը սովորաբար ամբողջությամբ կորցնում է կապը, որովհետև նրա անվանատարածքը անհետացել է։ Երրորդ դեպքում հավելվածը կարող է նորից միանալ նոր անվանատարածքի հետ նախքան թունելի պատրաստ լինելը։ Յուրաքանչյուր դեպք տարբեր փորձարկում է պահանջում, և դիզայնը, որը ծածկում է միայն կանոնավոր անջատումը, ծածկում է ամենաքիչ հետաքրքիր դեպքը։
Կառուցեք հստակ ելքային քաղաքականություն
Քաղաքականությունը գրեք համօգտագործվող անվանատարածքի ներսում, որպեսզի այն տարածվի հավելվածի փաթեթների վրա։ Ձևը լռելյայն մերժում է նեղ բացառություններով՝ loopback, թունելի ինտերֆեյս, և վերջնակետի կոնկրետ հասցեն ու պորտը, որոնք անհրաժեշտ են թունելի տրանսպորտին։
Վերջնակետի բացառությունը պետք է լինի տեղում նախքան թունելի բարձրանալը, այլապես VPN հաճախորդը չի կարողա հասնել իր սերվերին։ Այդ պատճառով կանոնների հավաքածուն բացահայտ թույլատրում է արտաքին տրանսպորտը՝ փոխարենը ընդհանուր թույլատրելու ֆիզիկական ինտերֆեյսը։ Ավելացրեք նաև IPv6 կանոններ, եթե անվանատարածքն ունի IPv6 կապ, քանի որ միայն IPv4-ի քաղաքականությունը բաց է թողնում մյուս ընտանիքը։
DNS-ը նույնպես քաղաքականության մասն է։ Եթե հավելվածը անունները լուծում է լուծիչի միջոցով, որը հասանելի է միայն թունելի ներսում, մերժման կանոնը կկոտրի լուծումը, երբ թունելը ներքևում է, և դա անջատիչի համար ճիշտ վարքն է։ Որոշեք գիտակցաբար՝ արդյոք դա է այն, ինչ ուզում եք։
Փորձարկեք կյանքի ցիկլը, ոչ միայն անջատումը
Ուղարկեք նոր անվնաս հարցում, քանի դեռ թունելը առողջ է, ապա սպանեք VPN գործընթացը և ուղարկեք ևս մեկը։ Կրկնեք տարայի կանգից, վերագործարկումից և վերստեղծումից հետո։ Նոր հարցումը կարևոր է, որովհետև գոյություն ունեցող կապը կարող է վերապրել կանոնների փոփոխությունը, որը արգելափակում է նորերը։
Մի ապավինեք առողջության ստուգմանը կամ ելքային IP-ի որոնմանը որպես արգելափակման մեխանիզմ։ Ստուգումը դիտարկում է վիճակը և հաղորդում դրա մասին. քաղաքականությունը վերահսկում է տրաֆիկը։ Երկուսն էլ պատկանում են նույն տեղակայմանը, և դրանք միմյանց փոխարինող չեն։
Գրանցեք կանոնները, որպեսզի փորձարկումը դիմանա թարմացմանը
Գրեք յուրաքանչյուր ձախողման դեպքի սպասվող արդյունքը տեղակայման փաստաթղթերում՝ դրա իրականացնող կանոնների հետ միասին։ Այդ գրառումը թույլ է տալիս նույն փորձարկումը գործարկել պատկերի թարմացումից կամ գործարկման միջավայրի արդիականացումից հետո, երբ անվանատարածքի վարքը կամ լռելյայն երթուղիները կարող են փոխվել առանց որևէ մեկի compose ֆայլը խմբագրելու։
Պահեք VPN վերջնակետի պահանջվող արտաքին ուղին առանձին հավելվածի անսահմանափակ ելքից, և պահեք DNS-ը և IPv6-ը նախատեսված ծածկույթի սահմաններում։ Եթե քաղաքականությունը հարմարության համար թույլատրում է ամբողջ ֆիզիկական ինտերֆեյսը, անջատիչը գնացել է։ Docker-ի ցանցային փաստաթղթերը նկարագրում են այն համօգտագործվող անվանատարածքի կարգավորումը, որի վրա կառուցված է քաղաքականությունը, և հենց դա է այն հղումը, որը պետք է ստուգել, երբ գործարկման միջավայրի վարքը կասկածելի է։