Esto lo puedes hacer con bonding.

Bonding es una forma de obtener enlaces redundantes en bridges, tanto en
aparatos de alta gama, como en máquinas con software libre.

Bonding es un driver que originalmente venía con los parches para clusters
beowulf. Desde hace un tiempo se puede implementar a partir de un kernel 2.2.


El Bonding nos proporciona un mayor ancho de banda ademas de un balanceo de
carga y redundancia. Esta redundancia, caso de que un enlace
fallara, haría que el tráfico fuera enrutado a otro interface en cuestión de
milisegundos. Esta convergencia será transparente para el usuario.


*Ventajas de usar Bonding:*

- Redundancia

Si tenemos una interface bonding con dos tarjetas ethernet y se quema una,
los datos dejaran de balancear entre las dos tarjetas e irán solo por la que
está en buen estado.

- Ancho de Banda

Con la interface bonding anterior, si tenemos el doble enlace conectado a un
switch que soporte trunking, o a otra máquina con un bonding, suponiendo que
el switch tuviese puertos ethernet full-duplex, y las maquinas tambien,
tendríamos un enlace 200Mbps Full-Duplex.



*Funcionamiento de Bonding*

*Caractersticas:*

  - Soporta SMP
  - Soporta todo tipo de tarjetas ethernet. Incluso puedes anadir al
  bonding Gigabit.
  - Solo puedes tener un dispositivo bonding por módulo cargado.
  - Un dispositivo bonding puede tener tantos esclavos como tarjetas de
  red soporte nuestro sistema.

Bonding trabaja con todos los switches que soporten trunking y con todos los
sistemas que tengan el propio bonding. También podemos activar lo que se
llama Active-backup policy1 , con el cual podremos usar cualquier
dispositivo de capa 2.

*Dirección MAC del Bonding:*

La dirección MAC del Bonding es tomada del primer dispositivo perteneciente
a ese bonding. Esta dirección MAC es persistente, a no ser que eliminemos
esa interface del bonding.

*Métodos de transmisión que puedem usar Bonding:*

-Round Robin: Está basado en el orden de esclavos. El dispositivo manda
paquetes en turnos y por orden de esclavitud de los interfaces
pertenecientes a ese bonding, independientemente de la dirección de origen o
de destino del paquete.

- XOR: Este método manda los paquetes dependiendo de la direccion física de
origen o de destino; es decir un paquete con una determinada MAC de origen o
de destino lo manda siempre por el mismo esclavo.

- Active-backup policy:  Active-backup policy se asegura de que sólo un
dispositivo envía paquetes en un determinado momento. Este método es usado
para implementar soluciones de alto ancho de banda con dispositivos que no
tengan trunking.



*Instalación y Conguración del Bonding:*

Configuramos el kernel de nuestro linux para que tenga el módulo
CONFIG_BONDING cargado:

CONFIG_BONDING=m

Instalamos los paquetes necesarios:
[EMAIL PROTECTED]:~# apt-get install ifenslave-2.6

Cargamos el módulo en el kernel:

[EMAIL PROTECTED]:~#modprobe bonding


Si queremos usar otro modo le pasamos los parámetros

modprobe bonding mode=x, por defecto se asigna round-robin
Ahora agregamos los interfaces de red al dispositivo bonding:

[EMAIL PROTECTED]:~#ifenslave-2.6 br0 eth0
[EMAIL PROTECTED]:~#ifenslave-2.6 br0 eth1

Y configuramos nuestro nuevo dispositivo de red:

[EMAIL PROTECTED]:~#ifconfig br0 10.0.0.100 netmask 255.255.255.0 up
[EMAIL PROTECTED]:~#route add default gw 10.0.0.1

[EMAIL PROTECTED]:~# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.0.3 (March 23, 2006)

Bonding Mode: load balancing (round-robin)
MII Status: up
MII Polling Interval (ms): 0
Up Delay (ms): 0
Down Delay (ms): 0

Slave Interface: eth1
MII Status: up
Link Failure Count: 0
Permanent HW addr: 00:e0:4c:f2:42:c1

Slave Interface: eth0
MII Status: up
Link Failure Count: 0
Permanent HW addr: 00:a0:c9:c7:93:69

Para que se active nuestro bonding automáticamente al arrancar el sistema
añadimos al archivo */etc/network/interfaces* :

auto bond0
iface bond0 inet static
address 10.0.0.100
netmask 255.255.255.0
broadcast 10.0.0.255
gateway 10.0.0.1
slaves eth0 eth1

*Fuente*: http://quarki.net/content/view/22/2/

Responder a