Linux Bonding: Alta Disponibilidade em Interfaces de Rede

Quando falamos de infraestrutura, um dos pré-requisitos é se pensar em alta disponibilidade, seja ela de:

– Máquinas Virtuais
– Storages
– Máquinas Físicas
– Links de Internet

E etc.

Nesse post vou explicar como pode-se configurar um Bonding no Linux.

O Bonding, é uma técnica utilizada para fazer a alta disponibilidade de interfaces de rede, sendo assim podemos ter duas ou mais interfaces vinculadas a um único IP e fazer um Load Balance através das interfaces de modo que o tráfego de rede fica dividido entre elas.

Todas as configurações abaixo foram feitas em um CentOS 7.

O primeiro passo é acessar o diretório: /etc/sysconfig/network-scripts/

Dentro dele vamos criar um arquivo assim: ifcfg-bond0

DEVICE=bond0
IPADDR=10.2.0.202
NETMASK=255.0.0.0
BOOTPROTO=none
ONBOOT=yes
BONDING_OPTS="mode=0 miimon=100"

Agora dentro desse mesmo diretório temos os arquivos das placas de rede:
– ifcfg-enp11s0
– ifcfg-enp21s0

Deixe os arquivos da seguinte forma:

DEVICE=enp11s0
ONBOOT=yes
MASTER=bond0
SLAVE=yes
BOOTPROTO=none
DEVICE=enp21s0
ONBOOT=yes
MASTER=bond0
SLAVE=yes
BOOTPROTO=none

Agora use o comando nmcli con reload e veja que as interfaces já estão funcionando.

Os modos de configuração do Bonding, podem ser encontrados diretamente na documentação do kernel do linux.

Uma breve lista dos modos segue abaixo:

– balance-rr or 0
– active-backup or 1
– balance-xor or 2
– broadcast or 3
– 802.3ad or 4
– balance-tlb or 5
– balance-alb or 6

Referência:
https://www.kernel.org/doc/Documentation/networking/bonding.txt?