Dva OpenVPN demona mogu oba prijaviti uspješan tunel dok pristupnik svakog klijenta šalje kroz isti. Ništa u rukovanju ne odlučuje koji tunel klijent koristi; to odlučuje jezgra, paket po paket, prolazeći kroz pravila politike i zatim kroz tablicu koju svako pravilo imenuje. Kad se na to tako gleda, konfiguracija prestaje biti o OpenVPN opcijama i postaje matrica usmjeravanja s dva vlasnika.

Jezgra odlučuje, ne demon

Proslijeđeni paket stiže na LAN sučelje i kod za usmjeravanje ocjenjuje popis pravila po redu prioriteta. Prvo pravilo čiji se birač podudara imenuje tablicu, a rute te tablice biraju izlazni uređaj. Ako tablica nema odgovarajuću rutu, pretraga se nastavlja na sljedeće pravilo, i upravo taj detalj čini da nedovršena postava zataji tiho, a ne glasno.

Proces tunela nema riječi u tom prolasku. On stvara sučelje i može instalirati rute, ali ulazi li paket određenog klijenta u to sučelje, ovisi posve o tablici u koju je poslan. Zato se dva tunela s jednakim uvezenim rutama natječu, a posljednji koji piše pobjeđuje za sve. Zato postava može u konfiguracijskim datotekama izgledati uravnoteženo, a ipak slati sve klijente kroz jedan demon.

Dajte svakoj instanci vlastiti skup resursa

Počnite s imenima, jer ponovno rabljena imena put su kojim dvije instance slučajno počnu dijeliti stanje. Dodijelite različite tunelske uređaje, različite konfiguracijske datoteke, različite vjerodajnice i različite servisne jedinice. Zabilježite vanjsku završnu točku i tunelsku adresu svake instance u istu tablicu kao i matricu politike, da kasnija promjena ima jedno mjesto za pogledati.

dev tun-office
route-nopull
pull-filter ignore "redirect-gateway"

dev tun-lab
route-nopull

route-nopull drži rute koje poslužitelj gura izvan lokalne tablice, što je upravo ono što želite kad tablice politike trebaju biti izričite. Vrijedi u priručniku provjeriti, umjesto pretpostaviti, gura li određeni poslužitelj i opciju redirect-gateway i podržava li vaša verzija klijenta oblik s filtrom.

Napišite matricu: izvor, tablica, uređaj

Za svaku skupinu klijenata dodajte pravilo koje bira tablicu prema adresi izvora, a zatim stavite željeni put u tu tablicu:

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

Tablica treba rute do odredišta koje skupina treba imati, plus sve lokalne ili upravljačke iznimke koje pristupnik drže upotrebljivim. Tablica koja sadrži samo zadanu rutu politika je punog tunela za tu skupinu, što može biti točno pravo, ali to bi trebala biti odluka, a ne propust.

Vlastiti prijevoz tunela nije u skupini klijenata

Šifrirani paketi svakog demona nastaju na samom pristupniku, upućeni vanjskom paru. Pravilo koje se podudara samo s prefiksom izvora klijenta ostavlja te pakete na miru, zato su pravila ograničena na izvor sigurnija od pravila koja se podudaraju sa svime. Pravilo bez birača može uhvatiti vlastiti prijevoz tunela i poslati ga natrag kroz tunel, a veza tada zataji na način koji izgleda kao problem pružatelja.

Držite lokalnu upravljačku sesiju i put donjeg sloja izričito izvan tablica politike. Zapišite te iznimke uz matricu; one su dio dizajna, a ne zaobilazno rješenje koje treba ponovno otkriti tijekom incidenta.

Odabir puta ne daje dopuštenje

Dopuštenje za prosljeđivanje druga je odluka donesena kasnije na putu. Vatrozidno pravilo koje prihvaća pakete koji izlaze kroz drugi tunel ne čini da ih kod za usmjeravanje odabere, a ispravna tablica ne daje dopuštenje za prosljeđivanje. Oboje mora postojati, a test koji dokazuje samo jedno zavest će vas o drugome. Kad jedna skupina radi, a druga ne, provjerite ta dva koraka odvojeno umjesto da prepisujete tablice.

Prevođenje izvora treća je odluka i treba biti ograničeno na skupinu izvora i tunelski uređaj koji ga doista nosi. Dodajte namjenski lanac za dvije instance umjesto da praznite lanac postrouting, jer nepovezane usluge mogu ondje imati unose, a pražnjenje ih tiho uklanja.

Što se događa kad jedan tunel padne

Odluku o ponašanju pri kvaru donesite unaprijed. Kad tunelska tablica izgubi rutu, pretraga pada na sljedeće pravilo i promet skupine nastavlja kroz drugi tunel ili običnu uzlaznu vezu bez ikakve pogreške. Ako to nije prihvatljivo, dodajte završno pravilo s nižim brojem prioriteta koje za taj izvor vraća nedostupni rezultat, da gubitak bude vidljiv umjesto upijen.

Pošaljite svjež zahtjev iz svake skupine izvora i zabilježite četiri činjenice: odabranu tablicu, izlazni uređaj, prevedeni izvor i je li se odgovor vratio istim putem. Zatim spustite jedan tunel i ponovite. Dva TUN uređaja na popisu sučelja dokazuju da su oba demona pokrenuta; ne kazuju ništa o tome koji je određeni klijent rabio. Drugi prolaz, s jednim tunelom manje, onaj je koji pokazuje radi li vaše rezervno pravilo ono što ste namjeravali.

Povezani članci