Pregunta
Cuando inicio mi VPN en mi computadora de escritorio ubuntu que actúa como un enrutador, la subred adjunta pierde la conectividad a Internet, pero aún es accesible (LAN). Idealmente, me gustaría saber cómo habilitar la subred adjunta para recuperar el acceso a Internet enrutando a través del túnel VPN cuando la VPN está activa.
Contexto
Tengo el siguiente diseño de red:
subred 172.16.0.0/20 en eth0 para mis máquinas virtuales VirtualBox.
subred 192.168.0.0/24 en eth0: 0 que se conecta a la puerta de enlace 192.168.0.1 que tiene acceso a internet.
Esto se muestra en el archivo / etc / network / interfaces:
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
Los paquetes en eth0 se reenvían a través de eth0: 0 con enmascaramiento y la conectividad normal a Internet está bien. Sin embargo, cuando inicio mi túnel VPN en este enrutador, la conectividad a Internet se pierde para las máquinas virtuales en la subred eth0 (aún permanece para el enrutador).
A continuación se muestra la salida de ifconfig cuando el túnel está activo:
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)
Sospecho que la solución tendrá algo que ver con la tabla de enrutamiento . Muestra lo siguiente cuando el túnel está activo :
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
y lo siguiente cuando el túnel está inactivo :
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
Configuración de Virtualbox para Vms:
Uno de los /etc/network/interfaces
archivos de VM :
# 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
Respuestas:
Esto no funcionará en una configuración de red en puente . De la documentación de VirtualBox :
Dado que sus máquinas virtuales están utilizando
eth0
directamente, no son conscientes de latun0
interfaz para el túnel que se ejecuta sobre él. Deberá usar una configuración de red virtual diferente.Tiene (entre otras) estas opciones:
La traducción de direcciones de red (NAT) es, con mucho, la solución más simple. VirtualBox aplicará NAT a las máquinas virtuales en cualquier conexión de Internet disponible para el host. Esto es totalmente transparente para las máquinas virtuales. Sin embargo, esto impide las conexiones del host a las máquinas virtuales o las conexiones entre las máquinas virtuales.
Use Redes solo de host para crear una subred adecuada que contenga las máquinas virtuales y el host. Esto no requerirá cambios en la configuración de la interfaz que ahora tiene en las máquinas virtuales, pero deberá configurar el host para que sea la puerta de enlace y el enrutador, y hacer que las máquinas virtuales sean NAT en el exterior (ya sea a través de él
eth0
otun0
).Combine lo anterior: proporcione a cada VM dos interfaces, una de entrada al mundo exterior (a través de NAT de VirtualBox ) y la otra conectada a la LAN de solo host .
Pruebe la configuración experimental de redes NAT de VirtualBox . Actualización 2019: esta característica ha madurado desde entonces: conéctese al NAT del host y elija el tipo de adaptador de red paravirtualizada (virtio-net) .
fuente
Para VirtualBox con Windows host e invitado Linux (mint), vaya a la pestaña Red UI y configure "Adaptador" => "Adjunto a: NAT" y "Tipo de adaptador: Red paravirtualizada". Después de eso, inicie su VM y debería poder usar la red VPN.
fuente
Después de buscar esta solución en todas partes, finalmente encontré una solución que no requiere muchos cambios de configuración y que es realmente simple. Use la red NAT predeterminada y escriba esto en la terminal:
fuente: https://www.virtualbox.org/ticket/13993
fuente
Tuve el mismo problema Así es como lo resolví:
ifconfig vboxnet0
para encontrarla.El último paso es enrutar los paquetes que provienen de vboxnet0 a su VPN.
Si enruta todo el tráfico a través de VPN:
¿Dónde
10.8.0.5
está tu puerta de enlace tun0 y192.168.5.0/24
tu rango de red vboxnet0?Si solo enruta cierto tráfico a través de VPN:
¿Dónde
10.8.0.5
está su puerta de enlace tun0 y192.168.43.95
es suwlan0
puerta de enlace y192.168.5.0/24
es su rango de red vboxnet0?Nota: Esta solución permite que el SO huésped sea tratado de la misma manera que el SO host. Solo las IP configuradas para pasar por VPN en el sistema operativo host lo harán en Guest.
fuente
Aquí hay información útil para los cuadros vagabundos que usan host vpn. Básicamente, debe establecer la opción natdnshostresolver1 Tenga en cuenta que esto NO funcionará cuando use la configuración public_network de Vagrant.
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
fuente