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

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

¿Qué es la unión de interfaces?

La vinculación (o vinculación de canales) es una tecnología habilitada por el kernel de Linux y Red Hat Enterprise Linux, que permite a los administradores combinar dos o más interfaces de red para formar una sola interfaz lógica "vinculada" para redundancia o mayor rendimiento. El comportamiento de las interfaces vinculadas depende del modo; en términos generales, los modos proporcionan servicios de equilibrio de carga o de espera activa. Además, pueden proporcionar monitoreo de integridad de enlaces.

¿Por qué utilizar la vinculación de interfaz?

Las dos razones importantes para crear un enlace de interfaz son:
1. Para proporcionar un mayor ancho de banda
2. Para proporcionar redundancia ante fallas de hardware

Uno de los requisitos previos para configurar un enlace es tener un conmutador de red compatible con EtherChannel (lo cual es cierto en el caso de casi todos los conmutadores).

Modos de vinculación

Según sus requisitos, puede configurar el modo de vinculación en cualquiera de los 7 modos siguientes.

Modo Política Cómo funciona Tolerancia a fallos Equilibrio de carga
0 Round Robin los paquetes se transmiten/reciben secuencialmente a través de cada interfaz uno por uno.
1 Copia de seguridad activa una NIC activa mientras otra NIC está inactiva. Si la NIC activa deja de funcionar, se activa otra NIC. solo se admite en entornos x86. No
2 XOR [OR exclusivo] En este modo, la dirección MAC de la NIC esclava se compara con la MAC de la solicitud entrante y, una vez que se establece esta conexión, se utiliza la misma NIC para transmitir/recibir para la MAC de destino.
3 Transmitir Todas las transmisiones se envían a todos los esclavos No
4 Agregación de enlaces dinámicos Las NIC agregadas actúan como una NIC, lo que da como resultado un mayor rendimiento, pero también proporciona conmutación por error en caso de que falle una NIC. La agregación de enlaces dinámicos requiere un conmutador compatible con IEEE 802.3ad.
5 Equilibrio de carga de transmisión (TLB) El tráfico saliente se distribuye según 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.
6 Equilibrio de carga adaptativo (ALB) A diferencia de la Agregación de enlaces dinámicos, el Equilibrio de carga adaptativo no requiere ninguna configuración de conmutador en particular. El Equilibrio de carga adaptable solo se admite en entornos x86. La carga de los paquetes recibidos se equilibra a través de la negociación ARP.

Creación de la conexión de red mediante nmcli

1. Creación de la interfaz de vinculación

1. Use el comando de conexión nmcli sin ningún argumento para ver las conexiones de red existentes. Puede acortar la "conexión ” argumento de “con “. Ejemplo:

# nmcli connection 
NAME                UUID                                  TYPE            DEVICE 
ens33               59b61d18-90ed-4c3c-97e0-6c9e0528f25f  802-3-ethernet  ens33  
ens37               c09f18e1-793b-4d60-9107-98762cf593a7  802-3-ethernet  ens37

2. Incluya el “agregar tipo de vínculo ” argumentos y cualquier información adicional para crear una conexión de enlace de red. El siguiente ejemplo crea una interfaz enlazada llamada bond0, define la interfaz como bond0, establece el modo en "active-backup “, y asigna una dirección IP a la interfaz enlazada.

# nmcli con add type bond con-name bond0 ifname bond0 mode active-backup ip4 192.168.219.150/24
Connection 'bond0' (1a75eef0-f2c9-417d-81a0-fabab4a1531c) successfully added.

El comando nmcli con muestra la nueva conexión de enlace.

# nmcli connection 
NAME                UUID                                  TYPE            DEVICE 
bond0               1a75eef0-f2c9-417d-81a0-fabab4a1531c  bond            bond0  
ens33               59b61d18-90ed-4c3c-97e0-6c9e0528f25f  802-3-ethernet  ens33  
ens37               c09f18e1-793b-4d60-9107-98762cf593a7  802-3-ethernet  ens37

3. El comando 'nmcli con add type bond' crea un archivo de configuración de interfaz en /etc/sysconfig/network-scripts directorio. Por ejemplo:

# cat /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
BONDING_OPTS=mode=active-backup
TYPE=Bond
BONDING_MASTER=yes
BOOTPROTO=none
IPADDR=192.168.219.150
PREFIX=24
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=bond0
UUID=1a75eef0-f2c9-417d-81a0-fabab4a1531c
ONBOOT=yes

4. El comando ip addr muestra la nueva interfaz bond0:

# ip addr show bond0
5: bond0: [BROADCAST,MULTICAST,MASTER,UP] mtu 1500 qdisc noqueue state DOWN qlen 1000
    link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
    inet 192.168.219.150/24 brd 192.168.219.255 scope global bond0
       valid_lft forever preferred_lft forever

2. Creación de las interfaces esclavas

1. Para cada interfaz que desee vincular, utilice el comando 'nmcli con add type bond-slave ' dominio. El siguiente ejemplo agrega el ens33 interfaz como esclavo de enlace. El comando no incluye el argumento con-name, por lo que se genera automáticamente un nombre. Puede establecer el nombre para las interfaces esclavas con el argumento con-name.

# nmcli con add type bond-slave ifname ens33 master bond0
Connection 'bond-slave-ens33' (79c40960-6b2c-47ba-a417-988332affed1) successfully added.

2. El siguiente ejemplo agrega el ens37 interfaz como un “esclavo de enlace “.

# nmcli con add type bond-slave ifname ens37 master bond0
Connection 'bond-slave-ens37' (46222a52-f2ae-4732-bf06-ef760aea0d7b) successfully added.

3. El comando nmcli con muestra las nuevas conexiones.

# nmcli connection 
NAME                UUID                                  TYPE            DEVICE 
bond0               1a75eef0-f2c9-417d-81a0-fabab4a1531c  bond            bond0  
ens33               59b61d18-90ed-4c3c-97e0-6c9e0528f25f  802-3-ethernet  ens33  
ens37               c09f18e1-793b-4d60-9107-98762cf593a7  802-3-ethernet  ens37  
bond-slave-ens33    79c40960-6b2c-47ba-a417-988332affed1  802-3-ethernet  --     
bond-slave-ens37    46222a52-f2ae-4732-bf06-ef760aea0d7b  802-3-ethernet  --   

4. Los comandos nmcli con add type bond-slave crean archivos de configuración de interfaz en /etc/sysconfig/network-scripts directorio. Por ejemplo:

# cat /etc/sysconfig/network-scripts/ifcfg-bond-slave-ens33
TYPE=Ethernet
NAME=bond-slave-ens33
UUID=79c40960-6b2c-47ba-a417-988332affed1
DEVICE=ens33
ONBOOT=yes
MASTER=bond0
SLAVE=yes
# cat /etc/sysconfig/network-scripts/ifcfg-bond-slave-ens37
TYPE=Ethernet
NAME=bond-slave-ens37
UUID=46222a52-f2ae-4732-bf06-ef760aea0d7b
DEVICE=ens37
ONBOOT=yes
MASTER=bond0
SLAVE=yes

5. El comando ip addr incluye “SLAVE ” para las interfaces ens33 y ens37 y también incluye “master bond0 “.

3. Activando el Vínculo

1. Puede usar el comando nmcli para mostrar las conexiones. Abra primero los esclavos y luego abra la interfaz de enlace. Los siguientes comandos activan los esclavos:

# nmcli connection up bond-slave-ens33
# nmcli connection up bond-slave-ens37

2. El siguiente comando abre la interfaz bond0:

# nmcli con up bond0

3. El comando ip addr, o el comando ip link, ahora muestra las interfaces esclava y bond que están ACTIVAS.

# ip link
2: ens33: [BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP] mtu 1500 qdisc pfifo_fast master bond0 state UP mode DEFAULT qlen 1000
    link/ether 00:0c:29:54:f7:20 brd ff:ff:ff:ff:ff:ff
3: ens37: [BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP] mtu 1500 qdisc pfifo_fast master bond0 state UP mode DEFAULT qlen 1000
    link/ether 00:0c:29:54:f7:20 brd ff:ff:ff:ff:ff:ff
4: bond0: [BROADCAST,MULTICAST,MASTER,UP,LOWER_UP] mtu 1500 qdisc noqueue state UP mode DEFAULT qlen 1000
    link/ether 00:0c:29:54:f7:20 brd ff:ff:ff:ff:ff:ff

Visualización de información de enlace de red

1. Cada interfaz de red contiene un directorio en el directorio /sys/class/net. Por ejemplo:

# ls /sys/class/net
bond0  bonding_masters  ens33  ens36  ens37  lo

2. En este ejemplo, existe un enlace de red denominado "bond0". Existe un directorio con el mismo nombre que contiene información de configuración para ese vínculo. Por ejemplo:

# ls /sys/class/net/bond0
addr_assign_type  bonding    carrier_changes  dormant  gro_flush_timeout  iflink       lower_ens37   operstate     queues      subsystem     uevent
address           broadcast  dev_id           duplex   ifalias            link_mode    mtu           phys_port_id  speed       tx_queue_len
addr_len          carrier    dev_port         flags    ifindex            lower_ens33  netdev_group  power         statistics  type

3. Dentro de este directorio hay un directorio de vinculación que contiene información para la interfaz bond0. Por ejemplo:

# ls /sys/class/net/bond0/bonding
active_slave       ad_aggregator   ad_select          arp_interval   fail_over_mac  mii_status    num_unsol_na       queue_id        updelay
ad_actor_key       ad_num_ports    ad_user_port_key   arp_ip_target  lacp_rate      min_links     packets_per_slave  resend_igmp     use_carrier
ad_actor_sys_prio  ad_partner_key  all_slaves_active  arp_validate   lp_interval    mode          primary            slaves          xmit_hash_policy
ad_actor_system    ad_partner_mac  arp_all_targets    downdelay      miimon         num_grat_arp  primary_reselect   tlb_dynamic_lb

4. También existen directorios que contienen información de cada uno de los esclavos. Por ejemplo:

# ls /sys/class/net/bond0/lower_ens33
addr_assign_type  bonding_slave  carrier_changes  dev_port  flags              ifindex    master        operstate     queues      subsystem     uevent
address           broadcast      device           dormant   gro_flush_timeout  iflink     mtu           phys_port_id  speed       tx_queue_len  upper_bond0
addr_len          carrier        dev_id           duplex    ifalias            link_mode  netdev_group  power         statistics  type

5. Los siguientes son algunos ejemplos de visualización de archivos en el directorio /sys/class/net.

# cat /sys/class/net/bonding_masters
bond0
# cat /sys/class/net/bond0/operstate
up
# cat /sys/class/net/bond0/address
00:0c:29:54:f7:20
# cat /sys/class/net/bond0/bonding/active_slave
ens33
# cat /sys/class/net/bond0/bonding/mode
active-backup 1
# cat /sys/class/net/bond0/bonding/slaves
ens33 ens37

6. El siguiente es un ejemplo de cómo ver el archivo /proc/net/bonding/bond0.

# 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:54:f7:20
Slave queue ID: 0

Slave Interface: ens37
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:54:f7:34
Slave queue ID: 0

Cómo deshabilitar IPv4 o IPv6 en una interfaz enlazada

Estos pasos solo son necesarios si bond1 no usará una dirección ipv4 o ipv6

# nmcli connection modify bond1 ipv4.method disabled

y/o

# nmcli connection modify bond1 ipv6.method ignore


Cent OS
  1. CentOS/RHEL 7:Cómo configurar Network Bonding o NIC teaming

  2. Cómo configurar la formación de equipos de red en CentOS/RHEL 7

  3. Cómo configurar la formación de equipos de interfaz de red en CentOS/RHEL 7 y 8

  4. Cómo crear una interfaz de puente usando nmcli en CentOS/RHEL 7 y 8

  5. Cómo cambiar el modo de enlace de red en CentOS/RHEL 6

Cómo configurar la vinculación de la interfaz de red 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 formación de equipos NIC en CentOS 8/RHEL 8

Cómo configurar interfaces de red usando NMCLI en Centos 7.6

Cómo administrar la red usando la herramienta nmcli en RedHat/CentOS 7

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