Problema com a ponte passando pelo tráfego L2, mas não pelo tráfego L3

Problema com a ponte passando pelo tráfego L2, mas não pelo tráfego L3

Olá pessoal, espero que alguém aqui possa me ajudar.

Eu configurei uma ponte no meu sistema Ubuntu para conectar-se a uma VM que estou executando dentro do KVM. A ponte é capaz de enviar solicitações e respostas ARP, portanto, tenho tráfego bidirecional, mas nenhum tráfego IP consegue passar.

A rede é a seguinte: vnet0 -> bridge -> eth1 -> VLAN com hosts que estou tentando fazer ping

Todos os pings falham ao tentar atravessar a eth1. Fiz TCPDUMPs em minhas interfaces vnet0, bridge e eth1. Posso ver que o problema é que nenhum pacote IP sai da eth1 quando enviado da vnet0, enquanto eles parecem passar perfeitamente pela interface da ponte. Observe também que estou usando um adaptador USB 3.0 gigabit para esta conexão.

Solução de problemas até agora:

  1. IPv6 desativado via sysctl.conf pensando que isso pode de alguma forma ser um problema
  2. Mudou o adaptador USB para uma porta USB diferente
  3. Ponte excluída e criada várias vezes
  4. Reinicializações

Perplexo. Alguma ideia de por que apenas L2 pode passar? Minha VM aprende endereços MAC para sistemas por meio de eth1 via arp, mas não consegue enviar pacotes IP.

Obrigado

Responder1

Depois de bater a cabeça na mesa por mais ou menos uma hora, descobri. Baseei minha configuração /etc/network/interfaces no que estava trabalhando em uma máquina diferente que estava executando o 14.04. O arquivo de interfaces quebradas mostrando apenas os bits relevantes:

auto eth1
iface eth1 inet manual
up ifconfig eth1 up

auto E-MGMT-Bridge
iface E-MGMT-Bridge inet manual
bridge_stp off
bridge_fd 0
bridge_ports eth1

No 16.04, isso quebra a Camada 3 de alguma forma, enquanto ainda permite a passagem de tráfego da Camada 2, como quadros ARP, CDP e STP. Muito estranho. Para fazê-lo funcionar no 16.04, você precisa remover a eth1 e definir apenas a ponte e não a interface física a que ela se refere, assim:

auto E-MGMT-Bridge
iface E-MGMT-Bridge inet manual
bridge_stp off
bridge_fd 0
bridge_ports eth1

Tive que reiniciar e consegui fazer ping da minha VM através da ponte para a rede real conectada ao meu switch. Não tenho certeza se alguém já passou por isso ou se estou apenassortudo.

Responder2

Se você vir apenas ARP, mas nenhum tráfego "real", então o iptables pode ser o seu problema. Verifique se a política FORWARDING do iptables está definida como ACCEPT. Se você quiser usar a política DROP, verifique se regras de encaminhamento foram adicionadas para permitir o tráfego KVM.

informação relacionada