我的服务器上的输出按以下顺序显示 IPv6:
inet6 addr: 2xxx:xxx:aaac:3e::10/48 Scope:Global
inet6 addr: 2xxx:xxx:aaac:3e::1/48 Scope:Global
inet6 addr: 2xxx:xxx:aaac:3e::2/48 Scope:Global
inet6 addr: 2xxx:xxx:aaac:3e::3/48 Scope:Global
inet6 addr: 2xxx:xxx:aaac:3e::4/48 Scope:Global
inet6 addr: 2xxx:xxx:aaac:3e::5/48 Scope:Global
inet6 addr: 2xxx:xxx:aaac:3e::6/48 Scope:Global
inet6 addr: 2xxx:xxx:aaac:3e::7/48 Scope:Global
inet6 addr: 2xxx:xxx:aaac:3e::8/48 Scope:Global
inet6 addr: 2xxx:xxx:aaac:3e::9/48 Scope:Global
但是在我的 /etc/sysconfig/network-scripts/ifcfg-eth0 中它们按其他方式排序:
IPV6INIT=yes
IPV6ADDR=2xxx:xxx:aaac:3e::1/48
IPV6ADDR_SECONDARIES=" 2xxx:xxx:aaac:3e::2/48 \
2xxx:xxx:aaac:3e::3/48 \
2xxx:xxx:aaac:3e::4/48 \
2xxx:xxx:aaac:3e::5/48 \
2xxx:xxx:aaac:3e::6/48 \
2xxx:xxx:aaac:3e::7/48 \
2xxx:xxx:aaac:3e::8/48 \
2xxx:xxx:aaac:3e::9/48 \
2xxx:xxx:aaac:3e::10/48"
注意 2xxx:xxx:aaac:3e::10 是第一个,但我希望它是最后一个。有什么方法可以让 IPv6 遵守顺序吗?
答案1
地址的顺序实际上并不重要。问题是 Linux 通常使用第一个配置的地址作为 IPv4 的默认源地址,而使用最后一个配置的地址作为 IPv6 的默认源地址。该地址显示在顶部是巧合。
如果您想手动定义默认源地址,您可以在路由表中进行操作。这适用于 IPv4 和 IPv6:
ip add route default via 2001:db8::1 dev eth0 src 2001:db8::1234 metric 1
该度量确保此路由优先于任何其他默认路由(SLAAC、启动脚本等)。需要记住的一点是,如果您在启动脚本中添加了这样一行,那么只要所选源地址仍处于暂定状态,Linux 就会拒绝添加路由。最近的启动脚本会等待重复地址检测完成以防止这种情况发生。如果您的系统仍有不等待的损坏启动脚本,您可以使用如上所示的脚本https://www.vaspects.com/2013/12/11/services-dont-bind-to-ipv6-address/反而。
答案2
我认为这是不可能的。您也许可以添加标签(请参阅 man ip-addr),但我认为这不会改变任何东西。顺便问一下,这个顺序有什么问题?所有 IP 都在同一个网络中,因此可以使用一个或一个。如果您更详细地描述您的问题,我们也许可以为您提供更多帮助。