Alisson Machado
25 September 2018

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?