Pergunta, questão
Quando inicio minha VPN no meu computador desktop ubuntu, que atua como roteador, a sub-rede conectada perde a conectividade com a Internet, mas ainda está acessível (LAN). Idealmente, eu gostaria de saber como habilitar a sub-rede conectada para obter novamente o acesso à Internet, roteando pelo túnel da VPN quando a VPN estiver ativa.
Contexto
Eu tenho o seguinte layout de rede:
sub-rede 172.16.0.0/20 em eth0 para minhas máquinas virtuais VirtualBox.
sub-rede 192.168.0.0/24 no eth0: 0 que se conecta ao gateway 192.168.0.1 que possui acesso à Internet.
Isso é mostrado no arquivo / 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
Os pacotes no eth0 são encaminhados através do eth0: 0 com mascaramento e a conectividade normal à Internet está correta. No entanto, quando inicio meu túnel VPN neste roteador, a conectividade com a Internet é perdida para as VMs na sub-rede eth0 (ainda permanece para o roteador).
Abaixo está a saída do ifconfig quando o túnel está ativo:
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)
Suspeito que a solução tenha algo a ver com a tabela de roteamento . Mostra o seguinte quando o túnel está ativo :
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
e o seguinte quando o túnel inativo :
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
Configuração do Virtualbox para Vms:
Um dos /etc/network/interfaces
arquivos de VMs :
# 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
Respostas:
Isso não funcionará em uma configuração de ponte de rede . Na documentação do VirtualBox :
Como suas máquinas virtuais estão usando
eth0
diretamente, elas desconhecem atun0
interface do túnel que está sendo executada sobre ele. Você precisará usar uma configuração de rede virtual diferente.Você tem (entre outras) estas opções:
A conversão de endereços de rede (NAT) é de longe a solução mais simples. O VirtualBox fará NAT das VMs em qualquer conexão de Internet disponível para o host. Isso é totalmente transparente para as VMs. No entanto, isso impede conexões do host para as VMs ou conexões entre as VMs.
Use Rede somente de host para criar uma sub-rede adequada contendo as VMs e o host. Isso não exigirá alterações na configuração da interface que você tem agora nas VMs, mas será necessário configurar o host para ser o gateway e o roteador e torná-lo NAT das VMs para o exterior (seja através dele
eth0
outun0
).Combine o que foi dito acima: forneça a cada VM duas interfaces, uma de gateway para o mundo externo (através do NAT do VirtualBox ) e a outra conectada à LAN do host .
Experimente a configuração experimental de rede NAT do VirtualBox . Atualização 2019: esse recurso já amadureceu: conecte-se ao NAT do host e escolha o tipo de adaptador de rede Paravirtualizada (virtio-net) .
fonte
Para o VirtualBox com host do Windows e convidado do linux (mint), vá para a guia Interface da rede e defina "Adaptador" => "Anexado a: NAT" e "Tipo de adaptador: rede paravirtualizada". Depois disso, inicie sua VM e você poderá usar a rede VPN.
fonte
Depois de procurar essa solução em todos os lugares, finalmente encontrei uma solução funcional que não requer muitas alterações de configuração e é realmente simples. Use a rede NAT padrão e digite isto no terminal:
fonte: https://www.virtualbox.org/ticket/13993
fonte
Teve o mesmo problema. Aqui está como eu resolvi:
ifconfig vboxnet0
para encontrá-lo.O último passo é rotear os pacotes provenientes do vboxnet0 para a sua VPN.
Se você rotear todo o tráfego através da VPN:
Onde
10.8.0.5
está o seu gateway tun0 e o192.168.5.0/24
seu alcance de rede vboxnet0.Se você apenas rotear determinado tráfego através da VPN:
Onde
10.8.0.5
está o seu gateway tun0 e o192.168.43.95
seuwlan0
gateway e o192.168.5.0/24
seu alcance de rede vboxnet0.Nota: Esta solução permite que o sistema operacional convidado seja tratado da mesma maneira que o sistema operacional host. Somente IPs configurados para passar pela VPN no sistema operacional host passarão por ele no convidado.
fonte
Aqui estão algumas informações úteis para caixas vagrantes usando o host vpn. Basicamente, você precisa definir a opção natdnshostresolver1 Observe que isso NÃO funcionará ao usar a configuração public_network do 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
fonte