Tri privatne LAN mreže mogu se sresti na jednom čvorištu bez toga da bilo koja lokacija mora poznavati unutrašnju strukturu ostalih, i ceo dizajn počiva na četiri kratke konfiguracione odluke. Ono što ga čini funkcionalnim nije egzotična funkcija protokola, već plan adresa koji niko ne mora da pogađa, uz rute po klijentu koje govore čvorištu koja podružnica poseduje koji prefiks. Ako je bilo šta od toga pogrešno, tunel se ipak podiže, i upravo to čini otkaz zbunjujućim.

Prođite kroz korake po redu. Svaki zavisi od plana iz prethodnog koraka, i nijedan ne zahteva novo sertifikaciono telo.

Počnite planom koji niko ne mora da pogađa

Zapišite četiri nepoklopljena prefiksa pre nego što dodirnete konfiguracionu datoteku: LAN samo čvorišta, LAN svake podružnice i pool koji se dodeljuje klijentima u pokretu. Nepoklapanje je ono što sve ostalo drži jednostavnim, jer preklopljeni opsezi pretvaraju rutiranje u zagonetku najdužeg poklapanja koju nijedna konfiguracija po klijentu ne popravlja. Zatim potvrdite koja mašina je podrazumevani gejtvej za svaku LAN mrežu, jer ruter podružnice koji nije gejtvej sopstvene LAN mreže mora da instalira udaljene rute na sasvim drugom mestu. Na kraju, utvrdite autentifikovana imena koja identifikuju svaku podružnicu, jer su ta imena ključevi po kojima se traže datoteke po klijentu.

Ilustrativni plan drži pool daleko od tri LAN mreže. Vaš će biti drugačiji, i jedino strogo pravilo je da se nijedna dva opsega 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/24

Recite kernelu čvorišta gde su podružnice

Čvorištu su potrebne dve informacije po podružnici: kernel ruta koja šalje prefiks u tunelski uređaj i iroute stavka koja govori OpenVPN procesu koji klijent je poseduje. Sama kernel ruta isporučuje pakete u tunel i tu se zaustavlja, jer daemon još mora da odluči koji peer treba da ih primi. Sama iroute stavka ostavlja te pakete u kernelu bez rute koju bi sledili. Oba reda pripadaju konfiguraciji koju daemon zaista učitava, i to vredi proveriti pre nego što otklanjate bilo šta 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.0

Držite client-to-client isključenim kada kernel treba da bude tačka sprovođenja pravila. Ta opcija prenosi saobraćaj između peer-ova unutar daemona, što je zgodno i takođe znači da vaša pravila prosleđivanja nikada ne vide tok. Sve u nastavku pretpostavlja da kernel vidi svaki paket između podružnica.

Dajte svakoj podružnici rute koje su joj potrebne

Svakoj podružnici su potrebne rute do ostalih podružnica i do LAN mreže čvorišta, a ruta do sopstvene povezane LAN mreže joj nije potrebna. Gurajte udaljene prefikse sa čvorišta umesto da ih lepite u svaki ruter, tako da četvrta lokacija kasnije znači jednu novu datoteku po klijentu umesto četiri izmene. Datoteka po klijentu nosi i red iroute, koji drži vlasništvo i oglašavanje na istom mestu. Učinite direktorijum i njegove datoteke čitljivim prema modelu privilegija servera, inače pretraga ne uspeva 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"

Četvrta lokacija prati isti obrazac: zasebno autentifikovano ime, posedovani prefiks, kernel ruta na čvorištu, iroute stavka i oglašavanja samo lokacijama kojima je dozvoljeno da je dosegnu.

Testirajte u oba smera pre nego što kažete da je gotovo

Uključite IPv4 prosleđivanje na sva tri rutera, zatim potvrdite da firewall dozvoljava predviđene tokove u oba smera, jer jednosmerni test prolazi sa pokvarenim povratnim putem češće nego što iko očekuje. Između lokacija nije potrebno prevođenje izvorne adrese, i upravo očuvanje originalnog izvora omogućava svakoj podružnici da primeni sopstvenu politiku na zahtev.

Testirajte sa hosta na LAN mreži jedne podružnice do servisa na drugoj, zatim okrenite smer, pa testirajte iz podružnice do LAN mreže čvorišta. Ta tri rezultata su različiti dokazi, i nijedan ne podrazumeva ostale. Ako ruter podružnice nije podrazumevani gejtvej njegove LAN mreže, instalirajte udaljene prefikse na pravom gejtveju i uključite i pool kada tunelski klijenti moraju da započnu veze u tu LAN mrežu.

Zabeležite plan, datoteke po klijentu i firewall pravila kao jedan dokument, jer će sledeće dodavanje lokacije biti ocenjeno prema njima.

Dizajn se drži zajedno jer svaki sloj ima jedan zadatak: plan održava prefikse jedinstvenim, kernel ruta premešta pakete, iroute imenuje vlasnika, a firewall odlučuje šta je dozvoljeno. Kada se nešto pokvari, taj spisak je i redosled za proveru.

Povezani članci