Bonding + Bridge: tráfego passando pela interface errada

2

Estou usando o servidor Ubuntu 12.04, em um servidor com 6 NICs, agrupados em 2 pacotes:

  • eth0 e eth2 são empacotados usando o modo de ligação 1, sob o nome da interface    bond0 que tem IP [rede] .8
  • eth1, eth3, eth4 e eth5 são agrupados    usando o modo de ligação 4 (802.3ad), sob o nome da interface bond1

bond1 será usado para conectar as VMs à nossa rede: elas são vinculadas por meio de br0, que tem IP [network].

Agora, quando faço ping [network] .5 da nossa rede, tudo parece funcionar, mas nossas VMs não têm acesso à rede.

Após bisbilhotar por um tempo, notei que o IP de br0 ([network] .5) está associado ao endereço MAC do bond1, ou seja:

arping <[network].5>

retorna

Unicast reply from <[network].5> [<bond0's MAC address>]  0.710ms

Além disso, enquanto eu estou pingando [rede] .5:

tcpdump -i br0 icmp

não mostra tráfego ICMP,

tcpdump -i bond1

não mostra nenhum tráfego, mas

tcpdump -i bond0

mostra os pacotes ICMP que estou enviando usando ping.

É bem óbvio que os pacotes são enviados pelo canal errado. Minha pergunta aqui é: por que é assim e como posso consertar isso?

Aqui está o conteúdo do meu arquivo / etc / network / interfaces:

# bond0 part :

auto eth0
    iface eth0 inet manual
    bond-master bond0

auto eth2
    iface eth2 inet manual
    bond-master bond0

auto bond0
    iface bond0 inet static
    address [network].8
    gateway [network].254
    netmask 255.255.254.0
    # bonding mode 1 :
    bond-mode balance-rr
    bond-slaves none

auto eth1
    iface eth1 inet manual
    bond-master bond1

auto eth3
    iface eth3 inet manual
    bond-master bond1

# bond1 and br0 part :

auto eth4
    iface eth4 inet manual
    bond-master bond1

auto eth5
    iface eth5 inet manual
    bond-master bond1

auto bond1
    iface bond1 inet manual
    # bonding mode 4 :
    bond-mode 802.3ad
    bond-slaves none
    bond-miimon 100
    bond-downdelay 200
    bond-updelay 200        
    bond_xmit_hash_policy layer2
    bond_lacp_rate fast

auto br0
    iface br0 inet static
    address [network].5
    netmask 255.255.254.0
    gateway [network].254
    bridge_ports bond1
    bridge_maxwait 5
    bridge_stp off
    bridge_fd 0

Por favor, note que:

  • A agregação de links 802.3ad foi configurada no lado do swich
  • Verificamos várias vezes que as portas corretas estão conectadas
  • O mesmo problema ocorre em 2 servidores com exatamente o mesmo hardware + configuração de software

[EDIT] Após várias reinicializações, acontece o contrário: bond0 está associado ao endereço mac do bond1. Isso parece acontecer aleatoriamente. Quando isso acontece, as VMs por trás da ponte têm acesso à nossa rede e à Internet.

    
por iodbh 12.02.2013 / 16:12

1 resposta

1

Depois de mais pesquisas, parece que a raiz do meu problema é o que é discutido aqui:

Serverfault : arp respostas sempre saem um NIC sinle

Como esta pergunta é muito mais precisa e tem várias respostas, é aí que você deve procurar se tiver o mesmo problema que eu

    
por iodbh 18.02.2013 / 15:39