Een LAN-Subnetz duerch OpenVPN leeden an d’Standardroute behalen
Behält d’LAN-Standardroute, während een Subnetz duerch den Tunnel fiert. Vergläicht eng Politiktabell mat Ännerungen un der Haapttabell a wielt duerno NAT oder eng Route op der Serversäit.
Maschinnen, déi fir en LAN routeren an zur selwechter Zäit eng VPN uwielen, kommen an déiselwecht Diskussioun mat sech selwer: den Tunnel wëll d’Standardroute besëtzen, an den LAN brauch se zeréck. Wann OpenVPN sech verbënnt, kann et eng Standardroute duerch den Tunnel oder e Paar hallef Standardrouten installéieren, wat richteg fir e Laptop an falsch fir en Gateway ass, deem seng Noperen Äntwerten aus senger LAN-Adress erwaarden. D’Äntwert ass net d’VPN ze iwwersprangen. D’Äntwert ass deenen zwou Entscheedungen verschidden Tabellen ze ginn.
Eng Standardroute, zwee Besëtzer
Weidergeleet Traffic a lokal entstanenen Traffic mussen net dee selwechte Wee goen. LAN-Clienten brauchen den Tunnel just fir d’Destinatiounen, déi Dir auswieelt, während d’Gestiounssessiounen vum Host selwer a seng Äntwerten un déi Clienten d’LAN-Standardroute brauchen. Béides an der Haapttabell ze mëschen zwingt eng eenzeg Äntwert op zwou verschidde Froen.
OpenVPN huet e Schalter genau dofir. route-noexec verhënnert, datt de Client d’Haapttabell iwwerhaapt beréiert, an d’Wäerter, déi en benotzt hätt, ginn an e route-up-Skript exportéiert als route_vpn_gateway, dev an d’Interface-Adressen. Duerno entscheet Dir, wéi eng Tabell wéi eng Route kritt, a Code, deen Dir spéider liese kënnt.
Politiktabell géint d’Haapttabell iwwerschreiwen
| Approach | What it buys | What it costs |
|---|---|---|
| Separate table plus source rule | LAN traffic and host traffic keep independent defaults | Every lookup now depends on rule order |
| Editing the main table only | Fewer moving parts on a single-purpose host | One mistake takes the gateway offline entirely |
| Two half-default routes | Works for a full-tunnel client | Ambiguous on a host that must answer on its LAN address |
Déi separat Tabell ass déi eenzeg Optioun, déi iwwer een Subnetz eraus skaléiert. Gëff hir eng Kéier en Numm a bezéi dech duerno um Numm, sou datt kee sech eng Zuel muss merken:
echo "10 vpn" >> /etc/iproute2/rt_tables
ip rule add from 192.168.50.0/24 table vpn
ip route add default via 10.8.0.1 dev tun0 table vpnD’Adressen hei sinn Ersatzwäerter. Ersetz de LAN-Präfix, de Gateway vum Tunnel an den Numm vum Apparat aus Ärem eegenen Deploiement, ier Dir eppes ausféiert.
D’Reegel muss och fir den Host passen
Eng Reegel, déi just mam LAN-Präfix iwwerenee kënnt, deckt weidergeleet Pakete of. Si deckt keen Traffic of, deen de Gateway selwer entstoe léisst, an och net d’Äntwerten, déi en zeréck un d’LAN-Cliente schéckt, déi d’LAN-Adress vum Gateway als Quell droen. Déi Lookups falen op main duerch a kënnen nach ëmmer duerch den Tunnel erausgoen.
Eedéi zweet Reegel fir d’eegen LAN-Adress vum Gateway bäi oder erweidert déi éischt Reegel op eng Rei, déi béides enthält. D’Reiefolleg ass wichteg: setzt déi méi spezifesch Reegel fir d’éischt a kontrolléiert d’Resultat mat engem Lookup, deen d’Quell ausdrécklech nennt.
ip route get 203.0.113.9 from 192.168.50.1Wann dat den Tunnelapparat fir eng Destinatioun mellt, déi lokal misst bleiwen, ass de Reegelsatz falsch, egal wat an der Tabell steet.
NAT oder eng Route op der anerer Säit
De VPN-Server kennt den Subnetz vum Tunnel an nach eppes anescht. Pakete mat enger LAN-Quelladress hunn keen Zeréckwee, ausser een assuréiert en, an et gëtt genau zwou Méiglechkeeten, dat ze maachen. Eng Route fir de LAN-Präfix um Server bäisetzen hält d’Originalquell vun engem Enn bis zum aneren ze gesinn, wat e gepréifte Design normalerweis wëll. D’Maskéierung um Gateway schreift d’Quell op d’Tunneladress ëm a brauch keng Zesummenaarbecht vum Server.
iptables -t nat -A POSTROUTING -s 192.168.50.0/24 -o tun0 -j MASQUERADEWielt NAT, wann Dir de Server net kontrolléiert an do keng Route kënnt bäisetzen. Wielt d’Route op der Serversäit, wann Logbicher, Zougangskontroll oder d’Symmetrie vum Zeréckwee wichteg sinn, well d’Maskéierung d’Originaladress aus allem läscht, wat déi aner Säit ophëlt.
Op jiddwer Fall muss d’Weiderleedung ageschalt sinn, an eng strikt ËmweeFilterung kann d’Äntwert fale loossen, wann main den Tunnel fir déi Quell net gewielt hätt. Kontrolléiert den effektive Wäert, ier Dir den Tunnel beschëllegt.
Loosst d’Opdeelung eng Reconnectioun iwwerstoen
Reegelen a Routen, déi vun Hand bäigesat goufen, verschwannen, wann d’Interface nei erstallt gëtt, an en alen Tabellentrag kann d’Sessioun iwwerliewe, déi en gerechtfertegt huet. Setzt d’Tabellreegel, d’Tunnelroute an den Maskéierungsentrag an de Skript route-up vum Client, a läscht d’Tabell uewen am Skript, sou datt en ale Gateway net an déi nei Sessioun iwwerliewe kann.
Verifizéiert vun deenen zwou Enden: eng Lookup um Gateway mat der LAN-Quell, an eng richteg Ufro vun engem LAN-Client un eng Destinatioun, déi duerch den Tunnel misst goen. Eng Route, déi existéiert awer ni gewielt gëtt, verhält sech genau wéi keng Route, bis Dir d’Zieler liest.