Red Hat Training

A Red Hat training course is available for RHEL 8

Capítulo 15. Configuração de túneis IP

Similar a uma VPN, um túnel IP conecta diretamente duas redes através de uma terceira rede, como a Internet. Entretanto, nem todos os protocolos de túnel suportam criptografia.

Os roteadores em ambas as redes que estabelecem o túnel requerem pelo menos duas interfaces:

  • Uma interface que está conectada à rede local
  • Uma interface que é conectada à rede através da qual o túnel é estabelecido.

Para estabelecer o túnel, você cria uma interface virtual em ambos os roteadores com um endereço IP a partir da sub-rede remota.

O NetworkManager suporta os seguintes túneis IP:

  • Encapsulamento genérico de roteamento (GRE)
  • Encapsulamento genérico de roteamento sobre IPv6 (IP6GRE)
  • Ponto de Acesso ao Terminal de Encapsulamento de Roteamento Genérico (GRETAP)
  • Ponto de Acesso Terminal de Encapsulamento de Roteamento Genérico sobre IPv6 (IP6GRETAP)
  • IPv4 sobre IPv4 (IPIP)
  • IPv4 sobre IPv6 (IPIP6)
  • IPv6 sobre IPv6 (IP6IP6)
  • Transição simples pela Internet (SIT)

Dependendo do tipo, estes túneis atuam ou na camada 2 ou 3 do modelo de Interconexão de Sistemas Abertos (OSI).

15.1. Configuração de um túnel IPIP usando nmcli para encapsular o tráfego IPv4 em pacotes IPv4

Um túnel IP sobre IP (IPIP) opera na camada 3 do OSI e encapsula o tráfego IPv4 em pacotes IPv4, conforme descrito na RFC 2003.

Importante

Os dados enviados através de um túnel IPIP não são criptografados. Por razões de segurança, utilizar o túnel somente para dados que já estão criptografados, por exemplo, por outros protocolos, tais como HTTPS.

Note que os túneis IPIP suportam apenas pacotes unicast. Se você precisar de um túnel IPv4 que suporte multicast, veja Seção 15.2, “Configuração de um túnel GRE usando nmcli para encapsular o tráfego de camada-3 em pacotes IPv4”.

Este procedimento descreve como criar um túnel IPIP entre dois roteadores RHEL para conectar duas sub-redes internas através da Internet, como mostrado no diagrama a seguir:

IPIP tunnel

Pré-requisitos

  • Cada roteador RHEL tem uma interface de rede que é conectada à sua sub-rede local.
  • Cada roteador RHEL tem uma interface de rede que está conectada à Internet.
  • O tráfego que você deseja enviar através do túnel é IPv4 unicast.

Procedimento

  1. No roteador RHEL da rede A:

    1. Criar uma interface de túnel IPIP chamada tun0:

      # nmcli connection add type ip-tunnel ip-tunnel.mode ipip con-name tun0 ifname tun0 remote 198.51.100.5 local 203.0.113.10

      Os parâmetros remote e local definem os endereços IP públicos dos roteadores remotos e locais.

    2. Defina o endereço IPv4 para o dispositivo tun0:

      # nmcli connection modify tun0 ipv4.addresses '10.0.1.1/30'

      Note que uma sub-rede /30 com dois endereços IP utilizáveis é suficiente para o túnel.

    3. Configure a conexão tun0 para usar uma configuração IPv4 manual:

      # nmcli connection modify tun0 ipv4.method manual
    4. Adicionar uma rota estática que encaminhe o tráfego para a rede 172.16.0.0/24 para o IP do túnel no roteador B:

      # nmcli connection modify tun0 ipv4.routes "172.16.0.0/24 10.0.1.2"
    5. Habilitar a conexão tun0.

      # nmcli connection up tun0
    6. Habilitar o envio de pacotes:

      # echo "net.ipv4.ip_forward=1" > /etc/sysctl.d/95-IPv4-forwarding.conf
      # sysctl -p /etc/sysctl.d/95-IPv4-forwarding.conf
  2. No roteador RHEL da rede B:

    1. Criar uma interface de túnel IPIP chamada tun0:

      # nmcli connection add type ip-tunnel ip-tunnel.mode ipip con-name tun0 ifname tun0 remote 203.0.113.10 local 198.51.100.5

      Os parâmetros remote e local definem os endereços IP públicos dos roteadores remotos e locais.

    2. Defina o endereço IPv4 para o dispositivo tun0:

      # nmcli connection modify tun0 ipv4.addresses '10.0.1.2/30'
    3. Configure a conexão tun0 para usar uma configuração IPv4 manual:

      # nmcli connection modify tun0 ipv4.method manual
    4. Adicione uma rota estática que encaminha o tráfego para a rede 192.0.2.0/24 para o IP do túnel no roteador A:

      # nmcli connection modify tun0 ipv4.routes "192.0.2.0/24 10.0.1.1"
    5. Habilitar a conexão tun0.

      # nmcli connection up tun0
    6. Habilitar o envio de pacotes:

      # echo "net.ipv4.ip_forward=1" > /etc/sysctl.d/95-IPv4-forwarding.conf
      # sysctl -p /etc/sysctl.d/95-IPv4-forwarding.conf

Etapas de verificação

  1. A partir de cada roteador RHEL, pingando o endereço IP da interface interna do outro roteador:

    1. No Router A, ping 172.16.0.1:

      # ping 172.16.0.1
    2. No Router B, ping 192.0.2.1:

      # ping 192.0.2.1

Recursos adicionais

  • Para mais detalhes sobre o uso de nmcli, consulte a página de manual nmcli.
  • Para detalhes sobre as configurações do túnel você pode definir com nmcli, veja a seção ip-tunnel settings na página de manual nm-settings(5).