Windows-Container an VPN: firwat déi lokal Vernetzung briechen
En Windows-Container benotzt d'Routentabell vum Host, dofir hëlt eng VPN, déi de lokalen Subnetz blockéiert, de Container-Prefix mat. De Linux-Modus geet en anere Wee.
Op engem eenzegen Laptop, mat engem verbonne VPN-Client, schwätzen d'Linux-Container weider mateneen an d'Windows-Containere stoppen. D'Variabel ass net d'Bild, mä de Wee, deen d'Paketer an den Host huelen. Windows-Containere am Standardnetz léinen déi Routentabell an d'Iwwersetzung vum Host, dofir ännert eng Politik, déi d'Routing vum Host ännert, si och. Bestätegt dat mat enger Route-Sich virum nei installéieren.
Wou d'Paketer vun engem Windows-Container an den Host erakommen
En Container am Standardnetz nat kritt eng Adress aus engem Prefix vum Host Networking Service, normalerweis iergendwou bannent 172.16.0.0/12, an erreecht den Host iwwer en virtuelle Adapter. Den Host besëtzt d'Route fir dee Prefix an iwwersetzt den Traffic zu deem Adapter, deen aktuell aktiv ass. Et gëtt keng separat virtuell Maschinn an der Mëtt vun deem Wee.
Dee Design ass et, wat de Feeler mechanesch mécht. Wann de Container e Paket schéckt, mécht den Host eng Route-Sich fir de Container-Prefix. Déi Route, déi gewënnt, do geet d'Paket hin, an de Container huet do keng Meenung.
Wat de VPN-Client op deem Wee ännert
En Entreprise-Client installéiert dacks eng breet Rei vu Routen an e Filter, deen den Zougang zum lokalen Subnetz refuséiert, soulaang den Tunnel op ass. D'Intent ass defensiv: en kompromittéiert lokalen Netz soll net eng geschützt Maschinn erreechen. Den Nieweneffekt ass, datt d'Route vum Host zum Container-Prefix net méi de lokalen NAT-Netz ass.
Amplaz passt d'Sich zum Tunnel an d'Paket gëtt dem Gateway iwwerginn, deen ni vun där Containeradress héieren huet. Ping fällt aus, d'Applikatioun leeft an eng Zäitüberschreidung, an de Container gesäit futti aus, während d'VPN-Ikon liicht. Kuckt d'Tabell vum Host wärend Dir verbonne sidd, an déi konkurréierend Route ass sichtbar.
| Container mode | Outbound path | Typical result behind the VPN |
|---|---|---|
| Windows, default nat | Host routes and translates container traffic | Container prefix follows the tunnel and fails |
| Windows, transparent | Container sits on the physical link | Depends on the local subnet being allowed |
| Linux engine on Docker Desktop | VM egress proxied by a host process | Often keeps working |
Firwat Linux-Container sech anescht behuelen
De Linux-Motor lafe Container bannent enger liichter virtueller Maschinn, an d'Verbindungen eraus aus där Maschinn ginn vun engem Proxy op der Host-Säit am Numm vum Container opgemaach. Den Host fänkt de Socket un, dofir gëllt d'Reegel vun der VPN iwwer de Container-Prefix net op déiselwecht Manéier, an d'Aarbechtslaascht erreecht weider de Netz.
Dee Ënnerscheed erkläert och, firwat Linux-Rezepter net iwwerdroen. Engem Linux-Container, deen en eegenen Tunnel brauch, gëtt en TUN-Apparat plus d'Fäegkeet NET_ADMIN ginn. Windows-Containere weisen keen Interface als Apparat, dofir huet dee Muster op där Säit keng Entspriechung.
Beweist d'Route an dann wielt en Design
Sammelt Beweiser vum Host, net vum Container, well den Host d'Sich mécht:
docker network inspect nat --format "{{range .IPAM.Config}}{{.Subnet}}{{end}}"
route print -4
Get-NetRoute -AddressFamily IPv4 | Where-Object DestinationPrefix -like "172.16.*"
Fuert de Route-Output eng Kéier aus, ier d'VPN sech verbënnt, an eng Kéier duerno. Wann am zweeten Output de Container-Prefix op den Tunneladapter weist, ass d'Diagnos komplett an en Neistart vun de Container wäert net hëllefen.
Déi éischt Optioun ass eng Politikentscheedung: frot den Netzeigentümer, ob lokalen LAN-Zougang fir dësen Apparat erlaabt ka ginn. Verschidden Entreprise-Cliente bidden dat als Astellung un, awer et schwächt eng bewosst Grenz. Frot et als dokumentéiert Ausnahm mat engem Eegentümer an engem Iwwerpréifungsdatum. En Toast pro Apparat, op deen keen zréckkënnt, ass de Wee, wéi eng defensiv Politik stëll verschwënnt.
Wou d'Politik muss stoen, verréckelt d'Aarbechtslaascht amplaz géint d'Route ze kämpfen. En transparenten Netz mat engem explizite Subnetz an engem Gateway setzt d'Container op de lokale Link, eng Linux-Aarbechtslaascht leeft hannert dem VM-Proxy, an eng separat virtuell Maschinn mat hirem eegene Client behält hir eege Politik. Wielt eng bewosst a testt se vun bannent dem Container, well do entsteet d'Ufro vum Benotzer.