Linux Channel Bonding, unión de interfaces de red


Bonding: multiplicando la velocidad de transmision en Ethernet

P11518816El channel bonding o unión de interfaces de red consiste en simular un dispositivo de red con gran ancho de banda uniendo varias tarjetas de red independientes, de manera que las aplicaciones sólo verán un interfaz de red. Con el channel bonding conseguimos varias cosas:

  • mayor ancho de banda: el ancho de banda de la interfaz virtual será la suma de los anchos de banda de las interfaces reales.
  • balanceo de carga: tendremos balanceo de carga del tráfico de red entre todas las interfaces reales (por defecto Round Robin).
  • redundancia: si falla una tarjeta de red los datos irán sólo por las que estén en buen estado.

En Linux se encarga del channel bonding el módulo Linux Channel Bonding. Veamos cómo activarlo en un equipo con dos interfaces de red (eth0 y eth1):

  1. instalamos ifenslave (interface enslave, paquete ifenslave):

# apt-get install ifenslave

cargamos en el kernel el módulo bonding (el parámetro miimon=100 significa que monitoriza cada 100 ms si las tarjetas reales funcionan):

# modprobe bonding miimon=100

editamos /etc/network/interfaces y configuramos la interfaz virtual bond0 (con la directiva slaves definimos las tarjetas de red reales que forman bond0):

auto bond0

iface bond0 inet static

address 192.168.0.100

netmask 255.255.255.0

broadcast 192.168.0.255

gateway 192.168.0.1

slaves eth0 eth1

  1. Para que al arrancar sólo se active bond0 eliminaremos las líneas auto eth0 y auto eth1.
  2. levantamos la interfaz virtual:

# ifup bond0

Si las interfaces reales están up las echaremos abajo

# ifdown eth0

# ifdown eth1

comprobamos si todo está correcto (las tres interfaces deben tener la misma MAC address):

# ifconfig
bond0 Link encap:Ethernet  HWaddr 00:11:22:33:44:55
inet addr:192.168.0.100  Bcast:192.168.0.255  Mask:255.255.255.0
inet6 addr: fe80::211:22ff:fe33:4455/64 Scope:Link
UP BROADCAST RUNNING MASTER MULTICAST  MTU:1500  Metric:1
RX packets:1357 errors:0 dropped:0 overruns:0 frame:0
TX packets:793 errors:14 dropped:0 overruns:0 carrier:14
collisions:0 txqueuelen:0
RX bytes:144979 (141.5 KiB)  TX bytes:148606 (145.1 KiB)

eth0
Link encap:Ethernet  HWaddr 00:11:22:33:44:55
inet6 addr: fe80::211:22ff:fe33:4455/64 Scope:Link
UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1
RX packets:462 errors:0 dropped:0 overruns:0 frame:0
TX packets:303 errors:14 dropped:0 overruns:0 carrier:14
collisions:0 txqueuelen:1000
RX bytes:51388 (50.1 KiB)  TX bytes:51796 (50.5 KiB)
Interrupt:17 Base address:0×1800

eth1 Link encap:Ethernet  HWaddr 00:11:22:33:44:55
inet6 addr: fe80::211:22ff:fe33:4455/64 Scope:Link
UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1
RX packets:895 errors:0 dropped:0 overruns:0 frame:0
TX packets:490 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:93591 (91.3 KiB)  TX bytes:96810 (94.5 KiB)
Interrupt:16 Base address:0×8400

vim /etc/modprobe.conf
alias eth0 e1000
alias eth1 e1000
alias bond0 bonding
options bonding mode=6 miimon=100

Explicando los Modos:

mode 0 (por defecto)
 modo round robin. transmitirá paquetes secuencialmente en todas las tarjetas de red pertenecientes al bonding, partiendo desde el primer dispositivo esclavo hasta el último.
 uso: provee balanceo y alta disponibilidad.
 esto equivale a definir mode=0 en /etc/modprobe.conf

Code:
alias bond0 bonding
options bonding mode=0

mode 1

modo active-backup, solo uno de los esclavos del bonding envia y recibe paquetes.

uso: solo alta disponibilidad.

esto equivale a definir mode=1 en /etc/modprobe.conf

Code:
alias bond0 bonding
options bonding mode=1

mode 2

modo XOR, se alterna la transmisión de paquetes entre los esclavos del bonding

uso: provee balanceo y alta disponibilidad.

esto equivale a definir mode=2 en /etc/modprobe.conf

Code:
alias bond0 bonding
options bonding mode=2

mode 3

modo broadcast, enviá todo por todos los esclavos.

uso: solo alta disponibilidad

esto equivale a definir mode=3 en /etc/modprobe.conf

Code:
alias bond0 bonding
options bonding mode=3

mode 4

modo Dynamic link aggregation, crea grupos que comparten la misma velocidad y duplex.

las tarjetas deben soportar IEEE 802.3ad.

uso: alta disponibilidad y balanceo de carga.

esto equivale a definir mode=4 en /etc/modprobe.conf

Code:
alias bond0 bonding
 options bonding mode=4

mode 5

modo balance-tib, balancea todo el trafico de salida, todo el trafico de entrada es recibido por el esclavo activo.

uso: alta disponibilidad y balanceo de carga.

esto equivale a definir mode=5 en /etc/modprobe.conf

Code:
alias bond0 bonding
 options bonding mode=5

mode 6

modo balance-alb, básicamente hace lo mismo que el mode5, pero también balancea el trafico de entrada.

uso: alta disponibilidad y balanceo de carga.

esto equivale a definir mode=6 en /etc/modprobe.conf

Code:
alias bond0 bonding
  options bonding mode=6

para rendimiento recomiendo probar el modo 6.
NOTA: algunos modos necesitan que se especifique un parámetro para miimon, esto es necesario ya que si una tarjeta falla el bonding no podrá renegociar una velocidad correctamente.

el parámetro se agrega en las opciones, por ejemplo para mode 6

Code:
alias bond0 bonding
  options bonding mode=6 miimon=100

NOTA: muchas veces al hacer esto "en caliente" el bonding no queda funcionando bien, es recomendable reiniciar (es una de las pocas cosas para las que hay que reiniciar un linux)
Enlace relacionado con este TEMA:

http://www.estrellateyarde.es/so/channel-bonding-en-linux

http://www.debianadmin.com/linux-ethernet-bonding-configuration.html

http://linax.wordpress.com/2009/07/31/linux-ethernet-bonding/

http://grupos.pucp.edu.pe/archivos/linux/linux.200407/0060.html

Linux Ethernet Bonding Configuration

PARA RED HAT:

https://www.redhat.com/docs/manuals/enterprise/RHEL-4-Manual/ref-guide/s1-networkscripts-interfaces.html

http://docs.hp.com/en/B9903-90050/ch05s04.html

Linux bond or team multiple network interfaces (NIC) into single interface Red Hat

http://www.cyberciti.biz/tips/linux-bond-or-team-multiple-network-interfaces-nic-into-single-interface.html

http://lincgeek.org/blog/?p=286

http://www.centos.org/docs/5/html/Deployment_Guide-en-US/s1-networkscripts-interfaces.html

(1) http://www.linuxhorizon.ro/bonding.html

(2)
http://www.linuxtopia.org/online-books/rhel5/rhel5-administration/rhel5-s1-networkscripts-interfaces.html#s2-networkscripts-interfaces-chan

(3)
http://www.linuxtopia.org/online-books/rhel5/rhel5-administration/rhel5-s1-modules-ethernet.html#s2-modules-bonding

Graficamente:
http://www.linuxtopia.org/online_books/rhel5/rhel5_administration/rhel5_ch-network-config.html

CASO ESPECIFICO DE RED HAT, CENTOS, y FEDORA CORE:

cd /etc/network/interfaces

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

vim ifcfg-eth1
DEVICE=eth1
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes
USERCTL=no

vim ifcfg-bond0 
DEVICE=bond0
BOOTPROTO=none
ONBOOT=yes
NETWORK=192.168.100.0
NETMASK=255.255.255.0
IPADDR=192.168.100.2
GATEWAY=192.168.100.3
USERCTL=no

vim /etc/modprobe.conf
alias eth0 e1000
alias eth1 e1000
alias bond0 bonding
options bond0 mode=balance-alb miimon=100

# ifconfig
bond0     Link encap:Ethernet  HWaddr 00:13:72:54:22:77  
 inet addr:192.168.100.2  Bcast:192.168.100.255  Mask:255.255.255.0
 UP BROADCAST RUNNING MASTER MULTICAST  MTU:1500  Metric:1
 RX packets:296558387 errors:2 dropped:0 overruns:0 frame:1
 TX packets:1151190594 errors:0 dropped:0 overruns:0 carrier:0
 collisions:0 txqueuelen:0
 RX bytes:41329976342 (38.4 GiB)  TX bytes:1662997497699 (1.5 TiB)

eth0      Link encap:Ethernet  HWaddr 00:13:72:54:22:77  
 UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1
 RX packets:290963317 errors:2 dropped:0 overruns:0 frame:1
 TX packets:1144355412 errors:0 dropped:0 overruns:0 carrier:0
 collisions:0 txqueuelen:1000
 RX bytes:40724833551 (37.9 GiB)  TX bytes:1653633031267 (1.5 TiB)
 Base address:0xecc0 Memory:dfae0000-dfb00000 

eth1      Link encap:Ethernet  HWaddr 00:13:72:54:22:77  
 UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1
 RX packets:5595083 errors:0 dropped:0 overruns:0 frame:0
 TX packets:6835196 errors:0 dropped:0 overruns:0 carrier:0
 collisions:0 txqueuelen:1000
 RX bytes:605143812 (577.1 MiB)  TX bytes:9364481771 (8.7 GiB)
 Base address:0xdcc0 Memory:df8e0000-df900000 

lo        Link encap:Local Loopback  
 inet addr:127.0.0.1  Mask:255.0.0.0
 UP LOOPBACK RUNNING  MTU:16436  Metric:1
 RX packets:1771719 errors:0 dropped:0 overruns:0 frame:0
 TX packets:1771719 errors:0 dropped:0 overruns:0 carrier:0
 collisions:0 txqueuelen:0
 RX bytes:153085633 (145.9 MiB)  TX bytes:153085633 (145.9 MiB)

Prueba directa:
# ethtool eth0 | grep "Link detected:"
 Link detected: yes
# ethtool eth1 | grep "Link detected:"
 Link detected: yes

[GUIA]configurar bonding, red alta disponibilidad/balanceo de carga (centos/redhat
Anuncios

Acerca de ncastillo

Soluciones Libres Dominicana Soluciones Libres Dominicana, Una empresa proveedora de servicios tecnológicos dedicada a brinda soluciones y servicios de nivel para grandes corporaciones y empresas en crecimiento (Pyme) especialmente. Aseguramos Escalabilidad, Integración e Innovación, alta competitividad y costos a su medida. Somos empresa que diseña soluciones tecnológicas exclusivas para cada cliente, simplificando así la incursión de su organización en el mundo de las nuevas tecnologías de información y comunicación. Trabajamos con tecnologías Open Source, para abaratar y reducir los costos en licenciamientos, con infraestructuras completamente estables y redundantes. No especializamos en redes avanzadas, Firewal Open Source, como de cualquier marca de la que existen en el mercado (como Fortinet, Sophos, Wacthguard, Palo alto, Cisco ASA. Implementaciones de redes LAN/WAN, Wireless, Servicios en la nube, diseño de página Web, Hosting hecho para cualquier medida. Tecnologías hibridas, somos especialista en Microsoft Windows 2012, Mac OS X, Hyper-V, VMWare, RedHat, Ubuntu Server, Debían. Somos especialista de página web para ecomerce, tu negocio en línea con todas la seguridad y cumpliendo con todos los requerimientos de una tienda en línea (PCI), certificado SSL, unificación de medios de pagos como Paypal. Consolidamos tu tiene en línea de Amazon o EBay con tu propia página web ecomerce. Infraestructura de servidores, basado en chasis blade, (Dell, HP, Cisco UCS Mini, Configuración de Storage eQualogic, EMC. Soluciones Libres Dominicana, es pionera y líder en Santo Domingo, República Dominicana en el uso de GNU/Linux y está especializada en grandes soluciones usando Open Source y Software Libre. En el equipo contamos con profesionales que trabajan hace varios años con soluciones libres, con más de 15 años de experiencia. WebSite Oficial http://www.tecnologialibre.net Twitter : @TecnoLibreDR FaceBook : https://www.facebook.com/TecnologiaLibre.Net

Publicado el Domingo, enero 24, 2010 en Channel Bonding, Failover Network, Internet, Load Balancer, Redundancia de Redes. Añade a favoritos el enlace permanente. Deja un comentario.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: