NAT oder gebrückt VM-Netzwierk: wat dréit den VPN-Trafic?
NAT-Gäsch lénen den Tunnel vum Host nëmmen, wann de Client iwwer d'Route tunnelt; gebrückte Gäsch routen selwer. Test de Gast a wiel duerno de passende Modus.
Bridgen an NAT si keng zwou Aarte fir dee selwechte Gast un däi VPN ze hänken; si entscheeden, wiem seng Pakete vum Gast gehéieren, ier iwwerhaapt en Tunnel am Spill ass. Am NAT-Modus schreift den Hypervisor den Trafic vum Gast ëm an schéckt en aus Code op der Hostsäit eraus, sou datt de Gast déi Route fiert, déi den Host deem Code gëtt. Am gebrückte Modus kritt de Gast seng eege Identitéit op der Link-Schicht am physesche Segment a wielt säin eegene Standard-Gateway, wat den Tunnel vum Host fir hien irrelevannt mécht, ausser de LAN-Router ass deen, deen tunnelt. Ech hunn opgehal VM als um VPN ze gesinn an huet ugefaangen, et als Fro ze behandelen, wou d'Standardroute vun deem Gast hindeit. Den Test hei drënner kascht e puer Minutten pro Modus a kläert et ouni Rotsel.
NAT hält de Gast hannert dem Code vum Hypervisor, wou d'Route vum Host gëllen
An VirtualBox sëtzt en NAT-Gast op 10.0.2.0/24 mat engem virtuelle Gateway op 10.0.2.2, engem DNS-Proxy op 10.0.2.3, an ouni seng eegen Route an d'physescht Netzwierk. Ausgehend Pakete ginn vum NAT-Motor geholl, ëmgeschriwwen esou datt d'Quell den Host ass, an un den IP-Stack vum Host weiderginn. Vun do un ass den Trafic vum Gast en Host-Floss, an d'Routensich geschitt nom Ziel: en Tunnels-Client dee 0.0.0.0/1 an 128.0.0.0/1 um Host installéiert, fänkt en of, ouni je ze wëssen datt et eng VM gëtt. Dem Oracle säi Kapitel iwwer VirtualBox-Netzwierker listet dës Standardwäerter, wann s de d'Adressen an däi Build wëlls bestätegen.
Den Standardnetz vu libvirt erreecht déiselwecht Plaz vun 192.168.122.0/24 aus, wou dnsmasq Leasen ausdeelt an den Host d'Subnetz maskéiert, sou datt d'Pakete vum Gast erëm bei d'Routingsentscheedung vum Host ukommen. D'Ausnam ass e Client, deen den Trafic nom Prozess amplaz no der Route auswielt. Wann d'Lëscht vum Split-Tunnel just däi Browser enthält an soss näischt, ass den NAT-Motor net op dëser Lëscht, an de Gast verléisst d'Maschinn ouni Tunnel, während den Browser vum Host nach ëmmer ofgedeckt ausgesäit. D'selwecht Subnetz, ëmgedréit Resultat.
Bridgen gëtt dem Gast seng eege Plaz am physesche LAN
Enem gebrückte Gast gëtt eng virtuell NIC ginn, déi un en echten Adapter ugeschloss ass, en kritt seng eege MAC-Adress an hëlt en DHCP-Lease aus dem physesche Netzwierk. Säi Standard-Gateway ass de LAN-Router, net den Hypervisor, a seng Frame ginn iwwer deen Adapter op de Kabel. D'Route vum Tunnel vum Host liewen an der Tabell vum Host a ginn ni gefrot, well d'Frame vum Gast ni an den IP-Stack vum Host kommen.
Dat schneit an zwou Richtungen. mDNS a SMB-Browsing fänken u funktionnéieren, well de Gast de Broadcast-Trafic vum LAN gesäit, an de Gast gëtt vun anere Maschinnen am selwechte Segment erreechbar ouni eng Firewall vum Host derzëschen. Bridgen ass och keen Wee, fir e Gast duerch en bestehenden Tunnel ze drécken: eng VM un d'WireGuard- oder OpenVPN-Interface vum Host ze hänken ass net eppes, wat VirtualBox oder libvirt fir dech mécht. Wann e gebrückte Gast duerch en Tunnel muss, muss den Tunnel irgendwou op deem LAN ophalen.
Den Test, deen d'Diskussioun beendet
Lauf déiselwecht Kontrollen an allen zwee Modi a schreif d'Äntwerten op:
- Um Host gëtt
curl -s https://ifconfig.medéi ëffentlech v4-Adress. - Am Gast deeselwechte Befehl, plus
ip routeop Linux oderGet-NetRoute -DestinationPrefix 0.0.0.0/0op Windows fir de Standard-Gateway. - Identitéit vum Resolver:
resolvectl statusodercat /etc/resolv.confam Gast, fir ze gesinn, ob en op 10.0.2.3 oder op e LAN-Server weist. - Adressfamill:
ip -6 addr show scope globalan eng v6-Ufro, well en v4-Tunnel näischt iwwer eng global v6-Adress seet, déi de Gast kéint hunn.
Iwwereneestëmmend ëffentlech Adressen heeschen, datt de Gast um Wee vum Host ass. Eng Gastadress, déi mam gewéinlechen Ausgang vum LAN iwwerenee stëmmt, heescht, datt et net esou ass. De Schrëtt, deen d'Leit iwwersprangen, ass d'Kontroll: maach den Tunnel vum Host erof a widderhuel d'Ufro vum Gast. Wann de Gast weider surft, war hien ni vum Tunnel vum Host ofhängeg, wat den Numm vum Modus och suggeréiert. Am NAT-Modus sollt de Gast d'Internet verléieren, wann den Tunnel vum Host erof ass, ausser de Client ass esou konfiguréiert, datt en Traffic ouni Tunnel erlaabt, wat fir sech elseng Wäert huet ze wëssen.
Zwee Signaler léien. En erfollegräiche Ping beweist Erreechbarkeet, net den Ausgangswee. An DNS ka vum 10.0.2.3-Proxy iwwer de Resolver vum Host beäntwert ginn, während TCP eng aner Route hëlt, an esou kritt een eng Säit, déi lued, an en Login, deen ni fäerdeg gëtt.
Wéi ee Modus passt bei d'Aufgab
De Modus ass eng Routing-Entscheedung, also wiel en no der Ufuerderung an net no der Gewunnecht:
| Requirement | Mode that fits |
|---|---|
| Every guest flow must exit through the host tunnel | NAT, with a host client that tunnels by route, verified from inside the guest |
| The guest needs its own VPN account or profile | Bridged, or NAT with a client running inside the guest, not both |
| The guest must serve SSH, SMB, or a dev server to the LAN | Bridged; NAT needs a port forward, which does not change the outbound path |
| The guest must stay invisible to the LAN | NAT; a bridged guest is another host on the segment |
| The guest needs a real public IPv6 address | Bridged; VirtualBox NAT mode has no IPv6 forwarding |
| Isolation from the LAN with access to the host | Host-only adapter, not NAT |
Déi éischt Zeil ass d'Plaz, wou d'Leit gefaange ginn: NAT plus en Tunnels-Hostclient deckt e Gast wierklech of, awer just esou laang wéi de Client iwwer d'Route tunnelt an den Uplink vum Host deen Tunnel ass. Réck de Client op eng Erlaabnislëscht just fir de Browser an d'Ofdeckung verschwënnt ouni engem Feeler iergendwou. Déi véiert Zeil ass de verkéierten Feeler: e Gast, deen aus Bequemlechkeet gebrückt gouf an deen heemlech ufänkt, op SMB oder SSH am Büro-LAN ze äntweren.
Feeler, déi op de VPN geschloe ginn
Op Windows leeft d'NAT-Iwwersetzung am VirtualBox-VM-Prozess, also brauch en Per-App-Client genee dee Bild op senger Lëscht amplaz enger allgemenger Regel fir virtuell Maschinnen. Wann en Update vum Client seng Prozesslëscht nei baut, verléieren NAT-Gäsch d'Ofdeckung als éischt, an de Rapport liest sech wéi eng VM, déi de LAN erreecht awer net d'Internet, während den Host an der Rei ass.
Bridgen op Wi-Fi ass deen aneren Klassiker. Access Points leede seelen Frame weider, déi eng friem Quell-MAC droen, also entweder schläit eng Bréck op wlan0 komplett fehl oder se funktionéiert, bis d'Client-Isolatioun um AP ufänkt, se fale ze loossen. VirtualBox bitt den drahtlosen Adapter trotzdem op senger Lëscht un. Wann den Host op Wi-Fi ass an de Gast gebrückt muss ginn, plang et ze testen amplaz et unzehuelen.
MTU ass den drëtten. E gebrückte Gast behält d'MTU vun 1500 Byte vum LAN, a wann en eege WireGuard-Client op 1420 lafe léisst, stieche grouss TLS-Handshakes, während kleng Ufroe geléngen. Ënner NAT ass d'MTU vum Tunnel vum Host dem Host seng Problematik, awer de Gast gleeft nach ëmmer un 1500, an UDP mam gesate don't-fragment-Bit verschwënnt op déiselwecht Manéier.
Schreif de Modus op a kontrolléier no all Adapterwiessel nach eng Kéier
Schreif de Modus op, d'Host-Interface dat d'Bréck benotzt, de Standard-Gateway vum Gast, säi Resolver an seng v4- a v6-Ausgangsadressen. Dee Rekord mécht den nächste Feeler bëlleg: wann en Laptop vun der Docking op Wi-Fi wiesselt, follegt e gebrückte Gast der Bréck op en aneren physeschen Adapter a kann an engem aneren Subnetz nei lease, während en NAT-Gast seng 10.0.2.x-Adress behält a still en aneren Uplink ierft.
Ier s de den Ticket zoumëss, bestäteg jiddwerengen dovun:
- D'Ausgangsadress vum Gast ënnerscheet sech vun där vum Host, also ass en net um Tunnel vum Host.
- De Resolver ass den 10.0.2.3-Proxy oder e LAN-Server, a s de weess, wien geäntwert huet.
- Et gëtt keng global v6-Adress am Gast, wann den Tunnelkonzept just v4 ass.
- Mam erofgeloossenen Tunnel vum Host hält de Gast op ze surfen, oder s de weess elo, datt hien ni dovun ofhängeg war.
- De Gast gesäit keen LAN-Broadcast-Trafic, deen en näischt ugeet.