O convidado do VirtualBox não pode acessar a sub-rede OpenVPN que é acessível ao host

1

Acredito que meu problema é semelhante a essa pergunta em como acessar o convidado do VirtualBox via VPN , mas não completamente. Eu estou tentando ir para o outro lado: estou tentando chegar a um destino que é acessível para o host via OpenVPN, do convidado.

Meu convidado do VirtualBox tem uma rede somente de host ( vboxnet0 ) onde o convidado é 192.168.56.101 e o host é 192.168.56.1 . O host é um cliente em uma rede OpenVPN que leva a 10.44.55.55 através de seu gateway virtual tun1 em 10.9.0.1. OpenVPN. A conectividade do cliente para o remoto é bem conhecida.

No convidado, defini uma rota: route add -host 10.44.55.55 gw 192.168.56.1 dev enp0s8

... para que a tabela de roteamento tenha esta aparência:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.1.1     0.0.0.0         UG    0      0        0 enp0s3
10.44.55.55     192.168.56.1    255.255.255.255 UGH   0      0        0 enp0s8

Isso, como você vê, é o endereço IP do lado do host da rede somente host e o adaptador de rede virtual que leva a ele.

No convidado, tentei agora ping 10.44.55.55 . Não houve resposta, e eis como tentei sistematicamente diagnosticar o problema:

tcpdump -nn icmp no host mostra que os pacotes estão sendo emitidos pelo endereço do cliente para o destino: 192.168.56.101 > 10.44.55.55 . O problema é que eles não chegam lá. Embora o host conheça uma rota para 10.44.55.55 e possa executá-lo, e embora os pacotes possam ser vistos por tcpdump no host, eles não passarão pelo túnel até o destino, assim como os pacotes emitidos pelo mesmo comando o host.

tcpdump -nn icmp executado no lado remoto mostra que os pacotes de ping não estão chegando, se o tráfego é originado na máquina virtual. (Claro, se o host emite ping 10.44.55.55 , os pacotes do chegam.)

O host é o Mac OS / X (El Capitan) e ocorreu-me que "talvez este seja um problema de encaminhamento de pacotes no host." Referindo-se agora a este tópico no encaminhamento de pacotes no OS X , Eu encontrei o comando sysctl apropriado e habilitei o encaminhamento de pacotes conforme descrito lá, mas não tenho alegria.

Veja como eu sei que o encaminhamento de porta foi ativado no host do OS / X, embora não tenha sido útil:

$ sysctl -a | grep forw
net.inet.ip.forwarding: 1

Estou confiante de que estou bastante perto de uma solução aqui, mas não consigo encontrar o mojo de rede adequado. Agradecemos antecipadamente ...

Nota adicional: Ainda mexendo com isso, tentei definir uma rota para 10.9.0.1 (o portal OpenVPN em questão) com resultados negativos semelhantes.

    
por Mike Robinson 19.01.2017 / 13:55

1 resposta

0

RESOLVIDO!

Curiosamente, quando mudei o tipo de adaptador de host de Bridged Network (que acessa diretamente o adaptador do host) para NAT , descobri que eu poderia ver os endereços IP de controles remotos que eram acessíveis ao host.

Estou agora bastante confuso com o meu próprio comentário (# 5) de 19 de janeiro. (eu devo ter ficado "muito confuso" na época.)

Agora, isso é especificamente uma resposta para "alcançar a conexão VPN do host do cliente". Não se aplica ao tráfego em sentido inverso. (Mesmo o host não pode pingar uma interface virtual "NAT").

    
por 07.06.2017 / 21:17