IPv6 no Linux: O Futuro dos Endereços IP + Exemplo no Rocky Linux 8

Por que usar IPv6?

Com o esgotamento dos endereços IPv4, o IPv6 surgiu como uma solução robusta e escalável. Ele permite a conexão de trilhões de dispositivos, melhora a segurança nativamente com IPsec e simplifica a configuração de rede por meio da autoconfiguração automática (SLAAC).

Essa transição também começa a impactar a telefonia: já temos clientes utilizando softphones em redes 5G de suas operadoras com IPv6. Por isso, tivemos que adaptar nossos servidores para operar de forma dual stack — suportando tanto IPv4 quanto o novo e querido IPv6.

Enquanto o IPv4 utiliza endereços como 192.168.0.1, o IPv6 trabalha com endereços no formato:
2001:0db8:85a3:0000:0000:8a2e:0370:7334.

Ou seja: mais espaço, mais simplicidade para redes grandes e novas possibilidades para IoT, cloud e muito mais.

Exemplo de Configuração IPv6 no Rocky Linux 8

Neste exemplo, vamos configurar manualmente um endereço IPv6 em uma interface de rede usando o nmcli (NetworkManager CLI), a forma recomendada no RL8.

🧱 Pré-requisitos

  • Rocky Linux 8 instalado

  • Interface de rede ativa (ex: eth0 ou ens160)

  • Acesso root

    1. Verificar se o IPv6 está habilitado no kernel

    Execute o comando abaixo:

      cat /proc/sys/net/ipv6/conf/all/disable_ipv6
    

    Saída 0: IPv6 está habilitado

    Saída 1: IPv6 está desabilitado

  • Você também pode verificar por interface específica, como ens160:

      cat /proc/sys/net/ipv6/conf/ens160/disable_ipv6
    

    2. Ajustando o arquivo da interface de rede

    Neste exemplo, estamos utilizando pilha dupla (dual stack), ou seja, configurando tanto IPv4 quanto IPv6. Existem outras formas de realizar essa configuração, mas aqui vamos demonstrar o método direto, editando o arquivo de configuração da interface de rede — no meu caso, a ens160.

    Como na minha rede doméstica já tenho suporte a IPv6, vou configurar um endereço IPv6 fixo.

      vim /etc/sysconfig/network-scripts/ifcfg-ens160
    

    Como estou abordando de forma explicativa (e prefiro assim), o conteúdo ficará um pouco mais longo, mas vamos detalhar o que cada linha do arquivo faz

      # Tipo físico da interface (Ethernet, Wi-Fi, etc.)
      TYPE=Ethernet          # Interface de rede cabeada
    
      # Método de obtenção de IP IPv4 (static, dhcp ou none)
      BOOTPROTO=static       # Endereço IPv4 será configurado manualmente
    
      # Define se esta interface deve instalar a rota padrão IPv4
      DEFROUTE=yes           # Esta interface será a rota default para IPv4
    
      # Se uma falha em IPv4 deve ser considerada fatal durante o boot
      IPV4_FAILURE_FATAL=no  # Falhas IPv4 não impedem a inicialização
    
      # Habilita a pilha IPv6 nesta interface
      IPV6INIT=yes           # Ativa suporte IPv6
    
      # Desativa autoconfiguração SLAAC; usaremos endereço manual
      IPV6_AUTOCONF=no       # Sem autoconfig; endereço fixo será usado
    
      # Define se esta interface deve instalar a rota padrão IPv6
      IPV6_DEFROUTE=yes      # Esta interface será a rota default para IPv6
    
      # Se uma falha em IPv6 deve ser considerada fatal durante o boot
      IPV6_FAILURE_FATAL=no  # Falhas IPv6 não impedem a inicialização
    
      # Modo de geração de endereço temporário/privado para IPv6
      IPV6_ADDR_GEN_MODE=stable-privacy  # End. estável mas com privacidade
    
      # Nome lógico da interface (meramente descritivo)
      NAME=ens160            # Exibido em ferramentas como `nmcli`
    
      # Nome do dispositivo de rede no kernel
      DEVICE=ens160          # Correspondente a `ip link show`
    
      # Levanta a interface automaticamente durante o boot
      ONBOOT=yes             # `systemctl restart network` também respeita isso
    
      # Endereço IPv4 estático desta interface
      IPADDR=192.168.15.204  # IP privado fixo
    
      # Máscara IPv4 em notação CIDR (24 = 255.255.255.0)
      PREFIX=24              # Tamanho do prefixo da sub-rede
    
      # Gateway/roteador padrão para IPv4
      GATEWAY=192.168.15.1   # Próximo salto para a internet/roteador
    
      # Servidor DNS primário (IPv4)
      DNS1=8.8.8.8           # Google Public DNS
    
      # Endereço IPv6 estático com prefixo /64
      IPV6ADDR=2804:7f0:9000:6c05::100/64  # IP fixo na sub-rede global
    
      # Gateway padrão IPv6 (link-local); 
      IPV6_DEFAULTGW=fe80::920a:62ff:fe90:9140  # Próximo salto IPv6
    
      # Servidor DNS secundário (IPv6)
      DNS2=2001:4860:4860::8888  # Google Public DNS IPv6
    

Agora o arquivo original sem comentario fica desta forma :

TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=no
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens160
DEVICE=ens160
ONBOOT=yes
IPADDR=192.168.15.204
PREFIX=24
GATEWAY=192.168.15.1
DNS1=8.8.8.8
IPV6ADDR=2804:7f0:9000:6c05::100/64
IPV6_DEFAULTGW=fe80::920a:62ff:fe90:9140
DNS2=2001:4860:4860::8888
  • Após o ajuste no arquivo utilize o comando nmcli connection down ens160 && nmcli connection up ens160

3. Validando a configuração

Caso tenha feito tudo da forma correta a saida do seu ifconfig será parecida com a minha

4. Teste a conectividade

ping6 google.com

E se eu quiser desabilitar o IPv6?

Se por algum motivo você quiser desabilitar o IPv6 no sistema, adicione estas linhas no arquivo /etc/sysctl.conf:

net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1

E aplique:

sysctl -p

O IPv6 é uma realidade, não mais uma previsão. Adotar e entender como configurá-lo no seu ambiente — seja em servidores bare-metal, containers, nuvem ou roteadores — vai te posicionar na frente.

No Rocky Linux 8, a integração com o NetworkManager torna o processo direto e confiável. É hora de atualizar sua stack!

Valeu pessoal até a proxima !

0
Subscribe to my newsletter

Read articles from Hudson Alves Amaral directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Hudson Alves Amaral
Hudson Alves Amaral