×

Aviso

Directiva de la UE acerca de la privacidad en comunicaciones electrónicas

Esta sede de Internet utiliza 'cookies' para gestionar la autenticación, la navegación y otras funciones. Si estás de acuerdo y aceptas que almacenemos 'cookies' en tu dispositivo, posiblemente tendrás una mejor experiencia de navegación. Si las rechazas, podrás seguir navegando por nuestra sede, pero no dejaremos 'cookies' en tu dispositivo y algunas características de las páginas podrían no presentarse adecuadamente.

Ver los documentos de la directiva de privacidad

Has rechazado las 'cookies'. Esta decisión puede ser revertida.
Visto: 4139

Cómo crear un bonding en Red Hat Enterprise Linux y CentOS

En algunas ocasiones puede ser conveniente aumentar la resistencia a fallos o la velocidad de las conexiones de red de un equipo. El bonding, en el que se utilizan dos o más interfaces de red como si fuesen uno solo, permite hacer eso. En el siguiente artículo se explica cómo hacer un bonding en Red Hat Enterprise Linux (RHEL) y CentOS, que son las distribuciones de GNU/Linux que utilizan Autodesk Flame Premium, Autodesk Flame, Autodesk Flame Assist y Autodesk Flare.

(Autodesk Flame Premium y Autodesk Flame están certificadas únicamente para RHEL. Autodesk Flame Assist y Autodesk Flare pueden trabajar sobre RHEL o sobre CentOS. Además, tanto Flame Assist como Flare están disponibles también para Mac OS X).

¿Qué es un bonding?

También conocido como link aggregation, port trunking, link bundling, NIC teaming o NIC bonding, el Ethernet bonding o network bonding se refiere a varios métodos para combinar varias conexiones de red en paralelo con la finalidad de incrementar el rendimiento que se esté obteniendo con una sola conexión o también para proporcionar redundancia en caso de que falle una conexión.

Bonding e ifenslave

El kernel de la mayoría de las distribuciones GNU/Linux ya incorpora el driver de bonding como un módulo y tiene instalado el programa de control ifenslave.

Para determinar si la instalación de GNU/Linux que se está utilizando soporta bonding, puede ejecutarse el siguiente comando:

$ grep ifenslave /sbin/ifup

(El símbolo '$' no debe teclearse; es únicamente un indicador de que el comando se ejecuta como usuario normal, no como 'root'. Para indicar que un comando se ejecuta como 'root', se utiliza el indicador '#').

Si, tras la ejecución del comando, aparece alguna línea con la palabra 'ifenslave', la instalación permite el bonding.

Bonding para la sesión actual

El bonding puede indicarse de modo permanente, para que se utilice cuando se reinicie el sistema (o la red) y también en cada puesta en marcha siguiente, o puede indicarse de modo temporal, para que sólo esté activo durante la sesión actual.

Para que el bonding se active durante la sesión actual, pueden utilizarse los siguientes comandos:

# modprobe bonding

# ifconfig bond0 192.168.0.102 netmask 255.255.0.0

# ifenslave bond0 eth2 eth3

Donde '192.168.0.102' es la IP que se le asigna al bonding (y debe substituirse por la IP que verdaderamente desee utilizarse), '255.255.0.0' es la máscara de subred que se le asigna al bonding (y debe substituirse por la máscara de subred que verdaderamente desee utilizarse), y 'eth2' y 'eth3' son los interfaces de red que se están añadiendo al bonding (y deben substituirse por los nombres de los interfaces de red que verdaderamente deseen añadirse al bonding, que pueden ser más de dos).

Bonding permanente

Dependiendo de la distribución de GNU/Linux con la que se trabaje, el paquete que proporciona los scripts de inicialización de la red puede ser initscripts o sysconfig. Para saber cuál de los dos paquetes los proporciona en nuestra distribución, podemos utilizar el siguiente comando:

$ rpm -qf /sbin/ifup

El resultado será un texto que empezará con 'initscripts' o con 'sysconfig' dependiendo de si el paquete que proporciona los scripts de inicialización de la red en nuestra distribución es initscripts o sysconfig.

La explicación que sigue es válida únicamente para distribuciones que utilizan initscripts, como es el caso de de las versiones de RHEL y CentOS que se utilizan con Flame Premium, Flame, Flame Assist y Flare.

Conviene empezar haciendo una copia de seguridad de todos los scripts de configuración de la red, algo que puede hacerse con el siguiente comando:

# cp -avRxf /etc/sysconfig/network-script /etc/sysconfig/network-script.bkp

Seguidamente, puede crearse el script correspondiente al interfaz de bonding utilizando el siguiente comando:

# cat > /etc/sysconfig/network-script/ifcfg-bond0

La terminal se quedará esperando la indicación de los parámetros de configuración de bonding, que, siguiendo los datos del ejemplo anterior, podrían ser similares a los siguientes:

DEVICE=bond0

BOOTPROTO=none

ONBOOT=yes

USERCTL=no

IPADDR=192.168.0.102

GATEWAY=192.168.0.1

NETMASK=255.255.0.0

Una vez introducidos estos datos, para finalizar la edición del script puede pulsarse la tecla 'D' mientras se mantiene presionada la tecla 'Ctrl'.

Seguidamente, deben editarse los scripts de configuración de los interfaces que se desee añadir al bonding para indicar que el 'master' es el interfaz de bonding (el 'bond0' en nuestro ejemplo) y son interfaces esclavos ('slave') de ese 'master'.

Así, por ejemplo, podemos editar el script de configuración del interfaz de red 'eth2' utilizando el editor vi:

# vi /etc/sysconfig/network-script/ifcfg-eth2

Y haremos que su configuración sea similar a la siguiente:

# Broadcom Corporation NetXtreme II BCM57810 10 Gigabit Ethernet

DEVICE=eth2

BOOTPROTO=none

HWADDR=00:1A:24:3B:4C:5A

ONBOOT=yes

MASTER=bond0

SLAVE=yes

USERCTL=no

Y luego editaremos el script de configuración del interfaz de red 'eth3', por ejemplo utilizando también el editor vi:

# vi /etc/sysconfig/network-script/ifcfg-eth3

Y haremos que su configuración sea similar a la siguiente:

# Broadcom Corporation NetXtreme II BCM57810 10 Gigabit Ethernet

DEVICE=eth3

BOOTPROTO=none

HWADDR=00:1A:24:3B:4C:5B

ONBOOT=yes

MASTER=bond0

SLAVE=yes

USERCTL=no

Para finalizar, editaremos el archivo 'modprobe.conf':

# vi /etc/modprobe.conf

Si queremos que el bonding sea de modo 1, o active-backup, añadiremos unas líneas similares a las siguientes:

alias bond0 bonding

options bond0 mode=1 miimon=100

Si queremos que el bonding sea de modo 0, o balance-rr (Round-robin), añadiremos unas líneas similares a las siguientes:

alias bond0 bonding

options bond0 mode=0 miimon=50

El modo 4 (802.3ad) corresponde a grupos de agregación de enlace dinámico que comparten la misma velocidad y ajustes de dúplex. Utiliza todos los esclavos en el agregador activo conforme a la especificación 802.3ad. Requiere un switch que permita agregación de enlace IEEE 802.3ad Dynamic. La mayoría de los switches requieren algún tipo de configuración para habilitar el modo 802.3ad.

El modo 6 (balance-alb): es un balanceado de carga adaptativo que incluye parámetros que no requieren la utilización de un switch especial.

alias bond0 bonding

options bond0 miimon=100 mode=6

Una vez configurado el bonding en el modo deseado, ya sólo queda reiniciar la red, o reiniciar el sistema, y comprobar si todo funciona según lo esperado. Para reiniciar la red, podemos utilizar el siguiente comando:

# /etc/init.d/network restart

Para comprobar si se han aplicado los ajustes, puede ejecutarse el siguiente comando en modo 'root':

$ ifconfig -a

Si deseas alguna aclaración o información adicional, por favor, envía un mensaje a Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.

Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.