IPv6 主机使用路由器的链路本地地址配置默认路由

IPv6 主机使用路由器的链路本地地址配置默认路由

我最近按照以下说明将 IPv6 添加到了我们的网络:http://www.chronos-tachyon.net/reference/debian-ipv6-and-hurricane-electric

但是,网络上的主机会自动将默认路由配置为本地链路路由器地址而不是全局地址。

本文于http://ipvsix.me/?p=88说:

您会发现,在 LAN 主机上,其默认路由和网关指向充当 IPv6 网关/路由器的 Linux 机器上的 eth1 的链路本地地址。这是完全正常且符合预期的。

我的问题是路由器(运行 Debian 的派生版本)不响应其链路本地地址的 NDP 请求,因为它配置了全局地址。

有什么办法可以:

  • 让主机自动使用路由器的全局地址作为默认主机,或者
  • 让路由器回复其链路本地地址的 NDP 请求。

路由器上的 /etc/radvd.conf:

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 {};
};

答案1

IPv6 背靠背路由完全基于链路本地地址,因此路由器考虑网关链路本地是正常的。

即使您使用 IPv6 全局地址,设备也会使用网络发现进行第 2 层解析以获取链路本地地址。

答案2

事实证明,我在 中指定了错误的接口/etc/radvd.conf。纠正它解决了这个问题。

答案3

检查您的防火墙设置。我最好的猜测是某些东西阻止了 icmp6,这会对 IPv6 造成比 IPv4 的等效错误更严重的破坏。列出 ipv6 防火墙规则的最简单命令(以 root 身份):

ip6tables -L -n

相关内容