Facebook Twitter Google Digg Reddit Email Imprimir
Martes 18 de diciembre de 2018
Santoral:
Sonia
Otros:
Día de la lengua árabe
Semana:
51
Día año:
352/365 (96%)
U.F.:
27565.79
IPC:
0,4
Dolar:
685,13
Euro:
777,58
Bitcoin:
U$ 3370.5520238095
mindicador.cl
Time4VPS.EU - VPS hosting in Europe

Redundancia de red con bonding

Unir interfaces de red para reducir fallas

Introducción

En ocasiones se nos presentan fallas por desconexión de la red, lo que puede deberse a diferentes factores como: Desconexión del cable de red, Falla eléctrica del switch, o por mantenciones de los switches y otros. Casos que podemos reducir haciendo un Bonding de 2 o más interfaces de red. Dichas interfaces se comportan como si fueran una sola, y si una falla, se utiliza otra de forma transparente, incluso replicando su MAC Address.

Otra característica del Bonding, es que puede sumar los ancho de banda de cada interface, de manera similar (o conjunta) a los Trunk de los switches, Pero esta funcionalidad puede presentar inconvenientes con algunos switches dado que la misma MAC aparece en dos puertos, requiriendo en algunos casos alguna configiración adicional en el switch.

El presente artículo obedece a la configiración necesaria sobre Centos 6, aunque se configura de igual manera para Centos 5. Para Centos 7 se recomienda utilizar Teaming que es equivalente.

Configuración

Lo primero que debemos tener presente, es que la configuración de Bonding se orienta principalmente a servidores, con IP estático, por lo que aquí consideraré dicho escenario.

Partimos con la creación de una nueva interface bond0 por medio de módulos de kernel, se crea un nuevo archivo bajo /etc/modprobe.d que llaremos bonding.conf. Aquí se especifica el modo de operación como active-backup, en que se cambia de interface solo al detectar una falla, y se especifican los tiempos en milisegundos de monitoreo (miimon) y cuanto tiempo transcurre para dar la interface como fallida (downdelay), el que debe ser un múltiplo de miimon.

alias bond0 bonding
options bond0 mode=active-backup miimon=100 downdelay=200 updelay=200

La configuración para dicha interface se realiza como cualquier interface en el directorio /etc/sysconfig/network-scripts por medio del archivo ifcfg-bond0, donde además se especifican los datos de IP, GATEWAY y DNS.

DEVICE=bond0
NAME=bond0
IPADDR=192.168.2.2
NETMASK=255.255.255.0
GATEWAY=192.168.2.1
DNS1=192.168.2.1
DNS2=8.8.8.8
NM_CONTROLLED=no
BOOTPROTO=none
ONBOOT=yes
USERCTL=no

A continuación debemos asignar las interfaces "esclava", si consideraremos utlizar las interfaces eth0 y eth1, definimos los archivos ifcfg-eth0 y ifcfg-eth1 como:

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

A continuación la definición para eth1 que solo cambia la definición del DEVICE

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

Para terminar lo más simple es reiniciar el servidor, con lo que validamos que no tendremos inconvenientes en reinicios futuros, pero como buen servidor no siempre es factible de realizar por el tiempo que demora. De todas formas hay que considerar que todos los pasos siguientes pueden afectar la conectividad del servidor, por lo que se recomienda hacerlo bajo condiciones de mantenimiento.

Podemos continuar con la creación manual del dispositivo bond0, con usuario root ejecutamos:

modprobe bonding mode=active-backup miimon=100 downdelay=200 updelay=200

Con el comando ifconfig bond0 podemos validar que el dispositivo fue creado. Luego reiniciamos la red con el comando:

service network restart

Ahora nos resta validar el estado de nuestro bonding con:

ifconfig bond0
bond0     Link encap:Ethernet  HWaddr 08:01:27:61:11:22  
          inet addr:192.168.2.2  Bcast:192.168.2.255  Mask:255.255.255.0
          inet6 addr: fe80::a01:27ff:fe61:1122/64 Scope:Link
          UP BROADCAST RUNNING MASTER MULTICAST  MTU:1500  Metric:1
          RX packets:57654 errors:0 dropped:0 overruns:0 frame:0
          TX packets:101138 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:10265709 (9.7 MiB)  TX bytes:140817484 (134.2 MiB)
cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.6.0 (September 26, 2009)

Bonding Mode: fault-tolerance (active-backup)
Primary Slave: None
Currently Active Slave: eth0
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 200
Down Delay (ms): 200

Slave Interface: eth0
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 08:01:27:61:11:22
Slave queue ID: 0

Slave Interface: eth1
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 08:00:27:81:43:02
Slave queue ID: 0
Escrito por: Luis Hernán de la Barra, 03/11/2014

Generado por Sistema y almacenado en cache

Wyzer
Luis Hernán de la Barra
E-Mail:ldelabar@wyzer.cl
Web:www.wyzer.cl