Balanceamento de carga entre 2 placas de rede

Esse artigo mostra como fazer para balancear o tráfego de rede usando duas placas de rede usando o módulo bonding, aumentando assim a segurança de seu servidor, visto que em caso de falha de uma placa, a outra estará funcionando.

[ Hits: 111.329 ]

Por: Gabriel Knepper Mendes em 08/05/2006


O módulo BONDING



Você tem diversas máquinas na mesma rede utilizando DHCP/NFS ou mesma conexão a internet e não pode de jeito nenhum deixar essa máquina de fora? Por quê não instalar uma outra placa de rede, balancear a carga e aumentar a segurança, visto que apenas uma das duas placas de rede precisa estar no ar.

Na compilação do kernel, ter certeza que compilou o módulo BONDING em:
 [ ] Device Drivers
	[ ] Network Device Support
		[ ] Bonding Driver Support

para verificar se você tem o módulo BONDING compilado execute:

# modinfo bonding

Deve aparecer algo como:

filename:       /lib/modules/2.6.14/kernel/drivers/net/bonding/bonding.ko
parmtype:       max_bonds:int
parm:           max_bonds:Max number of bonded devices
parmtype:       miimon:int
parm:           miimon:Link check interval in milliseconds
parmtype:       updelay:int
parm:           updelay:Delay before considering link up, in milliseconds
parmtype:       downdelay:int
parm:           downdelay:Delay before considering link down, in milliseconds
parmtype:       use_carrier:int
parm:           use_carrier:Use netif_carrier_ok (vs MII ioctls) in miimon; 0 for off, 1 for on (default)
parmtype:       mode:charp
parm:           mode:Mode of operation : 0 for round robin, 1 for active-backup, 2 for xor
parmtype:       primary:charp
parm:           primary:Primary network device to use
parmtype:       lacp_rate:charp
parm:           lacp_rate:LACPDU tx rate to request from 802.3ad partner (slow/fast)
parmtype:       xmit_hash_policy:charp
parm:           xmit_hash_policy:XOR hashing method : 0 for layer 2 (default), 1 for layer 3+4
parmtype:       arp_interval:int
parm:           arp_interval:arp interval in milliseconds
parmtype:       arp_ip_target:array of charp
parm:           arp_ip_target:arp targets in n.n.n.n form
license:        GPL
version:        2.6.4
description:    Ethernet Channel Bonding Driver, v2.6.4
author:         Thomas Davis, tadavis@lbl.gov and many others
vermagic:       2.6.14 preempt K7 gcc-3.3
depends:
srcversion:     1E88D1C30D529F921F5B399

Se aparecer algo como:

modinfo: could not find module bonding

O módulo não está disponível no sistema, verifique.

Tenha certeza que selecionou a opção no menu do kernel:

# make xconfig

Tenha certeza que compilou os módulos:

# make modules

Tenha certeza que instalou os módulos:

# make modules_install

    Próxima página

Páginas do artigo
   1. O módulo BONDING
   2. O programa IFENSLAVE
   3. A configuração do BONDING
   4. O teste de São Tomé
Outros artigos deste autor

Flash 9 com som OSS

Leitura recomendada

Revisão atualizada de instalação do Iptables com Layer7

Desvendando as regras de Firewall Linux Iptables

Script de Firewall com redirecionamento de portas em Linux Debian

Construindo um Firewall / Proxy com o Fedora Core 4

Script de firewall e análise de log

  
Comentários
[1] Comentário enviado por vitor.jjb em 08/05/2006 - 09:52h

Eu ia escrever um artigo de bonding essa semana! Passou na frente!
Parabens!! :) aueaehueahuea

O pessoal aqui usou bonding em uns servidores dell...
manero!
abraços!

[2] Comentário enviado por thelinux em 08/05/2006 - 10:21h

Gabriel Knepper ,
Parabéns pelo tuto. Vou experimentar isto amanhã. Um tutorial prático e feito para o ambiente corporativo. É ISSO.

[3] Comentário enviado por ths_sp em 08/05/2006 - 11:25h

Legal. No meu caso em um servidor interno. Tb é possivel eu ter 2 placas de rede? Melhoraria a perfermance do servidor?

[4] Comentário enviado por efloriani em 08/05/2006 - 13:07h

Nao é balanceamento, é Failover.... para balanceamento switch tem de aceitar trunking e fazer configuração conforme descrita em um tutorial passado...

Parabens pelo artigo...

Abraços

[5] Comentário enviado por gabrielrs em 08/05/2006 - 13:54h

Pessoal

Esta correto o colega efloriani. É Failover mesmo, visto que se romper um cabo de rede o outro automaticamente segura o serviços. MAS a solução foi implementada para um servidor Linux Boot-Remoto + Samba onde o trafego de rede era demasiadamente alto (dhcp + TFTP + NFS + SMB) para prover maior seguranca nos serviços. Quanto a trunking realmente voce tem razão e aproveito para lembrar que não é chamado somente de TRUNKING mas tambem de PORT AGREGATION e IEEE 802.3ad. No caso de performance tem que ver onde esta o gargalo do seu servidor. No processamento ? No Acesso ao Disco ? Na rede ? Existe alguns parametros que podem ser setados nesse modulo bonding que define se sera failover ou balancing. Assim que tiver um tempinho eu escrevo quando utilizar um e o outro.

Abração a todos !!!

[6] Comentário enviado por gilberto.russo em 08/05/2006 - 16:06h

Gabriel,

solucoes corporativas de FailOver é muito bem vinda principalmente quando envolve redes.
Parabéns pelo artigo. Muito bom mesmo!

Gilberto Russo
Conductor Tecnologia SA

[7] Comentário enviado por removido em 08/05/2006 - 23:18h

ae mano nota dez, eu estava procurando hoje exatamente por isso ai e nao achei nada de boa qualidade ai venho aqui por rotina e vejo seu artigo muito bom gostei

[8] Comentário enviado por wagner05 em 20/06/2006 - 11:37h

Cara amei o artigo mas ainda não solucionou meu problema vejamos nesse caso as duas conexões q estão entrando vem de um IP fixo certo! mas se eu quiser colocar uma de IP fixo e a outro de um IP dinamico! isto é tenho VELOX vindo de um modem roteado com ip 192.168.0.1 e o virtua vindo do cable modem com ip dinamico como junto esses dois?

[9] Comentário enviado por gilps em 26/07/2006 - 06:01h

Parabéns Muito bom! Este artigo!
É bem o que eu estou precisando! 10

[10] Comentário enviado por linux.vitor em 12/12/2006 - 11:09h

olá amigos.. vamos ver se entendi...
o bonding server pra rede local??? por exemplo..
tenho um servidor banco de dados com 2 placas de rede e quero q quando eu tirar o cabo de uma placa a outra assuma.. e isso q o tutorial ta explicando???? quando uma cair a outra assume???
Obrigado.

[11] Comentário enviado por julianlinuxer em 14/12/2006 - 11:12h

Pra servidores isto é uma beleza, vou aplicar com certeza. Valeu!!!

[12] Comentário enviado por teleseg em 06/05/2007 - 00:36h

Gabriel vi o seu artigo, e fiquei na duvida qual o IP adicionar na interface bond0. É possivel juntar 02 modens adsl com bonding.

No artigo voce mencionou o IP do modem que o DHCP do mesmo deu para interface de rede que esta ligada na interface eth0, na interface eth1 tem outro modem ? e como fica a rede deste outro modem tem ser diferente voce menciona que teem que levantar eth1 sem IP. To meio confuso gostaria de receber umas dicas da comunicade.

[13] Comentário enviado por gabrielrs em 06/05/2007 - 00:47h

O Bonding serve para 2 coisas. Aumentar a largura de banda de uma interface ethernet através de balanceamento e aumentar a segurança da conexão , por exemplo montando ligações entre servidores com 4 interfaces e 2 redes distintas, onde no caso de uma falhar ( Cabo , Switch ou mesmo interface com problemas ) a outra placa segura o trafego.

Para links ADSL ou similares para internet não serve. Teriam que ser com o mesmo IP e estar no mesmo seguimento de rede.

Obrigado a todos.

[14] Comentário enviado por lipecys em 24/06/2008 - 15:48h

Obrigado pelo artigo, muito bom.

[15] Comentário enviado por lcm em 17/12/2008 - 16:17h

Caro Gabriel, seu tutorial me ajudou muito na implementação de um servidor de imagens, agradeço e espero que não se importe que eu tenha alterado seu tutorial e postado no meu blog, claro com a fonte!!!
Atenciosamente,

LCM

[16] Comentário enviado por jrwesleynunes em 16/06/2009 - 12:25h

Otimo artigo me ajudou muito....

[17] Comentário enviado por edison_filho em 10/07/2009 - 19:24h

OLÁ, ENTÃO SÓ PARA ESCLARECER..... ESTE TUTO NÃO SERVE PARA FAZER BALANCEAMENTO DE CARGA DE DOIS LINKS DE INTERNET POR EXEMPLO?

QUAL SERIA O MELHOR MÉTODO?

Abraço,

Edison de Azevedo Filho.
http://www.edisonfilho.com

[18] Comentário enviado por manoserpa em 20/07/2009 - 17:03h

Não conhecia, legal parabéns.

[19] Comentário enviado por rskmacho em 23/08/2010 - 10:31h

Pessoal, preciso de ajuda

quando eu tiro o cabo de rede da eth0 e pingo, alguns pacotes se perdem, alguns funcionam..... o que será?


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts