Bonding no Debian GNU/Linux
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.