Jeden rozbočovač OpenVPN, tři sítě LAN: plán adres a soubory iroute
Čtyři oddělené prefixy, jedna trasa v jádru na větev, jeden iroute na vlastníka. Pracovní postup pro rozbočovač se třemi pracovišti, který při chybném jménu tiše selže.
Tři privátní sítě LAN se mohou sejít v jednom rozbočovači, aniž by kterékoli pracoviště poznalo vnitřek ostatních, a celý návrh stojí na čtyřech krátkých konfiguračních rozhodnutích. Funguje ne díky exotické vlastnosti protokolu, ale díky plánu adres, který nikdo nemusí hádat, a rutám pro jednotlivé klienty, které rozbočovači říkají, která větev vlastní který prefix. Pokazte cokoli z toho a tunel se přesto zvedne, což je právě to, co selhání činí matoucím.
Projděte kroky popořadě. Každý závisí na plánu z předchozího kroku a žádný nevyžaduje novou certifikační autoritu.
Začněte plánem, který nikdo nemusí hádat
Než se dotknete konfiguračního souboru, zapište čtyři nepřekrývající se prefixy: vlastní síť LAN rozbočovače, síť LAN každé větve a fond přidělovaný putujícím klientům. Nepřekrývání drží všechno ostatní jednoduché, protože překrývající se rozsahy mění směrování v hádanku nejdelší shody, kterou žádná konfigurace pro jednotlivé klienty nespraví. Potom ověřte, který stroj je výchozí bránou každé sítě LAN, protože směrovač větve, který není branou své sítě LAN, potřebuje vzdálené trasy nainstalované úplně jinde. Nakonec určete autentizovaná jména, která každou větev identifikují, protože podle těchto jmen se vyhledávají soubory pro jednotlivé klienty.
Ilustrativní plán drží fond dostatečně daleko od tří sítí LAN. Ten váš bude jiný a jediné tvrdé pravidlo je, že se žádné dva rozsahy nesmí překrývat.
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Řekněte jádru rozbočovače, kde jsou větve
Rozbočovač potřebuje pro každou větev dvě informace: trasu v jádru, která posílá prefix do tunelového zařízení, a iroute záznam, který OpenVPN procesu říká, který klient jej vlastní. Samotná trasa v jádru doručí pakety do tunelu a tam se zastaví, protože démon ještě musí rozhodnout, který protějšek je má dostat. Samotný iroute záznam nechá tyto pakety v jádru bez trasy, po níž by šly. Oba řádky patří do konfigurace, kterou démon skutečně načítá, což stojí za ověření dřív, než začnete ladit cokoli jiného.
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.0Vypněte klient-klient, když má být jádro místem vynucení. Tato volba přeposílá provoz mezi protějšky uvnitř démona, což je pohodlné a zároveň znamená, že vaše pravidla předávání tok nikdy nevidí. Vše níže předpokládá, že jádro vidí každý paket mezi větvemi.
Dejte každé větvi trasy, které potřebuje
Každá větev potřebuje trasy k ostatním větvím a k síti LAN rozbočovače a nepotřebuje trasu ke své vlastní připojené síti LAN. Posílejte vzdálené prefixy z rozbočovače, místo abyste je vkládali do každého směrovače, takže čtvrté pracoviště později znamená jeden nový soubor pro klienta místo čtyř úprav. Soubor pro jednotlivého klienta také nese řádek iroute, který drží vlastnictví i oznámení na jednom místě. Zpřístupněte adresář a jeho soubory ke čtení podle modelu oprávnění serveru, jinak vyhledání selže bez zprávy.
# /etc/openvpn/ccd/branch-a
iroute 172.21.0.0 255.255.255.0
push "route 172.22.0.0 255.255.255.0"Čtvrté pracoviště následuje stejný vzor: odlišné autentizované jméno, vlastněný prefix, trasa v jádru rozbočovače, iroute záznam a oznámení jen pracovištím, kterým je dovoleno se k němu dostat.
Otestujte oba směry, než to prohlásíte za hotové
Zapněte předávání IPv4 na všech třech směrovačích a potom ověřte, že firewall povoluje zamýšlené toky v obou směrech, protože jednosměrný test projde s rozbitou zpáteční cestou častěji, než kdokoli čeká. Mezi pracovišti není potřeba překlad zdroje a právě zachování původního zdroje umožňuje každé větvi uplatnit na požadavek vlastní politiku.
Otestujte z hostitele v síti LAN jedné větve ke službě v jiné, potom směr obraťte a pak testujte z větve do sítě LAN rozbočovače. Tyto tři výsledky jsou různé důkazy a žádný z nich neimplikuje ostatní. Pokud směrovač větve není výchozí bránou její sítě LAN, nainstalujte vzdálené prefixy na skutečnou bránu a přidejte i fond, když tuneloví klienti mají zahajovat spojení do této sítě LAN.
Zapište plán, soubory pro jednotlivé klienty a pravidla firewallu jako jeden dokument, protože příští přidání pracoviště se bude posuzovat podle nich.
Návrh drží pohromadě, protože každá vrstva má jeden úkol: plán udržuje prefixy jedinečné, trasa v jádru přenáší pakety, iroute pojmenovává vlastníka a firewall rozhoduje, co je dovoleno. Když se něco pokazí, tento seznam je zároveň pořadím, v jakém to kontrolovat.