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