Conectando o RPI a uma VM do Virtualbox Linux em uma rede protegida

3

Estou em uma rede protegida que fornece apenas endereços IP para dispositivos registrados. Eu posso registrar meu laptop, uma máquina Windows e um RPI, mas nem todas as VMs no laptop, então o adaptador em ponte não é uma opção, eu acho. Gostaria de poder me comunicar entre o RPI e a VM.

Até agora eu tentei isso:

Eu tenho 3 entidades: (1) Um host do Windows, com o IP 134.58.46.117 (2) Uma VM guest do Virtualbox Linux, configurada, atm, com rede NAT e um adaptador somente host. tem IP 10.0.2.15 na eth0 e IP 192.168.56.102 na eth1 (3) um RPI em Jessie, com IP 134.58.46.172 em eth0.

Eu posso pingar 192.168.56.102 do host do Windows. Eu posso pingar o host do Windows a partir do RPI. Eu posso pingar o RPI do host do Windows. Eu configurei o RPI com a seguinte rota:

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.56.0    134.58.46.117   255.255.255.0   UG    0      0        0 eth0

Quando faço ping na VM a partir do RPI (então execute "ping 192.168.56.10"), não recebo resposta.

O Wireshark no host do Windows faz detectar pacotes de 134.58.46.172 com o destino 192.168.56.102, mas nada é retornado.

Alguma pista sobre qual é o problema? Ou outra maneira de fazer o que eu quero?

    
por Sven 01.06.2017 / 09:45

1 resposta

2

Você precisa de duas etapas para que isso funcione:

  1. Primeiro, você precisa permitir o encaminhamento IPv4 na máquina Windows. Isso permitirá mover pacotes de uma interface para outra. As instruções para fazer isso dependem da versão do Windows que você está usando, por exemplo, para o XP você pode usar esta referência e para o Windows 10 você pode use esta outra referência . De qualquer forma, o reencaminhamento IPv4 do Windows do Windows para mais informações. Em qualquer caso, é apenas uma questão de alterar uma entrada do Registro do Windows, embora a chave exata mude com a versão do Windows.

  2. Você precisa instruir sua máquina Linux para usar o host do Windows como um gateway para o RPI. Isso pode ser feito com o seguinte comando:

    ip route add RPI_IP_ADDRESS/32 via WINDOWS_HOST_IP_ADDRESS
    

    Isso garante que os pacotes possam fluir na direção oposta com os cabeçalhos do convidado da VM do Linux: dessa forma, eles são reconhecidos como a resposta pertinente às conversas iniciadas pelo RPI. Se você não usasse isso, os cabeçalhos dos pacotes seriam alterados para refletir o endereço IP do host do Windows, o que significa que o RPI receberia respostas de um endereço diferente daquele em que tinha escrito.

Isso é tudo.

EDITAR :

com referência ao comentário:

dê ao seu convidado Linux um endereço MAC falso, que tenha acesso à sua LAN. Use o RPI para ouvir conversas, com tcpdump -i eth0 -n arp . Isto irá mostrar um número de endereços MAC que estão presentes na sua rede. Altere o endereço MAC do seu convidado Linux com macchanger , dando a ele o que você acabou de aprender. Agora use o adaptador Bridge para o convidado Linux. Vai funcionar como um encanto. Além disso, você pode considerar ter um PC com um sistema operacional real, pois o que você está tentando fazer é bastante sofisticado. O Windows fica aquém disso.

  1. roubar um endereço faz não interferir na conectividade do outro cara: os pacotes são numerados, se o seu PC receber um pacote com um número incorreto, ele simplesmente o descartará.

  2. você torna-o permanente na inicialização da seguinte forma: na VM (suponho que você esteja no Debian ou derivados Ubuntu / Mint, ..., se não, é uma sincronização para adaptar o que segue ao que você estiver usando), edite / etc / network / interfaces , e cole o seguinte (assumindo que eth1 é a interface para conectar):

    auto eth1
    iface eth1 inet dhcp
             pre-up macchanger -m XX:XX:XX:XX:XX:XX eth1
    

e é isso.

    
por 01.06.2017 / 10:03