Dva odjemalca OpenVPN na eni prehodni točki Linux: razdelite politiko
Oba predora se lahko dvigneta, medtem ko vsak odjemalec uporablja enega. Odločite se po izvoru, vsaki skupini dajte svojo tabelo, nato dovolite in prevedite na izbrani napravi.
Dva OpenVPN demona lahko oba poročata o uspešnem predoru, medtem ko prehodna točka vsakega odjemalca pošilja skozi istega. Nič v rokovanju ne odloči, kateri predor odjemalec uporablja; to odloči jedro, paket za paketom, z prehodom skozi pravila politike in nato tabelo, ki jo vsako pravilo imenuje. Če gledate tako, konfiguracija neha biti o možnostih OpenVPN in postane usmerjevalna matrika z dvema lastnikoma.
Odloča jedro, ne demon
Posredovani paket prispe na vmesnik LAN in usmerjevalna koda oceni seznam pravil po vrstnem redu prioritete. Prvo pravilo, katerega selektor se ujema, imenuje tabelo, in poti te tabele izberejo izhodno napravo. Če tabela nima ustrezne poti, iskanje nadaljuje pri naslednjem pravilu, in prav ta podrobnost povzroči, da nedokončana nastavitev odpove tiho, ne glasno.
Proces predora pri tem prehodu nima besede. Ustvari vmesnik in lahko namesti poti, a ali paket določenega odjemalca vstopi v ta vmesnik, je popolnoma odvisno od tabele, v katero je bil poslan. Zato dva predora z enakimi uvoženimi potmi tekmujeta, in zadnji, ki piše, zmaga za vse. Zato je lahko nastavitev v konfiguracijskih datotekah videti uravnotežena in vseeno pošilja vse odjemalce skozi enega demona.
Vsaki instanci dajte svoj nabor virov
Začnite z imeni, ker so ponovno uporabljena imena pot, po kateri začneta dve instanci po naključju deliti stanje. Dodelite ločene naprave predora, ločene konfiguracijske datoteke, ločene poverilnice in ločene storitvene enote. Zapišite zunanjo končno točko in naslov predora vsake instance v isto tabelo kot matriko politike, da bo imela poznejša sprememba eno mesto za pogled.
dev tun-office
route-nopull
pull-filter ignore "redirect-gateway"
dev tun-lab
route-nopull
route-nopull drži poti, ki jih potiska strežnik, zunaj lokalne tabele, in to je točno tisto, kar želite, ko naj bi bile tabele politike izrecne. Ali določen strežnik potiska tudi možnost redirect-gateway in ali vaša različica odjemalca podpira obliko s filtrom, je vredno preveriti v priročniku, namesto domnevati.
Napišite matriko: izvor, tabela, naprava
Za vsako skupino odjemalcev dodajte pravilo, ki izbere tabelo po naslovu izvora, nato v to tabelo vstavite predvideno pot:
ip rule add from 10.8.1.0/24 lookup 100 priority 1000
ip rule add from 10.9.1.0/24 lookup 200 priority 1000
ip route add default dev tun-office table 100
ip route add default dev tun-lab table 200
Tabela potrebuje ciljne poti, ki naj bi jih skupina imela, plus vse lokalne ali upravne izjeme, ki ohranjajo prehodno točko uporabno. Tabela, ki vsebuje samo privzeto pot, je politika polnega predora za to skupino, kar je lahko povsem pravilno, a bi moralo biti odločitev in ne izpustitev.
Lastni promet predora ni v skupini odjemalcev
Šifrirani paketi vsakega demona nastanejo na sami prehodni točki in so naslovljeni na zunanjega partnerja. Pravilo, ki se ujema le s predpono izvora odjemalca, te pakete pusti pri miru, zato so pravila, omejena na izvor, varnejša od pravil, ki se ujemajo z vsem. Pravilo brez selektorja lahko ujame lastni promet predora in ga pošlje nazaj skozi predor, nato pa povezava odpove tako, da je videti kot težava ponudnika.
Lokalno upravno sejo in pot spodnjega sloja imejte izrecno zunaj tabel politike. Te izjeme zapišite ob matriki; so del zasnove in ne obhod, ki bi ga bilo treba med incidentom znova odkriti.
Izbira poti je ne dovoljuje
Dovoljenje za posredovanje je druga odločitev, sprejeta pozneje na poti. Pravilo požarnega zidu, ki sprejema pakete, ki odhajajo skozi drugi predor, ne prisili usmerjevalne kode, da bi ga izbrala, in pravilna tabela ne daje dovoljenja za posredovanje. Oba morata obstajati, in preizkus, ki dokaže samo enega, vas bo glede drugega zavedel. Ko ena skupina deluje in druga ne, preverite ta dva koraka ločeno, namesto da prepišete tabele.
Prevajanje izvora je tretja odločitev in bi moralo biti omejeno na izvorno skupino in napravo predora, ki ga resnično nosi. Dodajte namensko verigo za obe instanci, namesto da spraznite verigo postrouting, ker imajo lahko nepovezane storitve tam vnose in praznjenje jih tiho odstrani.
Kaj se zgodi, ko pade en predor
Vedenje ob napaki določite vnaprej. Ko tabela predora izgubi svojo pot, iskanje pade na naslednje pravilo in promet skupine se nadaljuje skozi drugi predor ali običajno vzponsko povezavo brez kakršne koli napake. Če to ni sprejemljivo, dodajte zaključno pravilo z nižjo številko prioritete, ki za ta izvor vrne nedosegljiv rezultat, da bo izguba vidna, namesto da bi bila absorbirana.
Pošljite novo zahtevo iz vsake izvorne skupine in zabeležite štiri dejstva: izbrano tabelo, izhodno napravo, prevedeni izvor in ali se je odgovor vrnil po isti poti. Nato spustite en predor in ponovite. Dve napravi TUN na seznamu vmesnikov dokazujeta, da sta se zagnala oba demona; ne povesta nič o tem, katero je uporabil določen odjemalec. Druga izvedba, z enim predorom manj, je tista, ki pokaže, ali vaše rezervno pravilo dela to, kar ste nameravali.