Red Hat Training

A Red Hat training course is available for RHEL 8

20.3. Roteamento do tráfego de uma subrede específica para um gateway padrão diferente usando os scripts de rede legados

Esta seção descreve como configurar o RHEL como um roteador que, por padrão, encaminha todo o tráfego para o provedor de Internet A usando a rota padrão. Usando o roteamento baseado em políticas, a RHEL encaminha o tráfego recebido da sub-rede interna das estações de trabalho para o provedor B.

Importante

A configuração da rede usando os scripts de rede legados fornecidos pelo pacote network-scripts é depreciada no RHEL 8. Siga o procedimento desta seção somente se você usar os scripts de rede legados em vez do NetworkManager em seu host. Se você usar o NetworkManager para gerenciar suas configurações de rede, veja Seção 20.1, “Roteamento do tráfego de uma sub-rede específica para um gateway padrão diferente usando o NetworkManager”.

O procedimento assume a seguinte topologia de rede:

roteamento baseado em políticas

Nota

Os scripts de rede legados processam os arquivos de configuração em ordem alfabética. Portanto, é necessário nomear os arquivos de configuração de forma a garantir que uma interface, que é utilizada em regras e rotas de outras interfaces, esteja pronta quando uma interface dependente a requer. Para realizar a ordem correta, este procedimento utiliza números nos arquivos ifcfg-*, route-*, e rules-*.

Pré-requisitos

  • O pacote NetworkManager não está instalado, ou o serviço NetworkManager está desativado.
  • O pacote network-scripts está instalado.
  • O roteador RHEL que você deseja instalar no procedimento tem quatro interfaces de rede:

    • A interface enp7s0 está conectada à rede do provedor A. O gateway IP da rede do provedor é 198.51.100.2, e a rede usa uma máscara de rede /30.
    • A interface enp1s0 está conectada à rede do provedor B. O gateway IP da rede do provedor é 192.0.2.2, e a rede usa uma máscara de rede /30.
    • A interface enp8s0 está conectada à sub-rede 10.0.0.0/24 com estações de trabalho internas.
    • A interface enp9s0 está conectada à sub-rede 203.0.113.0/24 com os servidores da empresa.
  • Os anfitriões na sub-rede interna das estações de trabalho utilizam 10.0.0.1 como o gateway padrão. No procedimento, você atribui este endereço IP à interface de rede enp8s0 do roteador.
  • Os anfitriões na sub-rede do servidor utilizam 203.0.113.1 como porta de entrada padrão. No procedimento, você atribui este endereço IP para a interface de rede enp9s0 do roteador.
  • O serviço firewalld está habilitado e ativo.

Procedimento

  1. Adicione a configuração da interface de rede ao provedor A, criando o arquivo /etc/sysconfig/network-scripts/ifcfg-1_Provider-A com o seguinte conteúdo:

    TYPE=Ethernet
    IPADDR=198.51.100.1
    PREFIX=30
    GATEWAY=198.51.100.2
    DNS1=198.51.100.200
    DEFROUTE=yes
    NAME=1_Provider-A
    DEVICE=enp7s0
    ONBOOT=yes
    ZONE=external

    A lista a seguir descreve os parâmetros usados no arquivo de configuração:

    • TYPE=Ethernet: Define que o tipo de conexão é Ethernet.
    • IPADDR=IP_address: Define o endereço IPv4.
    • PREFIX=subnet_mask: Define a máscara de sub-rede.
    • GATEWAY=IP_address: Define o endereço padrão do gateway.
    • DNS1=IP_of_DNS_server: Define o endereço IPv4 do servidor DNS.
    • DEFROUTE=yes|no: Define se a conexão é ou não uma rota padrão.
    • NAME=connection_name: Define o nome do perfil de conexão. Use um nome significativo para evitar confusão.
    • DEVICE=network_device: Define a interface da rede.
    • ONBOOT=yes: Define que a RHEL inicia esta conexão quando o sistema inicia.
    • ZONE=firewalld_zone: Atribui a interface de rede à zona firewalld definida. Note que firewalld permite automaticamente o mascaramento para as interfaces atribuídas à zona external.
  2. Adicionar a configuração para a interface de rede ao provedor B:

    1. Crie o arquivo /etc/sysconfig/network-scripts/ifcfg-2_Provider-B com o seguinte conteúdo:

      TYPE=Ethernet
      IPADDR=192.0.2.1
      PREFIX=30
      DEFROUTE=no
      NAME=2_Provider-B
      DEVICE=enp1s0
      ONBOOT=yes
      ZONE=external

      Observe que o arquivo de configuração para esta interface não contém uma configuração padrão de gateway.

    2. Atribuir o gateway para a conexão 2_Provider-B a uma tabela de roteamento separada. Portanto, crie o arquivo /etc/sysconfig/network-scripts/route-2_Provider-B com o seguinte conteúdo:

      0.0.0.0/0 via 192.0.2.2 tabela 5000

      Esta entrada atribui a porta de entrada e o tráfego de todas as sub-redes roteadas através desta porta de entrada à mesa 5000.

  3. Criar a configuração da interface da rede para a sub-rede interna das estações de trabalho:

    1. Crie o arquivo /etc/sysconfig/network-scripts/ifcfg-3_Internal-Workstations com o seguinte conteúdo:

      TYPE=Ethernet
      IPADDR=10.0.0.1
      PREFIX=24
      DEFROUTE=no
      NAME=3_Internal-Workstations
      DEVICE=enp8s0
      ONBOOT=yes
      ZONE=internal
    2. Adicionar a configuração da regra de roteamento para a sub-rede interna da estação de trabalho. Portanto, crie o arquivo /etc/sysconfig/network-scripts/rule-3_Internal-Workstations com o seguinte conteúdo:

      pri 5 a partir de 10.0.0.0/24 tabela 5000

      Esta configuração define uma regra de roteamento com prioridade 5 que encaminha todo o tráfego da sub-rede 10.0.0.0/24 para a tabela 5000. Valores baixos têm uma prioridade alta.

    3. Crie o arquivo /etc/sysconfig/network-scripts/route-3_Internal-Workstations com o seguinte conteúdo para adicionar uma rota estática à tabela de roteamento com ID 5000:

      10.0.0.0/24 via 192.0.2.1 tabela 5000

      Esta rota estática define que a RHEL envia tráfego da sub-rede 10.0.0.0/24 para o IP da interface da rede local para o provedor B (192.0.2.1). Esta interface é para a tabela de roteamento 5000 e usada como o próximo salto.

  4. Adicione a configuração para a interface de rede à sub-rede do servidor criando o arquivo /etc/sysconfig/network-scripts/ifcfg-4_Servers com o seguinte conteúdo:

    TYPE=Ethernet
    IPADDR=203.0.113.1
    PREFIX=24
    DEFROUTE=no
    NAME=4_Servers
    DEVICE=enp9s0
    ONBOOT=yes
    ZONE=internal
  5. Reinicie a rede:

    # systemctl restart network

Etapas de verificação

  1. Em um host RHEL na sub-rede interna da estação de trabalho:

    1. Instale o pacote traceroute:

      # yum install traceroute
    2. Use o utilitário traceroute para exibir a rota para um host na Internet:

      # traceroute redhat.com
      traceroute to redhat.com (209.132.183.105), 30 hops max, 60 byte packets
       1  10.0.0.1 (10.0.0.1)     0.337 ms  0.260 ms  0.223 ms
       2  192.0.2.1 (192.0.2.1)   0.884 ms  1.066 ms  1.248 ms
       ...

      A saída do comando mostra que o roteador envia pacotes sobre 192.0.2.1, que é a rede do provedor B.

  2. Em um host RHEL na sub-rede do servidor:

    1. Instale o pacote traceroute:

      # yum install traceroute
    2. Use o utilitário traceroute para exibir a rota para um host na Internet:

      # traceroute redhat.com
      traceroute to redhat.com (209.132.183.105), 30 hops max, 60 byte packets
       1  203.0.113.1 (203.0.113.1)    2.179 ms  2.073 ms  1.944 ms
       2  198.51.100.2 (198.51.100.2)  1.868 ms  1.798 ms  1.549 ms
       ...

      A saída do comando mostra que o roteador envia pacotes através de 198.51.100.2, que é a rede do provedor A.

Passos para a solução de problemas

No roteador RHEL:

  1. Exibir a lista de regras:

    # ip rule list
    0:      from all lookup local
    5:      from 10.0.0.0/24 lookup 5000
    32766:  from all lookup main
    32767:  from all lookup default

    Por padrão, a RHEL contém regras para as tabelas local, main, e default.

  2. Mostrar as rotas na tabela 5000:

    # ip route list table 5000
    default via 192.0.2.2 dev enp1s0
    10.0.0.0/24 via 192.0.2.1 dev enp1s0
  3. Exibir as interfaces e as zonas de firewall:

    # firewall-cmd --get-active-zones
    external
      interfaces: enp1s0 enp7s0
    internal
      interfaces: enp8s0 enp9s0
  4. Verifique se a zona external tem o mascaramento ativado:

    # firewall-cmd --info-zone=external
    external (active)
      target: default
      icmp-block-inversion: no
      interfaces: enp1s0 enp7s0
      sources:
      services: ssh
      ports:
      protocols:
      masquerade: yes
      ...

Recursos adicionais