Jedno OpenVPN čvorište, tri LAN mreže: plan adresa i iroute datoteke
Četiri odvojena prefiksa, jedna ruta u jezgri po grani, jedan iroute po vlasniku. Radni redoslijed za čvorište s tri mjesta koje tiho zakaže kada je ime pogrešno.
Tri privatne LAN mreže mogu se sresti na jednom čvorištu, a da nijedno mjesto ne sazna unutrašnjost drugoga, i cijeli dizajn počiva na četiri kratke konfiguracijske odluke. Ono što ga čini funkcionalnim nije egzotična značajka protokola, nego plan adresa koji nitko ne mora pogađati, uz rute po klijentu koje čvorištu govore koja grana posjeduje koji prefiks. Pogriješite li bilo što od toga, tunel se ipak podiže, i upravo to kvar čini zbunjujućim.
Prođite korake po redu. Svaki ovisi o planu iz prethodnog koraka i nijedan ne zahtijeva novo tijelo za izdavanje certifikata.
Počnite s planom koji nitko ne mora pogađati
Zapišite četiri prefiksa koji se ne preklapaju prije nego dotaknete konfiguracijsku datoteku: vlastita LAN mreža čvorišta, LAN svake grane i skup koji se dodjeljuje pokretnim klijentima. Nepreklapanje je ono što sve ostalo drži jednostavnim, jer preklapajući rasponi pretvaraju usmjeravanje u zagonetku najduljeg podudaranja koju nijedna konfiguracija po klijentu ne popravlja. Zatim potvrdite koji je stroj zadani pristupnik za svaku LAN mrežu, jer usmjerivač grane koji nije pristupnik svoje LAN mreže treba udaljene rute instalirane posve drugdje. Naposljetku, odredite autentificirana imena koja identificiraju svaku granu, jer su ta imena ključevi po kojima se traže datoteke po klijentu.
Ilustrativni plan drži skup daleko od triju LAN mreža. Vaš će se razlikovati, a jedino tvrdo pravilo jest da se nijedna dva raspona ne preklapaju.
Hub LAN 172.20.0.0/24
Branch A LAN 172.21.0.0/24
Branch B LAN 172.22.0.0/24
VPN pool 10.77.0.0/24
identity branch-a owns 172.21.0.0/24
identity branch-b owns 172.22.0.0/24Recite jezgri čvorišta gdje su grane
Čvorište treba dvije informacije po grani: rutu u jezgri koja prefiks šalje u tunelski uređaj i iroute unos koji OpenVPN procesu kaže koji ga klijent posjeduje. Sama ruta u jezgri dostavlja pakete u tunel i tu se zaustavlja, jer demon još mora odlučiti koji ih peer treba primiti. Sam iroute unos ostavlja te pakete u jezgri bez rute kojom bi krenuli. Oba retka pripadaju konfiguraciji koju demon stvarno učitava, što vrijedi provjeriti prije nego počnete otklanjati bilo što drugo.
dev tun
topology subnet
server 10.77.0.0 255.255.255.0
disable-dco
route 172.21.0.0 255.255.255.0
push "route 172.20.0.0 255.255.255.0"
client-config-dir /etc/openvpn/ccd
route 172.22.0.0 255.255.255.0Isključite klijent-na-klijent kada jezgra treba biti točka provođenja. Ta opcija prenosi promet između peerova unutar demona, što je prikladno i znači da vaša pravila prosljeđivanja nikad ne vide tok. Sve u nastavku pretpostavlja da jezgra vidi svaki paket između grana.
Dajte svakoj grani rute koje joj trebaju
Svaka grana treba rute za ostale grane i za LAN mrežu čvorišta, a ne treba joj ruta za vlastitu povezanu LAN mrežu. Pošaljite udaljene prefikse s čvorišta umjesto da ih lijepite u svaki usmjerivač, tako da četvrto mjesto kasnije znači jednu novu datoteku po klijentu umjesto četiri izmjene. Datoteka po klijentu nosi i redak iroute, koji vlasništvo i oglašavanje drži na istom mjestu. Učinite direktorij i njegove datoteke čitljivima prema modelu privilegija poslužitelja, inače pretraga ne uspije bez poruke.
# /etc/openvpn/ccd/branch-a
iroute 172.21.0.0 255.255.255.0
push "route 172.22.0.0 255.255.255.0"Četvrto mjesto slijedi isti obrazac: zasebno autentificirano ime, posjedovani prefiks, ruta u jezgri čvorišta, iroute unos i oglašavanja samo onim mjestima kojima je dopušteno da ga dosegnu.
Testirajte u oba smjera prije nego što to proglasite gotovim
Omogućite IPv4 prosljeđivanje na sva tri usmjerivača, pa potvrdite da vatrozid dopušta predviđene tokove u oba smjera, jer jednosmjerni test prolazi s pokvarenim povratnim putem češće nego što itko očekuje. Između mjesta nije potreban prijevod izvora, a upravo očuvanje izvornog izvora dopušta svakoj grani da primijeni vlastitu politiku na zahtjev.
Testirajte s hosta na LAN mreži jedne grane prema usluzi na drugoj, zatim obrnite smjer, pa testirajte s grane prema LAN mreži čvorišta. Ta tri rezultata različiti su dokazi i nijedan ne podrazumijeva ostale. Ako usmjerivač grane nije zadani pristupnik njezine LAN mreže, instalirajte udaljene prefikse na pravi pristupnik i uključite i skup kada tunelski klijenti moraju započinjati veze prema toj LAN mreži.
Zapišite plan, datoteke po klijentu i pravila vatrozida kao jedan dokument, jer će se sljedeće dodavanje mjesta ocjenjivati prema njima.
Dizajn drži zajedno jer svaki sloj ima jedan posao: plan čuva prefikse jedinstvenima, ruta u jezgri pomiče pakete, iroute imenuje vlasnika, a vatrozid odlučuje što je dopušteno. Kada se nešto pokvari, taj popis je i redoslijed provjere.