GNU/Linux >> Tutoriales Linux >  >> Cent OS

Cómo configurar la vinculación de la interfaz de red en RHEL 8 / CentOS 8 Linux

La vinculación de la interfaz de red consiste en la agregación de dos o más interfaces de red físicas, denominadas slaves. , bajo una interfaz lógica llamada master o bond interfaz. Según el modo de vinculación, dicha configuración puede ser útil para lograr la tolerancia a fallas y/o el equilibrio de carga. En este tutorial, aprenderemos cuáles son los modos de enlace disponibles y cómo crear un enlace de red en RHEL 8/CentOS 8.

En este tutorial aprenderás:

  • ¿Qué es la vinculación de interfaz de red?
  • Cómo configurar la vinculación de la interfaz de red en RHEL 8 / CentOS 8
  • ¿Cuáles son los diferentes modos de vinculación?


El estado de Bond visto por el kernel de Linux

Requisitos de software y convenciones utilizadas

¿Qué modo de vinculación?

Básicamente, hay 7 modos de vinculación que podemos usar:

Ronda Robin

Los paquetes se distribuyen por igual, en orden secuencial, a todas las interfaces esclavas (desde la primera hasta la última). Este modo proporciona balanceo de carga y tolerancia a fallas, pero necesita soporte en los conmutadores.

Copia de seguridad activa

Solo se utiliza la interfaz esclava principal. Si falla, se utiliza otro esclavo en su lugar. Solo proporciona tolerancia a fallas; no hay requisitos especiales.

XOR (OR exclusivo)

Los paquetes se transmiten y asignan a una de las interfaces esclavas según el hash de las direcciones MAC de origen y destino, calculado con la siguiente fórmula:

[(source MAC address XOR’d with destination MAC address) modulo slave count]

Este modo proporciona tolerancia a fallas y equilibrio de carga.

Transmitir

Cuando se usa este modo, todos los paquetes se transmiten en todas las interfaces esclavas, lo que brinda tolerancia a fallas pero no equilibrio de carga.

802.3ad

Este modo utiliza la agregación de enlaces IEEE 802.3ad que debe ser compatible con los conmutadores. Crea grupos de agregación que comparten la misma configuración de velocidad y dúplex. Transmite y recibe en todos los esclavos del grupo activo. Proporciona balanceo de carga y tolerancia a fallas.

Equilibrio de carga de transmisión adaptable

Los paquetes salientes se transmiten a través de las interfaces esclavas según su carga, y el esclavo actual recibe el tráfico entrante. Si este último falla, otro esclavo se hace cargo de su dirección MAC. Este modo proporciona tolerancia a fallas y equilibrio de carga.

Equilibrio de carga adaptativo

Funciona como el Adaptive Transmit Load Balancing , pero también proporciona inbound equilibrio a través de ARP (Protocolo de resolución de direcciones) negociación.

El medio ambiente

Por el bien de este tutorial, trabajaremos en un sistema Red Hat Enterprise Linux 8 virtualizado. Para crear nuestra vinculación de red trabajaremos con nmtui , una utilidad de interfaz de usuario de texto utilizada para controlar el NetworkManager demonio. Sin embargo, se pueden realizar las mismas operaciones con nmcli utilidad de línea de comandos o a través de la GUI con el Network Manager Connection Editor .

El sistema tiene actualmente dos ethernet enlaces, enp1s0
y enp7s0 :

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
    link/ether 52:54:00:cb:25:82 brd ff:ff:ff:ff:ff:ff
3: enp7s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
    link/ether 52:54:00:32:37:9b brd ff:ff:ff:ff:ff:ff

Crear la vinculación de la red

En primer lugar, eliminaremos las configuraciones existentes actualmente para las interfaces esclavas. Esto no es estrictamente necesario, ya que podríamos editar dichas configuraciones en el lugar, pero para empezar de cero procederemos de esta manera. Invoquemos nmtui :

$ sudo nmtui

Desde el menú principal seleccionamos “Editar una conexión” y confirmamos.



Menú principal de Nmtui.

Primero seleccionamos la conexión a eliminar en la lista, y luego pasamos a <Delete> . Finalmente confirmamos:



Lista de conexiones Nmtui.

Finalmente, confirmamos que queremos eliminar la conexión:



Solicitud de confirmación de Nmtui para eliminar una conexión existente.

Repetimos la operación para la otra interfaz. Una vez eliminamos todas las configuraciones existentes, podemos crear el bond interfaz. Seleccionamos <Add> en el menú, y de la lista de tipos de conexión, elegimos Bond :



Menú de selección del tipo de conexión Nmtui.

Se abrirá una nueva ventana donde podremos configurar nuestra interfaz. En este caso, aunque sea totalmente opcional, usaré bond0 como el perfil y el nombre del dispositivo. Sin embargo, la parte más importante es la selección de las interfaces esclavas que se agregarán al enlace. En los BOND Slaves menú, haga clic en <Add> y seleccione el tipo de conexión esclava a agregar, en este caso ethernet .



Menú Nmtui para seleccionar el tipo de conexión esclava.

Introduzca el nombre del dispositivo, seleccione <OK> y confirma. La operación debe repetirse para cada una de las interfaces esclavas.



Interfaz Nmtui para editar la conexión esclava.

El siguiente paso es seleccionar el bonding mode :por el bien de este tutorial, usaremos el Active Backup uno. Seleccionamos la opción relacionada en el menú y en el campo "Principal" especificamos el nombre de la interfaz esclava primaria. Finalmente, solo seleccionamos <OK> para confirmar la creación de la interfaz de enlace.



La configuración de enlace de red.

Ahora podemos salir de nmtui solicitud. Para verificar que la creación de la vinculación fue exitosa, podemos lanzar el siguiente comando:

$ ip addr show bond0

El resultado es el siguiente:

4: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 52:54:00:cb:25:82 brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.164/24 brd 192.168.122.255 scope global dynamic noprefixroute bond0
       valid_lft 3304sec preferred_lft 3304sec
    inet6 fe80::48:d311:96c1:89dc/64 scope link noprefixroute
       valid_lft forever preferred_lft forever

El ifcfg los archivos de configuración relacionados con nuestra configuración se han generado dentro de /etc/sysconfig/network-scripts directorio:

$ ls /etc/sysconfig/network-scripts
ifcfg-bond0  ifcfg-enp1s0  ifcfg-enp7s0

Para ver el estado actual del bond0 interfaz tal como la ve el kernel, podemos ejecutar:

$ cat /proc/net/bonding/bond0

El resultado del comando se informa a continuación:

Ethernet Channel Bonding Driver: v3.7.1 (April
27, 2011)

Bonding Mode: fault-tolerance (active-backup)
Primary Slave: enp1s0 (primary_reselect always)
Currently Active Slave: enp1s0
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0

Slave Interface: enp1s0
MII Status: up
Speed: Unknown
Duplex: Unknown
Link Failure Count: 0
Permanent HW addr: 52:54:00:cb:25:82
Slave queue ID: 0

Slave Interface: enp7s0
MII Status: up
Speed: Unknown
Duplex: Unknown
Link Failure Count: 0
Permanent HW addr: 52:54:00:32:37:9b
Slave queue ID: 0

Podemos ver cómo ambas interfaces esclavas están activas, pero solo enp1s0 está activo, ya que es el que se usa como esclavo principal.

Prueba de la copia de seguridad activa

¿Cómo podemos verificar que nuestra configuración funciona? Podemos desactivar la interfaz esclava principal y ver si la máquina aún responde a los pings. Para dejar la interfaz ejecutamos:

$ sudo ip link set enp1s0 down

¿La máquina sigue respondiendo? Vamos a verificarlo:

$ ping -c3 192.168.122.164
PING 192.168.122.164 (192.168.122.164) 56(84) bytes of data.
64 bytes from 192.168.122.164: icmp_seq=1 ttl=64 time=0.385 ms
64 bytes from 192.168.122.164: icmp_seq=2 ttl=64 time=0.353 ms
64 bytes from 192.168.122.164: icmp_seq=3 ttl=64 time=0.406 ms

--- 192.168.122.164 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 88ms
rtt min/avg/max/mdev = 0.353/0.381/0.406/0.027 ms

¡Lo hace! Veamos cómo cambió el estado del bono:

Ethernet Channel Bonding Driver: v3.7.1 (April
27, 2011)

Bonding Mode: fault-tolerance (active-backup)
Primary Slave: enp1s0 (primary_reselect always)
Currently Active Slave: enp7s0
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0

Slave Interface: enp1s0
MII Status: down
Speed: Unknown
Duplex: Unknown
Link Failure Count: 1
Permanent HW addr: 52:54:00:cb:25:82
Slave queue ID: 0

Slave Interface: enp7s0
MII Status: up
Speed: Unknown
Duplex: Unknown
Link Failure Count: 0
Permanent HW addr: 52:54:00:32:37:9b
Slave queue ID: 0

Como puede ver, dado que desactivamos la interfaz esclava principal (enp1s0 ), el otro esclavo, enp7s0 se utilizó como copia de seguridad y ahora es el activo actualmente. Además, el Link Failure Count para el esclavo principal aumentó, y ahora es 1 .

Conclusiones

En este tutorial aprendimos qué es un enlace de red y cuáles son las formas posibles de configurar un enlace de red. También creamos una conexión de red entre dos interfaces de ethernet utilizando Active Backup modo. Con Red Hat Enterprise Linux 7, se ha introducido un nuevo concepto, network teaming . En algunos aspectos, el trabajo en equipo es similar a la vinculación, pero se implementa de manera diferente y tiene más funciones. Lo cubriremos en futuros artículos.


Cent OS
  1. CentOS / RHEL 7:Cómo modificar los nombres de la interfaz de red

  2. CentOS/RHEL 7:cómo crear un enlace de red (equipo de NIC) usando nmcli

  3. CentOS/RHEL 5:Cómo configurar la vinculación de interfaz (formación de equipos NIC)

  4. CentOS/RHEL 4:cómo configurar la vinculación de interfaz (equipo de NIC)

  5. Cómo configurar la interfaz en “Modo Promiscuo” en CentOS/RHEL

Cómo configurar una dirección IP estática en RHEL 8 / CentOS 8 Linux

Cómo configurar una interfaz de red virtual en RHEL 8/CentOS 8

Cómo configurar el servidor NTP en RHEL 8 / CentOS 8 Linux

Configurar la vinculación de NIC (tarjeta de interfaz de red) en CentOS 7 / RHEL 7

Cómo configurar la dirección IP en CentOS 7/RHEL 7 y CentOS 6/RHEL 6

Cómo cambiar el nombre de la interfaz de red a eth0 en CentOS 8/RHEL 8

    Requisitos de software y convenciones de la línea de comandos de Linux
    Categoría Requisitos, convenciones o versión de software utilizada
    Sistema RHEL 8 / CentOS 8
    Software La utilidad nmtui para controlar el demonio NetworkManager. La aplicación está incluida en una instalación mínima del sistema.
    Otro Privilegios de raíz para modificar la configuración del sistema
    Convenciones # – requiere que los comandos de Linux dados se ejecuten con privilegios de root, ya sea directamente como usuario root o mediante el uso de sudo comando
    $ – requiere que los comandos de Linux dados se ejecuten como un usuario normal sin privilegios