Cómo configurar la vinculación/formación de equipos de red (NIC) en Debian Linux


La formación de equipos de NIC presenta una solución interesante para la redundancia y la alta disponibilidad en los dominios informáticos de servidores/estaciones de trabajo. Con la capacidad de tener varias tarjetas de interfaz de red, un administrador puede volverse creativo en cómo se accede a un servidor en particular o crear una tubería más grande para que el tráfico fluya a través del servidor en particular.

Esta guía le explicará la combinación de dos tarjetas de interfaz de red en un sistema Debian. El software conocido como ifenslave se utilizará para conectar y desconectar NIC de un dispositivo vinculado. El dispositivo de enlace se convierte entonces en el dispositivo de red que interactúa con el kernel pero usa físicamente el dispositivo de interfaz de red real (eth0, eth1, etc.).

Lo primero que debe hacer antes de cualquier configuración es determinar el tipo de unión que el sistema realmente necesita implementar. Hay seis modos de vinculación admitidos por el kernel de Linux al momento de escribir este artículo. Algunos de estos "modos" de enlace son fáciles de configurar y otros requieren configuraciones especiales en los conmutadores en los que se conectan los enlaces.

Comprensión de los modos de enlace

Este método de formación de equipos NIC se llama "Round-Robin", de ahí el "RR" en el nombre. Con este método de enlace, los paquetes de redes se rotan a través de cada una de las tarjetas de interfaz de red que forman la interfaz enlazada.

Por ejemplo, un sistema con eth0, eth1 y eth2 todos esclavizados a una interfaz bond0. Esta interfaz, cuando está habilitada con el modo de enlace 0, enviaría el primer paquete a eth0, el segundo paquete a eth1, el tercer paquete a eth2 y luego volvería a empezar en eth0 con el cuarto paquete. Aquí es donde el modo obtiene su nombre "round-robin".

Con este método de enlace, solo una interfaz de red está activa, mientras que las otras interfaces en el enlace simplemente esperan una falla en el enlace a la tarjeta de interfaz de red principal.

En un modo de enlace XOR de equilibrio, el enlace evaluará las direcciones mac de origen y destino para determinar qué interfaz enviar los paquetes de red. Este método seleccionará la misma interfaz para una dirección mac determinada y, como resultado, es capaz de equilibrar la carga y tolerar fallas.

En este método, el dispositivo de enlace transmitirá datos a todas las interfaces esclavas, de ahí el nombre de "transmisión" de este método de enlace en particular. Hay muy pocos usos para este método, pero proporciona un nivel de tolerancia a errores.

Este es un método de enlace especial para la agregación de enlaces y requiere una configuración especial en el conmutador al que se conecta esta interfaz enlazada en particular. Este método sigue los estándares IEEE para la agregación de enlaces y proporciona tolerancia a fallas y mayor ancho de banda.

En TLB, el enlace recibirá tráfico en las interfaces esclavas de forma normal, pero cuando el sistema necesite enviar tráfico, determinará qué interfaz es la mejor para transmitir datos en función de la carga/cola de cada una de las interfaces.

En ALB, el enlace cargará el balance de forma similar al Bond Mode 5 pero con la capacidad adicional de cargar el balance de recepción también.

Dependiendo del papel que desempeñará el sistema, es imperativo elegir el método de unión adecuado. Este tutorial se realizará en Debian Jessie con dos interfaces de red (eth0 y eth1) y se configurará para el modo de enlace 1 o copia de seguridad activa.

Sin embargo, es muy sencillo cambiar entre los diferentes modos, ya que es simplemente un cambio en el archivo de interfaces de red (asumiendo que no se elige el modo de enlace 4 ya que requiere la configuración del conmutador).

Configuración de equipos de NIC

El primer paso de este proceso es obtener el software adecuado de los repositorios. El software de Debian se conoce como ifenslave y se puede instalar con "apt".

# apt-get install ifenslave-2.6

Una vez que el software esté instalado, será necesario indicar al kernel que cargue el módulo de enlace tanto para esta instalación actual como para futuros reinicios. Para cargar el módulo esta vez, se puede usar la utilidad "modprobe" para cargar los módulos del kernel.

# modprobe bonding

Nuevamente, para garantizar que este enlace esté activo en los reinicios del sistema, el archivo "/etc/modules " debe modificarse para informar al kernel que cargue los módulos de enlace al inicio.

# echo 'bonding' >> /etc/modules 

Ahora que el kernel conoce los módulos necesarios para la vinculación NIC, es el momento de crear la interfaz vinculada real. Esto se hace a través del archivo de interfaces que se encuentra en "/etc/network/interfaces " y se puede editar con cualquier editor de texto.

# nano /etc/network/interfaces

Este archivo contiene la configuración de la interfaz de red para todos los dispositivos de red que el sistema ha conectado. Este ejemplo tiene dos tarjetas de red (eth0 y eth1). En este archivo se debe crear la interfaz de enlace adecuada para esclavizar las dos tarjetas de red físicas en una interfaz lógica. Este es un archivo de interfaces muy simplista pero hace todo lo necesario para crear una interfaz de enlace que funcione.

La primera estrofa (cuadro rojo arriba) es la configuración de interfaz de bucle invertido estándar. " auto lo " informa al kernel que active el adaptador automáticamente al iniciar. " iface lo inet loopback " le dice al sistema que esta interfaz es la interfaz de loop-back del sistema o más comúnmente referenciada como 127.0.0.1.

La segunda estrofa (cuadro amarillo arriba) es la interfaz de enlace real que se utilizará. El " auto bond0 " le dice al sistema que inicialice automáticamente el enlace al inicio del sistema. " iface bond0 inet dhcp " puede ser obvio, pero por si acaso, esta estrofa establece que la interfaz denominada bond0 debe obtener su información de red a través de DHCP (Protocolo de control dinámico de host).

El " bond-mode 1 " es lo que se utiliza para determinar qué modo de enlace utiliza esta interfaz vinculada en particular. En este caso, el modo de enlace 1 indica que este enlace es una configuración de copia de seguridad activa con la opción " bond-primary " que indica la interfaz principal que debe utilizar el enlace. " esclavos eth0 eth1 " indica qué interfaces físicas son parte de esta interfaz vinculada en particular.

Las siguientes dos líneas son importantes para determinar cuándo el enlace debe cambiar de la interfaz principal a una de las interfaces esclavas en caso de una falla en el enlace. Miimon es una de las opciones disponibles para monitorear el estado de los enlaces de enlace y la otra opción es el uso de solicitudes arp.

Esta guía utilizará miimon. " bond-miimon 100 " le dice al kernel que inspeccione el enlace cada 100 ms. " bond-downdelay 400 " significa que el sistema esperará 400 ms antes de concluir que la interfaz actualmente activa está realmente inactiva.

El " bond-updelay 800 " se usa para decirle al sistema que espere usando la nueva interfaz activa hasta 800 ms después de que se activa el enlace. Una nota sobre updelay y downdelay, ambos valores deben ser múltiplos del valor de miimon, de lo contrario el sistema redondeará hacia abajo.