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