Stjoer ien LAN-subnet troch OpenVPN en hâld de standertrûte
Hâld de LAN-standertrûte wylst ien subnet troch de tunnel giet. Ferlykje in beliedstabel mei bewurkings fan de haadtabel, en kies dan NAT of in rûte oan de serverkant.
Kasten dy’t foar in LAN routearje en tagelyk in VPN skilje, bedarje yn deselde diskusje mei harsels: de tunnel wol de standertrûte besitte, en it LAN hat dy werom nedich. As OpenVPN ferbynt, kin it in standertrûte troch de tunnel ynstallearje of in pear heal-standertrûtes, wat goed is foar in laptop en ferkeard foar in poarte waans buorlju antwurden fan har LAN-adres ferwachtsje. It antwurd is net de VPN oerslaan. It antwurd is de beide besluten ferskate tabellen jaan.
Ien standertrûte, twa eigners
Trochstjoerd ferkear en pleatslik ûntstien ferkear hoege net deselde wei te gean. LAN-klanten hawwe de tunnel allinnich nedich foar de bestimmings dy’t jo kieze, wylst de eigen beheartsesjes fan de host en syn antwurden oan dy klanten de LAN-standertrûte nedich hawwe. Beide yn de haadtabel mingerje twingt ien antwurd op twa ferskate fragen.
OpenVPN hat in skeakel krekt hjirfoar. route-noexec hâldt de klant tsjin om de haadtabel hielendal oan te reitsjen, en de wearden dy’t it brûkt hawwe soe, wurde eksportearre nei in route-up skript as route_vpn_gateway, dev en de ynterface-adressen. Dêrnei beslute jo hokker tabel hokker rûte krijt, yn koade dy’t jo letter lêze kinne.
Beliedstabel fersus de haadtabel oerskriuwe
| 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 |
De aparte tabel is de iennige opsje dy’t fierder as ien subnet skaallet. Jou it ien kear in namme en ferwize dêrnei by namme, sadat nimmen in nûmer ûnthâlde hoecht:
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 vpnDe adressen hjir binne plakhâlders. Ferfange it LAN-préfix, de tunnelpoarte en de apparaatnamme út jo eigen útrôljen foardat jo wat draaie.
De regel moat ek by de host passe
In regel dy’t allinnich by it LAN-préfix past, dekt trochstjoerde pakketten. Hy dekt gjin ferkear dat de poarte sels ûntstiet, en hy dekt ek de antwurden net dy’t er weromstjoert nei LAN-klanten, dy’t it LAN-adres fan de poarte as boarne drage. Dy sykopdrachten falle troch nei main en kinne noch altyd troch de tunnel nei bûten.
Foegje in twadde regel ta foar it eigen LAN-adres fan de poarte, of ferbreedzje de earste regel nei in set dy’t beide omfettet. De folchoarder is wichtich: set de mear spesifike regel earst, en kontrolearje it resultaat mei in sykopdracht dy’t de boarne eksplisyt neamt.
ip route get 203.0.113.9 from 192.168.50.1As dat it tunneleapparaat rapportearret foar in bestimmingsplak dat pleatslik bliuwe moat, is de regelset ferkeard, itsij wat de tabel befettet.
NAT of in rûte oan de oare kant
De VPN-server ken it tunnelsubnet en fierder neat. Pakketten dy’t mei in LAN-boarneadres oankomme, hawwe gjin weromwei, útsein as immen der ien leveret, en der binne krekt twa manieren om dat te dwaan. In rûte foar it LAN-préfix op de server taheakje hâldt de oarspronklike boarne fan ein oant ein sichtber, wat in auditeare opset meastentiids wol. Maskearring op de poarte skriuwt de boarne oer nei it tunneladres en freget gjin gearwurking fan de server.
iptables -t nat -A POSTROUTING -s 192.168.50.0/24 -o tun0 -j MASQUERADEKies NAT as jo de server net beheare en dêr gjin rûtes taheakje kinne. Kies de rûte oan de serverkant as logboeken, tagongskontrôle of symmetry fan de weromwei fan belang binne, want maskearring wisket it oarspronklike adres út alles wat de oare kant fêstleit.
Yn beide gefallen moat trochstjoerjen oan wêze, en strang weromwei-filtersjen kin it antwurd falle litte as main de tunnel foar dy boarne net keazen hawwe soe. Kontrolearje de effektive wearde foardat jo de tunnel de skuld jouwe.
Lit de splitsing in werferbining oerlibje
Mei de hân taheakke regels en rûtes ferdwine as de ynterface opnij makke wurdt, en in ferâldere tabelynskriuwing kin de sesje oerlibje dy’t him rjochtfeardige. Set de tabelregel, de tunnelrûte en de maskearringsynskriuwing yn it route-up skript fan de klant, en leegje de tabel oan de boppekant fan it skript sadat in âlde poarte net yn de nije sesje oerlibje kin.
Kontrolearje fan beide kanten: in sykopdracht op de poarte mei de LAN-boarne, en in echte oanfraach fan in LAN-klant nei in bestimmingsplak dat troch de tunnel gean moat. In rûte dy’t bestiet mar nea keazen wurdt, hâldt him krekt sa as gjin rûte oant jo de tellers lêze.