Vaša stara privzeta pot po OpenVPN namerno ostane
Dve poti /1 presežeta privzeto pot, ne da bi jo zamenjali. Preverite, katero pot cilj v resnici uporabi, nato pa pustite staro prehodno točko na mestu.
Povežete tunel, zaženete ip route in izvorna privzeta prehodna točka je še vedno tam. Naslednja misel je, da odjemalec ni prevzel poti, zato privzeto pot ročno izbrišete in popolnoma izgubite povezljivost. Ta vnos bi moral ostati. Z redirect-gateway def1 OpenVPN namesti dve natančnejši poti, ki presežeta običajno privzeto pot, namesto da bi jo zamenjali. Stara prehodna točka ostane in preneha prenašati promet, ki ste ga preizkušali.
Kaj def1 v resnici naredi
Zastavica doda 0.0.0.0/1 in 128.0.0.0/1, obe kažeta proti tunelu. 0.0.0.0/1 zajame vsak naslov, katerega prvi oktet je od 0 do 127, in 128.0.0.0/1 od 128 do 255, zato ima vsak cilj IPv4 bolj natančno ujemanje od stare privzete poti. Katera pot zmaga, odloči dolžina predpone, ne metrika.
Pustiti izvorno privzeto pot na mestu je namerno. Odjemalec si ni treba zapomniti, kaj je zamenjal, in ne prepiše poti, ki nosi njegovo lastno povezavo s strežnikom VPN. Ob odklopu odstrani dve polovični poti in tabela se vrne v prejšnje stanje.
Zakaj /1 in ne /0
Usmerjanje izbere najdaljšo ujemajočo predpono, ne najnižje metrike, zato /1 premaga /0 ne glede na to, kaj pravi metrika privzete poti. Obe polovici obstajata zato, ker ena /1 pokrije le polovico prostora; ko je prisotna le 0.0.0.0/1, vse od 128.0.0.0 navzgor še vedno sledi stari privzeti poti, kar daje zavajajočo simptomatiko: nekatere strani delujejo, druge ne.
Zvišanje ali znižanje metrike stare privzete poti ne spremeni ničesar, tudi privzeta pot z nižjo metriko na drugem vmesniku ne ukrade prometa. Najprej odloči dolžina predpone in le enake predpone se zatečejo k metrike.
Preberite resnično usmerjevalno tabelo
Povezan gostitelj lahko pokaže vse tri vnose hkrati, pri čemer tunel nosi polovici, izvorna prehodna točka pa je še vedno na seznamu. Naslovi so primeri in ne konfiguracija za kopiranje, ker se imena vmesnikov, topologija tunela in dodatne poti razlikujejo glede na platformo in odjemalca.
default via 192.168.50.1 dev wlan0
0.0.0.0/1 via 10.8.0.1 dev tun0
128.0.0.0/1 via 10.8.0.1 dev tun0Pomembno je razmerje: dve konkretni polovici nad eno splošno privzeto potjo. Vrstica stare prehodne točke ostane, ker je ni nič zamenjalo.
Preverite, katero pot paket v resnici uporabi
Natančnejše poti lahko še vedno zmagajo: pot za zasebni obseg, lokalno podomrežje ali lastni naslov strežnika VPN je daljši od /1. Tunel potrebuje zunanjo pot do svojega strežnika, in pošiljanje te povezave nazaj v tunel bi jo takoj zlomilo. V Linuxu vprašajte jedro, namesto da bi tabelo brali na oko: ip route get s ciljem, ki vas zanima, izpiše izbrano pot, vmesnik in vir. Če je nastavljeno usmerjanje po pravilnikih, preglejte tudi pravila, ker lahko pravilo izbere drugo tabelo, preden se upošteva glavna.
Če se nepravilno obnaša le del IPv4, potrdite, da sta nameščeni obe polovici, in nato poiščite izjemo, ki ustreza cilju, ki ne uspe. Brisanje stare privzete poti ni rešitev in odstrani pot, ki jo odjemalec potrebuje za čisto razstavljanje tunela.
Česa def1 ne pokrije
Dva vnosa IPv4 ne povedo ničesar o IPv6: gostitelj s povezljivostjo IPv6 še naprej uporablja svojo privzeto pot, dokler nekaj te družine ne preusmeri ločeno, zato se v dvoskladni mreži del prometa zdi, da obide tunel. Drugi odjemalci in upravitelji omrežja izvajajo usmerjanje celotnega tunela drugače in njihove tabele se ne bodo ujemale. Tukaj opisano vedenje def1 pripada dokumentirani zastavici OpenVPN, ne vsaki VPN na stroju.
Varnostno stikalo odgovori na drugo vprašanje: kaj stroj naredi, ko tunel pade. Prednost poti odloči, kam gre promet, dokler je tunel vzpostavljen; ne odloči, kaj zatem naredi požarni zid. Vrstni red dela: preberite tabelo, potrdite, da obstajata obe polovici, zaženite ip route get za cilj, ki ne uspe, preverite pravila pravilnikov in nato ločeno poglejte IPv6. Pustite staro privzeto pot tam, kjer je.