Agrupación de redes Teaming (Examen RHCE)

Que es un Teaming de red ?

Un Teaming de red es, donde unimos dos o mas interfaces de red en una sola, aplicando diferentes “RUNNERS”, si viene cierto hace un tiempo hablamos de bond en el examen de certificación para RHCE se establecen comunicaciones de redundancia con teaming ya que esta basado en RHEL7.x y BOND estaba en el examen de certificación basado en RHEL6.x.

Modos de teaming :

  • broadcast: Corredor simple que dirige el dispositivo del equipo para transmitir paquetes a través de todos los puertos.
  • roundrobin: Corredor simple que dirige el dispositivo del equipo para transmitir paquetes de una manera round-robin.
  • activebackup: Vela por cambios de enlace y selecciona el puerto activo que se utilizará para las transferencias de datos.
  • loadbalance: Para hacer equilibrio de carga pasiva, el corredor sólo establece la función de hash BPF que determinará el puerto para la transmisión de paquetes. Para realizar un balanceo de carga activo, el corredor mueve los hashes entre los puertos disponibles intentando alcanzar el equilibrio perfecto.
  • lacp: Implementa el protocolo LACP 802.3ad. Puede usar las mismas posibilidades de selección de puertos Tx que el corredor de equilibrio de carga.

El labs y explicación  en su totalidad lo hare en un RHEL 7.4 bajo una maquina virtual con 3 tarjetas de red ens33, ens38, ens39. 

ens33 ==> 192.168.92.140 

ens38 ==> sin configurar

ens39 ==> sin configurar

Manual y ayuda de teamd, mas toda la configuracion de sus runners.

para revisar el estado del bondig

man teamd.conf

Configuración del teaming :

Verificamos las tarjetas de red de nuestro sistema.

[root@server1 ~]# nmcli device s
DISPOSITIVO  TIPO      ESTADO        CONEXIÓN 
virbr0       bridge    conectado     virbr0   
ens33        ethernet  conectado     ens33    
ens38        ethernet  desconectado  --       
ens39        ethernet  desconectado  --       
lo           loopback  sin gestión   --       
virbr0-nic   tun       sin gestión   --     

Creare una agrupación con las interfaces ens38 y ens39

1.- Creación de la conexión teaming

[root@server1 ~]# nmcli connection add type team con-name team1 ifname team1 config '{"runner": {"name": "activebackup"}}'
Conexión 'team1' (74f0a909-e90c-46df-ab88-8fb4ef3cb8d4) agregada con éxito.
  • nmcli connection add type team<== crea la conexión tipo team
  • con-name team1 <== asigna el nombre team1 a la conexión
  • ifname team1 <== asigna el nombre team1 para las interfaces
  • config ‘{«runner»: {«name»: «activebackup»}}‘ <== configura el runner en este caso activebackup

Revisión de la conexión

[root@server1 ~]# nmcli connection s
NOMBRE  UUID                                  TIPO            DISPOSITIVO 
ens33   e2867aa2-97f5-4b60-8a40-cece480f3012  802-3-ethernet  ens33       
team1   ba4313f5-7f9d-4370-b4ca-408502530519  team            team1 # esta es la conexion que acabamos de crear     
virbr0  03c4ba37-11f4-4631-9bcb-c87f0ff88f6b  bridge          virbr0  

2.- Configuración de la IP

En este caso configuraremos una IP por IPV4

[root@server1 ~]# nmcli connection modify team1 ipv4.addresses 192.168.92.40/24
[root@server1 ~]# nmcli connection modify team1 ipv4.method manual
  • nmcli connection modify team1 ipv4.addresses 192.168.92.40/24 <== establezco la IP : 192.168.92.40/24 al team1 que creamos anteriormente
  • nmcli connection modify team1 ipv4.method manual <== establezco método manual a la configuración

3.- Agregar las interfaces al teaming

[root@server1 ~]# nmcli connection add type team-slave con-name team1-slave1 ifname ens38 master team1
Conexión 'team1-slave1' (f79e1ff7-086d-44f9-a916-1287437559a5) agregada con éxito.
[root@server1 ~]# nmcli connection add type team-slave con-name team1-slave2 ifname ens39 master team1
Conexión 'team1-slave2' (a206eb9d-c862-4a40-baa3-60bf3dbcb6fc) agregada con éxito.
  • nmcli connection add type team-slave <== crea la conexión tipo slave
  • con-name team1-slave1 <== establece el nombre para los slave en este caso el slave1 
  • ifname ens38 <== asigna la tarjeta ens38 al slave1
  • master team1 <== asocia la tarjeta a nuestro team1

los mismos pasos se realizan para la tarjeta ens39 cambiando el nombre del slave y el ifname

verificación

[root@server1 ~]# nmcli connection s
NOMBRE        UUID                                  TIPO            DISPOSITIVO 
ens33         e2867aa2-97f5-4b60-8a40-cece480f3012  802-3-ethernet  ens33       
team1         ba4313f5-7f9d-4370-b4ca-408502530519  team            team1       
team1-slave1  f79e1ff7-086d-44f9-a916-1287437559a5  802-3-ethernet  ens38       
team1-slave2  a206eb9d-c862-4a40-baa3-60bf3dbcb6fc  802-3-ethernet  ens39       
virbr0        03c4ba37-11f4-4631-9bcb-c87f0ff88f6b  bridge          virbr0   

4.- Activar la conexión

Lo primero que debemos hacer es bajar la conexion del team

[root@server1 ~]# nmcli connection down team1
La conexión 'team1' fue desactivada correctamente (ruta activa D-Bus: /org/freedesktop/NetworkManager/ActiveConnection/5)

Subimos las interfaces esclavas y revisamos nuevamente

[root@server1 ~]# nmcli connection up team1-slave1
Conexión activada con éxito (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/8)
[root@server1 ~]# nmcli connection up team1-slave2
Conexión activada con éxito (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/10)
[root@server1 ~]# ifconfig team1
team1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.92.40  netmask 255.255.255.0  broadcast 192.168.92.255
        inet6 fe80::6782:e164:e95c:5907  prefixlen 64  scopeid 0x20<link>
        ether 0e:2f:58:30:3a:75  txqueuelen 1000  (Ethernet)
        RX packets 3  bytes 234 (234.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 38  bytes 4693 (4.5 KiB)
        TX errors 0  dropped 1 overruns 0  carrier 0  collisions 0

Tambien podemos ver la integridad del teaming con los comandos de teamdctl

[root@server1 ~]# teamdctl team1 state
setup:
  runner: activebackup # tipo de runner
ports:
  ens38
    link watches:
      link summary: up
      instance[link_watch_0]:
        name: ethtool
        link: up
        down count: 0
  ens39
    link watches:
      link summary: up
      instance[link_watch_0]:
        name: ethtool
        link: up
        down count: 0
runner:
  active port: ens38 # tarjeta activa
  • Podemos ver que el tipo de runner ==> runner: activebackup
  • Los port ==> ens38 ens39
  • El estado ==> up
  • Cual es el puerto activo actual ==> active port: ens38

Comprobar si la interfaz hace backup

Para realizar esta prueba podrías desconectar la tarjeta o simplremente bajar la interfaz que este activa en el teaming 

[rootserver1 ~]# nmcli connection down team1-slave1
La conexión 'team1-slave1' fue desactivada correctamente (ruta activa D-Bus: /org/freedesktop/NetworkManager/ActiveConnection/8)

[root@server1 ~]# nmcli connection s
NOMBRE        UUID                                  TIPO            DISPOSITIVO 
ens33         e2867aa2-97f5-4b60-8a40-cece480f3012  802-3-ethernet  ens33       
team1         ba4313f5-7f9d-4370-b4ca-408502530519  team            team1       
team1-slave2  a206eb9d-c862-4a40-baa3-60bf3dbcb6fc  802-3-ethernet  ens39       
virbr0        03c4ba37-11f4-4631-9bcb-c87f0ff88f6b  bridge          virbr0      
team1-slave1  f79e1ff7-086d-44f9-a916-1287437559a5  802-3-ethernet  --         

[root@server1 ~]# teamdctl team1 state
setup:
  runner: activebackup
ports:
  ens39
    link watches:
      link summary: up
      instance[link_watch_0]:
        name: ethtool
        link: up
        down count: 0
runner:
  active port: ens39

con esta prueba hemos bajado la interface ens38 y a levantado automáticamente la ens39 quedando como la port activa 

Ahora si volvemos a levantar la interface 1

[root@server1 ~]# nmcli connection up team1-slave1
Conexión activada con éxito (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/11)

[root@server1 ~]# teamdctl team1 state
setup:
  runner: activebackup
ports:
  ens38
    link watches:
      link summary: up
      instance[link_watch_0]:
        name: ethtool
        link: up
        down count: 0
  ens39
    link watches:
      link summary: up
      instance[link_watch_0]:
        name: ethtool
        link: up
        down count: 0
runner:
  active port: ens39

Ambas tarjetas estan UP pero el activo sigue siendo la ens39, ahora si bajamos la interface2 deberia pasar la interface1 a activa

[root@server1 ~]# nmcli connection down team1-slave2
La conexión 'team1-slave2' fue desactivada correctamente (ruta activa D-Bus: /org/freedesktop/NetworkManager/ActiveConnection/10)

[root@server1 ~]# teamdctl team1 state
setup:
  runner: activebackup
ports:
  ens38
    link watches:
      link summary: up
      instance[link_watch_0]:
        name: ethtool
        link: up
        down count: 0
runner:
  active port: ens38

Volcado de la información del team

[root@server1 ~]# teamdctl team1 config dump
{
    "device": "team1",
    "hwaddr": "0E:2F:58:30:3A:75",
    "mcast_rejoin": {
        "count": 1
    },
    "notify_peers": {
        "count": 1
    },
    "ports": {
        "ens38": {
            "link_watch": {
                "name": "ethtool"
            }
        },
        "ens39": {
            "link_watch": {
                "name": "ethtool"
            }
        }
    },
    "runner": {
        "name": "activebackup"
    }
}

Con todos estos pasos queda claro como funciona la agrupación de redes en modo teaming, solo deben llevarlo a sus consolas y realizar las pruebas.

Jorge Romero
Sigueme

Deja una Respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.