Bonding no Debian GNU/Linux

De ISPUP!
Ir para navegação Ir para pesquisar


Introdução

Nessa dica darei um exemplo de bonding ou como conhecemos como LACP (Link Aggregation Control Protocol), em um Debian. Em outras distribuições GNU/Linux pode ser diferente mas o conceito é o mesmo e pode te servir como comparação.

Primeiro precisamos instalar um pacote essencial e configurar o módulo:

# apt install ifenslave
# modprobe bonding
# echo "bonding" >> /etc/modules

Sem os passos acima, seu LACP não subirá. Outro detalhe é que com a configuração que mostrarei, funcionou muito bem com diversos vendors como Huawei, Cisco e Mikrotik. Importante sempre checar se o balanceamento ficou OK.

Pegarei como exemplo uma interface Intel X520-SR2 que possui 2 portas de 10Gbps ópticas sfp+ nomeadas como enp1s0f0 e enp1s0f1.

auto bond0
iface bond0 inet static
        bond-slaves enp1s0f0 enp1s0f1
        bond_mode 802.3ad
        bond-ad_select bandwidth
        bond_miimon 100
        bond_downdelay 200
        bond_updelay 200
        bond-lacp-rate 1
        bond-xmit-hash-policy layer2+3
        address 199.18.0.10/27

Verificando o LACP se está funcionando

Vamos necessitar de um reboot e para sabermos se ficou ok olharemos o /proc e veremos algo parecido com o que está abaixo, checando os status das interfaces. No exemplo abaixo a porta enp1s0f1 está down e por isso necessita ser checada:

# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v5.10.0-19-amd64

Bonding Mode: IEEE 802.3ad Dynamic link aggregation
Transmit Hash Policy: layer2+3 (2)
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 200
Down Delay (ms): 200
Peer Notification Delay (ms): 0

802.3ad info
LACP rate: fast
Min links: 0
Aggregator selection policy (ad_select): bandwidth
System priority: 65535
System MAC address: 8c:dc:d4:af:c2:dc
Active Aggregator Info:
        Aggregator ID: 1
        Number of ports: 1
        Actor Key: 15
        Partner Key: 3649
        Partner Mac Address: f4:de:af:69:c3:40

Slave Interface: enp1s0f0
MII Status: up
Speed: 10000 Mbps
Duplex: full
Link Failure Count: 1
Permanent HW addr: 8c:dc:d4:af:c2:dc
Slave queue ID: 0
Aggregator ID: 1
Actor Churn State: none
Partner Churn State: none
Actor Churned Count: 1
Partner Churned Count: 1
details actor lacp pdu:
    system priority: 65535
    system mac address: 8c:dc:d4:af:c2:dc
    port key: 15
    port priority: 255
    port number: 1
    port state: 63
details partner lacp pdu:
    system priority: 32768
    system mac address: f4:de:af:69:c3:40
    oper key: 3649
    port priority: 32768
    port number: 11
    port state: 61

Slave Interface: enp1s0f1
MII Status: down
Speed: Unknown
Duplex: Unknown
Link Failure Count: 0
Permanent HW addr: 8c:dc:d4:af:c2:dd
Slave queue ID: 0
Aggregator ID: 2
Actor Churn State: churned
Partner Churn State: churned
Actor Churned Count: 1
Partner Churned Count: 1
details actor lacp pdu:
    system priority: 65535
    system mac address: 8c:dc:d4:af:c2:dc
    port key: 0
    port priority: 255
    port number: 2
    port state: 71
details partner lacp pdu:
    system priority: 65535
    system mac address: 00:00:00:00:00:00
    oper key: 1
    port priority: 255
    port number: 1
    port state: 1

Checando o tráfego se está balanceado

Não esqueça de conferir o tráfego se está balanceado. Podemos usar o pacotes bmon e olhar as interfaces e corrigir se algo estiver errado. O problema acima é porque não existe um cordão óptico ligando a interface enp1s0f1 no switch:

# apt install bmon
# bmon -b -p bond0,enp1s0f0,enp1s0f1

Repare na imagem abaixo que uma das interfaces do bonding está fora e por isso não há tráfego:

Se estiver tudo OK verá um tráfego balanceado.

Um exemplo de configuração no Mikrotik

Abaixo a imagem da configuração de Bonding que costumo usar nos equipamentos Mikrotik:

Essa documentação foi útil? Compartilhe, divulgue e ajude outras pessoas. Meus contatos podem ser vistos aqui.