对以下IPv6地址使用零压缩时
2001:0DB8:0000:CD30:0000:0000:0000:0000/60为什么这样做不正确:
2001:DB8::CD30::/60..。而这是:
2001:DB8:0:CD30::/60发布于 2014-09-29 14:03:06
零压缩只能进行一次。这样做的原因是,否则IPv6地址不再是唯一的。
以您的2001:DB8::CD30::/60为例,它会扩展到
2001:0DB8:0000:0000:0000:CD30:0000:0000/60或
2001:0DB8:0000:0000:CD30:0000:0000:0000/60或
2001:0DB8:0000:CD30:0000:0000:0000:0000/60...?
如果只使用一个"::“,则结果将始终是唯一的,因为只有一个可能的固定数目的零要插入。
发布于 2014-09-29 22:30:10
因为它模棱两可。
地址2001:DB8::CD30::可以在下列任何一种可能性中展开:
2001:DB8:0:CD30:0:0:0:0
2001:DB8:0:0:CD30:0:0:0
2001:DB8:0:0:0:CD30:0:0
2001:DB8:0:0:0:0:CD30:0
发布于 2022-02-13 16:26:16
原因是::被用来缩短16位地址字段中的多个零.
在您的示例2001:0DB8:0000:CD30:0000:0000:0000:0000/60中,在后缀的16位字段中只有多个0,2001:0DB8:0000:CD30:中的0000只是一个16位字段,您只需要使用0来缩短它。
更有趣的问题:您如何缩短this**2001:0000:0000:CD30:0000:0000:0000:0000/60**??
它在标准中定义。
此外,RFC4291注释第2.2节, “'The "::”只能在地址中出现一次。“
这意味着地址可以写成:2001:0:0:CD30::/60 或 2001::0:CD30:0:0:0:0/60。
两者都是有效的,但我更喜欢第一个表示,因为零表示的目的是缩短第一个表示较短的地址。
https://stackoverflow.com/questions/26101723
复制相似问题