Cisco CCNAv7 - Descoberta de vizinhos do IPv6 (NDP)
Introdução
Section titled “Introdução”O IPv6 não usa ARP. A descoberta de dispositivos na rede local é feita por outro protocolo, o NDP (Neighbor Discovery Protocol, protocolo de descoberta de vizinhos). Ele é mais completo: além de resolver endereços, ajuda o host a encontrar roteadores e a configurar o próprio endereço. Neste post, você vai conhecer as mensagens do NDP e ver por que ele usa multicast em vez de broadcast.
O que é o NDP?
Section titled “O que é o NDP?”O NDP usa mensagens do ICMPv6 (o ICMP do IPv6) e é definido na RFC 4861. Ele cumpre várias funções:
| Função | Descrição |
|---|---|
| Resolução de endereços | Descobre o MAC de um vizinho a partir do seu IPv6 (o papel do ARP) |
| Descoberta de roteadores | O host encontra o roteador (gateway) da rede |
| Descoberta de prefixo | O host descobre o prefixo da rede, para montar o seu endereço |
| Detecção de endereço duplicado (DAD) | Verifica se alguém já usa o endereço que o host pretende usar |
| Redirecionamento | O roteador avisa o host de um caminho melhor |
As quatro mensagens principais
Section titled “As quatro mensagens principais”O NDP usa quatro tipos de mensagem ICMPv6 para o dia a dia:
| Mensagem | Sigla | Tipo ICMPv6 | Enviada por | Para quê |
|---|---|---|---|---|
| Router Solicitation | RS | 133 | Host | ”Tem algum roteador aí?” |
| Router Advertisement | RA | 134 | Roteador | ”Eu sou o roteador, este é o prefixo da rede” |
| Neighbor Solicitation | NS | 135 | Host | ”Quem tem este IPv6? Qual o seu MAC?” (o papel da requisição ARP) |
| Neighbor Advertisement | NA | 136 | Host | ”Este IPv6 é meu, e meu MAC é este” (o papel da resposta ARP) |
flowchart LR A["Host"] -->|"RS<br/>Tem roteador?"| B["Roteador"] B -->|"RA<br/>Prefixo e gateway"| A A -->|"NS<br/>Quem tem este IPv6?"| C["Vizinho"] C -->|"NA<br/>Sou eu, MAC X"| A
Mensagens RS e RA: encontrando o roteador
Section titled “Mensagens RS e RA: encontrando o roteador”Quando um host IPv6 entra na rede, ele pode enviar uma RS para o endereço multicast de todos os roteadores (ff02::2). O roteador responde com uma RA, trazendo o prefixo da rede e o seu próprio endereço (o gateway). Os roteadores também enviam RAs periodicamente, para o endereço multicast de todos os nós (ff02::1).
Com o prefixo recebido na RA, o host pode montar o seu próprio endereço (autoconfiguração, ou SLAAC, assunto do módulo de endereçamento IPv6).
Mensagens NS e NA: resolvendo o MAC
Section titled “Mensagens NS e NA: resolvendo o MAC”Quando o host precisa do MAC de um vizinho:
sequenceDiagram participant A as Host A participant B as Host B A->>B: NS em multicast. Quem tem o IPv6 de B? B-->>A: NA em unicast. Sou eu, meu MAC e este
- O host A envia uma NS perguntando pelo IPv6 de B.
- O host B responde com uma NA, informando o seu MAC.
- O host A guarda o resultado na tabela de vizinhos (o equivalente do cache ARP).
Multicast em vez de broadcast
Section titled “Multicast em vez de broadcast”O ARP usa broadcast: todos os dispositivos da rede precisam processar cada pergunta. O IPv6 não tem broadcast. A NS é enviada a um endereço multicast especial, o endereço de nó solicitado (solicited-node multicast address), que alcança apenas os dispositivos que podem ter o endereço procurado.
Como o endereço de nó solicitado é formado
Section titled “Como o endereço de nó solicitado é formado”Ele sempre começa com ff02::1:ff e termina com os últimos 24 bits (6 dígitos hexadecimais) do endereço IPv6 que se procura.
Exemplo: o alvo é 2001:db8:acad:1::10
| Passo | Resultado |
|---|---|
| Últimos 24 bits do endereço | 00:0010 → dígitos 000010 |
| Prefixo fixo | ff02::1:ff |
| Endereço de nó solicitado | ff02::1:ff00:10 |
| MAC multicast correspondente | 33:33:ff:00:00:10 |
O MAC multicast é formado por 33:33 seguido dos últimos 32 bits do endereço IPv6 multicast.
| Vantagem | Explicação |
|---|---|
| Menos interrupção | Só os dispositivos cujo endereço termina nos mesmos 24 bits processam a NS, e quase sempre é só o dono |
| Menos tráfego | Reduz o “ruído” na rede, em comparação com o broadcast do ARP |
Detecção de endereço duplicado (DAD)
Section titled “Detecção de endereço duplicado (DAD)”Antes de usar um endereço IPv6, o host faz uma pergunta: “alguém já está usando este endereço?” Para isso, envia uma NS pelo próprio endereço que pretende usar.
| Resultado | O que acontece |
|---|---|
| Ninguém responde | O endereço é único e o host passa a usá-lo |
| Alguém responde com NA | Há duplicidade: o host não usa o endereço |
A tabela de vizinhos
Section titled “A tabela de vizinhos”Assim como o ARP tem um cache, o NDP mantém uma tabela de vizinhos.
| Sistema | Comando |
|---|---|
| Linux | ip -6 neigh show |
| Windows | netsh interface ipv6 show neighbors |
| Roteadores Cisco | show ipv6 neighbors |
Exemplo no Linux:
fe80::1 dev eth0 lladdr 00:1a:2b:3c:4d:5e router REACHABLE2001:db8:acad:1::20 dev eth0 lladdr 00:aa:bb:cc:dd:ee STALE| Campo | Significado |
|---|---|
fe80::1 | O endereço link-local do vizinho (aqui, o roteador) |
lladdr | O MAC do vizinho |
router | Indica que este vizinho é um roteador |
REACHABLE / STALE | Entrada confirmada recentemente / entrada velha, a revalidar |
Para limpar a tabela no Linux: sudo ip -6 neigh flush all.
Comparação: ARP e NDP
Section titled “Comparação: ARP e NDP”| Característica | ARP (IPv4) | NDP (IPv6) |
|---|---|---|
| Protocolo base | Próprio (EtherType 0x0806) | ICMPv6 (sobre IPv6) |
| Pergunta | Broadcast | Multicast de nó solicitado |
| Resposta | Unicast | Unicast |
| Descobre roteadores | Não | Sim (RS e RA) |
| Detecta endereço duplicado | Só com ARP gratuito | Sim (DAD) |
| Tabela | Cache ARP | Tabela de vizinhos |
Mini laboratório: observando o NDP
Section titled “Mini laboratório: observando o NDP”Objetivo: ver a tabela de vizinhos e as mensagens NS e NA.
Parte 1: no seu computador
Section titled “Parte 1: no seu computador”- Veja os seus endereços IPv6:
ip -6 address showNo Windows: ipconfig.
- Consulte a tabela de vizinhos:
ip -6 neigh showNo Windows: netsh interface ipv6 show neighbors.
- Se houver um vizinho IPv6 (por exemplo, o roteador em
fe80::...), façaping -6para o seu link-local, informando a interface. No Linux:ping -6 -c 3 fe80::1%eth0(troque pelo endereço e pela interface reais). - Consulte a tabela de novo.
Parte 2: capturando no Wireshark
Section titled “Parte 2: capturando no Wireshark”- Inicie a captura e aplique o filtro
icmpv6. - Limpe a tabela de vizinhos (
sudo ip -6 neigh flush all) e repita oping -6. - Procure as mensagens Neighbor Solicitation e Neighbor Advertisement.
- Na NS, anote o endereço IPv6 de destino e o MAC de destino do quadro.
| Campo da NS | Valor |
|---|---|
| IPv6 de destino | ? |
| MAC de destino | ? |
Parte 3: no Packet Tracer
Section titled “Parte 3: no Packet Tracer”- Monte 2 PCs ligados a um switch. Em Desktop > IP Configuration, configure o IPv6 manualmente (
2001:db8:acad:1::10/64e2001:db8:acad:1::20/64). - No modo Simulation, filtre ICMPv6 e faça
ping 2001:db8:acad:1::20no PC1. - Observe a NS e a NA antes do ICMPv6 Echo.
Parte 4: calcule
Section titled “Parte 4: calcule”Para cada endereço, encontre o endereço de nó solicitado e o MAC multicast:
| Endereço IPv6 | Nó solicitado | MAC multicast |
|---|---|---|
2001:db8:acad:1::10 | ff02::1:ff00:10 | 33:33:ff:00:00:10 |
2001:db8:acad:1::5f | ? | ? |
fe80::a8bb:ccff:fedd:eeff | ? | ? |
Ver respostas
Parte 2: o IPv6 de destino da NS é um endereço ff02::1:ffXX:XXXX (nó solicitado), e o MAC de destino começa com 33:33:ff.
Parte 4:
| Endereço IPv6 | Nó solicitado | MAC multicast |
|---|---|---|
2001:db8:acad:1::5f | ff02::1:ff00:5f | 33:33:ff:00:00:5f |
fe80::a8bb:ccff:fedd:eeff | ff02::1:ffdd:eeff | 33:33:ff:dd:ee:ff |
Perguntas para fixar:
- Que protocolo faz, no IPv6, o papel do ARP?
- Qual é a diferença entre as mensagens NS e NA?
- Por que o IPv6 usa multicast de nó solicitado em vez de broadcast?
Ver respostas
- O NDP (Neighbor Discovery Protocol), que usa mensagens ICMPv6.
- A NS é a pergunta (“quem tem este IPv6?”); a NA é a resposta (“sou eu, e este é o meu MAC”).
- Para que só os dispositivos prováveis processem a pergunta, reduzindo o tráfego e o processamento, já que o IPv6 não tem broadcast.
Resumo
Section titled “Resumo”- O NDP (RFC 4861) substitui o ARP no IPv6 e usa mensagens ICMPv6.
- Mensagens: RS (133) e RA (134), para descobrir roteadores e prefixo; NS (135) e NA (136), para resolver endereços.
- A NS usa o endereço multicast de nó solicitado (
ff02::1:ff+ últimos 24 bits do endereço), em vez de broadcast. - O DAD verifica se um endereço já está em uso antes de utilizá-lo.
- A tabela de vizinhos é consultada com
ip -6 neigh show,netsh interface ipv6 show neighborseshow ipv6 neighbors.
