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

我最近根据http://www.chronos-tachyon.net/reference/debian-ipv6-and-hurricane-electric上的说明在我们的networking中添加了IPv6。

但是,networking中的主机会自动将默认路由configuration为路由器的链路本地地址,而不是全局地址。

http://ipvsix.me/?p=88上的文章说:

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

我的问题是,路由器(运行Debian的派生)不响应NDP的链接本地地址请求,因为它有一个全局地址configuration。

有什么办法可以:

  • 获取主机自动使用路由器的全局地址作为默认主机,或者
  • 让路由器回复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 {}; }; 

原来我在/etc/radvd.conf指定了错误的接口。 纠正它解决了这个问题。

IPv6背靠背路由完全基于链路本地地址,因此,正常情况下,看到路由器考虑网关链路本地。

即使使用IPv6全局地址,设备也将使用networking发现function来执行第2层parsing,以获取链路本地地址。

检查你的防火墙设置..我最好的猜测是有些东西阻止icmp6,这打破了IPv6甚至比IPv4的等效错误更糟糕。 列出ipv6防火墙规则最简单的命令(以root身份):

 ip6tables -L -n