Um convidado VM falha em se comunicar com máquinas LAN através de um macvtap

1

Eu poderia estar perdendo algo óbvio, pois não encontrei nada que explicasse por que eu não consigo fazer isso funcionar. Eu não sou novo para libvirt, kvm, qemu, apenas para macvtap. Para ser honesto, não consigo entender por que o macvtap é mais benéfico do que configurar os convidados para usar redes isoladas e NAT, o que é simples. Se alguém pudesse elaborar sobre isso também, seria ótimo.

Minha situação é esta: Eu tenho um host do Arch Linux, no qual estou configurando alguns convidados do Debian como um laboratório. Minha interface física no host é wi0 , uma interface sem fio, que está conectada à minha LAN, 192.168.1.0/24. Meu convidado “debian_01” (192.168.1.251) possui a seguinte estrofe, que o conecta a macvtap0 :

<interface type='direct'>
  <mac address='52:54:00:cb:a4:08'/>
  <source dev='wi0' mode='bridge'/>
  <target dev='macvtap0'/>
  <model type='virtio'/>
  <alias name='net0'/>
  <address type='pci' domain='0x0000' bus='0x00' slot='0x10' function='0x0'/>
</interface>

(Trocar bridge por vepa não faz nenhuma diferença; eu tentei os dois.)

("debian_02" tem uma estrofe similar, com endereço MAC diferente, macvtap1, net1.)

Tabela de roteamento em "debian_01" tem uma entrada apropriada:

192.168.1.0/24 dev ens16 proto kernel scope link src 192.168.1.251

Ambos os convidados (debian_01, debian_02) podem fazer o ping uns dos outros bem; no entanto, pingar qualquer coisa na LAN parece estar falhando devido ao ARP. Isso é o que estou vendo no meu host do Arch quando estou tentando fazer o ping no meu roteador LAN:

HOST$ tcpdump -nnnqti macvtap0
ARP, Request who-has 192.168.1.254 tell 192.168.1.251, length 28
ARP, Request who-has 192.168.1.254 tell 192.168.1.251, length 28
ARP, Request who-has 192.168.1.254 tell 192.168.1.251, length 28
ARP, Request who-has 192.168.1.254 tell 192.168.1.251, length 28

O Iptables foi atualizado para -j ACCEPT , seja vindo do macvtap0 ou 192.168.1.251 (debian_01), mas sem dados.

sysctl no host:

net.ipv4.conf.all.forwarding = 1

O que mais há para fazer para que esses convidados conversem com outras máquinas da minha rede local através de seus macvtaps?

Terei prazer em compartilhar mais informações, se necessário.

    
por ChubbyPixel 21.08.2017 / 05:50

0 respostas