Մատակարարի VPN հավելվածն ընդդեմ NetworkManager-ի. ո՞ւմն է վիճակը։
Պրոֆիլը անվանում է պլագին, ոչ թե մատակարարի հաճախորդի վարքը։ Նախքան կառավարվող նոթբուքը փոխելը քարտեզագրեք, թե ով է տիրապետում գրանցմանը, DNS-ին, արգելափակմանը և թարմացումներին։
Պրոֆիլ ներմուծելը նույնը չէ, ինչ հաճախորդին փոխարինելը։ NetworkManager-ը պահում է պլագինի տեսակը՝ պլագինին բնորոշ տվյալների և գաղտնիքների հետ միասին, և այդ տեսակին տիրապետող պլագինն է որոշում, թե ինչ կարող է անել կապը։ Այն ամենը, ինչ մատակարարի հավելվածը շերտավորում է վերևում՝ գրանցումից մինչև մշտական արգելափակում, ապրում է ֆայլից դուրս։ Փոխարկումը անվտանգ է, թե ոչ, կախված է նրանից, թե այդ շերտերից որոնց եք իրականում ապավինում։
Ֆայլը անվանում է պլագին, ոչ թե գործառույթների հավաքածու
NetworkManager-ի VPN կարգավորումների տեղեկատուն նկարագրում է ծառայության տեսակ, որը ընտրում է պլագինը, ինչպես նաև անթափանց տվյալների բառարան և գաղտնիքների բառարան, որոնք մեկնաբանում է միայն պլագինը։ Պրոֆիլը պայմանագիր է մեկ իրականացման հետ, ոչ թե վարքի նկարագրություն, որը ցանկացած հաճախորդ կարող է վերարտադրել։ Երկու հաճախորդ կարող են խոսել նույն արձանագրությամբ և այնուամենայնիվ տարբերվել նրանով, թե ինչ են բանակցում և որ տվյալների ուղիներն են միացնում։ Արձանագրության պիտակը ձեզ ասում է, թե ինչ է թունելը, երբեք՝ ինչ է անում դրա հետ շրջապատող հաճախորդը։
Ուրեմն համեմատեք պահանջները, ոչ թե փաթաթանները։ Հարցը ոչ թե այն է, թե կարող է արդյոք այլընտրանքը միանալ, որովհետև սովորաբար կարող է, այլ այն, թե արդյոք գոյատևում է տեղափոխությունը յուրաքանչյուր պահանջ, որ սկզբնական հաճախորդին դարձնում էր ընդունելի։ Գրեք այդ պահանջները նախքան որևէ բան տեղադրելը, այլապես համեմատությունը վերածվում է առաջինը կոտրվողի որսի։
Ինչ է ավելացնում մատակարարի հավելվածը թունելի շուրջ
Մատակարարների հաճախորդները սովորաբար միավորում են գրանցումն ու սարքի վիճակի ստուգումները, երկրորդ գործոնի հոսքն իր սեփական ինտերֆեյսով, մշտական արգելափակումը, թարմացումների ալիքը և աջակցության գործիքները։ Դրանից մի մասը կանգնած է արձանագրության կողքին, իսկ մի մասը առանձին ապրանք է, որ միայն տեղադրիչն է կիսում։ NetworkManager-ը կարող է փոխարինել թունելը և դրա երթուղումը, իսկ դիսպետչերի սկրիպտները կարող են գործողություններ գործարկել, երբ կապի վիճակը փոխվում է։ Սակայն այն չի վերարտադրում արգելափակման շարժիչ, վկայագրի նորացման հոսք կամ այն ենթադրությունը, թե որ օգտատերը կարող է բարձրացնել կապը։
Ավելի բաղադրիչները չեն նշանակում ավելի ապահով, իսկ ավելի քիչը՝ ավելի թույլ։ Հարցը այն է, թե որ բաղադրիչն է կիրառում այն քաղաքականությունը, որը ձեզ ասել են հետևել։ Եթե աուդիտորը հարցնի, թե ինչն է արգելափակում երթևեկությունը, երբ թունելը ընկնում է, պատասխանը պետք է անվանի մի բան, որն իրոք դա անում է, և միայն միացող պրոֆիլը այդ պատասխանը չէ։
Որտեղ է սեփականությունը իրականում տարբերվում
Կարդացեք սա որպես սեփականության քարտեզ, ոչ թե ստուգաթերթ, որովհետև ներքևի ձախողումները սեփականության բացեր են, և հաճախորդի կարգավորման ոչ մի քանակություն դրանք չի փակում։ Յուրաքանչյուր տող անվանում է շերտը, այն կողմը, որը սովորաբար տիրում է դրան այսօր, և այն տեղը, որտեղ բացն առաջինն է երևում։
| Layer | Vendor application | NetworkManager connection | Where the gap shows up |
|---|---|---|---|
| Enrollment and posture | built into the client | absent unless something else supplies it | a managed device fails its next posture check |
| Address and resolver authority | the client sets both | the plugin plus dispatcher scripts | names resolve through the wrong resolver after a state change |
| Blocking on drop | a bundled engine | nothing by default | traffic continues in the clear after the tunnel dies |
| Upgrade path | the vendor's own channel | the distribution package and its plugin | a plugin update changes behaviour with no vendor note |
| Diagnostics and support | vendor tooling with client state | journal and dispatcher output | support cannot see why negotiation failed |
Յուրաքանչյուր տող զուգակցեք մի դիտարկման հետ, որը կարող եք կրկնել, այլ ոչ թե հաճախորդի մասին զգացողության։ Նշանակված լուծիչով լուծված անուն, ուղի, որն անհետանում է, երբ թունելը կանգ է առնում, և արգելափակված կապը մոդելավորված ընդհատումից հետո երեք դիտարկումներ են, որոնք միասին ծածկում են աղյուսակի մեծ մասը։ Գրեք դիտարկումը այն պահանջի կողքին, որն այն ապացուցում է, և պահեք ձախողվածները, որովհետև ձախողված դիտարկումը գրառման միակ մասն է, որը կանխատեսում է հաջորդ միջադեպը։
Փոխարկում առանց սեփականության համընկնման
Նույն ծառայության համար մատակարարի հաճախորդը և NetworkManager-ի կապը միաժամանակ աշխատեցնելը ամենատարածված ձևն է, որով այս համեմատությունները սխալ են ընթանում։ Երկուսն էլ տեղադրում են ուղիներ, երկուսն էլ կարող են սահմանել DNS, և երկուսն էլ կարող են դիպչել հրապատի վիճակին։ Այն, ինչ այդ ժամանակ չափում եք, երրորդ դասավորությունն է, որը չի համապատասխանում երկու հաճախորդներից ոչ մեկի փաստաթղթավորված վարքին։
nmcli -f NAME,UUID,TYPE connection show
nmcli connection show work --show-secrets | grep -E "^vpn\."
journalctl -u NetworkManager -b --since "10 min ago"Առաջին հրահանգը ձեզ ասում է, թե արդյոք պրոֆիլը ընդհանրապես VPN տեսակ է։ Երկրորդը ցույց է տալիս պլագինի ծառայության տեսակը և թե որ գաղտնիքներն են պահված, ինչը կարևոր է, երբ բանալին սպասվում է գործակալից, այլ ոչ թե ֆայլից։ Մատյանն այն տեղն է, որտեղ բեռնված, բայց բանակցել չկարողացած պլագինը դա կասի։ Եթե երեքից ոչ մեկը խնդիր չցուցաբերի, բացը թունելի վերևի քաղաքականության շերտերում է, ոչ թե կապում։
Անջատեք հին հաճախորդը նախքան նոր կապը միացնելը, պահեք ծայրակետերն ու հաշիվը նույնական, և գրեք, թե որ բաղադրիչն է տիրապետում ուղիներին, լուծիչի կարգավորումներին և արգելափակմանը։ Այդ նշումն է, որ խանգարում է հաջորդ թարմացմանը ավարտվել երկու սեփականատերով։