Enlace de canal Ethernet también conocido como NIC Teaming en sistemas Linux
La vinculación de canales Ethernet habilita dos o más tarjetas de interfaz de red (NIC) a una sola tarjeta NIC virtual, lo que puede aumentar el ancho de banda y proporciona redundancia de tarjetas NIC. Esta es una excelente manera de lograr enlaces redundantes, tolerancia a fallas o redes de equilibrio de carga en el sistema de producción. Si una NIC física está inactiva o desconectada, automáticamente moverá recursos a otra tarjeta NIC. La vinculación de canal/NIC funcionará con la ayuda del controlador de vinculación en Kernel. Usaremos dos NIC para demostrar lo mismo.

Hay disponibles casi seis tipos de enlaces de canal. Aquí, revisaremos solo dos tipos de Channel Bond que son populares y ampliamente utilizados.
- 0: Load balancing (Round-Robin) : Traffic is transmitted in sequential order or round-robin fashion from both NIC. This mode provides load balancing and fault tolerance.
- 1: Active-Backup : Only one slave NIC is active at any given point of time. Other Interface Card will be active only if the active slave NIC fails.
Creación de enlaces de canales Ethernet
Tenemos dos tarjetas de red Ethernet, es decir, eth1 y eth2, donde se creará bond0 para fines de vinculación. Necesita superusuario privilegiado para ejecutar los siguientes comandos.
Mencione el parámetro MASTER bond0 y eth1 interface como SLAVE en el archivo de configuración como se muestra a continuación.
# vi /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE="eth1" TYPE=Ethernet ONBOOT="yes" BOOTPROTO="none" USERCTL=no MASTER=bond0 SLAVE=yes
Aquí también, especifique el parámetro MASTER bond0 y la interfaz eth2 como SLAVE.
# vi /etc/sysconfig/network-scripts/ifcfg-eth2
DEVICE="eth2" TYPE="Ethernet" ONBOOT="yes" USERCTL=no #NM_CONTROLLED=yes BOOTPROTO=none MASTER=bond0 SLAVE=yes
Cree bond0 y configure la interfaz de enlace de canales en el directorio “/ etc/sysconfig/network-scripts /” llamado ifcfg-bond0.
El siguiente es un archivo de configuración de enlace de canales de muestra.
# vi /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0 ONBOOT=yes IPADDR=192.168.246.130 NETMASK=255.255.255.0 BONDING_OPTS="mode=0 miimon=100"
Nota: En la configuración anterior, hemos elegido el modo Bonding Options u003d 0, es decir, Round-Robin y miimon u003d 100 (Intervalos de sondeo 100 ms).
Veamos las interfaces creadas usando el comando ifconfig que muestra "bond0" ejecutándose como MASTER, ambas interfaces "eth1" y "eth2" ejecutándose como SLAVES.
# ifconfig
bond0 Link encap:Ethernet HWaddr 00:0C:29:57:61:8E inet addr:192.168.246.130 Bcast:192.168.246.255 Mask:255.255.255.0 inet6 addr: fe80::20c:29ff:fe57:618e/64 Scope:Link UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1 RX packets:17374 errors:0 dropped:0 overruns:0 frame:0 TX packets:16060 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:1231555 (1.1 MiB) TX bytes:1622391 (1.5 MiB) eth1 Link encap:Ethernet HWaddr 00:0C:29:57:61:8E UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1 RX packets:16989 errors:0 dropped:0 overruns:0 frame:0 TX packets:8072 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:1196931 (1.1 MiB) TX bytes:819042 (799.8 KiB) Interrupt:19 Base address:0x2000 eth2 Link encap:Ethernet HWaddr 00:0C:29:57:61:8E UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1 RX packets:385 errors:0 dropped:0 overruns:0 frame:0 TX packets:7989 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:34624 (33.8 KiB) TX bytes:803583 (784.7 KiB) Interrupt:19 Base address:0x2080 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:8 errors:0 dropped:0 overruns:0 frame:0 TX packets:8 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:480 (480.0 b) TX bytes:480 (480.0 b)
Reinicie el servicio de red y las interfaces deberían estar bien.
# service network restart
Shutting down interface bond0: [ OK ] Shutting down loopback interface: [ OK ] Bringing up loopback interface: [ OK ] Bringing up interface bond0: [ OK ]
Comprobación del estado de la fianza.
# watch -n .1 cat /proc/net/bonding/bond0
La siguiente salida muestra que el modo de enlace es el equilibrio de carga (RR) y aparecen eth1 y eth2.
Every 0.1s: cat /proc/net/bonding/bond0 Thu Sep 12 14:08:47 2013 Ethernet Channel Bonding Driver: v3.6.0 (September 26, 2009) Bonding Mode: load balancing (round-robin) MII Status: up MII Polling Interval (ms): 100 Up Delay (ms): 0 Down Delay (ms): 0 Slave Interface: eth1 MII Status: up Speed: Unknown Duplex: Unknown Link Failure Count: 2 Permanent HW addr: 00:0c:29:57:61:8e Slave queue ID: 0 Slave Interface: eth2 MII Status: up Speed: Unknown Duplex: Unknown Link Failure Count: 2 Permanent HW addr: 00:0c:29:57:61:98 Slave queue ID: 0
En este escenario, las interfaces esclavas siguen siendo las mismas. solo habrá un cambio en la interfaz de enlace ifcfg-bond0 en lugar de "0", será "1", que se muestra a continuación.
# vi /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0 ONBOOT=yes IPADDR=192.168.246.130 NETMASK=255.255.255.0 BONDING_OPTS="mode=1 miimon=100"
Reinicie el servicio de red y verifique el estado de la vinculación.
# service network restart
Shutting down interface bond0: [ OK ] Shutting down loopback interface: [ OK ] Bringing up loopback interface: [ OK ] Bringing up interface bond0: [ OK ]
Comprobando el estado del vínculo con el comando.
# watch -n .1 cat /proc/net/bonding/bond0
El modo de vinculación muestra tolerancia a fallas (respaldo activo) y la interfaz esclava está activa.
Every 0.1s: cat /proc/n... Thu Sep 12 14:40:37 2013 Ethernet Channel Bonding Driver: v3.6.0 (September 2 6, 2009) Bonding Mode: fault-tolerance (active-backup) Primary Slave: None Currently Active Slave: eth1 MII Status: up MII Polling Interval (ms): 100 Up Delay (ms): 0 Down Delay (ms): 0 Slave Interface: eth1 MII Status: up Speed: Unknown Duplex: Unknown Link Failure Count: 0 Permanent HW addr: 00:0c:29:57:61:8e Slave queue ID: 0 Slave Interface: eth2 MII Status: up Speed: Unknown Duplex: Unknown Link Failure Count: 0 Permanent HW addr: 00:0c:29:57:61:98 Slave queue ID: 0
Nota: Baje y suba manualmente las interfaces esclavas para comprobar el funcionamiento del enlace de canales. Consulte el comando de la siguiente manera.
# ifconfig eth1 down # ifconfig eth1 up
¡Eso es!