IPv6 地址空间和 IPv4 地址空间是否完全不相交?

网络工程 ip ipv4 ipv6 协议理论 IP地址
2021-07-13 16:59:58

Tanenbaum 的计算机网络 说

最后,IPv4 地址可以写成一对冒号和一个旧的点分十进制数,例如:

::192.31.20.46
  1. 这是否意味着 IPv4 地址空间被嵌入到 IPv6 地址空间的最低子范围中?
  2. 这种嵌入是固定的吗?IPv4 地址空间可以嵌入到 IPv6 地址空间的任何连续子范围中吗?

    https://en.wikipedia.org/wiki/IPv6_address#Transition_from_IPv4是否列出了几种替代的翻译方式?如果是正确的,则嵌入不是固定的。

  3. 这是否意味着对于任何 IPv4 地址,都有一些 IPv6 地址与 IPv4 地址指代相同的地址?

    例如,是::192.31.20.46192.31.20.46 有效相同的地址?

    • 如果我向 发送消息::192.31.20.46,会192.31.20.46 收到我的消息吗?

    • 如果我向 发送消息192.31.20.46,会::192.31.20.46 收到我的消息吗?

    ::127.0.0.1 仍然是一个回送的IP地址,如果是,是它有效地相同的地址127.0.0.1

  4. 还是 IPv6 地址空间和 IPv4 地址空间完全不相交(即没有重叠),从某种意义上说,当我与 IPv6 地址通信时,我不会与 IPv4 地址通信?

谢谢。

3个回答

数字 4 是正确的。V4 和 V6 协议完全不同,具有不同的格式和寻址方案。这两个地址与电话号码和彩票号码具有相同的关系——即没有。

已经提出了许多将 v4 映射到 v6 以允许协议转换的方法,但今天大多数已被弃用。

IPv6 地址空间和 IPv4 地址空间是否完全不相交?

是的,它们是两个独立的、不兼容的协议,具有完全不同的寻址方式。

那本书已经过时了。它所指的地址很久以前就被弃用了。它指的是已弃用的用于 IPv6 的旧 IPv4 兼容寻址。请参阅RFC 5156,特殊用途 IPv6 地址

2.3. IPv4 兼容地址

::/96 是兼容 IPv4 的地址 [ RFC4291 ]。这些地址已被弃用,不应出现在公共 Internet 上。

IPv6 有 IPv4 映射寻址,但它并没有真正用作数据包的寻址:

2.2.\ IPv4 映射地址

::FFFF:0:0/96 是 IPv4 映射地址 [ RFC4291 ]。此块中的地址不应出现在公共 Internet 上。

另请参阅引用的RFC 4291,IP 版本 6 寻址架构

2.5.5. 带有嵌入式 IPv4 地址的 IPv6 地址

定义了两种类型的 IPv6 地址,它们在地址的低 32 位中携带 IPv4 地址。它们是“IPv4 兼容的 IPv6 地址”和“IPv4 映射的 IPv6 地址”。

2.5.5.1. IPv4 兼容 IPv6 地址

定义了“IPv4 兼容 IPv6 地址”以协助 IPv6 过渡。“IPv4-Compatible IPv6 address”的格式如下:

|                80 bits               | 16 |      32 bits        |
+--------------------------------------+--------------------------+
|0000..............................0000|0000|    IPv4 address     |
+--------------------------------------+----+---------------------+

注意:“IPv4-Compatible IPv6 address”中使用的IPv4地址必须是全球唯一的IPv4单播地址。

“IPv4 兼容 IPv6 地址”现已弃用,因为当前的 IPv6 转换机制不再使用这些地址。不需要新的或更新的实现来支持这种地址类型。

2.5.5.2. IPv4 映射的 IPv6 地址

定义了包含嵌入式 IPv4 地址的第二种 IPv6 地址。该地址类型用于将 IPv4 节点的地址表示为 IPv6 地址。“IPv4-mapped IPv6 address”的格式如下:

|                80 bits               | 16 |      32 bits        |
+--------------------------------------+--------------------------+
|0000..............................0000|FFFF|    IPv4 address     |
+--------------------------------------+----+---------------------+

有关“IPv4 映射的 IPv6 地址”的使用背景,请参阅 [ RFC4038 ]。


这是否意味着 IPv4 地址空间被嵌入到 IPv6 地址空间的最低子范围中?

仅在某些情况下,但通常不建议这样做。

这种嵌入是固定的吗?IPv4 地址空间可以嵌入到 IPv6 地址空间的任何连续子范围中吗?

为此只设计了几个 IPv6 地址范围,它们不用于发送数据包。这在全球 IPv6 寻址中不使用。

这是否意味着对于任何 IPv4 地址,都有一些 IPv6 地址与 IPv4 地址指代相同的地址?

并不真地。从概念上讲,是的,对于 IPv6 的 IPv4 映射寻址,但这实际上并不用于发送数据包。

例如,是::192.31.20.46192.31.20.46有效相同的地址?

  • 如果我向 ::192.31.20.46 发送消息,192.31.20.46 会收到我的消息吗?
  • 如果我向 192.31.20.46 发送消息,::192.31.20.46 会收到我的消息吗?

::127.0.0.1 是否仍然是环回 IP 地址,如果是,它是否实际上与 127.0.0.1 相同?

不,::192.31.20.46是无效的 IPv6 地址,因为 IPv6 的 IPv4 兼容寻址已被弃用。

IPv4 和 IPv6 是两个独立的、不兼容的协议,可以共存,但不能直接通信。

IPv6 的环回地址为::1

还是 IPv6 地址空间和 IPv4 地址空间完全不相交(即没有重叠),从某种意义上说,当我与 IPv6 地址通信时,我不会与 IPv4 地址通信?

IPv4 和 IPv6 具有完全独立的寻址。IPv4 使用与 IPv6 128 位寻址不兼容的 32 位寻址。协议头在其他方面也有很大不同。IPv6 是在学习 IPv4 的经验教训之后创建的。请记住,IPv4 是一项学术/政府实验,从未打算以今天的方式使用,而 IPv6 是尝试纠正 IPv4 中的缺陷,但因此与 IPv4 不兼容。

我有点惊讶没有提到6to4 的现有答案

它允许将 IPv6 数据包发送到 IPv4 主机,封装在协议类型 41 的 IPv4 数据包中。

6to4 地址的类型为 2002:AABB:CCDD:后缀,对应 IPv4 地址 ABCD,其中 A、B、C、D 为十进制,AA、BB、CC、DD 为十六进制。因此,每个 IPv4 地址实际上都有一个完整的 /48 块 IPv6 地址。

6to4 不仅仅是某种允许使用 IPv6 地址来标记 IPv4 地址的标记机制,它还是一种真实有效的 IPv6 转换机制。

然而,6to4 连接的性能和延迟会很差,因此在这种连接可用的情况下,首选本地 IPv6。

因此,我对 IPv4 和 IPv6 空间不相交的回答是:并非如此,每个 IPv4 地址都有一个 /48 IPv6 地址块。