Dva OpenVPN klijenta na jednom Linux hostu: kome pripada ruta?
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 promet namijenjen drugome. Dva klijenta na jednom hostu podržan je 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 promet pravilima politike. Prebacivanje na rezervu drži uključen točno jedan tunel u danom 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 usmjeravanja. Ako slučaj imenujete prvi, on postaje nemoguć, a ne samo malo vjerojatan.
Pogledajte poolove prije ruta
Dva poslužitelja lako dijele adrese iz jednog privatnog raspona, a kad to učine, klijent završi s dva sučelja unutar jednog prefiksa. Nijedno odredište se tada ne može pripisati sučelju 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. Usporedite adrese na hostu s obje konfiguracije poslužitelja prije nego okrivite klijenta. Promjena poola na laboratorijskom poslužitelju je petominutna popravka, dok je zaobilazno rješenje s usmjeravanjem po politici za preklapajući prefiks trajni porez za svakoga tko kasnije čita konfiguraciju. Odlučite što od toga želite prije nego odaberete gdje ćete intervenirati.
Dvije adresne obitelji znače dva kruga ove provjere. IPv6 poolovi sudaraju se 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 tko instalira rute, što je pitanje politike, a ne sintakse.
Kada dva poslužitelja 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 nitko ne može reći zašto. Kad dva tunela nose promet 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 popis ruta prestaje opisivati konačnu pretragu čim pravila uđu u igru, pa pitajte kernel što bi zaista odabrao. Zatim zaustavite jednu instancu i gledajte što nestaje. Ako zaustavljanje prve remeti drugu, nešto je još uvijek zajedničko među njima: ruta, ime uređaja ili firewall pravilo koje nitko 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 usmjeravanja.
Zapišite u napomene za postavljanje koji profil posjeduje koji prefiks, pored raspona poolova. Dva tunela su namjeran raspored, a sljedeći čitatelj mora vidjeti granicu prije nego dotakne bilo koji profil. Bez te napomene, granicu ponovno otkriva onaj tko je na dežurstvu kada zajednički prefiks konačno pukne.