Cómo configurar acoplamiento de tarjetas de red (bonding)

Aqui os dejo este fantástico artículo para hacer bonding con vuestras tarjetas de red. Solamente decir que con este manual se pueden juntar dos conexiones de internet en un mismo ordenador, sumando el ancho de banda de cada una de ellas y usando solamente una IP. Sin mas preambulos os dejo aqui el manual.

Introducción – bonding

El controlador bonding, originalmente creado por Donald Becker, está incluido en prácticamente todas las distribuciones de GNU/Linux y permite sumar las capacidades de varias interfaces físicas de red con objeto de crear una interfaz lógica. Esto se lleva a cabo con el objeto de contar con redundancia o bien balanceo de carga.

Procedimientos.

Fichero de configuración /etc/modprobe.conf.

Se establece el controlador bonding para crear la interfaz bond0 del siguiente modo:

alias bonding bond0

controlador puede llevar parámetros que permiten modificar su funcionamiento, de entre los cuales los más importantes son mode y miimon. A fin de obtener un buen funcionamiento confiable, es importante configurar al menos éstos dos parámetros.

Para fines generales, se puede simplemente configurar del siguiente modo:

alias bond0 bonding
options bonding mode=0 miimon=0

Lo anterior establece en el parámetro mode la política de balanceo de carga y tolerancia a fallos y desactiva en el parámetro miimon la supervisión de MII, que corresponde la configuración más común.

Al terminar con el fichero /etc/modprobe.conf, es importante utilizar el mandato depmod para regenerar el fichero modules.dep y los ficheros mapa de los controladores.

depmod

Lo anterior solo debe devolver el símbolo de sistemas después de unos segundos.

Parámetro mode.

Se utiliza para establecer la política baja la cual se hará trabajar las tarjetas en conjunto. Los posibles valores son:

0 (cero): Establece una política de Round-Robin, que es un algoritmo que asigna una carga equitativa y ordenada a cada proceso, para proporcionar tolerancia a fallos y balanceo de carga entre los miembros del arreglo de dispositivos. Todas las transmisiones de datos son enviadas y recibidas de forma secuencial en cada interfaz esclava del arreglo empezando con la primera que esté disponible. Es la política predeterminada del controlador y la que funciona para la mayoría de los casos.

1 (uno): Establece una política de respaldo activo que proporciona tolerancia a fallos. Todo el tráfico se transmite a través de una tarjeta y solo se utilizará la otra en caso de que falle la primera.

2 (dos): Establece una política XOR (exclusive-or, exclusiva-o) para proporcionar tolerancia a fallos y balanceo de carga. Este algoritmo compara las solicitudes entrantes de las direcciones MAC hasta que coinciden para la dirección MAC (Media Access Control) de una de las tarjetas esclavas. Una vez que se establece el enlace, las transmisiones de datos de datos son enviadas en forma secuencial empezando con la primera interfaz disponible.

3 (tres): Establece una política de Round-Robinpara proporcionar tolerancia a fallos y balanceo de carga. Todas las transmisiones de datos son enviadas de forma secuencial en cada interfaz esclava del arreglo empezando con la primera que esté disponible.

En el siguiente ejemplo se establece la política 0 (cero):

options bonding mode=0

Parámetro miimon.

Se utiliza para especificar cada cuantos milisegundos se debe supervisar el enlace MII (Media Independent Interface). Se utiliza cuando se necesita alta disponibilidad para verificar si la interfaz está activa y verificar si hay un cable de red conectado. En el siguiente ejemplo se establecen 100 milisegundos:

options bonding mode=0

Se requiere que todos los controladores del arreglo de tarjetas tengan soporte para MII. Para verificar si el controlador de la tarjeta tiene soporte para MII, se utiliza el mandato ethtool, donde la salida debe devolver el parámetro Link Detected con el valor yes. Ejemplo:

ethtool eth0

Lo anterior debe devolver algo similar a lo siguiente:

Settings for eth0:
	Supported ports: [ TP MII ]
	Supported link modes:   10baseT/Half 10baseT/Full
	                        100baseT/Half 100baseT/Full
	Supports auto-negotiation: Yes
	Advertised link modes:  10baseT/Half 10baseT/Full
	                        100baseT/Half 100baseT/Full
	Advertised auto-negotiation: Yes
	Speed: 100Mb/s
	Duplex: Half
	Port: MII
	PHYAD: 32
	Transceiver: internal
	Auto-negotiation: on
	Supports Wake-on: pumbg
	Wake-on: d
	Current message level: 0x00000007 (7)
	Link detected: yes

Para desactivar esta función, se utiliza el valor 0 (cero). Ejemplo:

options bonding mode=0 miimon=0

Fichero de configuración /etc/sysconfig/network-scripts/bond0.

Este se configura con los mismo parámetros que una tarjeta normal. Requiere los parámetros ONBOOT, BOOTPROTO, DEVICE, IPADDR, NETMASK y GATEWAY.

En el siguiente ejemplo se configura la interfaz bond0 con la dirección IP estática 192.168.0.1, máscara de subred 255.255.255.0, puerta de enlace 192.168.0.254 y la interfaz inicia junto con el sistema creando el fichero /etc/sysconfig/network-scripts/ifcfg-bond0 con el siguiente contenido:

DEVICE=bond0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192-168.0.1
NETMASK=255.255.255.0
GATEWAY=192.168.0.254

Las interfaces de red a utilizar como esclavas se configuran de la siguiente forma, considerando que se tiene eth0 y eth1, el contenido del fichero /etc/sysconfig/network-scripts/ifcfg-eth0 sería:

DEVICE=eth0
BOOTPROTO=none
ONBOOT=no
SLAVE=yes
MASTER=bond0

Y el contenido del fichero /etc/sysconfig/network-scripts/ifcfg-eth1 sería:

DEVICE=eth1
BOOTPROTO=none
ONBOOT=no
SLAVE=yes
MASTER=bond0

Iniciar, detener y reiniciar el servicio network.

Para ejecutar por primera vez el servicio network tras configurar el acoplamiento de tarjetas, utilice:

service network start

Para hacer que los cambios hechos tras modificar la configuración surtan efecto, utilice:

service network restart

Para detener el servicio network utilice:

service network stop

Comprobaciones.

Para verificar que la interfaz lógica quedó configurada, en el caso de haber utilizado las interfaces eth0 y eth1, utilice:

ifconfig

Lo anterior debe devolver algo similar a lo siguiente:

bond0     Link encap:Ethernet  HWaddr 00:01:80:41:9C:8A
          inet addr:192.168.1.64  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::201:80ff:fe41:9c8a/64 Scope:Link
          UP BROADCAST RUNNING MASTER MULTICAST  MTU:1500  Metric:1
          RX packets:5128 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3817 errors:7 dropped:0 overruns:0 carrier:0
          collisions:3 txqueuelen:0
          RX bytes:3493139 (3.3 MiB)  TX bytes:495025 (483.4 KiB)

eth0      Link encap:Ethernet  HWaddr 00:01:80:41:9C:8A
          inet6 addr: fe80::201:80ff:fe41:9c8a/64 Scope:Link
          UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1
          RX packets:5056 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3781 errors:0 dropped:0 overruns:0 carrier:0
          collisions:3 txqueuelen:1000
          RX bytes:3474685 (3.3 MiB)  TX bytes:488632 (477.1 KiB)
          Interrupt:11 Base address:0xc000 

eth1      Link encap:Ethernet  HWaddr 00:01:80:41:9C:8A
          inet6 addr: fe80::201:80ff:fe41:9c8a/64 Scope:Link
          UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1
          RX packets:72 errors:0 dropped:0 overruns:0 frame:0
          TX packets:36 errors:7 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:18454 (18.0 KiB)  TX bytes:6393 (6.2 KiB)
          Interrupt:10 

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:6138 errors:0 dropped:0 overruns:0 frame:0
          TX packets:6138 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:8364864 (7.9 MiB)  TX bytes:8364864 (7.9 MiB)

Para verificar que las interfaces de red están funcionando correctamente, y que hay un cable de red conectado a éstas, se utiliza el mandato ethtool del siguiente modo:

ethtool eth0 |grep "Link detected"
ethtool eth1 |grep "Link detected"

Si ambas tarjetas tiene soporte para MII, lo anterior debe devolver lo siguiente:

Link detected: yes
Link detected: yes

Bibliografía sobre bonding

Fuente: a l c a n c e l i b r e . o r g


3 opiniones en “Cómo configurar acoplamiento de tarjetas de red (bonding)”

  1. Amigo Voy a probar este manual que veo bien hecho y al grano… Escribo segun me vaya en mi acoplamiento de tarjetas…

  2. Excellent goods from you, man. I have understand your stuff previous to and

    you’re just too magnificent. I actually like what

    you have acquired here, really like what you’re saying
    and the way in which you

    say it. You make it enjoyable and you still care for to keep
    it smart. I

    can’t wait to read much more from you. This is actually a wonderful website.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *