BONDING: Aumente a disponibilidade e velocidade da sua rede com a combinação de interfaces

BONDING: Aumente a disponibilidade e velocidade da sua rede com a combinação de interfaces

 

Descubra como configurar o BONDING para garantir alta disponibilidade, redundância e maior performance nos servidores, otimizando a infraestrutura de rede.

 

Introdução ao BONDING: Otimizando a Disponibilidade e Velocidade de Redes

Em ambientes de servidores, garantir alta disponibilidade, redundância e velocidade é essencial para manter a operação contínua e eficiente. O BONDING, uma técnica que combina duas ou mais interfaces de rede para trabalharem como uma única, surge como uma solução poderosa para esses desafios. Ao implementar o BONDING, os administradores de rede podem distribuir o tráfego de dados de forma equilibrada, aumentar a capacidade de transmissão e garantir que, mesmo em caso de falha de uma interface, o sistema continue funcionando sem interrupções. Neste laboratório, exploraremos como configurar e utilizar o BONDING para otimizar sua infraestrutura de rede.

 

Tabela 1 – Tabela modo de operações Bonding

Modo Política Funcionamento Tolerância a erros Balanceamento de carga
0 Balance-rr Transmite os pacotes de forma sequencial do primeiro ao último slave. Este é o único modo que permite que o tráfego seja distribuído simultaneamente entre as interfaces. (ex. duas placas 10/1000 serão uma única 2x(10/1000), ou seja, 2Gbit max); No Yes
1 Active-Backup Apenas um slave fica ativo, os outros ficam em modo standby e só é ativo caso falhe o outro slave; Yes No
2 Balance-xor Transmite os pacotes adotando uma política baseado em hashs, provê praticamente as mesmas funcionalidades do modo 0. É possível configurar políticas alternativas, modificando o parâmetro xmit_hash_policy ao carregar o módulo. A política padrão é baseada em MACs (origem/destino XOR’d). Yes Yes
3 Broadcast Transmite todos os pacotes em todos os slaves; Yes No
4 Dynamic Link Aggregation Agregação dinâmica de links. É necessário um switch que suporte 802.3ad e que o ethtool consiga configurar os parâmetros speed e duplex em todos os slaves. É necessário também alguma configuração extra no switch; Yes Yes
5 Transmit Load Balancing (TLB) O tráfego de saída é distribuído de acordo com a carga em cada slave. O tráfego de entrada utiliza um único slave, se ele falhar outro assume e clona o MAC do slave que estava ativo; Yes Yes
6 Adaptive Load Balancing (ALB) O Adaptative Load Balancing provê o Transmit Load Balancing e o Receive Load Balancing para o IPv4 por intermédio de negociação ARP. Não requer mudanças no switch, mas se faz necessário a troca do endereço MAC enquanto este estiver aberto. Yes Yes

 

Pré-Requisitos

Neste Lab iremos configurar o netwok bonding no RHEL 7. Sendo necessário:

  • Duas placas de rede;
  • Carregar o modulo bonding no Linux, por meio do comando: modprobe bonding.

 

Configurando o modo Adaptive Load Balancing (ALB)

Para certificarmos das informações do módulo bonding, use o seguinte comando:

[root@lab01 ~]# modinfo bonding

 

Criação do arquivo de interface Bond

 

Será criado o arquivo de configuração (ifcfg-bond0) dentro da pasta “/etc/sysconfig/network-scripts/”

[root@lab01 network-scripts]# vim ifcfg-bond0
DEVICE=bond0
TYPE=Bond
NAME=bond0
BONDING_MASTER=yes
BOOTPROTO=none
ONBOOT=yes
IPADDR=192.168.249.77
PREFIX=24
GATEWAY=192.168.249.1
DNS1=192.168.249.1
DNS2=8.8.8.8
DNS3=192.168.249.151
BONDING_OPTS="mode=6 miimon=100"

Considerações:

BONDING_MASTER=yes > Determina a interface como Master
BONDING_OPTS=”mode=6 miimon=100″ > Descreve o modo a ser utilizado e diz ao kernel que o link será inspecionado a cada 100 milissegundos.

 

Ajustar as interfaces de rede a serem utilizadas no bonding

 

[root@lab01 ~]# vim /etc/sysconfig/network-scripts/ifcfg-enp2s0
TYPE=Ethernet
BOOTPROTO=none
DEVICE=enp2s0
ONBOOT=yes
HWADDR="00:e0:4c:44:04:00"
MASTER=bond0
SLAVE=yes
[root@lab01 ~]# vim /etc/sysconfig/network-scripts/ifcfg-enp3s0
TYPE=Ethernet
BOOTPROTO=none
DEVICE=enp3s0
ONBOOT=yes
HWADDR="88:d7:f6:65:86:50"
MASTER=bond0
SLAVE=yes

Considerações:

Como podemos verificar nas configurações acima, foram adicionadas as linhas:

MASTER=bond0 > Indica qual a interface Master
SLAVE=yes > determina esta interface como Slave

Nota-se que é necessário o endereço MAC, pois será utilizado pelo modo escolhido (Adaptive Load Balancing) Ajustar as interfaces de rede a serem utilizadas no bonding

 

Reiniciar o serviço Network

[root@lab01 ~]# systemctl restart network

 

Testes e verificação da interface bond

[root@lab01 ~]# ifconfig
bond0: flags=5187<UP,BROADCAST,RUNNING,MASTER,MULTICAST>  mtu 1500
        inet 192.168.249.77  netmask 255.255.255.0  broadcast 192.168.249.255
        inet6 fe80::2e0:4cff:fe44:400  prefixlen 64  scopeid 0x20<link>
        ether 00:e0:4c:44:04:00  txqueuelen 0  (Ethernet)
        RX packets 914260  bytes 139186447 (132.7 MiB)
        RX errors 0  dropped 269464  overruns 0  frame 0
        TX packets 678716  bytes 55386742 (52.8 MiB)
        TX errors 0  dropped 4 overruns 0  carrier 0  collisions 0

enp2s0: flags=6211<UP,BROADCAST,RUNNING,SLAVE,MULTICAST>  mtu 1500
        ether 00:e0:4c:44:04:00  txqueuelen 1000  (Ethernet)
        RX packets 543073  bytes 69170037 (65.9 MiB)
        RX errors 0  dropped 489  overruns 0  frame 0
        TX packets 269731  bytes 16380796 (15.6 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

enp3s0: flags=6211<UP,BROADCAST,RUNNING,SLAVE,MULTICAST>  mtu 1500
        ether 88:d7:f6:65:86:50  txqueuelen 1000  (Ethernet)
        RX packets 398917  bytes 73687770 (70.2 MiB)
        RX errors 0  dropped 268046  overruns 0  frame 0
        TX packets 410337  bytes 39228964 (37.4 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0


lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 0  (Loopback Local)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0


virbr0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255
        ether 52:54:00:73:0d:55  txqueuelen 0  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

 

[root@lab01 ~]# cat /proc/net/bonding/bond0
[root@lab01 ~]# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)

Bonding Mode: adaptive load balancing
Primary Slave: None
Currently Active Slave: enp2s0
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0

Slave Interface: enp2s0
MII Status: up
Speed: 100 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:e0:4c:44:04:00
Slave queue ID: 0

Slave Interface: enp3s0
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 88:d7:f6:65:86:50
Slave queue ID: 0

 

[root@lab01 ~]# ifdown enp2s0
[root@lab01 ~]# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)
Bonding Mode: adaptive load balancing
Primary Slave: None

Currently Active Slave: enp3s0
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0


Slave Interface: enp3s0
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 88:d7:f6:65:86:50
Slave queue ID: 0

 

Referências

Oracle Technology NetworkArtigosGrid Computing:https://www.oracle.com/technetwork/pt/articles/grid/grid-infrastructure-12cr1-parte-2-2099500-ptb.html

Configure NIC (Network Interface Card) bonding in CentOS 7 / RHEL 7:https://www.linuxtechi.com/configure-nic-bonding-in-centos-7-rhel-7/

RHEL Networking Guide: https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/networking_guide/ch-configure_network_bonding

 

COMENTÁRIOS

Política de Privacidade e Termos de Uso de Dados - Dataunique Tecnologia da Informação LTDA

A Dataunique Tecnologia da Informação LTDA, empresa devidamente registrada sob o CNPJ 15.179.495/0001-35, compromete-se a proteger a privacidade e segurança dos dados pessoais de seus usuários. Esta política descreve como coletamos, usamos, compartilhamos e protegemos as informações pessoais fornecidas por você.

1. Informações Coletadas

1.1. A Dataunique coleta informações fornecidas voluntariamente por você, como nome, endereço, e-mail, número de telefone, entre outras, durante o cadastro ou utilização de nossos serviços.

1.2. Dados de acesso e utilização de nossos serviços, como endereço IP, tipo de navegador, páginas visitadas e tempo de permanência, podem ser automaticamente registrados para melhorar a qualidade dos serviços oferecidos.

2. Uso de Informações

2.1. As informações coletadas são utilizadas para fornecer, manter, proteger e melhorar nossos serviços, bem como para desenvolver novos serviços.

2.2. Podemos utilizar seus dados para personalizar conteúdos, oferecer suporte ao cliente, enviar atualizações, newsletters e informações sobre novos produtos ou serviços.

3. Compartilhamento de Informações

3.1. A Dataunique não compartilha informações pessoais com terceiros, exceto quando necessário para cumprir obrigações legais, proteger nossos direitos ou em situações autorizadas por você.

4. Segurança de Dados

4.1. Utilizamos medidas de segurança adequadas para proteger suas informações contra acessos não autorizados, alterações, divulgação ou destruição não autorizada.

5. Cookies e Tecnologias Semelhantes

5.1. Utilizamos cookies e tecnologias semelhantes para melhorar a experiência do usuário, analisar o tráfego e personalizar conteúdos.

6. Seus Direitos

6.1. Você tem o direito de acessar, corrigir ou excluir suas informações pessoais. Para exercer esses direitos ou esclarecer dúvidas, entre em contato com nosso Encarregado de Proteção de Dados (DPO) através do e-mail [email protected].

7. Alterações na Política de Privacidade

7.1. Reservamo-nos o direito de alterar esta política a qualquer momento, e as alterações serão comunicadas por meio de nossos canais de comunicação.

Ao utilizar nossos serviços, você concorda com os termos desta Política de Privacidade. Recomendamos a leitura regular desta política para se manter informado sobre como tratamos seus dados pessoais.

Dados de Contato:

  • Endereço: Rua T30, 2515, Quadra 99 Lote 11/14, Sala 1404 e 1405, Edif Walk Bueno Business Edif e Lifestyle, SET BUENO, Goiânia – GO, 74215-060.
  • Telefone: (62) 99906-0584
  • Fax/Mensageiro Online: (62) 3223-2257
  • E-mail: [email protected]

Data de vigência: [Data de atualização da política]

Atenciosamente,

Dataunique Tecnologia da Informação LTDA