Cómo configurar el enlace Ethernet en Linux
La vinculación de Ethernet es un método para combinar (unir) dos o más interfaces de red en una única NIC virtual que puede aumentar el ancho de banda y proporcionar redundancia a las NIC.
Linux nos permite vincular múltiples interfaces de red utilizando un módulo de kernel especial llamado vinculación. La función está habilitada en Linux para que podamos crear una nueva interfaz virtual llamada enlace. Tenemos dos tarjetas NIC ens33 y ens34. La publicación muestra el procedimiento en RHEL 7 y CentOS 7.
1) Habilitar módulo de enlace
Como primer paso, debe verificar si el módulo de enlace está habilitado. Puede verificar con el siguiente comando
# modinfo bonding
modinfo: ERROR: Module alias bonding not found.
Si no está presente, puede usar el siguiente comando:
# modprobe --first-time bonding
Puedes comprobarlo de nuevo. Tendrás el resultado a continuación.
# modinfo bonding
Puede ver que el comando nos da un resultado y puede buscar la línea de descripción.
2) Crear una interfaz de canal de enlace
Primero crearemos un nuevo nombre de archivo pegamento.conf en el /etc/modprobe.d/
director. El nombre puede ser el que quieras, siempre y cuando 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
Ingrese el contenido anterior, guarde y salga. Para cada interfaz de conexión de canal configurada, debe haber una entrada correspondiente en su /etc/modprobe.d/bonding.conf
expediente
Ahora podemos crear una interfaz para conectar los canales. Para hacer esto necesitamos crear un archivo dentro del archivo /etc/sysconfig/network-scripts/
director designado ifcfg-bond0
como un alias para crear antes. Debe notar que estamos operando 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_OPCIONES línea, la soldadura utiliza una variedad de opciones y modos. Los modos pueden ser:
- modo 0 o equilibrio-rr: establece una política de rotación para la tolerancia a errores y el equilibrio de carga.
- modo 1 o copia de seguridad activa: establece una política de copia de seguridad activa para la tolerancia a fallos.
- modo 2 o equilibrio-coro: establece un modo XOR (o exclusivo) para la tolerancia a errores y el equilibrio de carga.
- modo 3 o Emitido: establece una política de transmisión para la tolerancia a fallas. Todas las transmisiones se envían en todas las interfaces esclavas.
- modo 4 o 802.3ad: establece una política de agregación de enlaces dinámicos IEEE 802.3ad. Cree grupos de agregación que compartan 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 errores y el equilibrio de carga. El tráfico de salida 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 asume la dirección MAC del esclavo fallido. Este modo solo es adecuado para direcciones locales conocidas por el módulo de enlace del kernel y, por lo tanto, no se puede usar detrás de un puente de máquina virtual.
- modo 6 o balance de blancos: establece una política de Equilibrio de carga adaptable (ALB) para la tolerancia a fallos 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) con qué frecuencia se verifica el estado de la conexión en busca de fallas en el enlace. Esto es útil si se requiere alta disponibilidad porque MII se usa para verificar si 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 utiliza esta configuración en el modo 0 o el modo 2 (los dos modos de equilibrio de carga), el conmutador de red debe configurarse para distribuir los paquetes de manera uniforme entre las NIC.
3) Configurar las interfaces físicas
El siguiente paso es editar las interfaces físicas destinadas al enlace agregando MASTER=bond0
y SLAVE=yes
directivas a sus archivos de configuración. Esto implica que la interfaz de conexión del canal es Maestro y las interfaces a enlazar se nombran esclavitud. Los archivos de configuración para cada una de las interfaces vinculadas al 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 . el archivo de arriba. Asegúrese de agregar la configuración MAESTRO y ESCLAVO a 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 tener el siguiente aspecto
# vim /etc/sysconfig/network-scripts/ifcfg-ens34
DEVICE=ens34
NAME=bond0-slave
TYPE=Ethernet
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes
4) Habilitar canal de enlace
Para activar un enlace, revela todos los esclavos. Si la interfaz ya estaba habilitada durante los cambios, primero debe deshabilitarla.
Así que primero deshabilitaremos la interfaz.
# ifdown ifcfg-ens33
Device 'ens33' successfully disconnected.
# ifdown ifcfg-ens34
Device 'ens34' successfully disconnected.
Ahora reactivaremos las 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 recargar 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 verifique 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 inicio de Linux para obtener más detalles sobre conexión 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 arp monitor (arp_interval) monitorea la conectividad a otro host en la red local. Si no se configura la supervisión de enlaces, el controlador de enlaces no podrá detectar errores de enlace y supondrá que todos los enlaces están siempre disponibles. Cuando la supervisión de la conexión está habilitada, el dispositivo defectuoso se desactivará. El modo de respaldo activo cambiará a un enlace de respaldo y otros modos ignorarán el enlace fallido.
Related Read: Interface (NICs) Bonding in Linux using nmcli