route-gateway ni redirect-gateway: kaj se v resnici spremeni
Ta možnost routam, ki jih namesti OpenVPN, le doda naslednji skok. Njena odstranitev ne izklopi potisnjenega polnega tunela, popravek pa spada k preusmeritvi.
Vaš tunel se dvigne, zasebno podomrežje odgovori in običajno brskanje še vedno izgine v VPN, čeprav je nekdo izbrisal vrstico prehoda iz profila. Ta kombinacija je odtis napačne direktive, ki je bila urejena. Odstranjeno je odjemalcu dajalo naslednji skok za rute, ki jih namesti; tisto, kar je še naprej lovilo promet, je prišlo od drugod in ga je potisnil strežnik. Pokritost in naslednji skok sta ločeni nalogi, in le ena od njiju odloči, ali javne destinacije uporabljajo tunel.
Vrstica, ki ste jo odstranili, je bila naslednji skok, ne stikalo politike
Vsaka ruta, ki jo odjemalec namesti, potrebuje naslov prehoda, na katerega naj kaže, in direktiva prehoda je vir tega naslova, ko ruta sama ne navede nobenega. Izbrišite jo in te rute se nimajo kam pritrditi, zato se bodisi ne namestijo bodisi pristanejo na poti, ki ne vodi nikamor. Zasebno podomrežje je natanko to, kar je taka ruta prenašala.
Medtem ima preživelo vedenje drugega avtorja: možnost preusmeritve v potisnjenem bloku, ki premakne običajen odhodni promet v tunel skladno s svojimi zastavicami. Odstranitev prehoda je ne izklopi in ne oslabi. Rezultat je najslabše od obeh stanj: javni promet je še vedno ujet, zasebna destinacija, ki je upravičevala tunel, pa je zdaj nedosegljiva. Zato tudi drugo urejanje, narejeno v istem duhu, ne spremeni ničesar.
Štiri vzvodi, štiri različne naloge
V tej razpravi se štiri direktive citirajo izmenično, in le ena od njih upravlja pokritost, torej katere destinacije sploh gredo skozi tunel. Druga nastavi naslednji skok, ki ga uporabljajo rute, tretja namesti eno predpono, četrta pa zavrže vse, kar je strežnik potisnil, vključno z zasebnimi rutami, ki jih namestitev potrebuje. Tabela jih razvrsti po tem, kaj želi skrbnik spremeniti, in ne po imenu, ker prav imena povzročajo zmedo. Obravnavajte jih kot štiri ločene odločitve in izberite tisto, ki jo res želite razveljaviti.
V praksi vse štiri pogosto pridejo v enem potisnjenem bloku, vrstica za vrstico, zaradi česar so videti kot deli ene nastavitve. Niso, in referenca OpenVPN jih ravno zato dokumentira kot različne mehanizme. Ugotoviti, katero odločitev razveljavljate, je delo; urejanje je ena vrstica.
| What you are trying to change | Directive that decides it | What it leaves alone |
|---|---|---|
| Which destinations use the tunnel | redirect-gateway | Per-prefix routes and resolver choice |
| The next hop a pushed route points at | route-gateway | Coverage of public destinations |
| One reachable prefix | route | Every other destination, default path included |
| All pushed routing and DNS at once | route-nopull | Nothing, which is the problem |
Filtrirajte potisnjeno vrstico, obdržite naslednji skok
Če pokritost, ki ji nasprotujete, pride kot potisnjena možnost, je ozek odgovor ta, da to možnost po imenu prezrete in preostanek potisnjenega bloka pustite nedotaknjen. Zapisano kot filter je videti kot vrstica spodaj, in spada v profil prizadetega odjemalca, ne v konfiguracijo strežnika.
pull-filter ignore "redirect-gateway"
Ozkost je bistvo. Ker filter primerja besedilno predpono, krajši vzorec ustreza tudi direktivi naslednjega skoka, kar odstrani natanko tisto informacijo, od katere so odvisne zasebne rute, in ponovi prvotno napako v novi preobleki. Filter deluje tudi le na potisnjene možnosti, zato se nikoli ne dotakne enakovredne vrstice, napisane lokalno ali vsiljene s strani upravljalnika omrežja. Nato se znova povežite, ker živa seja ne ovrednoti znova tega, kar je potisnil strežnik.
Berite iskanje, ne tabele
Po ponovnem nalaganju profila vprašajte jedro, kam bi dve destinaciji v resnici šli: ena znotraj zasebne predpone in ena na javnem internetu. Celoten izpis glavne tabele je težje brati in lažje napačno prebrati, ker lahko ruta obstaja in vseeno izgubi proti bolj specifičnemu ujemanju. Pri usmerjanju po pravilih so v preverjanje vključeni tudi pravilo, tabela in izvorni naslov.
ip route get 10.40.7.25
ip route get 203.0.113.77
ip rule show
Različica def1 si zasluži poznavanje, ker pusti stari privzeti vnos viden, medtem ko par pol-privzetih zmaga pri iskanju. Vrstica 0.0.0.0/0 v izhodu torej sama po sebi ničesar ne dokazuje. Iskanje odgovori na vprašanje, na katero seznam le navidezno odgovarja.
DNS, IPv6 in zasebna ruta morajo še vedno delovati
Zavrnitev ene preusmeritve IPv4 ne pove ničesar o razreševalniku, zato lahko potisnjena možnost DNS še naprej pošilja poizvedbe v tunel, medtem ko so rute videti pravilne. Privzeto IPv6 lahko stori isto za družino naslovov, ki se je preverjanje IPv4 ni nikoli dotaknilo. Oboje potrebuje izrecno odločitev namesto predpostavke. Nato potrdite, da zasebna storitev še vedno odgovarja, ker razdeljeni tunel, ki je izgubil svojo zasebno ruto, ni razdeljeni tunel, ampak pokvarjen.
Eno širše orodje si zasluži opozorilo: route-nopull zavrže vsako potisnjeno ruto in vsako potisnjeno možnost DNS, kar zagotovo ustavi polni tunel in prav tako zagotovo zlomi zasebne rute, od katerih je odvisna namestitev, zato je veliko večje kladivo kot imenski filter, usmerjen v eno možnost. Po vsaki spremembi preverite zasebno destinacijo, javno destinacijo in razreševalnik, dokončan rokovanje pa imejte za dokaz ničesar razen rokovanja.