Acesso direto ao conteúdo
Logotipo Dicas-L, por Ricardo Burile

Busca

Visite também: Segurança Linux ·  UnderLinux ·  VivaOLinux ·  LinuxSecurity ·  NoticiasLinux ·  BR-Linux ·  SoftwareLivre.org ·  [mais]   
 

Você está aqui: Home  → Arquivo Dicas-L

 

Curso de Inglês Online

Assine a Lista Dicas-L

Receba diariamente por email as dicas
de informática publicadas neste site
Para se descadastrar, clique aqui.

Link aggregation/Bonding em linux

Colaboração: Gustavo Mendes de Carvalho

Data de Publicação: 12 de junho de 2010

Seguem algumas informações e dois scripts úteis para adição e configuração de interfaces em link agregation/bonding em linux. Eu fiz isso em Debian 3.1, mas vale para qualquer linux.

No exemplo abaixo (/etc/init.d/start_bonding) eu tenho um servidor com 4 interfaces de rede e estou criando 2 link aggregation, para uso em dois switches trabalhando com HSRP (Cisco). Eu vou criar a interface lógica bond0 com as interfaces físicas eth0 e eth1, e a interface lógica bond1 com as interfaces físicas eth2 e eth3.

Vale lembrar que se você tem 1 servidor e 1 switch operando em modo bonding, a escolha do modo é muito importante para o correto balanceamento.

No caso do servidor, o melhor modo para balanceamento é o mode=0, que envia um pacote para cada interface alternadamente. A escolha do modo vale somente para o envio dos pacotes, uma vez que quando o bonding ou aggregation está ativado, qualquer que seja o modo de configuração do bonding, o outro equipamento deve ser capaz de recebê-los sem problema. Ou seja, eu posso ter modo de envio 0 (Round-robin mode) do servidor para o switch e modo 1 (Active-backup mode) do switch para o servidor, e eles serão capazes de trocar tráfego sem problema.

  #!/bin/sh
  # arquivo /etc/init.d/start_bonding
  # obtendo os MACs
  MAC_ADDR_0=`/sbin/ifconfig -a | /bin/grep eth0 | /bin/awk  {print $5} `
  MAC_ADDR_1=`/sbin/ifconfig -a | /bin/grep eth2 | /bin/awk  {print $5} `
  
  # modos de operacao de bonding suportados
  # mode=0 ==> Round-robin policy
  # mode=1 ==> Active-backup policy
  # mode=2 ==> Balance-xor policy
  # mode=3 ==> Broadcast policy
  # mode=4 ==> 802.3ad policy
  # mode=5 ==> Balance-tlb (Adaptive transmit load balancing) policy
  # mode=6 ==> Balance-alb (Adaptive load balancing) policy
  
  # carregando o modulo em memoria para o primeiro bonding
  /sbin/modprobe bonding mode=0                  ## bond0
  
  # pulo do gato para criar o segundo bonding no mesmo servidor
  /sbin/modprobe bonding -o bonding1 mode=0      ## bond1
  
  # criando a interface bond0 e dando-lhe um MAC
  /sbin/ifconfig bond0 hw ether $MAC_ADDR_0
  /sbin/ifconfig bond0 up
  
  # criando a interface bond1 e dando-lhe um MAC
  /sbin/ifconfig bond1 hw ether $MAC_ADDR_1
  /sbin/ifconfig bond1 up
  
  # adicionando as interfaces físicas ao bond 0
  /sbin/ifenslave bond0 eth0
  /sbin/ifenslave bond0 eth1
  
  # adicionando as interfaces físicas ao bond 1
  /sbin/ifenslave bond1 eth2
  /sbin/ifenslave bond1 eth3
  
  # ativando as interfaces físicas
  /sbin/ifconfig eth0 up
  /sbin/ifconfig eth1 up
  /sbin/ifconfig eth2 up
  /sbin/ifconfig eth3 up
  
  #========eof /etc/init.d/start_bonding

É claro que este exemplo server para mostrar o que pode ser feito, mas é possível também adicionar mais interfaces físicas em um mesmo bonding. No exemplo abaixo, eu vou criar 1 bonding com 4 interfaces físicas.

  #!/bin/sh
  # arquivo /etc/init.d/start_bonding
  # obtendo os MACs
  MAC_ADDR_0=`/sbin/ifconfig -a | /bin/grep eth0 | /bin/awk  {print $5} `
  
  # carregando os modulos em memoria
  # mode=0 ==> Round-robin policy
  # mode=1 ==> Active-backup policy
  # mode=2 ==> Balance-xor policy
  # mode=3 ==> Broadcast policy
  # mode=4 ==> 802.3ad policy
  # mode=5 ==> Balance-tlb (Adaptive transmit load balancing) policy
  # mode=6 ==> Balance-alb (Adaptive load balancing) policy
  
  # carregando o modulo em meoria para o primeiro bonding
  /sbin/modprobe bonding mode=0                  ## bond0
  
  # criando a interface bond0 e dando-lhe um MAC
  /sbin/ifconfig bond0 hw ether $MAC_ADDR_0
  /sbin/ifconfig bond0 up
  
  # adicionando as interfaces físicas ao bond 0
  /sbin/ifenslave bond0 eth0
  /sbin/ifenslave bond0 eth1
  /sbin/ifenslave bond0 eth2
  /sbin/ifenslave bond0 eth3
  
  # ativando as interfaces físicas
  /sbin/ifconfig eth0 up
  /sbin/ifconfig eth1 up
  /sbin/ifconfig eth2 up
  /sbin/ifconfig eth3 up
  
  #========eof /etc/init.d/start_bonding

Já para desfazer estas interfaces, o caminho deve ser desfeito de trás para frente. Veja o script para desfazer is dois bondings com 2 interfaces físicas cada.

  #!/bin/sh
  # arquivo /etc/init.d/stop_bonding
  
  # colocando as interfaces físicas em down
  /sbin/ifconfig eth1 down
  /sbin/ifconfig eth2 down
  /sbin/ifconfig eth3 down
  /sbin/ifconfig eth4 down
  
  # desvinculando as interfaces físicas do bonding
  /sbin/ifenslave -d bond0 eth0
  /sbin/ifenslave -d bond0 eth1
  /sbin/ifenslave -d bond1 eth2
  /sbin/ifenslave -d bond1 eth3
  
  # colocando as interfaces de bonding em down
  /sbin/ifconfig bond0 down
  /sbin/ifconfig bond1 down
  
  #===========eof  /etc/init.d/stop_bonding

Veja a relação completa dos artigos de Gustavo Mendes de Carvalho

Formato PDF
Newsfeed RSS
Formato para impressão
PDF RSS Imprimir

Referências Adicionais

Referências adicionais sobre os assuntos abordados neste site podem ser encontradas em nossa Bibliografia.

Avalie esta dica

  • Currently 3.01/5
  • 1
  • 2
  • 3
  • 4
  • 5

Avaliação: 3.0 /5 (1278 votos)

Opinião dos Leitores

Jair Adriano
16 Fev 2011, 19:42
No meu Debian funfou direitinho. Obrigado.
Andre Miguel
10 Jul 2010, 21:49
Muito bacana. Acredito que a agilidade nas respostas a clientes, por exemplo, deve-se ter percebido uma melhora bem expressiva. Agora, perguntinha: as placas são gigabit?
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script
Treinamentos, Consultorias e Soluçoes em TI. Baseados em softwares livres e padrões abertos para ambientes de missão crítica

Submarino.com.br

Asterisk na Prática 2ª Edição