为什么 2002:: 是无效的 IPv6 地址?

为什么 2002:: 是无效的 IPv6 地址?

我目前正在学习 IPv6,在测试期间,我尝试使用全局 IPv6 地址配置接口2002::,但失败了,提示地址不正确。我注意到,如果我尝试使用以该地址开头的 IPv6 地址配置接口,则2002必须高于该地址2002:0099::,否则会提示无效。

因此,2000::是有效的,2001::是有效的,是有效的,但是和2002:100::之间没有任何内容。这是为什么呢?2002::2002:99::

答案1

https://www.google.de/?q=ipv6+address+2002::

或检查IPv6 全球单播地址分配看到 2002:0000::/16 是 6to4 地址范围。

答案2

2002::/16前缀用于 6to4,它要求接下来的 32 位(16 位前缀之后)是全球单播 IPv4 地址。

您说它必须高于,2002:0099::这可能是因为您还没有完全理解 IPv6 地址表示法的十六进制部分。

2002:0099::对应于 IPv4 地址0.153.0.0,但0.255.255.255也不是全球单播地址。因此2002:00ff::也无法工作。

6to4 网关后面的 LAN 上的主机不需要了解 6to4。它们可以将分配给它们的 6to4 地址视为任何其他全球单播 IPv6 地址。因此,没有必要将其2002:0099::作为无效地址拒绝,但是由于它永远不可能是有效地址,因此操作系统拒绝它是有道理的。

使用随机 6to4 地址进行测试绝对不是推荐的做法。如果您想尝试 IPv6,还有其他方法可以获取地址进行实验:

  • 通过将 ISP 分配给您的 IP 附加到 6to4 前缀来构建真正的 6to4 前缀。如果您的 ISP 已分配203.0.113.1给您,则您需要将四个八位字节中的每一个转换为十六进制值cb 00 71 01,并且您的 IPv6 前缀将是2002:cb00:7101::/48
  • 通过隧道提供商获取隧道。
  • 从您的 ISP 获取原生 IPv6。
  • 使用 RFC 4193 地址。对于这些地址,第一个八位字节必须是fd,接下来的五个八位字节必须是随机的。您的前缀可以是fd2a:4b89:4d7d::/48。这些只能在本地使用,因此如果您配置了这样的地址而没有其他 IPv6 地址,则存在软件尝试使用此本地 IPv6 地址而不是 IPv4 进行外部通信的风险。

上述选项并不唯一。配置每种地址中的一个或多个是完全有效的。对于测试和开发,分配多个地址以测试有趣的极端情况可能是一个好主意。对于生产环境,您应该知道,许多系统在决定使用哪个网关时不会考虑源地址,如果在路由器配置为丢弃具有意外源 IP 的数据包的设置中使用多个地址,则可能会导致故障。

相关内容