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:
Mode | Politica | Como Funciona | Tolerância a falha | Balanceamento de carga |
---|---|---|---|---|
0 | Round Robin | Os pacotes são transmitidos / recebidos sequencialmente através de cada interface, um por um. | No | Yes |
1 | Active Backup | Uma NIC ativa enquanto outra NIC estiver adormecida. Se a NIC ativa cair, outra NIC se tornará ativa. Suportado apenas em ambientes x86. | Yes | No |
2 | XOR [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. | Yes | Yes |
3 | Broadcast | Todas as transmissões são enviadas em todos os escravos. | Yes | No |
4 | Dynamic Link Aggregation | NICs 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.3ad | Yes | Yes |
5 | Transmit 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. | Yes | Yes |
6 | Adaptive 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. | Yes | Yes |
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