Kto vlastní adresu, trasu, DNS a firewall na Linux VPN?
Linux VPN potrebuje jednu autoritu pre každý objekt: zariadenie, adresu, trasy, DNS, firewall. Zapíšte túto mapu a potom určte, čo obnovujú štart, opätovné pripojenie a rozobratie.
Dva skripty, ktoré sa bijú o tú istú trasu, sú obvyklou podobou problému s Linux VPN, ktorý sa eviduje ako chyba smerovania. Jedna komponenta vytvorí tunelové zariadenie, druhá pridá predvolenú trasu, tretia prepíše konfiguráciu resolvera a štvrtá znovu načíta pravidlá firewallu. Ktorákoľvek z nich môže zrušiť prácu inej a víťazom je jednoducho tá, ktorá sa spustila posledná. Otázka, na ktorú sa oplatí odpovedať, nie je ktorý balík nainštalovať, ale ktorá komponenta je autoritatívna pre každú časť stavu.
Zapíšte tú mapu raz a väčšina zlyhaní pri opätovnom pripojení prestane byť záhadná. Dôležité sú štyri objekty: zariadenie a jeho adresy, trasy a pravidlá politiky, konfigurácia DNS a firewall.
Zariadenie a jeho adresy
Tunelové zariadenie vytvára buď správca, ktorý pozná profil, alebo démon, ktorého niekto spustil ručne. Obe usporiadania fungujú samostatne; ich miešanie nie. Ak profil vlastní NetworkManager, nech vlastní aj zariadenie, a nespúšťajte neriadený OpenVPN proces proti rovnakému názvu tunela.
Zaznamenajte, kto odstráni zariadenie, keď relácia skončí. Zariadenie, ktoré prežije svoju reláciu, je najčastejším zdrojom zastaraných adries a zmätku, ktorý po nich nasleduje.
Trasy a pravidlá politiky
Práve na trasách pôsobia konflikty vlastníctva viditeľné škody. Správca pripojenia nainštaluje predvolenú trasu pre tunel plus konkrétnejšiu trasu pre vzdialenú sieť; ručne napísaný skript potom pridá svoju vlastnú predvolenú trasu s inou metrikou a potichu vyhrá alebo prehrá podľa načasovania. Rozhodnite, ktoré položky sú viazané na pripojenie, ktoré sú trvalou politikou a ktorá komponenta ich po opätovnom pripojení obnoví. Potom držte ostatné komponenty mimo tejto tabuľky.
Pravidlá politiky si zaslúžia rovnakú jasnosť, pretože pravidlo ukazujúce na tabuľku, ktorú nikto nevypĺňa, vytvára čiernu dieru, ktorá vyzerá presne ako mŕtvy tunel. Ak pravidlo existuje preto, aby niekam dotlačilo prevádzku, tabuľku, ktorú vyberá, musí udržiavať ten istý vlastník.
DNS má vždy samostatného vlastníka
Démon resolvera beží ako vlastný proces pod vlastnou identitou, takže nededia smerovacie rozhodnutia tunela omylom. Keď VPN pretlačí servery DNS, niečo to musí preložiť do konfigurácie pre každé spojenie, ktorú resolver rešpektuje, a niečo to potom musí odobrať.
Mýtus tu je, že zápis menného servera do profilu mení, kam dotazy idú. Mení, čo sa resolveru povie, nie ktorý socket resolver používa smerom von. Testujte dotazom plus vyhľadaním trasy namiesto dôvery v súbor.
Stav firewallu a kto ho obnovuje
Pravidlá firewallu sú najčastejšie prepisovaným objektom na hostiteľovi VPN. Správca môže pridávať pravidlá NAT alebo presmerovania pre každé pripojenie, zatiaľ čo služba firewallu pri štarte znovu načíta uloženú sadu pravidiel a vymaže ich. Zvoľte jednu autoritu pre politiku a urobte z druhej jej spotrebiteľa, alebo prijmite, že reštart ticho mení správanie. Výnimky viazané na pripojenie patria do súboru, ktorý načíta ten istý vlastník, nie do príkazu iptables napísaného pri riešení problémov.
Ak pravidlá musia prežiť opätovné pripojenie, povedzte to výslovne. Ak nie, povedzte aj to, pretože ďalší inžinier bude predpokladať pohodlnejšiu odpoveď.
Životný cyklus: štart, opätovné pripojenie, rozobratie
Dajte vlastníka každému z tých troch okamihov. Pri štarte rozhodnite, čo pripravuje predpoklady a v akom poradí. Pri mäkkom reštarte si pamätajte, že zariadenie môže prežiť, zatiaľ čo stav relácie nie, takže musí bežať validátor, nie tvorca. Pri rozobratí odstráňte len to, čo vytvorilo toto pripojenie, pretože resetovanie všetkých trás alebo vyčistenie celého firewallu nie je to isté ako vyradenie jedného tunela.
Na pozorovanie ip monitor link address route ukazuje zmeny jadra, ako sa dejú, ale hlási udalosti, nie zámer: vymazaná trasa nič nehovorí o tom, ktorý proces ju vymazal. Spojte to s mapou vlastníctva a mätúce vypnutie sa zmení na krátky zoznam kandidátov.
Výnimky majú tiež svoju cenu. Označenie celej triedy zariadení ako neriadenej, aby ste unikli konfliktu, odovzdá tento stav nikomu, čo je rozhodnutie, nie oprava.