viernes, 9 de mayo de 2008

Vinculando Interfaces

La vinculación de interfaces es lo mismo que Interfaces de unión de canales, port trunking o Link aggregation. En lo adelante utilizaremos la palabra vinculación porque prácticamente estaremos enlazando interfaces cómo si estas fueran una sola.
La vinculación nos permite agregar varios puertos a un grupo, combinando con eficacia el ancho de banda de una sola conexión. La vinculación de puertos nos permite crear tuberías multi-gigabit para solucionar la congestión en las áreas de mayor tráfico de la red. Por ejemplo, se pueden vincular tres puertos de un megabit dentro de uno a tres megabits. Esto es equivalente a tener una interfaz con tres megabits de velocidad.

Contenidos

1. ¿Dónde puedo utilizar la vinculación?

La vinculación puede ser utilizada donde quiera que usted necesite acoplamientos redundantes, tolerancia a fallos o redes con balance de carga. Es la mejor manera de tener un segmento de red con alta disponibilidad. Una manera muy útil de utilizar la vinculación es en las conexiones con soporte 802.1q VLAN (su equipo de red debe tener el protocolo 802.1q implementado).
Para una mejor documentación puede ir a la página del Proyecto de Vinculación del Canal de Linux http://sourceforge.net/projects/bonding/

2. Varios modos de vinculación

2.1. mode=1 (active-backup)

Política Active-Backup. Solamente un esclavo se encuentra activo en el enlace vinculado. Un esclavo diferente llega a estar activo si, y solo si, el esclavo activo falla. La dirección MAC del enlace está visible externamente solo en un puerto (adaptador de red) para evitar confundir al switch. Este modo proporciona tolerancia a los fallos. La opción primaria afecta el comportamiento de este modo.

2.2. mode=2 (balance-xor)

Configura una política XOR (o-exclusivo) para la tolerancia de fallas y el balanceo de cargas. Usando este método la interfaz hace coincidir la dirección MAC de las peticiones entrantes con la dirección MAC de una de las NICs esclava. Una vez que se establece el enlace, las transmisiones son enviadas secuencialmente comenzando con la primera interfaz disponible.

2.3. mode=3 (broadcast)

Política Broadcast. Transmite en todas las interfaces esclavas. Este modo proporciona tolerancia a fallos.

2.4. mode=4 (802.3ad)

Vinculación Dinámica de Enlace (Dynamic Link Aggregation), IEEE 802.3ad. Crea grupos de enlaces vinculados que comparten la misma velocidad y características de intercambio en dos direcciones. Utiliza todos los esclavos activos del enlace vinculado según la especificación 802.3ad.
Prerequisitos :

Soporte Ethtool en los controladores base para recuperar la velocidad y el intercambio, en dos direcciones, de cada esclavo.

Un switch que soporte la Vinculación Dinámica de Enlace descrito en el estandar 802.3ad del IEEE. Casi todos los switches requieren de algún tipo de configuración para habilitar el modo 802.3ad.

2.5. mode=5 (balance-tlb)

Transmisión adaptable de carga en equilibrio. El canal vinculado no requiere apoyo especial del switch. El tráfico saliente es distribuido según la carga actual (calculado con relación a la velocidad) en cada esclavo. El tráfico entrante es recibido por el esclavo activo. Si el esclavo de recepción falla, otro esclavo asume la dirección MAC del esclavo de recepción que falló.

Requisito previo:

Soporte Ethtool en los controladores base para recuperar la velocidad de cada esclavo.

2.6. mode=6 (balance-alb)

Equilibrio adaptable de la carga. Incluye el balance-tlb más el recibo de quien balancea la carga (rlb) del tráfico IPV4, y no requieren ayuda especial del switch. El equilibrio de la carga de la recepción es alcanzado por negociación ARP. El controlador de la vinculación intercepta las respuestas ARP enviadas por el sistema local en su salida y sobrescribe la dirección del hardware de origen con una de las direcciones únicas de hardware esclavas en la vinculación, de forma tal que diferentes pares en el servidor usen direcciones de hardware diferentes.

También puede utilizar múltiples interfaces de enlace. Para eso necesita cargar tantos módulos de vinculación como se necesiten. En el caso que necesite dos interfaces, debe configurar /etc/modules.conf como sigue:

alias bond0 bonding
options bond0 -o bond0 mode=0 miimon=100
alias bond1 bonding
options bond1 -o bond1 mode=1 miimon=100

3. Ejemplo

En el fichero modprobe.conf adicione lo siguiente:

alias bond0 bonding
options bond0 miimon=80 mode=5

Asegúrese de añadir esto antes que cualquier alias de red:

modes:
mode=0 (Balance Round Robin)
mode=1 (Active backup)
mode=2 (Balance XOR)
mode=3 (Broadcast)
mode=4 (802.3ad)
mode=5 (Balance TLB)
mode=6 (Balance ALB)

En el directorio /etc/sysconfig/network-scripts/ cree el fichero ifcfg-bond0:

DEVICE=bond0
IPADDR=‹dirección ip›
NETMASK=
NETWORK=
BROADCAST=
GATEWAY=
ONBOOT=yes
BOOTPROTO=none
USERCTL=no

Cambie el contenido del fichero ifcfg-eth0 a:

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

Compruebe el estado de la vinculación:

cat /proc/net/bonding/bond0

No hay comentarios: