Bonding no Debian GNU/Linux

De ISPUP!
Revisão de 20h51min de 1 de janeiro de 2023 por Gondim (discussão | contribs)
(dif) ← Edição anterior | Revisão atual (dif) | Versão posterior → (dif)
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.