Introdução
Neste laboratório, você aprenderá as habilidades fundamentais para configurar e verificar endereços IPv6 em um sistema Linux. Utilizando ferramentas modernas de linha de comando, você ganhará experiência prática com as tarefas essenciais envolvidas no gerenciamento de rede IPv6, desde a inspeção até a configuração estática e testes de conectividade. Este laboratório foca no uso do comando ip do pacote iproute2 e da utilidade ping6, que são padrões em distribuições Linux modernas como o Ubuntu 22.04.
Você começará usando o comando ip a para descobrir os endereços IPv6 de loopback e link-local configurados automaticamente em suas interfaces de rede. Em seguida, você atribuirá manualmente um endereço global unicast estático a uma interface. Finalmente, você usará o comando ping6 para verificar a conectividade de rede com os endereços de loopback, link-local e o novo endereço global unicast configurado, confirmando que sua configuração IPv6 está funcionando corretamente.
Descobrir Endereços Link-Local e Loopback com ip a
Nesta etapa, você aprenderá como descobrir os endereços IPv6 que são configurados automaticamente em seu sistema. Distribuições Linux modernas, incluindo o Ubuntu 22.04, têm o IPv6 habilitado por padrão. Usaremos o comando ip, que é a ferramenta moderna e recomendada para configuração e inspeção de rede no Linux.
Primeiro, vamos inspecionar as interfaces de rede e seus endereços atribuídos. O comando ip a é uma abreviação para ip address.
- Abra um terminal. Seu diretório padrão é
~/project. - Execute o comando
ip apara listar todas as interfaces de rede e seus endereços.
ip a
Você verá uma saída semelhante à seguinte. Os nomes exatos das interfaces (como eth0) e os endereços podem variar, mas a estrutura será a mesma.
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:16:3e:00:54:72 brd ff:ff:ff:ff:ff:ff
altname enp0s5
altname ens5
inet 172.16.50.202/24 metric 100 brd 172.16.50.255 scope global dynamic eth0
valid_lft 1892159972sec preferred_lft 1892159972sec
inet6 fe80::216:3eff:fe00:5472/64 scope link
valid_lft forever preferred_lft forever
3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default
link/ether 02:42:89:01:6f:fc brd ff:ff:ff:ff:ff:ff
inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
valid_lft forever preferred_lft forever
Agora, vamos analisar a saída para identificar os endereços IPv6 chave:
Endereço de Loopback: Procure pela interface chamada
lo. Esta é a interface virtual de loopback, usada para testar a pilha de rede na máquina local. Você verá o endereço IPv6::1/128. Este é o endereço de loopback IPv6, equivalente a127.0.0.1no IPv4. Oscope hostindica que ele é válido apenas dentro do próprio host.Endereço Link-Local: Procure em sua interface de rede principal (por exemplo,
eth0,enp0s3). Você encontrará um endereçoinet6que começa comfe80::. Este é o seu endereço link-local. Ele é atribuído automaticamente a cada interface habilitada para IPv6 e é usado para comunicação apenas no segmento de rede local (por exemplo, sua LAN Ethernet local). Oscope linkconfirma que este endereço é válido apenas no link local e não é roteável na internet.
Você agora identificou com sucesso os dois tipos fundamentais de endereços IPv6 configurados automaticamente em seu sistema.
Adicionar um Endereço Global Unicast Estático com ip addr add
Nesta etapa, você configurará manualmente um Endereço Global Unicast (GUA) em sua interface de rede. Enquanto os endereços link-local são usados para comunicação no segmento de rede local, os GUAs são o equivalente IPv6 dos endereços IPv4 públicos. Eles são globalmente únicos e roteáveis na internet.
Para este laboratório, usaremos um endereço do bloco 2001:db8::/32, que é reservado especificamente para documentação e exemplos. Isso garante que não usemos acidentalmente um endereço de internet real e em uso.
Adicionaremos o GUA estático
2001:db8:acad::1/64à interfaceeth0. O/64indica o comprimento do prefixo, que é padrão para a maioria das LANs. Precisamos desudoporque modificar interfaces de rede requer privilégios administrativos.sudo ip -6 addr add 2001:db8:acad::1/64 dev eth0- Nota: Esta alteração é temporária e será removida se você reiniciar o sistema. Para configuração permanente no Ubuntu, você normalmente editará arquivos em
/etc/netplan/, mas isso está fora do escopo deste laboratório.
- Nota: Esta alteração é temporária e será removida se você reiniciar o sistema. Para configuração permanente no Ubuntu, você normalmente editará arquivos em
Agora, verifique se o novo GUA foi atribuído com sucesso. Execute o comando
ip anovamente para inspecionar suas interfaces de rede.ip aVocê deverá ver o novo endereço listado sob a interface
eth0. Observe oscope global, que indica que este é um endereço roteável.1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 ... 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 link/ether 00:16:3e:00:54:72 brd ff:ff:ff:ff:ff:ff altname enp0s5 altname ens5 inet 172.16.50.202/24 metric 100 brd 172.16.50.255 scope global dynamic eth0 valid_lft 1892159959sec preferred_lft 1892159959sec inet6 2001:db8:acad::1/64 scope global valid_lft forever preferred_lft forever inet6 fe80::216:3eff:fe00:5472/64 scope link valid_lft forever preferred_lft forever
Você atribuiu com sucesso um GUA IPv6 estático à sua interface de rede. Na próxima etapa, testaremos a conectividade com este novo endereço.
Testar Conectividade com Loopback e GUA usando ping6
Nesta etapa, você usará a utilidade ping6 para testar a conectividade IPv6. Este comando é o equivalente IPv6 do familiar comando ping e é essencial para diagnósticos de rede. Verificaremos se sua pilha IPv6 local está funcionando corretamente e se o Endereço Global Unicast (GUA) que você configurou na etapa anterior está respondendo.
Primeiro, vamos testar a pilha IPv6 local pingando o endereço de loopback.
Ping o endereço de loopback IPv6
::1. Usaremos a opção-c 3para enviar apenas 3 pacotes em vez de pingar indefinidamente.ping6 -c 3 ::1Um teste bem-sucedido mostrará que os pacotes estão sendo enviados e recebidos com 0% de perda de pacotes, confirmando que sua pilha IPv6 local está operacional.
PING ::1(::1) 56 data bytes 64 bytes from ::1: icmp_seq=1 ttl=64 time=0.026 ms 64 bytes from ::1: icmp_seq=2 ttl=64 time=0.021 ms 64 bytes from ::1: icmp_seq=3 ttl=64 time=0.035 ms --- ::1 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2030ms rtt min/avg/max/mdev = 0.021/0.027/0.035/0.005 ms
Em seguida, vamos testar o GUA que você atribuiu manualmente à interface eth0. Isso confirma que a interface está configurada corretamente e escutando nesse endereço.
Ping o GUA
2001:db8:acad::1que você adicionou na etapa anterior.ping6 -c 3 2001:db8:acad::1Semelhante ao teste de loopback, um resultado bem-sucedido mostrará respostas do endereço, confirmando que ele está atribuído corretamente e alcançável no host.
PING 2001:db8:acad::1(2001:db8:acad::1) 56 data bytes 64 bytes from 2001:db8:acad::1: icmp_seq=1 ttl=64 time=0.028 ms 64 bytes from 2001:db8:acad::1: icmp_seq=2 ttl=64 time=0.037 ms 64 bytes from 2001:db8:acad::1: icmp_seq=3 ttl=64 time=0.038 ms --- 2001:db8:acad::1 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2034ms rtt min/avg/max/mdev = 0.028/0.034/0.038/0.004 ms
Você agora verificou com sucesso a conectividade tanto com o loopback quanto com o seu Endereço Global Unicast configurado manualmente.
Testar Conectividade do Endereço Link-Local com ping6
Nesta etapa, você aprenderá como testar a conectividade com um endereço link-local. Como você descobriu anteriormente, esses endereços começam com fe80:: e são válidos apenas em um único segmento de rede (o "link"). Como eles não são globalmente únicos, você deve fornecer informações adicionais ao comando ping6 para especificar qual interface de rede deve ser usada para enviar o ping. Isso é conhecido como "índice de zona" ou "scope ID".
Primeiro, você precisa encontrar novamente o endereço link-local da sua interface eth0.
Execute o comando
ip ae identifique o endereçoinet6que começa comfe80::para a interfaceeth0.ip a show eth0A saída será semelhante a esta. Você precisa copiar o endereço (por exemplo,
fe80::xxxx:xxff:fexx:xxxx).2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 link/ether 00:16:3e:00:54:72 brd ff:ff:ff:ff:ff:ff altname enp0s5 altname ens5 inet 172.16.50.202/24 metric 100 brd 172.16.50.255 scope global dynamic eth0 valid_lft 1892159869sec preferred_lft 1892159869sec inet6 2001:db8:acad::1/64 scope global valid_lft forever preferred_lft forever inet6 fe80::216:3eff:fe00:5472/64 scope link valid_lft forever preferred_lft foreverAgora, pingue este endereço link-local. Para especificar o índice de zona, você anexa
%seguido pelo nome da interface (eth0) ao endereço. SubstituaYOUR_LINK_LOCAL_ADDRESSpelo endereço real que você acabou de encontrar.ping6 -c 3 YOUR_LINK_LOCAL_ADDRESS%eth0Por exemplo, se o seu endereço fosse
fe80::216:3eff:fe00:5472, o comando seria:ping6 -c 3 fe80::216:3eff:fe00:5472%eth0Um ping bem-sucedido confirma que a interface está respondendo ao seu endereço link-local.
PING fe80::216:3eff:fe00:5472%eth0(fe80::216:3eff:fe00:5472%eth0) 56 data bytes 64 bytes from fe80::216:3eff:fe00:5472%eth0: icmp_seq=1 ttl=64 time=0.031 ms 64 bytes from fe80::216:3eff:fe00:5472%eth0: icmp_seq=2 ttl=64 time=0.030 ms 64 bytes from fe80::216:3eff:fe00:5472%eth0: icmp_seq=3 ttl=64 time=0.030 ms --- fe80::216:3eff:fe00:5472%eth0 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2028ms rtt min/avg/max/mdev = 0.030/0.030/0.031/0.000 msSe você esquecer a parte
%eth0, o comando falhará porque o sistema não saberá qual interface usar para o destino link-local. Esta sintaxe especial é um conceito chave no manuseio de endereços IPv6 link-local.
Resumo
Neste laboratório, você aprendeu a realizar tarefas fundamentais de configuração e verificação de IPv6 em um sistema Linux usando o conjunto de comandos ip. Você começou usando ip a para inspecionar as interfaces de rede, identificando com sucesso o endereço IPv6 de loopback atribuído automaticamente (::1) na interface lo e o endereço link-local (prefixado com fe80::) na interface de rede principal. Em seguida, você procedeu à configuração manual de um Endereço Global Unicast (GUA) estático na interface principal usando o comando ip addr add.
Para validar a configuração, você utilizou a utilidade ping6. Você confirmou que a pilha de rede local estava operacional pingando o endereço de loopback e verificou se o GUA estático estava corretamente atribuído e alcançável. Finalmente, você aprendeu o requisito específico para testar endereços link-local, que envolve o uso da sintaxe %interface com ping6 para especificar explicitamente o índice de zona (interface de saída), um passo necessário devido ao escopo de link desses endereços.



