在 Fedora 服务器上,我的/etc/sysconfig/network-scripts/ifcfg-eth0:0
:
IPV6ADDR=<REDACTED>:48ea::1/64
现在绑定到该特定地址有效:
$ nc -l <REDACTED>:48ea::1 1025
但是,绑定到同一网络掩码空间中的另一个地址失败:
$ nc -l <REDACTED>:48ea::2 1025
Ncat: bind to <REDACTED>:48ea::2:1025: Cannot assign requested address. QUITTING.
如果显式添加<REDACTED>:48ea::2/128
(通过添加IPV6ADDR_SECONDARIES
或运行ip addr add <REDACTED>:48ea::2/128 dev eth0
),那么我可以绑定到它。
为什么添加/64
地址还不够?在使用设备之前,我是否必须明确地将每个 /128 地址添加到设备中?
后面的数字
/
是子网大小,在 IPv6 中(几乎)总是 /64。它没有说明您的本地机器。就像使用 IPv4 一样,您仍然必须将每个单独的地址分配给接口。使用 IPv4,您可以同时编写
192.168.0.1/24
和192.168.0.1/255.255.255.0
. 他们的意思完全一样。使用 IPv6 写入
<REDACTED>:48ea::1/ffff:ffff:ffff:ffff::
(甚至<REDACTED>:48ea::1/ffff:ffff:ffff:ffff:0000:0000:0000:0000
)会变得有点笨拙,所以只使用<REDACTED>:48ea::1/64
符号。