Configurando Bonding no CentOS 7 e Red Hat 7

Olá amigos.

Feliz 2019 a todos, e que possamos compartilhar muitas experiências neste ano.

O Bonding é módulo do Kernel Linux e que permite usar várias interfaces de rede em uma única interface lógica. Sua implementação é simples, e por sinal bem documentado.

Tipos de Bonding:

ModePoliticaComo FuncionaTolerância a falhaBalanceamento de carga
0Round RobinOs pacotes são transmitidos / recebidos sequencialmente através de cada interface, um por um.NoYes
1Active BackupUma NIC ativa enquanto outra NIC estiver adormecida. Se a NIC ativa cair, outra NIC se tornará ativa. Suportado apenas em ambientes x86.YesNo
2XOR [exclusive OR] Neste modo, o endereço MAC do NIC escravo é comparado com o MAC do pedido recebido, uma vez estabelecida esta conexão, o mesmo NIC é usado para transmitir / receber para o MAC de destino.
YesYes
3BroadcastTodas as transmissões são enviadas em todos os escravos.YesNo
4Dynamic Link AggregationNICs agregadas atuam como uma NIC que resulta em um rendimento mais alto, mas também fornece failover no caso de falha de uma NIC. Agregação dinâmica de links requer um switch que suporte IEEE 802.3adYesYes
5Transmit Load Balancing (TLB)O tráfego de saída é distribuído dependendo da carga atual em cada interface escrava. O tráfego de entrada é recebido pelo escravo atual. Se o escravo receptor falhar, outro escravo assumirá o endereço MAC do escravo com falha.YesYes
6Adaptive Load Balancing (ALB)Ao contrário da Agregação de Link Dinâmico, o Balanceamento de Carga Adaptável não requer nenhuma configuração de switch específica. O balanceamento de carga adaptável é suportado apenas em ambientes x86. Os pacotes de recebimento são balanceados por carga através da negociação ARP.YesYes

O laboratório vai ser executado no Centos 7, porem a configuração é compatível com o RedHat 7

Requisitos:

Caso o modulo do Bonding, não esteja ativo o comando abaixo faz a ativação:

modprobe bonding

Para listar as informações do módulo de Bonding , use o seguinte comando.

modinfo bonding

1ª Etapa : Criar arquivo de interface Bond

Crie um arquivo de interface Bound (ifcfg-bond0) na pasta “/ etc / sysconfig / network-scripts /”

DEVICE=bond0
TYPE=Bond
NAME=bond0
BONDING_MASTER=yes
BOOTPROTO=none
ONBOOT=yes
IPADDR=192.168.21.90
NETMASK=255.255.255.0
GATEWAY=192.168.20.1
BONDING_OPTS="mode=5 miimon=100"

Especifique o endereço IP, a máscara de rede e os modos de ligação conforme sua necessidade. No meu exemplo eu estou usando o modo = 5, que é usado para fornecer tolerância a falhas e balanceamento de carga.

2ª Etapa : Edite os arquivos das interfaces de rede

Abaixo vou deixar o exemplo de como deixo as duas placas de rede configuradas:

Placa 1- ifcfg-ens32

TYPE=Ethernet
BOOTPROTO=none
MASTER=bond0
NAME=ens32
UUID=4eb18706-42cf-48fb-bb66-fd48f360fe58
DEVICE=ens32
ONBOOT=yes
SLAVE=yes

Placa 2- ifcfg-ens33

TYPE=Ethernet
BOOTPROTO=none
MASTER=bond0
NAME=ens33
UUID=5689a159-eeeb-4003-a4fe-73a7e6fada39
DEVICE=ens33
ONBOOT=yes
SLAVE=yes

3ª Etapa : Reiniciando serviço de rede e testando

O comando abaixo irá reiniciar o serviço de rede e assim aplicar as alterações feitas.

systemctl restart network.service

Vamos utilizar o comando “ifconfig” para validar as configurações, podem notar que temos o bond0 criado e com o IP setado.

O comando abaixo mostra informações detalhadas do Bond e as interfaces secundárias.

cat /proc/net/bonding/bond0

Teste de tolerância a falhas

Para testar a tolerância a falhas, podemos desativar uma interface e verificar se conseguimos ainda comunicar na rede.

Fica claro que mesmo com uma das interfaces que é a ens32 down o host continuo comunicando com a interface ens33.

Qualquer duvida me avisem. Abraços

Continue Reading