Neste artigo mostrarei como fazer um balanceamento de carga entre duas ou mais placas de rede em um servidor linux, podendo ser executado qualquer tipo de serviço linux.
No ambiente de implementação foi utilizado um servidor Dell 2500 com dois processadores Intel Pentium(r) III; 1000 Mhz, 1GB DIMM pc133, hd 80 GB SCSI, e como sistema operacional foi utilizado o debian 4r4a
Para começar temos q ue prestar atenção na compilação do kernel, e 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.
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
Se o módulo esta ok vamos para a proxima etapa:
Para facilitar adicione ao repositorio do apt o caminho:
deb http://ftp.debian.org/debian/ etch main contrib
# apt-get update
# apt-get install ifenslave
Após instalado não há necessidade de configurar ip nas interfaces físicas, so devemos levantá-las(up)
# ifconfig eth1 up
# ifconfig eth0 up
O ip virtual que vai ser utilizado é o 10.20.0.36, com a mascara 255.255.0.0, segue os comandos utilizados:
# modprobe bonding
# ifconfig bond0 10.20.0.36 netmask 255.255.0.0
# ifenslave -v bond0 eth0 eth1
ifenslave.c:v1.1.0 (December 1, 2003)
o Donald Becker (becker@cesdis.gsfc.nasa.gov).
o Detach support added on 2000/10/02 by Willy Tarreau (willy at meta-x.org).
o 2.4 kernel support added on 2001/02/16 by Chad N. Tindel
(ctindel at ieee dot org).
ABI ver is 2
Interface ‘eth0?: flags set to 1062.
Interface ‘eth0?: address cleared
Master ‘bond0?: hardware address set to 00:13:d4:24:c4:3c.
Interface ‘eth1?: flags set to 1042.
Interface ‘eth1?: address cleared
Ao configurar-mos o bonding, perdemos a rota default, então vamos colocar a rota padrão de novo na tabela de roteamento:
# route add default gw 10.20.0.1
Por fim não esquecer de criar um script como o abaixo e colocar para executar no /etc/rc.local, para toda vez que o servidor inicializar executar o bonding
#!/bin/bash
ifconfig eth0 up
ifconfig eth1 up
modprobe bonding
ifconfig bond0 10.20.0.36 netmask 255.255.0.0
ifenslave -v bond0 eth0 eth1
route add default gw 10.20.0.1
Por Hoje!!!
duvidas?, comment…
Fonte: http://www.vivaolinux.com.br/artigo/Balanceamento-de-carga-entre-2-placas-de-rede/?pagina=4

by Irecema Juvenil
03 Jun 2010 at 01:04
Adorei seu blog, deixei nos meus favoritos! parabéns, quando der visite o meu blog http://sofamosidade.blogspot.com, bjs..