Red Hat Training

A Red Hat training course is available for RHEL 8

Capítulo 11. Configurar un puente de red

Un puente de red es un dispositivo de capa de enlace que reenvía el tráfico entre redes basándose en una tabla de direcciones MAC. El puente construye la tabla de direcciones MAC escuchando el tráfico de la red y aprendiendo así qué hosts están conectados a cada red. Por ejemplo, puede utilizar un puente de software en un host Red Hat Enterprise Linux 8 para emular un puente de hardware o en entornos de virtualización, para integrar máquinas virtuales (VM) a la misma red que el host.

Un puente requiere un dispositivo de red en cada red que el puente deba conectar. Cuando se configura un puente, éste se llama controller y los dispositivos que utiliza ports.

Puedes crear puentes en diferentes tipos de dispositivos, como:

  • Dispositivos Ethernet físicos y virtuales
  • Bonos de red
  • Equipos de la red
  • Dispositivos VLAN

Debido al estándar IEEE 802.11 que especifica el uso de tramas de 3 direcciones en Wi-Fi para el uso eficiente del tiempo de aire, no se puede configurar un puente sobre redes Wi-Fi que operen en modo Ad-Hoc o Infraestructura.

11.1. Configuración de un puente de red mediante comandos nmcli

Esta sección explica cómo configurar un puente de red utilizando la utilidad nmcli.

Requisitos previos

Procedimiento

  1. Crear una interfaz de puente:

    # nmcli connection add type bridge con-name bridge0 ifname bridge0

    Este comando crea un puente llamado bridge0, introduzca:

  2. Visualice las interfaces de red y anote los nombres de las interfaces que desea añadir al puente:

    # nmcli device status
    DEVICE  TYPE      STATE         CONNECTION
    enp7s0  ethernet  disconnected  --
    enp8s0  ethernet  disconnected  --
    bond0   bond      connected     bond0
    bond1   bond      connected     bond1
    ...

    En este ejemplo:

    • enp7s0 y enp8s0 no están configurados. Para utilizar estos dispositivos como puertos, añada perfiles de conexión en el siguiente paso.
    • bond0 y bond1 tienen perfiles de conexión existentes. Para utilizar estos dispositivos como puertos, modifique sus perfiles en el siguiente paso.
  3. Asigna las interfaces al puente.

    1. Si las interfaces que desea asignar al puente no están configuradas, cree nuevos perfiles de conexión para ellas:

      # nmcli connection add type ethernet slave-type bridge con-name bridge0-port1 ifname enp7s0 master bridge0
      # nmcli connection add type ethernet slave-type bridge con-name bridge0-port2 ifname enp8s0 master bridge0

      Estos comandos crean perfiles para enp7s0 y enp8s0, y los añaden a la conexión bridge0.

    2. Si desea asignar un perfil de conexión existente al puente, establezca el parámetro master de estas conexiones en bridge0:

      # nmcli connection modify bond0 master bridge0
      # nmcli connection modify bond1 master bridge0

      Estos comandos asignan los perfiles de conexión existentes denominados bond0 y bond1 a la conexión bridge0.

  4. Configure los ajustes IP del puente. Omita este paso si desea utilizar este puente como puertos de otros dispositivos.

    1. Configure los ajustes de IPv4. Por ejemplo, para configurar una dirección IPv4 estática, la máscara de red, la puerta de enlace predeterminada, el servidor DNS y el dominio de búsqueda DNS de la conexión bridge0, introduzca:

      # nmcli connection modify bridge0 ipv4.addresses '192.0.2.1/24'
      # nmcli connection modify bridge0 ipv4.gateway '192.0.2.254'
      # nmcli connection modify bridge0 ipv4.dns '192.0.2.253'
      # nmcli connection modify bridge0 ipv4.dns-search 'example.com'
      # nmcli connection modify bridge0 ipv4.method manual
    2. Configure los ajustes de IPv6. Por ejemplo, para configurar una dirección IPv6 estática, una máscara de red, una puerta de enlace predeterminada, un servidor DNS y un dominio de búsqueda DNS de la conexión bridge0, introduzca:

      # nmcli connection modify bridge0 ipv6.addresses '2001:db8:1::1/64'
      # nmcli connection modify bridge0 ipv6.gateway '2001:db8:1::fffe'
      # nmcli connection modify bridge0 ipv6.dns '2001:db8:1::fffd'
      # nmcli connection modify bridge0 ipv6.dns-search 'example.com'
      # nmcli connection modify bridge0 ipv6.method manual
  5. Opcional: Configure otras propiedades del puente. Por ejemplo, para establecer la prioridad del protocolo de árbol de expansión (STP) de bridge0 a 16384, introduzca:

    # nmcli connection modify bridge0 bridge.priority '16384'

    Por defecto, el STP está activado.

  6. Activa la conexión:

    # nmcli connection up bridge0
  7. Compruebe que los puertos están conectados y que la columna CONNECTION muestra el nombre de la conexión del puerto:

    # nmcli device
    DEVICE   TYPE      STATE      CONNECTION
    ...
    enp7s0   ethernet  connected  bridge0-port1
    enp8s0   ethernet  connected  bridge0-port2

    Red Hat Enterprise Linux activa el controlador y los puertos cuando el sistema arranca. Al activar cualquier conexión de puerto, el controlador también se activa. Sin embargo, en este caso, sólo se activa una conexión de puerto. Por defecto, la activación del controlador no activa automáticamente los puertos. Sin embargo, puede habilitar este comportamiento configurando:

    1. Habilitar el parámetro connection.autoconnect-slaves de la conexión puente:

      # nmcli connection modify bridge0 connection.autoconnect-slaves 1
    2. Reactivar el puente:

      # nmcli connection up bridge0

Pasos de verificación

  • Muestra el estado del enlace de los dispositivos Ethernet que son puertos de un puente específico:

    # ip link show master bridge0
    3: enp7s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master bridge0 state UP mode DEFAULT group default qlen 1000
        link/ether 52:54:00:62:61:0e brd ff:ff:ff:ff:ff:ff
    4: enp8s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master bridge0 state UP mode DEFAULT group default qlen 1000
        link/ether 52:54:00:9e:f1:ce brd ff:ff:ff:ff:ff:ff
  • Muestra el estado de los dispositivos Ethernet que son puertos de cualquier dispositivo puente:

    # bridge link show
    3: enp7s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 master bridge0 state forwarding priority 32 cost 100
    4: enp8s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 master bridge0 state listening priority 32 cost 100
    5: enp9s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 master bridge1 state forwarding priority 32 cost 100
    6: enp11s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 master bridge1 state blocking priority 32 cost 100
    ...

    Para mostrar el estado de un dispositivo Ethernet específico, utilice el comando bridge link show dev ethernet_device_name comando.

Recursos adicionales