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.866 ]

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

Ensinando seu servidor a ler emails e liberar acesso SSH

Port Forward mais completo: caçando o fantasma da rede interna

Conheça o firewall OpenGFW, uma implementação do (Great Firewall of China).

Introdução ao Firewall Linux

Servidor seguro com Bridge, Snort e Guardian

  
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