Cómo configurar la vinculación Ethernet en Linux
La vinculación Ethernet es un método para combinar (unir) dos o más interfaces de red en una sola tarjeta NIC virtual que puede aumentar el ancho de banda y proporciona redundancia de tarjetas NIC.
Linux nos permite unir múltiples interfaces de red usando un módulo de kernel especial llamado bonding. La función está habilitada en Linux, por lo que podemos crear una nueva interfaz virtual llamada bond. Tenemos dos tarjetas NIC ens33 y ens34. La publicación muestra el procedimiento en RHEL 7 y CentOS 7.
1) Habilitar el módulo de unión
Como primer paso, debe verificar si el módulo de vinculación está habilitado. Puede verificar con el comando a continuación
# modinfo bonding modinfo: ERROR: Module alias bonding not found.
Si no está presente, puede usar el siguiente comando:
# modprobe --first-time bonding
Puede comprobarlo de nuevo. Tendrás el resultado a continuación
# modinfo bonding
Puede ver que el comando nos da un resultado y puede mirar la línea de descripción.
2) Cree una interfaz de canal de enlace
Primero crearemos un nuevo nombre de archivo bonding.conf en el /etc/modprobe.d/
directorio. El nombre puede ser el que desee siempre que termine con un .conf extensión. Es un archivo de configuración para el controlador llamado bonding
# vim /etc/modprobe.d/bonding.conf alias bond0 bonding
Inserte el contenido de arriba, guarde y salga. Para cada interfaz de enlace de canales configurada, debe haber una entrada correspondiente en su /etc/modprobe.d/bonding.conf
expediente
Ahora podemos crear una interfaz de enlace de canales. Para hacerlo, necesitamos crear un archivo en el /etc/sysconfig/network-scripts/
directorio llamado ifcfg-bond0
como el alias de creado anteriormente. Debe notar que operamos en la carpeta que contiene archivos de interfaz de red.
# vim /etc/sysconfig/network-scripts/ifcfg-bond0 DEVICE=bond0 NAME=bond0 TYPE=Bond BONDING_MASTER=yes IPADDR=192.168.43.100 PREFIX=24 ONBOOT=yes BOOTPROTO=none BONDING_OPTS="mode=1 miimon=100"
Tenga en cuenta la directiva BONDING_OPTS línea, la vinculación utiliza una variedad de opciones y modos. Los modos pueden ser:
- modo 0 o balance-rr: Establece una política de operación por turnos para la tolerancia a errores y el equilibrio de carga.
- modo 1 o copia de seguridad activa: Establece una política de respaldo activo para la tolerancia a fallas.
- modo 2 o equilibrio-xor: Establece un modo XOR (exclusivo o) para la tolerancia a fallos y el equilibrio de carga.
- modo 3 o transmisión: Establece una política de difusión para la tolerancia a errores. Todas las transmisiones se envían a todas las interfaces esclavas.
- modo 4 o 802.3ad: Establece una política de agregación de enlaces dinámicos IEEE 802.3ad. Crea grupos de agregación que comparten la misma configuración de velocidad y dúplex.
- modo 5 o balance-tlb: Establece una política de equilibrio de carga de transmisión (TLB) para la tolerancia a fallos y el equilibrio de carga. El tráfico saliente se distribuye de acuerdo con la carga actual en cada interfaz esclava. El esclavo actual recibe el tráfico entrante. Si el esclavo receptor falla, otro esclavo toma el control de la dirección MAC del esclavo fallado. Este modo solo es adecuado para direcciones locales conocidas por el módulo de vinculación del kernel y, por lo tanto, no se puede usar detrás de un puente con máquinas virtuales.
- modo 6 o equilibrio-alba: Establece una política de equilibrio de carga adaptable (ALB) para la tolerancia a fallas y el equilibrio de carga. Incluye equilibrio de carga de transmisión y recepción para
IPv4
tráfico.
Las opciones pueden ser:
- miimon =tiempo_en_milisegundos: muestra (en milisegundos) la frecuencia con la que se comprueba el estado del enlace en busca de fallos. Esto es útil si se requiere alta disponibilidad porque MII se usa para verificar que la NIC esté activa
- arp_interval =tiempo_en_milisegundos: Especifica (en milisegundos) la frecuencia con la que se realiza la supervisión de ARP. Si usa esta configuración mientras está en el modo 0 o el modo 2 (los dos modos de equilibrio de carga), el conmutador de red debe estar configurado para distribuir los paquetes de manera uniforme a través de las NIC.
3) Configurar interfaces físicas
El siguiente paso es editar las interfaces físicas que están destinadas a la vinculación agregando el MASTER=bond0
y SLAVE=yes
directivas a sus archivos de configuración. Implica que la interfaz de enlace de canales es la Maestro y las interfaces que se unirán se denominan esclavos. Los archivos de configuración para cada una de las interfaces enlazadas por canal pueden ser casi idénticos y debe comentar o eliminar la dirección IP, la máscara de red, la puerta de enlace y la dirección de hardware de cada uno de estos archivos, ya que la configuración solo debe provenir de ifcfg-bond0 archivo de arriba. Asegúrese de agregar la configuración MASTER y SLAVE en estos archivos.
Para la interfaz ens33, tendremos la siguiente configuración
# vim /etc/sysconfig/network-scripts/ifcfg-ens33 DEVICE=ens33 NAME=bond0-slave TYPE=Ethernet BOOTPROTO=none ONBOOT=yes MASTER=bond0 SLAVE=yes
Para la interfaz ens34, el archivo debería verse como a continuación
# vim /etc/sysconfig/network-scripts/ifcfg-ens34 DEVICE=ens34 NAME=bond0-slave TYPE=Ethernet BOOTPROTO=none ONBOOT=yes MASTER=bond0 SLAVE=yes
4) Activar el canal de vinculación
Para activar un vínculo, trae a todos los esclavos. Si la interfaz ya estaba activada durante las modificaciones, debe desactivar la interfaz antes.
Entonces primero desactivaremos la interfaz
# ifdown ifcfg-ens33 Device 'ens33' successfully disconnected. # ifdown ifcfg-ens34 Device 'ens34' successfully disconnected.
Ahora reactivaremos interfaces
# ifup ifcfg-ens33 Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/5) # ifup ifcfg-ens34 Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/6)
o recarga toda la interfaz con
# nmcli con reload
Puede verificar la configuración con el siguiente comando:
# ifconfig bond0: flags=5187<UP,BROADCAST,RUNNING,MASTER,MULTICAST> mtu 1500 inet 192.168.43.100 netmask 255.255.255.0 broadcast 192.168.43.255 inet6 fe80::20c:29ff:feb4:f30a prefixlen 64 scopeid 0x20<link> ether 00:0c:29:b4:f3:0a txqueuelen 1000 (Ethernet) RX packets 26 bytes 4705 (4.5 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 22 bytes 3711 (3.6 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 ens33: flags=6211<UP,BROADCAST,RUNNING,SLAVE,MULTICAST> mtu 1500 ether 00:0c:29:b4:f3:0a txqueuelen 1000 (Ethernet) RX packets 13 bytes 2196 (2.1 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 12 bytes 2072 (2.0 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 ens34: flags=6211<UP,BROADCAST,RUNNING,SLAVE,MULTICAST> mtu 1500 ether 00:0c:29:b4:f3:0a txqueuelen 1000 (Ethernet) RX packets 13 bytes 2509 (2.4 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 10 bytes 1639 (1.6 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 1 (Local Loopback) RX packets 1172 bytes 86468 (84.4 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 1172 bytes 86468 (84.4 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Puede ver que solo la interfaz de enlace tiene una dirección IP. También verifica la configuración con el siguiente comando
# cat /proc/net/bonding/bond0 Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011) Bonding Mode: fault-tolerance (active-backup) Primary Slave: None Currently Active Slave: ens33 MII Status: up MII Polling Interval (ms): 100 Up Delay (ms): 0 Down Delay (ms): 0 Slave Interface: ens33 MII Status: up Speed: 1000 Mbps Duplex: full Link Failure Count: 0 Permanent HW addr: 00:0c:29:b4:f3:0a Slave queue ID: 0 Slave Interface: ens34 MII Status: up Speed: 1000 Mbps Duplex: full Link Failure Count: 0 Permanent HW addr: 00:0c:29:b4:f3:14 Slave queue ID: 0
Consulte la página de la base de Linux para obtener más detalles sobre enlace ethernet.
Conclusión
El monitoreo de enlaces se puede habilitar a través de los parámetros miimon o arp_interval donde miimon monitorea el estado del portador según lo detecta el dispositivo de red subyacente, y el monitor arp (arp_interval) monitorea la conectividad a otro host en la red local. Si no se configura el monitoreo de enlaces, el controlador de enlace no podrá detectar fallas en los enlaces y asumirá que todos los enlaces están siempre disponibles. Cuando la supervisión de enlaces está habilitada, el dispositivo que falla se deshabilitará. El modo de respaldo activo se conmutará por error a un enlace de respaldo, y otros modos ignorarán el enlace fallido.
Related Read: Interface (NICs) Bonding in Linux using nmcli