Post

Guia Completo de Configuração de IPv6 no Linux

Um guia abrangente para configurar e gerenciar IPv6 em sistemas Linux. Inclui conceitos, endereçamento, roteamento, segurança e monitoramento.

Guia Completo de Configuração de IPv6 no Linux

Introdução

Com o crescimento exponencial da internet e o aumento de dispositivos conectados, o protocolo IPv4, criado inicialmente para suportar uma quantidade limitada de endereços, rapidamente se mostrou insuficiente. Nesse contexto, o IPv6 surge como uma solução necessária, trazendo um espaço de endereçamento vastamente maior e diversas melhorias que suportam a escalabilidade, a segurança e o desempenho das redes modernas.

Este tutorial detalhado tem como objetivo orientar administradores de sistemas, engenheiros de redes e entusiastas em Linux sobre como configurar, gerenciar e proteger redes IPv6. Através de um passo a passo que abrange desde os conceitos básicos de endereçamento IPv6 até configurações avançadas de segurança, monitoramento e boas práticas, os leitores poderão dominar os aspectos fundamentais e avançados do IPv6 no Linux, possibilitando a criação de redes estáveis, seguras e prontas para o futuro.

Dividido em seções cuidadosamente estruturadas, o tutorial explora configurações de IPv6 com ferramentas como ip, nmcli e netplan, abrange tópicos de roteamento, autoconfiguração, e orienta na implementação de firewalls e monitoramento. Com essa base de conhecimento, você estará capacitado para implantar e gerenciar redes IPv6 com eficiência e confiança.


Tabela de Conteúdos


1. Introdução ao IPv6: Conceitos e Importância

Objetivo

Apresentar o IPv6, sua importância e as principais diferenças em relação ao IPv4. Esta introdução explica o esgotamento dos endereços IPv4 e a crescente necessidade de adoção do IPv6 para suportar a expansão das redes de comunicação e dispositivos conectados.


Conteúdo

1.1 Introdução ao IPv6

O IPv6 (Internet Protocol version 6) é a versão mais recente do Protocolo de Internet, desenvolvido para substituir o IPv4 devido ao esgotamento de endereços IP. Enquanto o IPv4 usa endereços de 32 bits (cerca de 4,3 bilhões de endereços), o IPv6 adota um formato de endereços de 128 bits, oferecendo um número praticamente ilimitado de endereços, adequado para o crescimento da Internet e o aumento de dispositivos conectados.

1.2 Características do IPv6
  • 128 Bits: Com um tamanho de 128 bits, o IPv6 suporta aproximadamente 3,4 x 10^38 endereços.
  • Novo Formato de Endereço: Utiliza hexadecimal em vez de decimal, com endereços compostos de oito blocos separados por dois pontos, como 2001:0db8:85a3:0000:0000:8a2e:0370:7334.
  • Diferentes Tipos de Endereços: Oferece endereços unicast, multicast e anycast, otimizando o roteamento e aumentando a flexibilidade de uso.
1.3 Necessidade do IPv6

Com o crescimento das redes, a Internet das Coisas (IoT), e o número de dispositivos móveis conectados, o esgotamento do IPv4 torna-se crítico. O IPv6 é a solução escalável, suportando:

  • Expansão das Redes: Mais endereços para dispositivos em redes domésticas, corporativas e globais.
  • Comunicação Direta: Dispensa a necessidade de NAT (Network Address Translation), simplificando a conectividade entre dispositivos.
  • Segurança e Escalabilidade: O IPv6 foi projetado para ser mais seguro e escalável, com recursos embutidos como IPsec e suporte a autenticação e criptografia de tráfego.
1.4 Estrutura e Tipos de Endereços IPv6

No IPv6, os endereços são compostos por uma combinação de:

  • Identificador de Rede (Prefixo): Parte inicial do endereço que identifica a rede ou sub-rede.
  • Identificador de Host (Interface ID): Parte final que identifica cada dispositivo na rede.

Existem diferentes tipos de endereços IPv6:

  • Unicast: Para uma comunicação de um dispositivo a outro.
  • Multicast: Para a entrega de pacotes a múltiplos dispositivos ao mesmo tempo.
  • Anycast: Para entrega ao dispositivo mais próximo em um grupo, útil em grandes redes distribuídas.
1.5 Vantagens do IPv6
Vantagem Descrição
Escalabilidade Oferece mais endereços para suportar a expansão das redes.
Melhor Roteamento Simplifica o roteamento com a ausência de NAT, permitindo uma comunicação direta.
Segurança Integrada Inclui suporte embutido a IPsec para autenticação e criptografia de dados.
Autoconfiguração SLAAC (Stateless Address Autoconfiguration) permite que dispositivos configurem seus próprios endereços.

2. Tipos de Endereços IPv6 e Formato de Endereçamento

Objetivo

Explicar os diferentes tipos de endereços IPv6, suas finalidades e como eles são estruturados. Esta seção também aborda a abreviação de endereços para simplificar a leitura e a configuração de redes.


Conteúdo

2.1 Endereços Unicast, Multicast e Anycast

O IPv6 oferece três tipos principais de endereços, cada um com um propósito específico:

  1. Endereços Unicast:
    • Representam uma única interface em uma rede.
    • Permitem comunicação direta entre dois dispositivos.
    • Podem ser divididos em:
      • Global Unicast: Equivalente aos endereços públicos no IPv4, são roteáveis globalmente e únicos na Internet.
      • Unique Local Address (ULA): Equivalente aos endereços privados IPv4, não são roteáveis na Internet (prefixo fc00::/7).
      • Link-Local Address: Usado para comunicação dentro de um único link ou rede local (prefixo fe80::/10), configurado automaticamente e essencial para protocolos de descoberta de vizinhança.
  2. Endereços Multicast:
    • Representam um grupo de interfaces, permitindo que pacotes sejam entregues a todos os membros do grupo.
    • Utilizam o prefixo ff00::/8.
    • Comuns em serviços de streaming e redes locais para comunicação em grupo.
  3. Endereços Anycast:
    • Um endereço atribuído a múltiplas interfaces.
    • Os pacotes são entregues à interface mais próxima, de acordo com as métricas de roteamento, otimizando a entrega de conteúdo e serviços.
2.2 Estrutura do Endereço IPv6

Os endereços IPv6 são compostos de 128 bits divididos em oito blocos de 16 bits cada, representados em hexadecimal e separados por dois pontos (:). Exemplo de um endereço completo:

1
2001:0db8:85a3:0000:0000:8a2e:0370:7334
Componentes do Endereço IPv6:
  • Prefixo de Rede: Indica a rede, geralmente variando de /32 a /64.
  • Prefixo de Sub-rede: Divide redes maiores em sub-redes menores.
  • Identificador de Interface (Host ID): Identifica o dispositivo na rede.
2.3 Abreviação de Endereços IPv6

Endereços IPv6 podem ser longos, então é possível abreviá-los para simplificar a leitura:

  1. Omissão de Zeros à Esquerda:
    • Zeros à esquerda em cada bloco podem ser omitidos.
    • Exemplo: 2001:0db8:0000:0000:0000:ff00:0042:8329 se torna 2001:db8:0:0:0:ff00:42:8329.
  2. Uso de :: para Blocos de Zeros Contínuos:
    • Uma sequência contínua de blocos 0000 pode ser substituída por ::.
    • Exemplo: 2001:0db8:0000:0000:0000:ff00:0042:8329 se torna 2001:db8::ff00:42:8329.
    • Nota: O :: pode ser usado apenas uma vez em um endereço para evitar ambiguidades.
  3. Exemplos Práticos de Abreviação:
Endereço Completo Abreviação
2001:0db8:0000:0000:0000:ff00:0042:8329 2001:db8::ff00:42:8329
fe80:0000:0000:0000:0202:b3ff:fe1e:8329 fe80::202:b3ff:fe1e:8329
2.4 Exemplo Prático: Identificando Endereços IPv6 em um Sistema Linux

No Linux, o comando ip permite listar e identificar os diferentes tipos de endereços IPv6 configurados nas interfaces.

  1. Listar Endereços IPv6:

    1
    
    ip -6 addr show
    
  2. Identificar Tipos de Endereços:
    • Endereços que começam com fe80:: são link-local e usados para comunicação interna na rede local.
    • Endereços ULA, como fd00::/8, indicam uma rede interna segura, isolada da Internet.
    • Endereços globais, como 2001::/16, são global unicast e podem ser usados para roteamento na Internet.
  3. Exemplo de Saída:

    1
    2
    3
    4
    
    2: eth0    inet6 2001:0db8:85a3::8a2e:0370:7334/64 scope global
       valid_lft forever preferred_lft forever
    2: eth0    inet6 fe80::d4a8:64ff:fe00:12f6/64 scope link
       valid_lft forever preferred_lft forever
    

Resumo da Seção

Nesta seção, exploramos os tipos de endereços IPv6 e o formato de endereçamento, incluindo como simplificar a leitura de endereços usando abreviações. Com essas informações, você já pode identificar e interpretar endereços IPv6 no Linux e entender a finalidade de cada tipo de endereço.

Na próxima seção, vamos avançar para estratégias de planejamento de prefixo IPv6, abordando como estruturar e distribuir prefixos para garantir uma rede organizada e escalável.


3. Estratégias de Planejamento de Prefixo IPv6

Objetivo

Ensinar como planejar o uso de prefixos IPv6 para organizar redes de maneira escalável e fácil de gerenciar. Esta seção aborda a divisão hierárquica de redes usando prefixos e como alocar blocos de endereços IPv6 de forma estratégica para diferentes setores, locais geográficos ou tipos de dispositivos.


Conteúdo

3.1 Conceito de Prefixos IPv6

Um prefixo IPv6 representa a parte inicial de um endereço IPv6 que define a rede à qual ele pertence. Ele é similar a uma máscara de sub-rede no IPv4 e é especificado pelo número de bits que permanecem fixos. Por exemplo, o prefixo /64 significa que os primeiros 64 bits do endereço IPv6 identificam a rede e os restantes são usados para endereçar dispositivos dentro dessa rede.

Prefixos Comuns em IPv6:

  • /48: Usado para identificar redes maiores; normalmente alocado para organizações.
  • /56: Pode ser usado para subdivisões menores dentro de uma organização.
  • /64: Comum em redes locais (LANs); normalmente utilizado como padrão para sub-redes em IPv6.
3.2 Planejamento de Prefixos para Segmentação de Redes

No IPv6, o planejamento de prefixos pode ser feito hierarquicamente, permitindo que as organizações subdividam o espaço de endereçamento para criar uma estrutura de rede escalável e fácil de gerenciar. A seguir estão algumas abordagens para organizar prefixos de forma hierárquica:

  1. Segmentação por Departamentos ou Funções:
    • Dividir o prefixo principal em sub-redes específicas para cada departamento, como TI, RH e Marketing.
    • Exemplo: uma organização que possui o prefixo /48 2001:db8:1234::/48 pode subdividir para criar sub-redes menores:
      • TI: 2001:db8:1234:1::/64
      • RH: 2001:db8:1234:2::/64
      • Marketing: 2001:db8:1234:3::/64
  2. Segmentação por Localização Geográfica:
    • Se a organização possui várias filiais ou escritórios, pode-se alocar sub-redes IPv6 distintas para cada localização.
    • Exemplo: com o prefixo 2001:db8:abcd::/48, é possível subdividir para diferentes cidades:
      • Escritório em São Paulo: 2001:db8:abcd:10::/64
      • Escritório no Rio de Janeiro: 2001:db8:abcd:20::/64
      • Escritório em Brasília: 2001:db8:abcd:30::/64
  3. Segmentação por Tipo de Dispositivo:
    • Dividir prefixos por tipos de dispositivos, como servidores, dispositivos de rede, e dispositivos IoT, facilita a organização e o controle de acesso.
    • Exemplo:
      • Servidores: 2001:db8:abcd:100::/64
      • Dispositivos IoT: 2001:db8:abcd:200::/64
      • Dispositivos de Rede: 2001:db8:abcd:300::/64
3.3 Exemplo Prático de Planejamento de Prefixos IPv6

Suponha que sua organização recebeu o prefixo global 2001:0db8:abcd::/48 e precisa dividir esse prefixo para diferentes departamentos:

  1. Definição de Prefixos para Cada Departamento:
    • TI: 2001:0db8:abcd:0010::/64
    • Financeiro: 2001:0db8:abcd:0020::/64
    • Marketing: 2001:0db8:abcd:0030::/64
    • Desenvolvimento: 2001:0db8:abcd:0040::/64
  2. Implementação das Sub-redes:
    • Cada departamento possui agora um bloco /64, o que oferece um grande número de endereços para os dispositivos conectados.
    • O prefixo /64 é adequado para sub-redes locais, pois permite a configuração automática de endereços (SLAAC) e está alinhado com as práticas recomendadas para LANs em IPv6.
  3. Vantagens do Planejamento Hierárquico:
    • Facilita o roteamento e a aplicação de políticas de segurança por departamento.
    • Permite expansão fácil caso um departamento necessite de mais sub-redes no futuro.
    • Atribui uma estrutura lógica que facilita a administração e a documentação da rede.
3.4 Tabela de Exemplo de Distribuição de Prefixos
Departamento Prefixo IPv6 Descrição
TI 2001:0db8:abcd:0010::/64 Rede principal de TI
Financeiro 2001:0db8:abcd:0020::/64 Rede do departamento financeiro
Marketing 2001:0db8:abcd:0030::/64 Rede de marketing e comunicação
Desenvolvimento 2001:0db8:abcd:0040::/64 Rede de desenvolvimento de software
Escritório remoto 2001:0db8:abcd:0100::/64 Rede para uma filial específica
3.5 Ferramentas para Planejamento de Prefixos IPv6

O planejamento de prefixos pode ser facilitado por ferramentas de gerenciamento de endereços IP (IPAM), como:

  • phpIPAM: Um sistema de código aberto para gerenciar endereços IPv4 e IPv6.
  • BlueCat: Oferece IPAM robusto, útil para grandes redes corporativas.
  • SolarWinds IPAM: Solução comercial que integra rastreamento e documentação de endereços IP.

Essas ferramentas auxiliam na distribuição e documentação de prefixos, especialmente em redes com muitos dispositivos, garantindo que a estrutura da rede permaneça organizada e escalável.


Resumo da Seção

Nesta seção, exploramos o conceito de prefixos IPv6 e estratégias para segmentar redes de maneira organizada, considerando departamentos, localizações e tipos de dispositivos. O planejamento estruturado de prefixos facilita o gerenciamento, o roteamento e a escalabilidade da rede.

Na próxima seção, vamos discutir o Unique Local Address (ULA) e como ele pode ser usado em redes privadas IPv6 para garantir segurança e isolamento em redes locais.


4. Unique Local Address (ULA) e Endereçamento Local IPv6

Objetivo

Explicar o que são endereços ULA, suas características e como utilizá-los para redes IPv6 privadas. Nesta seção, abordaremos o formato dos endereços ULA, suas diferenças em relação aos endereços globais, e exemplos de configuração em uma rede interna.


Conteúdo

4.1 O Que São Endereços ULA?

Unique Local Addresses (ULA) são endereços IPv6 reservados para uso privado em redes locais. Eles são semelhantes aos endereços IPv4 privados, como 192.168.x.x e 10.x.x.x, mas com algumas características específicas para IPv6. A faixa ULA usa o prefixo fc00::/7, que é subdividido em fc00::/8 e fd00::/8, sendo fd00::/8 a faixa mais comumente utilizada.

Características dos Endereços ULA:

  • Isolamento Local: Os endereços ULA não são roteáveis na Internet, sendo restritos a redes internas.
  • Prefixo Definido: A faixa ULA começa com fd00::/8, garantindo um prefixo estável para uso em redes privadas.
  • Identificação de Redes Locais: O uso de um prefixo de rede específico facilita o isolamento e a organização das redes internas, ideal para organizações que precisam segmentar sua rede em várias sub-redes IPv6 privadas.
4.2 Estrutura dos Endereços ULA

Os endereços ULA têm a seguinte estrutura:

1
| fd00::/8 | Global ID (40 bits) | Subnet ID (16 bits) | Interface ID (64 bits) |
  • fd00::/8: Prefixo que indica que o endereço pertence à faixa ULA.
  • Global ID (40 bits): Identificador global exclusivo, gerado aleatoriamente, que permite diferenciar redes ULA.
  • Subnet ID (16 bits): Usado para subdividir a rede interna em sub-redes adicionais.
  • Interface ID (64 bits): Identificador do dispositivo na rede, frequentemente gerado automaticamente.
4.3 Gerando um Prefixo ULA Exclusivo

Para gerar um prefixo ULA, você pode criar um Global ID aleatório com 40 bits. Isso ajuda a garantir que o endereço ULA será único dentro da sua rede, mesmo se você eventualmente conectar várias sub-redes privadas.

  1. Gerador de Prefixo ULA: Existem ferramentas online que podem gerar automaticamente um prefixo ULA, como:
  2. Exemplo de Prefixo Gerado:
    • Prefixo ULA gerado: fd12:3456:789a::/48
    • Esse prefixo pode ser subdividido em sub-redes adicionais, como:
      • fd12:3456:789a:0001::/64
      • fd12:3456:789a:0002::/64
4.4 Exemplo Prático: Configuração de Endereços ULA em uma Rede Interna

Neste exemplo, configuraremos uma interface de rede com um endereço ULA usando o prefixo fd12:3456:789a::/48 e o comando ip no Linux.

  1. Configurar um Endereço ULA Estático:

    Configure a interface eth0 com um endereço ULA estático:

    1
    
    ip -6 addr add fd12:3456:789a:0001::1/64 dev eth0
    

    Aqui, fd12:3456:789a:0001::1/64 é o endereço ULA atribuído ao dispositivo na sub-rede fd12:3456:789a:0001::/64.

  2. Configurar um Gateway ULA (se necessário):

    Caso a rede ULA precise de roteamento entre sub-redes internas, defina um gateway para a sub-rede:

    1
    
    ip -6 route add fd12:3456:789a:0002::/64 via fd12:3456:789a:0001::1 dev eth0
    

    Esse comando configura uma rota para a sub-rede fd12:3456:789a:0002::/64, passando pelo gateway fd12:3456:789a:0001::1.

4.5 Comparação entre ULA e Endereços Globais IPv6
Característica ULA Endereços Globais IPv6
Prefixo fd00::/8 Geralmente começa com 2000::/3
Roteável na Internet Não Sim
Uso Principal Redes internas, isoladas Comunicação na Internet e em redes externas
Privacidade e Isolamento Alto Depende da configuração de segurança
4.6 Vantagens do Uso de ULA
  • Privacidade: Por não serem roteáveis na Internet, os endereços ULA oferecem uma camada de privacidade para redes internas.
  • Compatibilidade com IPv6 Global: Em redes Dual Stack (IPv4/IPv6) ou em redes com IPv6 global, ULA permite que dispositivos usem endereços IPv6 internos sem exposição direta à Internet.
  • Facilidade na Administração de Redes: Organizar dispositivos internos com endereços ULA facilita o gerenciamento e controle de acesso em redes complexas.

Resumo da Seção

Nesta seção, discutimos o conceito e a estrutura dos endereços Unique Local Address (ULA), usados para redes IPv6 privadas. Abordamos também a geração de prefixos ULA exclusivos e um exemplo prático de configuração. O uso de ULA é vantajoso para redes internas que necessitam de privacidade e isolamento.

Na próxima seção, vamos explorar a configuração básica de IPv6 no Linux usando o comando ip, abordando como definir endereços e rotas IPv6 para interfaces de rede.


5. Configuração Básica de IPv6 no Linux com o Comando ip

Objetivo

Ensinar o uso do comando ip para configurar endereços IPv6 em interfaces de rede no Linux. Nesta seção, abordaremos como configurar endereços IPv6 estáticos, definir gateways e rotas IPv6, e verificar o status das interfaces.


Conteúdo

5.1 Visão Geral do Comando ip para IPv6

O comando ip é uma ferramenta poderosa e versátil para configuração de redes em Linux, substituindo o comando ifconfig em distribuições modernas. Ele permite configurar e gerenciar interfaces de rede, endereços IP e rotas IPv6, com sintaxe flexível e comandos intuitivos.

Estrutura Básica:

1
ip -6 <subcomando> <opções> <parâmetros>
  • -6: Especifica que a operação será feita no IPv6.
  • Subcomandos principais:
    • addr: Gerencia endereços IPv6.
    • route: Manipula rotas IPv6.
    • link: Controla o status das interfaces de rede.
5.2 Configuração de Endereço IPv6 Estático

Para configurar um endereço IPv6 estático em uma interface de rede, utilizamos o subcomando addr com o parâmetro add.

  1. Atribuir um Endereço IPv6 Estático:

    No exemplo a seguir, vamos configurar a interface eth0 com um endereço IPv6 específico e um prefixo /64:

    1
    
    ip -6 addr add 2001:db8:abcd:0012::1/64 dev eth0
    

    Neste comando:

    • ip -6 addr add: Adiciona um endereço IPv6 à interface.
    • 2001:db8:abcd:0012::1/64: Especifica o endereço IPv6 e o prefixo.
    • dev eth0: Indica a interface onde o endereço será configurado.
  2. Remover um Endereço IPv6:

    Para remover o endereço IPv6 configurado anteriormente, use o comando del:

    1
    
    ip -6 addr del 2001:db8:abcd:0012::1/64 dev eth0
    
5.3 Configuração de Gateway IPv6

Para definir o gateway padrão, ou seja, o roteador que será utilizado para enviar pacotes fora da rede local, utilizamos o subcomando route.

  1. Configurar o Gateway IPv6:

    No exemplo abaixo, configuramos um gateway para a interface eth0:

    1
    
    ip -6 route add default via 2001:db8:abcd:0012::fffe dev eth0
    
    • ip -6 route add default: Define a rota padrão (gateway) para pacotes de saída.
    • via 2001:db8:abcd:0012::fffe: Especifica o endereço do gateway IPv6.
    • dev eth0: Indica a interface que será usada para enviar o tráfego.
  2. Remover o Gateway IPv6:

    Para remover o gateway configurado, use o comando del:

    1
    
    ip -6 route del default
    
5.4 Configuração de Rota IPv6 Estática

Rotas estáticas são úteis em cenários onde você precisa definir caminhos específicos para sub-redes diferentes dentro da rede IPv6.

  1. Adicionar uma Rota IPv6 Estática:

    Suponha que você precisa configurar uma rota para a sub-rede 2001:db8:abcd:0020::/64, roteando o tráfego para esta sub-rede via um gateway intermediário 2001:db8:abcd:0012::1:

    1
    
    ip -6 route add 2001:db8:abcd:0020::/64 via 2001:db8:abcd:0012::1 dev eth0
    
  2. Remover uma Rota IPv6 Estática:

    Para remover a rota estática, execute:

    1
    
    ip -6 route del 2001:db8:abcd:0020::/64
    
5.5 Verificação de Configuração IPv6

Para verificar as configurações IPv6 em uma interface, o comando ip fornece uma visão detalhada dos endereços e rotas configurados.

  1. Exibir Endereços IPv6 de uma Interface:

    Use o seguinte comando para listar os endereços IPv6 de uma interface específica (ex.: eth0):

    1
    
    ip -6 addr show dev eth0
    
  2. Listar Todas as Rotas IPv6:

    O comando abaixo exibe todas as rotas IPv6 configuradas no sistema:

    1
    
    ip -6 route show
    
5.6 Exemplo Completo de Configuração de IPv6 com o Comando ip

Neste exemplo, configuramos um endereço IPv6 estático, um gateway e uma rota estática em uma interface chamada eth0.

  1. Adicionar o Endereço IPv6:

    1
    
    ip -6 addr add 2001:db8:abcd:0012::1/64 dev eth0
    
  2. Definir o Gateway Padrão:

    1
    
    ip -6 route add default via 2001:db8:abcd:0012::fffe dev eth0
    
  3. Adicionar uma Rota Estática:

    1
    
    ip -6 route add 2001:db8:abcd:0020::/64 via 2001:db8:abcd:0012::1 dev eth0
    
  4. Verificar Configurações:

    Listar endereços e rotas para confirmação:

    1
    2
    
    ip -6 addr show dev eth0
    ip -6 route show
    
5.7 Tabela Resumo dos Comandos ip para IPv6
Comando Função
ip -6 addr add <IP>/<prefixo> dev <interface> Adiciona um endereço IPv6 à interface.
ip -6 addr del <IP>/<prefixo> dev <interface> Remove um endereço IPv6 da interface.
ip -6 route add default via <gateway> Define o gateway IPv6 padrão.
ip -6 route add <rede>/<prefixo> via <gateway> dev <interface> Adiciona uma rota IPv6 estática.
ip -6 addr show dev <interface> Exibe endereços IPv6 configurados na interface.
ip -6 route show Exibe todas as rotas IPv6 configuradas.

Resumo da Seção

Nesta seção, exploramos a configuração básica de IPv6 no Linux usando o comando ip, incluindo como definir endereços IPv6, configurar um gateway padrão e adicionar rotas estáticas. Essas habilidades formam a base para configurar redes IPv6 de maneira rápida e eficaz em sistemas Linux.

Na próxima seção, abordaremos o gerenciamento de IPv6 com o netplan, uma ferramenta comum para configurar redes em distribuições Linux baseadas em Ubuntu.


6. Gerenciamento de IPv6 com o netplan (Ubuntu e derivados)

Objetivo

Demonstrar como configurar redes IPv6 usando o netplan em distribuições Linux baseadas em Ubuntu. O netplan permite configurar redes de maneira persistente através de arquivos YAML, o que facilita o gerenciamento de redes IPv6, principalmente em servidores.


Conteúdo

6.1 Visão Geral do netplan para IPv6

O netplan é uma ferramenta que permite configurar redes no Linux usando arquivos YAML. Ele é especialmente popular em distribuições baseadas em Ubuntu e pode gerenciar tanto IPv4 quanto IPv6. Os arquivos de configuração do netplan geralmente estão localizados no diretório /etc/netplan/ e têm a extensão .yaml.

Os principais parâmetros do netplan para IPv6 incluem:

  • addresses: Define um ou mais endereços IPv6 estáticos.
  • gateway6: Configura o gateway IPv6 padrão.
  • nameservers: Especifica os servidores DNS IPv6.
  • dhcp6: Ativa ou desativa o DHCPv6.
6.2 Estrutura Básica de Configuração IPv6 com netplan

O exemplo a seguir configura uma interface chamada eth0 com um endereço IPv6 estático, gateway e DNS:

1
2
3
4
5
6
7
8
9
10
11
12
13
network:
  version: 2
  ethernets:
    eth0:
      dhcp4: no
      dhcp6: no
      addresses:
        - 2001:db8:abcd:0012::1/64
      gateway6: 2001:db8:abcd:0012::fffe
      nameservers:
        addresses:
          - 2001:4860:4860::8888
          - 2001:4860:4860::8844

Neste exemplo:

  • dhcp6: no: Desativa o DHCPv6 para a interface eth0, configurando o endereço como estático.
  • addresses: Define o endereço IPv6 estático e o prefixo.
  • gateway6: Configura o gateway IPv6 para a interface.
  • nameservers: Adiciona servidores DNS IPv6, permitindo a resolução de nomes via IPv6.
6.3 Configuração de Endereços IPv6 Dinâmicos com DHCPv6

Para usar o DHCPv6 e obter um endereço IPv6 dinâmico, basta definir dhcp6: yes no arquivo de configuração. O exemplo a seguir mostra como habilitar o DHCPv6 para a interface eth0:

1
2
3
4
5
6
network:
  version: 2
  ethernets:
    eth0:
      dhcp4: no
      dhcp6: yes

Com dhcp6: yes, o netplan configura automaticamente a interface para solicitar um endereço IPv6 dinâmico via DHCPv6.

6.4 Configuração de SLAAC (Stateless Address Autoconfiguration)

O IPv6 permite configurar endereços automaticamente usando SLAAC. Com SLAAC, a interface recebe um endereço IPv6 com base em anúncios de roteador na rede. Para usar SLAAC, basta desativar o DHCPv6 e configurar a interface para escutar anúncios de roteador.

No exemplo abaixo, configuramos a interface eth0 para obter um endereço IPv6 via SLAAC:

1
2
3
4
5
6
7
network:
  version: 2
  ethernets:
    eth0:
      dhcp4: no
      dhcp6: no
      accept-ra: true
  • accept-ra: true: Permite que a interface aceite anúncios de roteador (Router Advertisements), o que ativa o SLAAC.
6.5 Exemplo Completo de Configuração IPv6 com netplan

No exemplo a seguir, configuramos uma rede dual stack (IPv4 e IPv6) com um endereço IPv4 estático, endereço IPv6 estático e roteamento para ambas as versões do protocolo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
network:
  version: 2
  ethernets:
    eth0:
      dhcp4: no
      dhcp6: no
      addresses:
        - 192.168.1.10/24
        - 2001:db8:abcd:0012::1/64
      gateway4: 192.168.1.1
      gateway6: 2001:db8:abcd:0012::fffe
      nameservers:
        addresses:
          - 8.8.8.8         # DNS IPv4
          - 2001:4860:4860::8888  # DNS IPv6

Esse exemplo configura a interface eth0 com:

  • Um endereço IPv4 (192.168.1.10/24) e um gateway IPv4 (192.168.1.1).
  • Um endereço IPv6 (2001:db8:abcd:0012::1/64) e um gateway IPv6 (2001:db8:abcd:0012::fffe).
  • Servidores DNS para IPv4 e IPv6.
6.6 Aplicando e Testando as Configurações com o netplan
  1. Salvar o Arquivo de Configuração:
    • Edite ou crie um arquivo .yaml dentro de /etc/netplan/. Por exemplo: /etc/netplan/01-netcfg.yaml.
  2. Aplicar as Configurações:
    • Depois de editar o arquivo, aplique as configurações com o comando:

      1
      
      sudo netplan apply
      
  3. Verificar a Configuração:
    • Use o comando abaixo para confirmar que os endereços e rotas IPv6 foram configurados corretamente:

      1
      
      ip -6 addr show dev eth0
      
    • Verifique também se o gateway e as rotas estão configuradas:

      1
      
      ip -6 route show
      

Tabela Resumo dos Principais Parâmetros IPv6 do netplan

Parâmetro Função
addresses Define um ou mais endereços IPv6 estáticos para a interface.
gateway6 Configura o gateway IPv6 padrão.
nameservers Define os servidores DNS IPv6 para a interface.
dhcp6 Ativa (yes) ou desativa (no) o DHCPv6 para a interface.
accept-ra Configura a interface para aceitar anúncios de roteador, ativando o SLAAC.

Resumo da Seção

Nesta seção, aprendemos a configurar IPv6 no Linux usando o netplan, explorando como definir endereços estáticos e dinâmicos, configurar SLAAC e definir servidores DNS. O netplan facilita a configuração persistente, especialmente em distribuições Ubuntu e derivadas.

Na próxima seção, vamos abordar a configuração de IPv6 com nmcli (NetworkManager), útil em distribuições e ambientes que utilizam o NetworkManager para gerenciamento de redes.


7. Configuração de IPv6 com nmcli (NetworkManager)

Objetivo

Explicar como usar o nmcli para gerenciar IPv6 em sistemas Linux que utilizam o NetworkManager, uma ferramenta comum para a configuração e automação de redes. Esta seção cobre comandos para configurar IPv6 de maneira prática, incluindo endereços estáticos, autoconfiguração SLAAC e DNS.


Conteúdo

7.1 Visão Geral do nmcli para IPv6

O NetworkManager é uma ferramenta amplamente utilizada em distribuições Linux, especialmente em desktops e ambientes gráficos, e o nmcli é seu utilitário de linha de comando. Com ele, é possível configurar endereços IPv6 estáticos ou dinâmicos, ativar ou desativar a autoconfiguração SLAAC e definir servidores DNS.

Comandos básicos de configuração IPv6 no nmcli:

  • Adicionar conexão: Configura uma nova interface com parâmetros IPv6.
  • Modificar conexão: Ajusta a configuração de IPv6 de uma interface existente.
  • Ativar/desativar SLAAC: Configura o comportamento da autoconfiguração IPv6.
7.2 Configuração de IPv6 Estático com nmcli

Para configurar um endereço IPv6 estático em uma interface, use o seguinte comando:

  1. Adicionar Conexão IPv6 Estática:

    1
    
    nmcli connection add type ethernet ifname eth0 con-name ipv6-static ipv6.addresses 2001:db8:abcd:0012::1/64 ipv6.gateway 2001:db8:abcd:0012::fffe ipv6.method manual
    

    Explicação dos parâmetros:

    • type ethernet: Especifica que a conexão é Ethernet.
    • ifname eth0: Define a interface eth0 para esta conexão.
    • con-name ipv6-static: Nome da conexão.
    • ipv6.addresses: Define o endereço IPv6 estático e o prefixo.
    • ipv6.gateway: Configura o gateway IPv6.
    • ipv6.method manual: Configura o IPv6 de forma manual, desativando DHCPv6.
  2. Adicionar Servidores DNS IPv6:

    Após configurar o endereço, você pode adicionar servidores DNS com o comando:

    1
    
    nmcli connection modify ipv6-static ipv6.dns "2001:4860:4860::8888 2001:4860:4860::8844"
    

    Aqui, definimos dois servidores DNS IPv6.

  3. Ativar a Conexão:

    Para aplicar as configurações, ative a conexão:

    1
    
    nmcli connection up ipv6-static
    
7.3 Configuração de IPv6 Dinâmico com DHCPv6

Se a rede oferece suporte a DHCPv6, o nmcli permite configurar a interface para receber um endereço IPv6 dinâmico.

  1. Adicionar Conexão DHCPv6:

    1
    
    nmcli connection add type ethernet ifname eth0 con-name ipv6-dhcp ipv6.method auto
    

    Com ipv6.method auto, o nmcli configura automaticamente a interface para usar DHCPv6, caso o roteador ou servidor DHCP ofereça essa funcionalidade.

7.4 Autoconfiguração IPv6 com SLAAC (Stateless Address Autoconfiguration)

A autoconfiguração SLAAC permite que a interface configure automaticamente seu endereço IPv6 a partir de anúncios de roteador (Router Advertisements). Para habilitar o SLAAC e desativar o DHCPv6, utilize os seguintes comandos:

  1. Adicionar Conexão com SLAAC Ativado:

    1
    
    nmcli connection add type ethernet ifname eth0 con-name ipv6-slaac ipv6.method auto ipv6.accept-ra yes
    
    • ipv6.method auto: Define a configuração automática de IPv6.
    • ipv6.accept-ra yes: Habilita o recebimento de anúncios de roteador (RA), necessário para o SLAAC.
  2. Verificar a Configuração SLAAC:

    Após configurar e ativar a conexão, use o comando para verificar o endereço IPv6 configurado:

    1
    
    ip -6 addr show dev eth0
    
7.5 Exemplo Completo: Configuração Dual Stack (IPv4 e IPv6) com nmcli

O exemplo a seguir configura a interface eth0 em modo dual stack, com endereços IPv4 e IPv6 estáticos.

  1. Adicionar Conexão Dual Stack:

    1
    
    nmcli connection add type ethernet ifname eth0 con-name dualstack ipv4.addresses 192.168.1.10/24 ipv4.gateway 192.168.1.1 ipv4.method manual ipv6.addresses 2001:db8:abcd:0012::10/64 ipv6.gateway 2001:db8:abcd:0012::fffe ipv6.method manual
    
  2. Configurar Servidores DNS para IPv4 e IPv6:

    1
    
    nmcli connection modify dualstack ipv4.dns "8.8.8.8 8.8.4.4" ipv6.dns "2001:4860:4860::8888 2001:4860:4860::8844"
    
  3. Ativar a Conexão:

    1
    
    nmcli connection up dualstack
    
  4. Verificar Configuração:

    Para verificar se os endereços e rotas foram configurados corretamente, use:

    1
    2
    
    ip addr show dev eth0
    ip -6 route show
    
7.6 Tabela Resumo dos Comandos nmcli para IPv6
Comando Função
nmcli connection add type ethernet ifname <interface> con-name <nome> ipv6.method manual Cria uma conexão com IPv6 estático.
nmcli connection modify <nome> ipv6.addresses <endereço/prefixo> Configura o endereço IPv6 estático.
nmcli connection modify <nome> ipv6.dns "<dns1> <dns2>" Define servidores DNS IPv6.
nmcli connection modify <nome> ipv6.method auto Habilita DHCPv6.
nmcli connection modify <nome> ipv6.accept-ra yes Habilita SLAAC (autoconfiguração).
nmcli connection up <nome> Ativa a conexão configurada.

Resumo da Seção

Nesta seção, aprendemos a configurar IPv6 no Linux usando o nmcli, explorando como definir endereços estáticos e dinâmicos, ativar SLAAC, e configurar DNS. O nmcli oferece comandos diretos para gerenciar redes IPv6, sendo útil em sistemas que utilizam o NetworkManager.

Na próxima seção, vamos abordar a autoconfiguração IPv6 (SLAAC e DHCPv6) com mais detalhes, explicando o funcionamento de cada método e suas aplicações em redes IPv6 no Linux.


8. Autoconfiguração IPv6 (SLAAC e DHCPv6)

Objetivo

Explicar os métodos de autoconfiguração IPv6 no Linux, abordando SLAAC (Stateless Address Autoconfiguration) e DHCPv6. Esta seção detalha como cada método funciona, quando aplicá-los, e como configurar clientes Linux para utilizarem esses métodos para obtenção automática de endereços IPv6.


Conteúdo

8.1 Autoconfiguração Stateless com SLAAC

O SLAAC é um método de autoconfiguração em que os dispositivos obtêm automaticamente endereços IPv6 a partir de anúncios de roteador (Router Advertisements, ou RA). Ele não depende de um servidor DHCP, e permite que dispositivos gerem seus próprios endereços IPv6 a partir do prefixo fornecido pelo roteador.

Como Funciona o SLAAC:

  • O roteador da rede envia anúncios de roteador (RA) com o prefixo da rede.
  • Os dispositivos na rede recebem esse prefixo e geram automaticamente seu próprio endereço IPv6, combinando o prefixo com um identificador de interface (Interface ID), que é único para cada dispositivo.
  • O SLAAC é muito utilizado em redes locais, onde a configuração é simplificada e o tráfego é limitado ao escopo da rede interna.

Vantagens do SLAAC:

  • Autonomia: Dispensa a necessidade de um servidor DHCPv6.
  • Configuração Simples: Configuração automática e sem estado, ideal para redes locais e redes sem grande necessidade de gerenciamento centralizado.
8.2 Configuração do SLAAC em um Cliente Linux

Para ativar o SLAAC, basta configurar a interface para aceitar anúncios de roteador (RA). Abaixo, veremos como configurar SLAAC usando o netplan e o nmcli.

  1. Configuração com netplan:

    No netplan, defina accept-ra: true para permitir anúncios de roteador. O exemplo abaixo configura a interface eth0 para obter um endereço IPv6 via SLAAC:

    1
    2
    3
    4
    5
    6
    7
    
    network:
      version: 2
      ethernets:
        eth0:
          dhcp4: no
          dhcp6: no
          accept-ra: true
    

    Após salvar o arquivo, aplique as configurações com:

    1
    
    sudo netplan apply
    
  2. Configuração com nmcli:

    Para configurar o SLAAC com o nmcli, utilize o comando:

    1
    
    nmcli connection modify <conexao> ipv6.method auto ipv6.accept-ra yes
    

    Esse comando ativa o recebimento de RA e configura a interface para gerar um endereço IPv6 automaticamente.

8.3 Configuração com DHCPv6

DHCPv6 é uma versão adaptada do DHCP para IPv6. Ele oferece mais controle sobre a configuração e permite a atribuição de endereços IPv6 e outras configurações de rede, como servidores DNS.

Modos de Operação do DHCPv6:

  • Stateful DHCPv6: Funciona de maneira semelhante ao DHCP para IPv4, onde o servidor DHCPv6 fornece o endereço IPv6 e outras configurações. O dispositivo depende do servidor DHCP para obter o endereço.
  • Stateless DHCPv6: Usado em conjunto com SLAAC, onde o SLAAC fornece o endereço IPv6 e o DHCPv6 é utilizado apenas para obter outras configurações, como DNS.
8.4 Configuração de DHCPv6 em um Cliente Linux
  1. Configuração Stateful DHCPv6 com netplan:

    Para configurar a interface eth0 para obter um endereço IPv6 via DHCPv6 completo (stateful), use:

    1
    2
    3
    4
    5
    6
    
    network:
      version: 2
      ethernets:
        eth0:
          dhcp4: no
          dhcp6: yes
    

    Após salvar, aplique a configuração com:

    1
    
    sudo netplan apply
    
  2. Configuração Stateless DHCPv6 com netplan:

    Neste modo, o SLAAC fornece o endereço IPv6 e o DHCPv6 fornece informações adicionais, como servidores DNS. No exemplo abaixo, usamos o SLAAC e o DHCPv6 stateless na interface eth0:

    1
    2
    3
    4
    5
    6
    7
    
    network:
      version: 2
      ethernets:
        eth0:
          dhcp4: no
          dhcp6: yes
          accept-ra: true
    
  3. Configuração com nmcli:

    Com o nmcli, configure o DHCPv6 stateful em uma conexão:

    1
    
    nmcli connection modify <conexao> ipv6.method auto
    

    Para um cliente que usa SLAAC e DHCPv6 stateless:

    1
    
    nmcli connection modify <conexao> ipv6.method auto ipv6.accept-ra yes
    
8.5 Comparação entre SLAAC e DHCPv6
Característica SLAAC DHCPv6
Configuração do IP Gerado pelo dispositivo usando RA Fornecido pelo servidor DHCP
Necessidade de Servidor Não Sim, com um servidor DHCPv6
Gerenciamento Configuração local e sem estado Configuração centralizada e com estado
Uso de DNS Não configurado (ou com DHCPv6 stateless) Configurado com DHCPv6 (DNS e outras informações)
8.6 Exemplo Completo de Configuração SLAAC e DHCPv6
  1. Configuração SLAAC e DHCPv6 em Dual Stack (IPv4 e IPv6):

    O exemplo a seguir configura a interface eth0 para obter um endereço IPv4 estático e um endereço IPv6 com SLAAC e DHCPv6 stateless:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    
    network:
      version: 2
      ethernets:
        eth0:
          dhcp4: no
          addresses:
            - 192.168.1.10/24
          gateway4: 192.168.1.1
          dhcp6: yes
          accept-ra: true
          nameservers:
            addresses:
              - 8.8.8.8
              - 2001:4860:4860::8888
    

    Esse exemplo utiliza o SLAAC para configurar o endereço IPv6, enquanto o DHCPv6 fornece configurações adicionais.

  2. Aplicar a Configuração:

    Após salvar o arquivo de configuração, aplique-o com o netplan:

    1
    
    sudo netplan apply
    

Resumo da Seção

Nesta seção, aprendemos como configurar autoconfiguração IPv6 usando SLAAC e DHCPv6 no Linux. O SLAAC é ideal para redes locais onde não é necessário um servidor central, enquanto o DHCPv6 oferece uma configuração mais centralizada e controlada. Com essas configurações, o Linux pode obter endereços IPv6 automaticamente, adaptando-se a diferentes necessidades de rede.

Na próxima seção, vamos abordar a configuração de roteamento IPv6 no Linux, incluindo a ativação de roteamento e a criação de rotas IPv6 entre sub-redes.


9. Configuração de Roteamento IPv6 no Linux

Objetivo

Demonstrar como configurar o roteamento IPv6 entre redes em sistemas Linux. Esta seção aborda a ativação do roteamento IPv6, a configuração de rotas estáticas e o uso de Linux como um roteador IPv6 para interconectar sub-redes IPv6.


Conteúdo

9.1 Habilitando o Roteamento IPv6 no Linux

Para que um sistema Linux atue como um roteador IPv6, ele precisa estar configurado para encaminhar pacotes IPv6 entre diferentes interfaces de rede.

  1. Ativar o Roteamento IPv6 Temporariamente:

    Para ativar o roteamento IPv6 apenas na sessão atual (será desativado após a reinicialização), use o comando abaixo:

    1
    
    sudo sysctl -w net.ipv6.conf.all.forwarding=1
    
  2. Ativar o Roteamento IPv6 Permanentemente:

    Para tornar a configuração persistente, edite o arquivo /etc/sysctl.conf e adicione a linha:

    1
    
    net.ipv6.conf.all.forwarding=1
    

    Após salvar o arquivo, aplique as configurações:

    1
    
    sudo sysctl -p
    

    Agora, o roteamento IPv6 estará habilitado automaticamente após cada reinicialização.

9.2 Configuração de Rotas IPv6 Estáticas

Com o roteamento IPv6 ativado, podemos configurar rotas estáticas para controlar o tráfego entre diferentes sub-redes IPv6.

  1. Adicionar uma Rota IPv6 Estática:

    No exemplo a seguir, roteamos o tráfego da sub-rede 2001:db8:abcd:0012::/64 através de um roteador intermediário 2001:db8:abcd:0011::1 na interface eth1:

    1
    
    sudo ip -6 route add 2001:db8:abcd:0012::/64 via 2001:db8:abcd:0011::1 dev eth1
    

    Explicação do comando:

    • ip -6 route add: Comando para adicionar uma rota IPv6.
    • 2001:db8:abcd:0012::/64: Sub-rede de destino.
    • via 2001:db8:abcd:0011::1: Endereço do roteador ou gateway intermediário.
    • dev eth1: Interface pela qual a rota deve ser configurada.
  2. Remover uma Rota IPv6 Estática:

    Para remover uma rota estática previamente configurada, utilize o comando:

    1
    
    sudo ip -6 route del 2001:db8:abcd:0012::/64
    
9.3 Exemplo de Configuração de Roteamento IPv6 Entre Duas Sub-redes

Neste exemplo, vamos configurar um servidor Linux para rotear o tráfego entre duas sub-redes IPv6 conectadas a diferentes interfaces. Suponha que temos as seguintes interfaces e sub-redes:

  • eth0: Conectado à sub-rede 2001:db8:abcd:0011::/64
  • eth1: Conectado à sub-rede 2001:db8:abcd:0012::/64
  1. Configurar Endereços IPv6 nas Interfaces:

    Atribua endereços IPv6 a cada interface:

    1
    2
    
    sudo ip -6 addr add 2001:db8:abcd:0011::1/64 dev eth0
    sudo ip -6 addr add 2001:db8:abcd:0012::1/64 dev eth1
    
  2. Habilitar o Roteamento IPv6:

    Ative o roteamento IPv6 para permitir a passagem de pacotes entre as interfaces:

    1
    
    sudo sysctl -w net.ipv6.conf.all.forwarding=1
    
  3. Configurar Rotas em Clientes nas Sub-redes:

    Nos dispositivos em cada sub-rede, configure o roteador IPv6 como o gateway para a outra sub-rede:

    • Nos dispositivos da sub-rede 2001:db8:abcd:0011::/64, defina 2001:db8:abcd:0011::1 como o gateway para 2001:db8:abcd:0012::/64.
    • Nos dispositivos da sub-rede 2001:db8:abcd:0012::/64, defina 2001:db8:abcd:0012::1 como o gateway para 2001:db8:abcd:0011::/64.
9.4 Verificação de Configurações de Roteamento IPv6

Após configurar o roteamento IPv6, verifique as rotas e o status das interfaces para garantir que o roteamento está funcionando conforme esperado.

  1. Listar as Rotas IPv6:

    Use o comando abaixo para listar as rotas IPv6 configuradas no sistema:

    1
    
    ip -6 route show
    
  2. Testar a Conectividade IPv6 com ping6:

    Nos dispositivos de cada sub-rede, use o ping6 para testar a conectividade com a outra sub-rede:

    1
    
    ping6 2001:db8:abcd:0012::1
    

    Este comando verifica se o dispositivo é capaz de alcançar a outra sub-rede por meio do roteador Linux.

9.5 Tabela Resumo dos Comandos para Roteamento IPv6
Comando Função
sudo sysctl -w net.ipv6.conf.all.forwarding=1 Ativa temporariamente o roteamento IPv6.
sudo ip -6 route add <sub-rede>/<prefixo> via <gateway> dev <interface> Adiciona uma rota IPv6 estática.
sudo ip -6 route del <sub-rede>/<prefixo> Remove uma rota IPv6 estática.
ip -6 route show Exibe todas as rotas IPv6 configuradas.

Resumo da Seção

Nesta seção, abordamos o roteamento IPv6 no Linux, desde a ativação do roteamento até a configuração de rotas estáticas entre sub-redes. Com o roteamento IPv6 habilitado, o Linux pode atuar como um roteador eficiente, encaminhando pacotes IPv6 entre diferentes interfaces e sub-redes.

Na próxima seção, vamos explorar segurança e proteção de redes IPv6, com foco na configuração de firewalls e proteção contra ameaças comuns em redes IPv6.


10. Segurança e Proteção de Redes IPv6

Objetivo

Explicar as melhores práticas de segurança para redes IPv6, incluindo a configuração de firewalls com ip6tables e nftables. Esta seção também aborda ameaças específicas ao IPv6 e métodos de mitigação, como proteção contra spoofing e controle de anúncios de roteador.


Conteúdo

10.1 Desafios de Segurança em Redes IPv6

O IPv6 traz novos desafios de segurança que diferem do IPv4, exigindo atenção a aspectos específicos, tais como:

  • Amplo Escopo de Endereçamento: A vastidão do espaço de endereçamento IPv6 torna o escaneamento exaustivo mais difícil, mas não elimina a necessidade de proteção.
  • Protocolos de Descoberta de Vizinhança (NDP): O NDP, essencial para autoconfiguração e resolução de endereços, é vulnerável a ataques como spoofing e redirecionamento malicioso.
  • Anúncios de Roteador (RA): Em redes IPv6, os RAs podem ser utilizados para ataques de interceptação e redirecionamento de tráfego.
10.2 Proteção com ip6tables

O ip6tables é a ferramenta de firewall para IPv6 no Linux, similar ao iptables para IPv4. Ela permite configurar regras de segurança que controlam o tráfego de entrada e saída, protegendo a rede contra acessos indesejados.

  1. Exemplo Básico de Configuração de ip6tables:

    O exemplo abaixo configura ip6tables para bloquear todo o tráfego de entrada e permitir apenas conexões estabelecidas ou relacionadas, além de permitir ping.

    1
    2
    3
    4
    
    sudo ip6tables -P INPUT DROP          # Bloqueia todo o tráfego de entrada por padrão
    sudo ip6tables -P FORWARD DROP        # Bloqueia o encaminhamento por padrão
    sudo ip6tables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT  # Permite conexões estabelecidas
    sudo ip6tables -A INPUT -p ipv6-icmp -j ACCEPT  # Permite pings IPv6 (ICMPv6)
    

    Explicação das regras:

    • -P INPUT DROP: Define a política padrão para entrada como DROP.
    • --ctstate ESTABLISHED,RELATED: Permite apenas pacotes de conexões já estabelecidas.
    • -p ipv6-icmp -j ACCEPT: Permite ICMPv6, necessário para o funcionamento de ping e descoberta de vizinhança.
  2. Bloquear Acessos a Portas Específicas:

    Para bloquear o tráfego em uma porta específica (por exemplo, porta 22 para SSH), use:

    1
    
    sudo ip6tables -A INPUT -p tcp --dport 22 -j DROP
    
  3. Salvar Regras do ip6tables:

    Para salvar as regras de ip6tables, use o comando abaixo:

    1
    
    sudo ip6tables-save | sudo tee /etc/ip6tables.rules
    
10.3 Proteção com nftables

O nftables é o sucessor do iptables e oferece uma forma mais moderna e simplificada de gerenciamento de firewall. Ele é capaz de gerenciar tanto IPv4 quanto IPv6 em uma única tabela.

  1. Configuração Básica de nftables para IPv6:

    O exemplo a seguir configura um conjunto de regras básicas de firewall usando nftables para bloquear tráfego indesejado:

    1
    2
    3
    4
    5
    
    sudo nft add table inet filter
    sudo nft add chain inet filter input { type filter hook input priority 0\; policy drop\; }
    sudo nft add rule inet filter input ct state established,related accept
    sudo nft add rule inet filter input icmpv6 type echo-request accept  # Permite ping IPv6
    sudo nft add rule inet filter input tcp dport 22 drop  # Bloqueia acesso SSH
    

    Explicação das regras:

    • policy drop: Define a política padrão para descartar pacotes.
    • ct state established,related accept: Permite pacotes de conexões estabelecidas e relacionadas.
    • icmpv6 type echo-request accept: Permite ICMPv6 para pings.
    • tcp dport 22 drop: Bloqueia a porta 22 para SSH.
  2. Salvar as Configurações do nftables:

    Para tornar as regras de nftables persistentes, salve-as no arquivo de configuração:

    1
    
    sudo nft list ruleset > /etc/nftables.conf
    
10.4 Proteção Contra Ataques Comuns em IPv6
  1. Proteção Contra Spoofing e Ataques NDP:
    • NDP Spoofing: Configure o firewall para restringir anúncios de vizinhança, mitigando ataques de redirecionamento.
    • Use o ip6tables para bloquear pacotes NDP suspeitos:

      1
      2
      
      sudo ip6tables -A INPUT -p icmpv6 --icmpv6-type 135 -j ACCEPT  # Neighbor Solicitation
      sudo ip6tables -A INPUT -p icmpv6 --icmpv6-type 136 -j ACCEPT  # Neighbor Advertisement
      
  2. Proteção Contra Ataques de Anúncio de Roteador (RA):
    • Use o sysctl para desativar a aceitação de anúncios de roteador em interfaces específicas:

      1
      
      sudo sysctl -w net.ipv6.conf.all.accept_ra=0
      
    • Para tornar essa configuração permanente, adicione a seguinte linha ao /etc/sysctl.conf:

      1
      
      net.ipv6.conf.all.accept_ra=0
      
10.5 Monitoramento e Teste do Firewall IPv6

É importante monitorar e testar as regras configuradas no firewall para garantir que elas estão funcionando corretamente.

  1. Listar Regras Configuradas com ip6tables:

    1
    
    sudo ip6tables -L -v -n
    
  2. Verificar Conectividade com ping6:

    O ping6 é uma ferramenta útil para verificar a conectividade e o funcionamento do firewall. Teste a conectividade com dispositivos e sub-redes específicas:

    1
    
    ping6 2001:db8:abcd:0012::1
    
  3. Monitoramento Contínuo com Ferramentas de Logs:

    • Configure o rsyslog para armazenar logs do ip6tables e nftables em arquivos específicos.
    • Ferramentas como Nagios e Zabbix podem ser configuradas para monitoramento em tempo real e alertas de segurança.

Resumo da Seção

Nesta seção, exploramos as práticas recomendadas para segurança em redes IPv6, incluindo o uso de ip6tables e nftables para configurar firewalls e proteger redes contra ataques comuns. Essas práticas ajudam a manter redes IPv6 seguras e a mitigar ameaças específicas do protocolo IPv6.

Na próxima seção, vamos abordar diagnóstico e monitoramento de redes IPv6, com foco em ferramentas e técnicas para resolver problemas de conectividade e monitorar o tráfego de rede IPv6 em sistemas Linux.


11. Diagnóstico e Monitoramento de Redes IPv6

Objetivo

Ensinar como usar ferramentas de monitoramento e diagnóstico para resolver problemas de conectividade em redes IPv6 e monitorar o desempenho de dispositivos e tráfego. Esta seção apresenta comandos e ferramentas como ping6, traceroute6, tcpdump, e monitoramento contínuo com ferramentas especializadas.


Conteúdo

11.1 Diagnóstico de Conectividade IPv6

As ferramentas básicas de diagnóstico em IPv6 permitem verificar a conectividade entre dispositivos e identificar possíveis problemas de rede.

  1. Ping6:
    • O ping6 verifica a conectividade IPv6 entre dois dispositivos na rede.
    • Exemplo:

      1
      
      ping6 2001:db8:abcd:0012::1
      
    • O comando envia pacotes ICMPv6 de solicitação e recebe respostas, verificando a latência e a acessibilidade entre os dispositivos.
  2. Traceroute6:
    • O traceroute6 é utilizado para identificar o caminho que os pacotes IPv6 percorrem entre dois dispositivos, útil para detectar pontos de falha.
    • Exemplo:

      1
      
      traceroute6 2001:db8:abcd:0012::1
      
    • O comando mostra cada ponto de salto (hop) no caminho até o destino, permitindo identificar atrasos ou interrupções.
11.2 Análise de Tráfego IPv6 com tcpdump

O tcpdump é uma ferramenta poderosa para capturar e analisar pacotes de rede, incluindo pacotes IPv6. Ele permite examinar o tráfego em tempo real ou salvar capturas para análise posterior.

  1. Captura Básica de Pacotes IPv6:

    Para capturar todo o tráfego IPv6 na interface eth0:

    1
    
    sudo tcpdump -i eth0 ip6
    
  2. Filtrar Tráfego ICMPv6:

    Para capturar apenas pacotes ICMPv6 (útil para depurar problemas de conectividade):

    1
    
    sudo tcpdump -i eth0 icmp6
    
  3. Salvar Captura para Análise Posterior:

    Para salvar os pacotes em um arquivo .pcap, que pode ser analisado com ferramentas como Wireshark:

    1
    
    sudo tcpdump -i eth0 ip6 -w captura_ipv6.pcap
    
11.3 Monitoramento Contínuo com Ferramentas de Log e Análise

Para redes de produção e ambientes que exigem supervisão em tempo real, é essencial implementar ferramentas de monitoramento contínuo e alerta.

  1. Monitoramento de Logs com Rsyslog:
    • Configure o rsyslog para capturar e armazenar logs do firewall IPv6 e outros eventos de rede.
    • Adicione entradas no /etc/rsyslog.conf para armazenar logs do ip6tables em um arquivo específico, por exemplo:

      1
      
      :msg, contains, "ip6tables" /var/log/ip6tables.log
      
  2. Ferramentas de Monitoramento: Nagios, Zabbix e Prometheus:
    • Nagios e Zabbix: Ferramentas populares para monitorar dispositivos, interfaces e verificar o status de endereços IPv6. Ambas permitem configurar alertas e visualizações em tempo real.
    • Prometheus: Ferramenta poderosa para coleta de métricas e monitoramento, com suporte a visualização de dados via Grafana. Pode ser configurada para monitorar tráfego IPv6 e latência de rede.
    • Exemplos de itens monitoráveis:
      • Latência: Mede a latência entre dispositivos IPv6.
      • Uso de Largura de Banda: Monitora o tráfego em interfaces de rede.
      • Conectividade ICMPv6: Detecta falhas de conectividade.
  3. Configuração de Alertas e Relatórios:
    • Configure alertas para eventos críticos, como perda de conectividade ou alta latência, que são enviados por e-mail, SMS, ou através de outras notificações automáticas.
    • Agende relatórios regulares para análise de desempenho da rede IPv6 e identificação de possíveis gargalos.
11.4 Solução de Problemas Comuns em Redes IPv6

Aqui estão alguns problemas típicos e as abordagens para solucioná-los:

  1. Problema: Dispositivo Não Recebe Endereço IPv6 via SLAAC:
    • Verifique se a interface está configurada para aceitar anúncios de roteador:

      1
      
      sudo sysctl net.ipv6.conf.all.accept_ra
      
    • Certifique-se de que o roteador está enviando anúncios com o prefixo correto.

  2. Problema: Roteamento IPv6 Incorreto:
    • Verifique as rotas configuradas com ip -6 route show.
    • Adicione ou ajuste rotas para corrigir o roteamento, e teste com traceroute6 para ver o caminho atualizado.
  3. Problema: Falhas Intermitentes de Conectividade IPv6:
    • Use o tcpdump para capturar pacotes e identificar se há perdas ou problemas com respostas ICMPv6.
    • Verifique as regras de firewall IPv6 para garantir que o tráfego ICMPv6 não está sendo bloqueado.

Resumo da Seção

Nesta seção, exploramos ferramentas e técnicas de diagnóstico e monitoramento para redes IPv6, incluindo ping6, traceroute6, tcpdump, e ferramentas de monitoramento contínuo como Nagios e Zabbix. Essas ferramentas permitem diagnosticar problemas de conectividade e monitorar o desempenho das redes IPv6 em tempo real.

Na próxima e última seção, abordaremos as boas práticas para implementação e manutenção de redes IPv6, fornecendo um checklist para uma configuração segura e eficiente em ambientes de produção.


12. Boas Práticas para Implementação e Manutenção de Redes IPv6

Objetivo

Fornecer um checklist de boas práticas para configurar e manter redes IPv6 em sistemas Linux. Esta seção cobre segurança, documentação, monitoramento contínuo, e práticas de configuração que ajudam a manter a rede IPv6 estável, segura e eficiente.


Conteúdo

12.1 Planejamento e Design da Rede IPv6

Antes de configurar a rede IPv6, planeje cuidadosamente o design e o esquema de endereçamento. Considerar a hierarquia de prefixos e a segmentação ajuda na escalabilidade e facilita o gerenciamento a longo prazo.

  1. Estratégia de Prefixos IPv6:
    • Planeje prefixos de sub-rede claros e consistentes para departamentos, localizações e tipos de dispositivos.
    • Utilize prefixos padrão como /64 para redes locais, seguindo as práticas recomendadas.
  2. Divisão Hierárquica:
    • Estruture sub-redes de forma hierárquica para facilitar o roteamento e aplicar políticas de segurança por departamento ou localização geográfica.
12.2 Segurança e Controle de Acesso

Manter a rede IPv6 segura é essencial para prevenir acessos indesejados e ataques. Configure firewalls e políticas de acesso claras.

  1. Firewalls IPv6:
    • Configure regras de firewall com ip6tables ou nftables para controlar o tráfego de entrada e saída.
    • Bloqueie portas desnecessárias e permita apenas conexões estabelecidas para reduzir a exposição a ataques.
  2. Proteção Contra Spoofing e Ataques RA/NDP:
    • Proteja a rede contra ataques de spoofing, configurando o firewall para filtrar pacotes ICMPv6 indesejados.
    • Desative a aceitação de anúncios de roteador em interfaces específicas se não forem necessários.
  3. Segmentação de Rede e Controle de Acesso:
    • Use segmentação de sub-redes para limitar o tráfego entre diferentes departamentos e evitar que problemas de segurança em uma sub-rede afetem outras.
12.3 Documentação e Automação

Documentar e automatizar a configuração ajuda a manter um controle preciso da rede IPv6, essencial para redes maiores e complexas.

  1. Documentação de Endereços e Sub-redes:
    • Mantenha um registro detalhado dos prefixos e endereços IPv6 atribuídos, com descrições de uso.
    • Ferramentas IPAM, como phpIPAM ou BlueCat, podem facilitar o gerenciamento de endereços IPv6.
  2. Automação de Configurações:
    • Use scripts e ferramentas como Ansible ou Puppet para automatizar a configuração e gerenciamento de endereços IPv6.
    • Automatize a distribuição de endereços e rotas em redes maiores, facilitando a padronização das configurações.
12.4 Monitoramento Contínuo e Diagnóstico

Configurar monitoramento e diagnóstico permite identificar problemas de desempenho e segurança em tempo real.

  1. Monitoramento de Logs e Alertas:
    • Configure rsyslog para monitorar logs de firewall e rede, e use scripts para enviar alertas em caso de eventos suspeitos.
    • Ferramentas de monitoramento como Nagios e Zabbix ajudam a monitorar o status dos dispositivos e detectar problemas de conectividade.
  2. Relatórios Regulares de Desempenho:
    • Agende relatórios semanais ou mensais para revisar o desempenho da rede IPv6, uso de largura de banda e possíveis gargalos.
    • Ajuste as configurações de rede com base nos dados coletados para otimizar a performance.
12.5 Checklist de Boas Práticas para IPv6 em Produção
Área Ação
Planejamento de Prefixo Defina prefixos claros e hierárquicos para cada sub-rede e local.
Firewall e Segurança Configure firewalls com ip6tables ou nftables; limite o acesso às portas necessárias.
Controle de Acesso Use segmentação para limitar o tráfego entre sub-redes internas.
Documentação e Automação Documente todas as configurações e use ferramentas para automação de configuração.
Monitoramento Contínuo Use ferramentas como Nagios e Zabbix para monitorar a rede e configurar alertas.
Relatórios de Desempenho Revisão periódica de desempenho e uso de largura de banda para otimizar a rede.

Resumo da Seção

Nesta seção, abordamos boas práticas essenciais para implementação e manutenção de redes IPv6 em ambientes Linux. Planejamento cuidadoso, documentação e monitoramento contínuo são fundamentais para uma rede estável e segura. Essas práticas ajudam a prevenir problemas e garantem que a rede IPv6 seja gerenciada de maneira eficiente.


Conclusão do Tutorial

Configurar e gerenciar redes IPv6 no Linux pode ser complexo, mas seguindo as práticas recomendadas, é possível construir uma infraestrutura de rede escalável e segura. Este tutorial cobriu desde os fundamentos de endereçamento IPv6 até configurações avançadas de roteamento, segurança e monitoramento. Com o IPv6 se tornando cada vez mais essencial, dominar essas técnicas garante que você estará preparado para administrar redes modernas e adaptáveis.


This post is licensed under CC BY 4.0 by the author.