Red Hat Training

A Red Hat training course is available for RHEL 8

Capítulo 11. Configuração de uma ponte de rede

Uma ponte de rede é um dispositivo de camada de ligação que encaminha o tráfego entre redes com base em uma tabela de endereços MAC. A ponte constrói a tabela de endereços MAC ouvindo o tráfego da rede e, assim, aprendendo quais hosts estão conectados a cada rede. Por exemplo, você pode usar uma ponte de software em um host Red Hat Enterprise Linux 8 para emular uma ponte de hardware ou em ambientes de virtualização, para integrar máquinas virtuais (VM) à mesma rede que o host.

Uma ponte requer um dispositivo de rede em cada rede que a ponte deve conectar. Quando você configura uma ponte, a ponte é chamada controller e os dispositivos que ela usa ports.

Você pode criar pontes em diferentes tipos de dispositivos, como por exemplo:

  • Dispositivos Ethernet físicos e virtuais
  • Títulos de rede
  • Equipes de rede
  • Dispositivos VLAN

Devido ao padrão IEEE 802.11 que especifica o uso de quadros de 3 endereços em Wi-Fi para o uso eficiente do tempo de antena, não é possível configurar uma ponte sobre redes Wi-Fi operando nos modos Ad-Hoc ou Infra-estrutura.

11.1. Configuração de uma ponte de rede usando comandos nmcli

Esta seção explica como configurar uma ponte de rede usando o utilitário nmcli.

Pré-requisitos

Procedimento

  1. Criar uma interface de ponte:

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

    Este comando cria uma ponte chamada bridge0, entre:

  2. Mostre as interfaces de rede, e anote os nomes das interfaces que você deseja acrescentar à ponte:

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

    Neste exemplo:

    • enp7s0 e enp8s0 não estão configurados. Para usar estes dispositivos como portas, adicione perfis de conexão na próxima etapa.
    • bond0 e bond1 têm perfis de conexão existentes. Para usar estes dispositivos como portas, modifique seus perfis na próxima etapa.
  3. Atribuir as interfaces à ponte.

    1. Se as interfaces que você deseja atribuir à ponte não estiverem configuradas, crie novos perfis de conexão para elas:

      # 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

      Estes comandos criam perfis para enp7s0 e enp8s0, e os adicionam à conexão bridge0.

    2. Se você quiser atribuir um perfil de conexão existente à ponte, defina o parâmetro master dessas conexões para bridge0:

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

      Estes comandos atribuem os perfis de conexão existentes denominados bond0 e bond1 à conexão bridge0.

  4. Configurar as configurações de IP da ponte. Pule este passo se você quiser usar esta ponte como porta de outros dispositivos.

    1. Configurar as configurações do IPv4. Por exemplo, para configurar um endereço IPv4 estático, máscara de rede, gateway padrão, servidor DNS e domínio de busca DNS da conexão bridge0, digite:

      # 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. Configurar as configurações IPv6. Por exemplo, para configurar um endereço IPv6 estático, máscara de rede, gateway padrão, servidor DNS e domínio de busca DNS da conexão bridge0, digite:

      # 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: Configurar outras propriedades da ponte. Por exemplo, para definir a prioridade do Protocolo Spanning Tree (STP) de bridge0 a 16384, entre:

    # nmcli connection modify bridge0 bridge.priority '16384'

    Por padrão, o STP está habilitado.

  6. Ativar a conexão:

    # nmcli connection up bridge0
  7. Verifique se os portos estão conectados, e a coluna CONNECTION mostra o nome da conexão do porto:

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

    O Red Hat Enterprise Linux ativa o controlador e as portas quando o sistema inicia. Ativando qualquer conexão de porta, o controlador também é ativado. No entanto, neste caso, apenas uma conexão de porta é ativada. Por default, a ativação do controlador não ativa automaticamente as portas. No entanto, é possível ativar este comportamento através da configuração:

    1. Habilitar o parâmetro connection.autoconnect-slaves da conexão da ponte:

      # nmcli connection modify bridge0 connection.autoconnect-slaves 1
    2. Reativar a ponte:

      # nmcli connection up bridge0

Etapas de verificação

  • Exibir o status do link dos dispositivos Ethernet que são portas de uma ponte específica:

    # 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
  • Mostrar o status dos dispositivos Ethernet que são portas de qualquer dispositivo de ponte:

    # 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 exibir o status de um dispositivo Ethernet específico, use o bridge link show dev ethernet_device_name comando.

Recursos adicionais