VirtualBox, VLAN, CentOS 7: convidados e host não podem se comunicar

1

Estou usando o CentOS 7 em tudo (exceto no Mac mencionado abaixo). Host tem o VirtualBox 5.1.8. Rede é 192.168.10.0/24. Não há firewalls em nenhum lugar.

Tudo funciona conforme o esperado neste cenário:

Nada é marcado, hosts e convidados podem se comunicar em qualquer porta, de / para qualquer ip. Interface de rede em cada convidado é preenchida. A vida é boa aqui.

Este cenário falha:

Eu criei interfaces de VLAN no host e em cada convidado. Nós chamamos isso de eth0.10. Cada convidado continua a usar eth0 (porque usar eth0.10 efetivamente o removeu da rede). A interface de rede em cada convidado é preenchida.

Observação: quando menciono ping aqui, percebo que é apenas ICMP, mas meus testes também incluíram testes TCP. Usando ping por brevidade.

Agora posso pingar guest (192.168.10.5) para guest (192.168.10.10), mas não consigo pingar guest (.10.5) para host (.10.50). O host (.10.50) para convidado (.10.5 ou .10.10) também não funciona.

Quando faço ping do guest (.10.5 ou.10.10) para algum outro sistema físico, um Mac / OS X, também na VLAN10 (.10.200), recebo uma resposta. Quando eu pingar o host (.10.5) para o Mac (.10.200), recebo uma resposta. O inverso disso também é verdade.

Eu também rodei o Wireshark (sniffer de pacotes) no Mac (.10.200). Eu usei o filtro 'host vlan 192.168.10.5' e eu posso ver o vlan id 10 no pacote! O mesmo vale para todos os hosts da vlan 10.

Então todos, exceto o anfitrião, podem ver os convidados. Os convidados podem ver um ao outro e todos os outros, mas não o anfitrião. Louco certo?

Li algumas coisas sobre o Open Vswitch , mas não sei se é isso que preciso. Parece que eu estou negligenciando algo fundamental aqui, mas eu verifiquei o trabalho de tantos ângulos agora.

Qualquer sugestão seria muito apreciada!

    
por zeek 31.10.2016 / 07:58

1 resposta

1

Consegui replicar seu cenário exato.
Aqui está o meu teste env para

 +---------------------------------------------------------+                                +-----------------------------------------+
 |                                                         |                                |                                         |
 |                    Mac OS X El Capitan                  |                                |          Mikrotik router board          |
 |      Host is also setup with vlan0 VLAN ID 20           |                                |                                         |
 |      192.168.10.3                                       |                                |                                         |
 |                                                         |                                |                                         |
 |             Both VMs are bridged to en0                 |en0         Trunk               |  VLAN 20 192.168.10.250                 |
 |            +-----------------------------------------------------------------------------+  VLAN 30 192.168.30.250                 |
 |            |                            |               |            VLANs 20 and 30     |                                         |
 |   +------------------+         +-------------------+    |                                |                                         |
 |   |                  |         |                   |    |                                |                                         |
 |   |    Cent OS 7     |         |    Cent OS 7      |    |                                |                                         |
 |   |    Node 1        |         |    Node 2         |    |                                |                                         |
 |   |                  |         |                   |    |                                |                                         |
 |   |  192.168.10.2    |         |    192.168.10.4   |    |                                +-----------------------------------------+
 |   +------------------+         +-------------------+    |
 |      VLAN 20                          VLAN 20           |
 +---------------------------------------------------------+

Exatamente a mesma coisa acontece.
Quando as duas VMs são conectadas a en0:

  1. Eles podem pingar uns aos outros. 192.168.10.2 < - > 192.168.10.4
  2. Eles podem pingar VLAN 20 Int 192.168.10.250 que sai no Mikrotik, então eles têm conectividade externa do mundo.
  3. Mac host que também é configurado com vlan0 VLAN ID 20 192.168.10.3 pode pingar Mikrotik
  4. As VMs não podem fazer o ping do host e o host não pode efetuar ping de VMs.

Ao interligar VMs a vlan0 em vez de en0 - elas perdem conectividade com o mundo externo (não é possível pingar o mikrotik)

Portanto, parece que a situação é realmente muito semelhante à forma como a ponte é feita no KVM com o macvtap. Com o macvtap, as VMs não podem se comunicar com o host, portanto, aqui, o problema é explicado link

This situation is actually not an error — it is the defined behavior of macvtap. Due to the way in which the host's physical Ethernet is attached to the macvtap bridge, traffic into that bridge from the guests that is forwarded to the physical interface cannot be bounced back up to the host's IP stack. Additionally, traffic from the host's IP stack that is sent to the physical interface cannot be bounced back up to the macvtap bridge for forwarding to the guests.

Parece que o mesmo mecanismo está em vigor com VLANs em ponte. Eu não tenho certeza, apenas especulando aqui.

Edit: Encontrei este blog da rackspace que explica exatamente esse problema link

    
por 02.11.2016 / 07:41