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