Du scenarijai, kovojantys dėl to paties maršruto, yra įprasta Linux VPN problemos forma, kuri registruojama kaip maršrutizavimo klaida. Vienas komponentas sukuria tunelio įrenginį, kitas prideda numatytąjį maršrutą, trečias perrašo resolverio konfigūraciją, o ketvirtas iš naujo įkelia užkardos taisykles. Bet kuris iš jų gali atšaukti kito darbą, o nugalėtojas yra tiesiog tas, kuris paleistas paskutinis. Klausimas, į kurį verta atsakyti, yra ne tai, kurį paketą įdiegti, o tai, kuris komponentas yra įgaliotas kiekvienai būsenos daliai.

Užrašykite tą žemėlapį vieną kartą, ir dauguma prisijungimo iš naujo klaidų nustos būti paslaptingos. Svarbūs keturi objektai: įrenginys ir jo adresai, maršrutai ir politikos taisyklės, DNS konfigūracija ir užkarda.

Įrenginys ir jo adresai

Tunelio įrenginį sukuria arba valdyklė, žinanti profilį, arba demonas, kurį kas nors paleido rankiniu būdu. Abi tvarkos veikia atskirai; jų maišymas ne. Jei profilį valdo NetworkManager, leiskite jam valdyti ir įrenginį, ir nepaleiskite nevaldomo OpenVPN proceso prieš tą patį tunelio pavadinimą.

Užsirašykite, kas pašalina įrenginį, kai sesija baigiasi. Įrenginys, pergyvenantis savo sesiją, yra dažniausia pasenusių adresų ir po jų ateinančios painiavos priežastis.

Maršrutai ir politikos taisyklės

Būtent maršrutuose nuosavybės konfliktai daro matomą žalą. Ryšio valdyklė įdiegia numatytąjį maršrutą tuneliui ir konkretesnį maršrutą nuotoliniam tinklui; tada ranka rašytas scenarijus prideda savo numatytąjį maršrutą su kita metrika ir tyliai laimi arba pralaimi priklausomai nuo laiko. Nuspręskite, kurie įrašai susieti su ryšiu, kurie yra nuolatinė politika ir kuris komponentas juos atnaujina po prisijungimo iš naujo. Tada laikykite kitus komponentus už tos lentelės ribų.

Politikos taisyklės nusipelno tokio pat aiškumo, nes taisyklė, rodanti į lentelę, kurios niekas nepildo, sukuria juodąją skylę, kuri atrodo lygiai kaip miręs tunelis. Jei taisyklė egzistuoja, kad kur nors stumtų srautą, lentelę, kurią ji pasirenka, turi prižiūrėti tas pats savininkas.

DNS visada yra atskiras savininkas

Resolverio demonas veikia kaip savas procesas savo tapatybės pagrindu, todėl jis netyčia nepaveldi tunelio maršrutizavimo sprendimų. Kai VPN stumia DNS serverius, kažkas turi tai išversti į kiekvienos jungties konfigūraciją, kurią resolveris gerbia, o kažkas turi tai pašalinti po to.

Mitas čia yra tas, kad vardų serverio įrašymas į profilį pakeičia, kur keliauja užklausos. Tai pakeičia, kas sakoma resolveriui, o ne tai, kurį lizdą resolveris naudoja į viršų. Išbandykite užklausa ir maršruto paieška, o ne pasitikėdami failu.

Užkardos būsena ir kas ją atkuria

Užkardos taisyklės yra dažniausiai perrašomas objektas VPN hoste. Valdyklė gali pridėti NAT arba persiuntimo taisykles kiekvienam ryšiui, o užkardos tarnyba paleidimo metu iš naujo įkelia išsaugotą taisyklių rinkinį ir jas ištrina. Pasirinkite vieną instituciją politikai ir padarykite kitą jos vartotoja, arba priimkite, kad paleidimas iš naujo tyliai pakeičia elgesį. Su ryšiu susietos išimtys priklauso failui, kurį įkelia tas pats savininkas, o ne iptables komandai, įvestai sprendžiant problemas.

Jei taisyklės turi išgyventi prisijungimą iš naujo, pasakykite tai aiškiai. Jei ne, pasakykite ir tai, nes kitas inžinierius laikysis patogesnio atsakymo.

Gyvavimo ciklas: paleidimas, prisijungimas iš naujo, išardymas

Suteikite savininką kiekvienam iš tų trijų momentų. Paleidimo metu nuspręskite, kas paruošia prielaidas ir kokia tvarka. Švelnaus paleidimo iš naujo metu atminkite, kad įrenginys gali išgyventi, o sesijos būsena ne, todėl turi veikti tikrintojas, o ne kūrėjas. Išardymo metu pašalinkite tik tai, ką sukūrė šis ryšys, nes visų maršrutų atstatymas ar visos užkardos išvalymas nėra tas pats, kas vieno tunelio išėmimas iš tarnybos.

Stebėjimui ip monitor link address route rodo branduolio pokyčius jiems vykstant, bet jis praneša apie įvykius, o ne ketinimą: ištrintas maršrutas nieko nesako apie tai, kuris procesas jį ištrino. Suderinkite jį su nuosavybės žemėlapiu, ir painus išjungimas taps trumpu kandidatų sąrašu.

Išimtys taip pat turi kainą. Visos įrenginių klasės žymėjimas nevaldoma, siekiant išvengti konflikto, perduoda tą būseną niekam, o tai yra sprendimas, o ne pataisa.

Susiję straipsniai