Frage
Wenn ich mein VPN auf meinem Ubuntu-Desktop-Computer starte, der als Router fungiert, verliert das angeschlossene Subnetz die Internetverbindung, ist jedoch weiterhin verfügbar (LAN). Im Idealfall möchte ich wissen, wie das angeschlossene Subnetz durch Routing durch den VPN-Tunnel wieder auf das Internet zugreifen kann, wenn das VPN aktiv ist.
Kontext
Ich habe folgendes Netzwerklayout:
Subnetz 172.16.0.0/20 auf eth0 für meine virtuellen VirtualBox-Maschinen.
Subnetz 192.168.0.0/24 auf eth0: 0, das eine Verbindung zum Gateway 192.168.0.1 mit Internetzugang herstellt.
Dies wird in der Datei / etc / network / interfaces gezeigt:
auto lo
iface lo inet loopback
# This is the subnet dedicated to VB
auto eth0
iface eth0 inet static
address 172.16.0.1
netmask 255.255.0.0
gateway 192.168.0.164
dns-nameservers 8.8.8.8
# normal DHCP internet
auto eth0:0
iface eth0:0 inet static
address 192.168.0.164
netmask 255.255.255.0
dns-nameservers 8.8.8.8
gateway 192.168.0.1
Die Pakete auf dem eth0 werden mit Masquerading über eth0: 0 weitergeleitet, und eine normale Internetverbindung ist in Ordnung. Wenn ich jedoch meinen VPN-Tunnel auf diesem Router starte, geht die Internetverbindung für die VMs im eth0-Subnetz verloren (bleibt jedoch für den Router bestehen).
Nachfolgend sehen Sie die Ausgabe von ifconfig, wenn der Tunnel aktiv ist:
eth0 Link encap:Ethernet HWaddr 00:1f:bc:01:c3:ab
inet addr:172.16.0.1 Bcast:172.16.255.255 Mask:255.255.0.0
inet6 addr: fe80::21f:bcff:fe01:c3ab/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:165426 errors:0 dropped:0 overruns:0 frame:0
TX packets:182601 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:208264321 (208.2 MB) TX bytes:16660945 (16.6 MB)
Interrupt:16
eth0:0 Link encap:Ethernet HWaddr 00:1f:bc:01:c3:ab
inet addr:192.168.0.164 Bcast:192.168.0.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Interrupt:16
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:381963 errors:0 dropped:0 overruns:0 frame:0
TX packets:381963 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:22755054 (22.7 MB) TX bytes:22755054 (22.7 MB)
tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:10.8.0.10 P-t-P:10.8.0.9 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Ich vermute, dass die Lösung etwas mit der Routingtabelle zu tun hat . Wenn der Tunnel aktiv ist, wird Folgendes angezeigt :
Destination Gateway Genmask Flags Metric Ref Use Iface
default 10.8.0.9 128.0.0.0 UG 0 0 0 tun0
default 192.168.0.1 0.0.0.0 UG 100 0 0 eth0
10.8.0.0 10.8.0.9 255.255.255.0 UG 0 0 0 tun0
10.8.0.9 * 255.255.255.255 UH 0 0 0 tun0
37.139.23.49 192.168.0.1 255.255.255.255 UGH 0 0 0 eth0
128.0.0.0 10.8.0.9 128.0.0.0 UG 0 0 0 tun0
link-local * 255.255.0.0 U 1000 0 0 eth0
172.16.0.0 * 255.255.0.0 U 0 0 0 eth0
192.168.0.0 * 255.255.255.0 U 0 0 0 eth0
und Folgendes, wenn der Tunnel inaktiv ist :
Destination Gateway Genmask Flags Metric Ref Use Iface
default 192.168.0.1 0.0.0.0 UG 100 0 0 eth0
link-local * 255.255.0.0 U 1000 0 0 eth0
172.16.0.0 * 255.255.0.0 U 0 0 0 eth0
192.168.0.0 * 255.255.255.0 U 0 0 0 eth0
Virtualbox-Konfiguration für Vms:
Eine der VMs- /etc/network/interfaces
Dateien:
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet static
address 172.16.0.3
netmask 255.255.0.0
network 172.16.0.0
broadcast 172.16.255.255
gateway 172.16.0.1
dns-nameservers 8.8.8.8
Antworten:
Dies funktioniert in einem Bridged Networking- Setup nicht. Aus der VirtualBox-Dokumentation :
Da Ihre virtuellen Maschinen
eth0
direkt verwendet werden, ist ihnen dietun0
Schnittstelle zu dem Tunnel, der darüber läuft, nicht bekannt. Sie müssen eine andere virtuelle Netzwerkkonfiguration verwenden.Sie haben (unter anderem) folgende Möglichkeiten:
Network Address Translation (NAT) ist bei weitem die einfachste Lösung. VirtualBox wird die VMs über die Internetverbindung NAT, die dem Host zur Verfügung steht. Dies ist für die VMs vollständig transparent. Dies schließt jedoch Verbindungen vom Host zu den VMs oder Verbindungen zwischen den VMs aus.
Verwenden Sie Host-only Networking , um ein ordnungsgemäßes Subnetz zu erstellen, das die VMs und den Host enthält. Dies erfordert keine Änderungen an der Schnittstellenkonfiguration, die Sie jetzt in den VMs haben. Sie müssen jedoch den Host als Gateway und Router einrichten und die VMs als NAT nach außen bringen (unabhängig davon, ob es sich um VMs handelt
eth0
oder nichttun0
).Kombinieren Sie das Obige: Geben Sie jeder VM zwei Schnittstellen, von denen eine ein Gateway zur Außenwelt (über das NAT der VirtualBox ) und die andere an das Nur-Host-LAN angeschlossen ist .
Probieren Sie die experimentelle NAT-Netzwerkkonfiguration von VirtualBox aus . Update 2019: Diese Funktion ist seit gereift: heften sich an die NAT - Host und wählen Sie das paravirtualisierte Netzwerk (virtio-net) Adaptertyp.
quelle
Gehen Sie für VirtualBox mit Windows Host und Linux (Minze) Gast zur Registerkarte Netzwerk-UI und stellen Sie "Adapter" => "Attached to: NAT" und "Adaptertyp: Paravirtualized Network" ein. Danach starten Sie Ihre VM und Sie sollten in der Lage sein, das VPN-Netzwerk zu verwenden.
quelle
Nachdem ich überall nach dieser Lösung gesucht hatte, fand ich endlich eine funktionierende Lösung, die nicht viele Konfigurationsänderungen erfordert und wirklich einfach ist. Verwenden Sie das Standard-NAT-Netzwerk und geben Sie dies im Terminal ein:
Quelle: https://www.virtualbox.org/ticket/13993
quelle
Hatte das selbe Problem. So habe ich es gelöst:
ifconfig vboxnet0
, um sie zu finden.Der letzte Schritt ist das Weiterleiten der von vboxnet0 kommenden Pakete in Ihr VPN.
Wenn Sie den gesamten Datenverkehr über VPN weiterleiten:
Wo
10.8.0.5
ist dein tun0 Gateway und wo192.168.5.0/24
ist deine vboxnet0 Netzwerkreichweite?Wenn Sie nur bestimmten Datenverkehr über VPN weiterleiten:
Wo
10.8.0.5
ist Ihr tun0 Gateway und192.168.43.95
ist Ihrwlan0
Gateway und192.168.5.0/24
ist Ihre vboxnet0 Netzwerkreichweite.Hinweis: Mit dieser Lösung kann das Gastbetriebssystem genauso behandelt werden wie das Hostbetriebssystem. Nur IP-Adressen, die für die VPN-Übertragung im Host-Betriebssystem konfiguriert sind, werden in Guest übertragen.
quelle
Hier finden Sie einige nützliche Informationen für Vagabund-Boxen, die Host-VPN verwenden. Grundsätzlich müssen Sie die Option natdnshostresolver1 festlegen. Beachten Sie jedoch, dass dies NICHT funktioniert, wenn Sie die Einstellung public_network des Vagrant verwenden.
http://renier.morales-rodriguez.net/post/90674523562/sharing-host-vpn-with-virtualbox-guest http://blog.geekslikeshinythings.com/2016/05/sharing-host-vpn-with-vagrant -rob-allen.html
quelle