Dva OpenVPN klijenta na jednom Linux hostu: ko posjeduje rutu?
Dva klijenta mogu dijeliti host ako svaki prefiks ima vlasnika. Prođite svrhu, poolove, imenovanje instanci i test zaustavljanja po tunelu, tim redom.
Oba profila prijavljuju vezu, a jedan od njih tiho prenosi saobraćaj namijenjen drugome. Dva klijenta na jednom hostu je podržan raspored; dva klijenta bez vlasnika za svaki prefiks nisu. Posao je manje u podizanju drugog tunela, a više u odluci koji proces smije tražiti koju rutu. Prođite redom ispod i konfiguracija slijedi iz odgovora.
Počnite pitanjem čemu služi drugi tunel
Tri situacije izgledaju isto na statusnoj liniji i traže različite dizajne. Podjela po odredištima šalje jedan prefiks kroz uredski profil, a drugi kroz laboratorijski, pri čemu nijedan ne traži zadanu rutu. Podjela po aplikacijama obično drži jedan pun tunel i usmjerava određeni saobraćaj pravilima politike. Prebacivanje na rezervu drži uključen tačno jedan tunel u datom trenutku, što znači da drugi ne smije startati automatski.
Zapišite slučaj prije otvaranja bilo koje konfiguracijske datoteke, jer taj odgovor određuje sve poslije njega.
Najčešći pokvareni raspored su dva puna tunela koja su oba gurnula zadanu rutu, gdje pobjeđuje onaj koji se posljednji spojio, a prvi se nastavlja pretvarati. To stanje izgleda namjerno sa statusne linije i troši jedan dan iz tablice rutiranja. Ako slučaj imenujete prvi, on postaje nemoguć, a ne samo malo vjerojatan.
Pogledajte poolove prije ruta
Dva servera lako dijele adrese iz jednog privatnog raspona, a kad to učine, klijent završi s dva interfejsa unutar jednog prefiksa. Nijedno odredište se tada ne može pripisati interfejsu po adresi, jer oba izgledaju jednako ispravno. Prenumerirajte jedan pool umjesto da izmišljate pravilo za razbijanje neriješenog rezultata.
Provjerite i lokalnu mrežu, jer kućna ili uredska LAN koja se preklapa s rasponom tunela stvara istu dvosmislenost s druge strane. Uporedite adrese na hostu s obje serverske konfiguracije prije nego okrivite klijenta. Promjena poola na laboratorijskom serveru je petominutna popravka, dok je zaobilazno rješenje s rutiranjem po politici za preklapajući prefiks trajni porez za svakoga ko kasnije čita konfiguraciju. Odlučite šta od toga želite prije nego odaberete gdje ćete intervenisati.
Dvije adresne familije znače dva kruga ove provjere. IPv6 poolovi se sudaraju jednako tiho kao IPv4.
Dajte svakom profilu vlasnika
Jedna instanca po profilu, jedna konfiguracijska datoteka po instanci i jedno ime koje identificira par. U Debian pakiranju ime poslije znaka @ bira datoteku, zbog čega dva profila koja dijele ime instance nikada ne mogu raditi zajedno. Potvrdite mapiranje iz instalirane jedinice, a ne iz tutorijala.
systemctl cat [email protected]
ip -4 addr showZatim odlučite ko instalira rute, što je pitanje politike, a ne sintakse.
Kada dva servera gurnu nekompatibilne skupove, ili dodajte route-nopull i navedite samo prefikse koji su svakom profilu potrebni, ili pustite jednom da zadrži zadanu rutu i usmjerite ostatak pravilom politike. Dva procesa koja oba instaliraju zadanu rutu završe s jednim pobjednikom i niko ne može reći zašto. Kad dva tunela nose saobraćaj za različite izvore, odgovor može izaći kroz pogrešan, a obrazac koji se drži je oznaka veze vraćena na odgovore i usmjerena u vlastitu tablicu. Ograničite oznake tako da vlastiti šifrirani paketi tunela nikada ne odgovaraju njima.
Provjerite po tunelu, zatim zaustavite jedan
Kad su oba gore, uzmite tri očitanja: adresu na svakom tunelskom uređaju, rutu do hosta koji živi iza svakog od njih i put koji bi odredište izvan oba zauzelo. Običan spisak ruta prestaje opisivati konačnu pretragu čim pravila uđu u igru, pa pitajte kernel šta bi zaista odabrao. Zatim zaustavite jednu instancu i gledajte šta nestaje. Ako zaustavljanje prve remeti drugu, nešto je još uvijek zajedničko među njima: ruta, ime uređaja ili firewall pravilo koje niko nije razdvojio.
ip rule show
ip route get 203.0.113.9Vratite zaustavljeni profil i ponovite iste provjere, jer tunel koji radi jednom poslije restarta i nikada više je bug u životnom ciklusu obučen u kostim rutiranja.
Zapišite u napomene za postavljanje koji profil posjeduje koji prefiks, pored raspona poolova. Dva tunela su namjeran raspored, a sljedeći čitalac mora vidjeti granicu prije nego dotakne bilo koji profil. Bez te napomene, granicu ponovo otkriva onaj ko je na dežurstvu kada zajednički prefiks konačno pukne.