Acontece que eu tinha a interface errada especificada em /etc/radvd.conf
. A correção resolveu o problema.
Recentemente, adicionei o IPv6 à nossa rede de acordo com as instruções no link .
No entanto, os hosts da rede configuram automaticamente a rota padrão para o endereço link-local do roteador em vez do endereço global.
O artigo no link diz:
You will find that on the LAN host, their default route and gateway point to the Link-Local address of eth1 on the Linux machine acting as the IPv6 gateway/router. This is entirely normal and expected.
Meu problema é que o roteador (executando uma derivação do Debian) não responde às solicitações do NDP para seu endereço de link local porque ele tem um endereço global configurado.
Existe alguma maneira de:
/etc/radvd.conf no roteador:
interface eth0 {
AdvSendAdvert on;
AdvLinkMTU 1480;
MinRtrAdvInterval 60;
MaxRtrAdvInterval 180;
prefix 2001:xxxx:xxxx:xxxx::1/64 {
AdvRouterAddr on;
AdvPreferredLifetime 600;
AdvValidLifetime 3600;
};
route ::/0 {
};
RDNSS 2001:xxxx:xxxx:xxxx::2 {};
};
O roteamento IPv6 back-to-back é inteiramente baseado em endereços locais de link, como consequência, é normal ver o roteador considerando o gateway local de link.
Mesmo se você usar endereços globais IPv6, os dispositivos farão a resolução layer2 usando o Network Discovery para obter os endereços locais do link.
Verifique as configurações do seu firewall. Meu melhor palpite é que algo está bloqueando o icmp6, que divide o IPv6 ainda pior do que o erro equivalente do IPv4. Comando mais simples para listar as regras de firewall do ipv6 (como root):
ip6tables -L -n
Tags ipv6 ndp link-local radvd