我有一个静态的IPv6地址,我想分配。 当我将地址添加到/ etc / sysconfig / network-scripts / ifcfg-eth0文件并重新启动networking时,我意识到我有几个IPv6地址。 第一个是我的静态地址(Prefix :: host),第二个是我的自动configuration地址(Prefix :: MAC_ADDRESS)。
我意识到stream量正在走出自动configuration地址,所以我的解决scheme是禁用它。 我在/ etc / sysconfig / network-scripts / ifcfg-eth0文件中添加了“IPV6_AUTOCONF = no”。 这解决了自动configuration地址消失后的问题。
但是,因为没有自动configuration,我没有得到默认网关。 我相信Solaris有一个叫做“基于令牌的IPv6”的地方,你可以指定地址的主机部分,然后自动configuration仍然运行,以分配前缀,dns和默认网关。 我可以在Linux中执行此操作吗?
令牌IPv6地址是Linux中的一个东西,man ip-token。 从本质上讲,
ip token set ::123/64 dev eth0在EL脚本中没有真正的configuration支持,所以我只是将其转储到/ sbin / ifup-local脚本中。
自动configuration地址不一定基于您的MAC地址。 sysctl -w net.ipv6.conf.default.use_tempaddr=1应该打开隐私扩展,并且也喜欢你的静态全局地址,如果你想要那种可预测性的话。 保存到/etc/sysctl.d/,如果你满意并永久需要。 有关其他选项,请参阅ip-sysctl.txt 。
一个可能的答案是DHCPv6(在networking方面)。 在我自己的经验中,某些types的IPv6广告服务(而不是DHCPv6)可用于寻址,如果我想要自己的“静态”地址,则必须静态定义其余的(网关等)。
您需要接受来自路由器的路由器通告(RA)消息。 这将有前缀(networking)和前缀长度以及默认网关。
检查内核configurationvariables
net.ipv6.conf.default.accept_ra
net.ipv6.conf.all.accept_ra
并确保它们设置为(通常)1
另外,请确保networking上的某些东西(通常是您的路由器)正在发送RA。