jueves, 8 de noviembre de 2012

Bonding Interfaces de Red con Ubuntu/Debian


Este es un primer artículos sobre una serie de 3 articulos que pretendo escribir acerca del bonding en distribuciones Debian/Ubuntu.
En este primer artículo veremos como hacer bonding con 2 tarjetas de red, los 2 siguientes versarán sobre el "bonding entre una conexión de red y una conexion wireless" y dejaremos para el último como hacer un "bridge entre dos bondings".

Supongamos que tenemos 2 tarjetas de red configuradas en nuestro sistema como eth0 y eth1 respectivamente y queremos combinarlas para que trabajen como una sola. con ello no sólo combinamos sus capacidades sino que además garantizamos la conexión en caso de que falle una de las redes.


Primeramente necesitamos instalar ifenslave

sudo apt-get install ifenslave

una vez instalado editamos el fichero /etc/network/interfaces
gksudo gedit /etc/network/interfaces
y añadimos la siguiente configuración del bonding

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet manual
bond-master bond0

auto eth1
iface eth1 inet manual
bond-master bond0

auto bond0
iface bond0 inet static
address 192.168.1.2
gateway 192.168.1.1
netmask 255.255.255.0
bond-mode 0
bond-miimon 100
bond-lacp-rate 1
bond-slaves eth1 eth2

Una vez modificado el fichero y guardado los cambios reiniciamos las interfaces de red mediante:

sudo /etc/init.d/network restart

Para comprobar si el bonding ha funcionado correctamente ejecutamos:

cat /proc/net/bonding/bond0

Obteniendo una respuesta similar a:

Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)

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

Slave Interface: eth0
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 08:00:27:27:e9:11
Slave queue ID: 0

Slave Interface: eth1
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 08:00:27:ad:57:e6
Slave queue ID: 0

Nota:las direciones mac corresponden a una máquina virtual creada para la ocasion

Existem varios tipos de bonding en función del modo que especifiquemos en la propiedad bond-mode:


  • Mode 0: (round-robin) los paquetes se transmiten de forma secuencial por una y otra red. Este modo provee balance de carga y tolerancia a fallos.
  • Mode 1: (active-backup) Sólo  uno de los esclavos de bond esta activo, los otros esclavos están en standby y uno de ellos se convierte en activo si el principal falla. Este modo provee tolerancia a fallos
  • Mode 2: (balance-xor) Selecciona el mismo esclavo para cada una de los destinos de la direccion MAC. Este modo provee balance de carga y tolerancia a fallos.
  • Mode 3: (broadcast) transmite todo por todos los esclavos.  Este modo provee balance de carga y tolerancia a fallos.
  • Mode 4:(802.3ad) IEEE 802.3ad Dynamic link aggregation
  • Mode 5:(balance-tlb) El tráfico de salida es distribuido acorde con la carga actual de cada esclavo. El trafico de entrada es recivido por el esclavo correspondiente. Si el exclavo que tienen que recibir los paquetes falla el otro esclavo se hace cargo de los paquetes que no fueran recibidos
  • Mode 6:(balance-alb) Balance de carga adaptativo. Incluye el balance-tlb mas balance de carga de recepción (receive load balancing (rlb)).

No hay comentarios:

Publicar un comentario