IPv4网络中的计算机如何与IPv6网络中的计算机通信

网络工程 ipv4 ip ipv6 ipv6-transition
2021-07-05 22:34:39

我有一个仅使用 IPv6 寻址的 Verizon 蜂窝调制解调器。我可以用它来访问 IPv4 地址,比如浏览互联网。但是,如果我尝试从 IPv4 网络在蜂窝调制解调器上 ping 这个 IPv6 地址,它会返回Destination host unreachable. 现在我有两个问题:

  1. IPv4 网络(包括 NAT、防火墙等)中的计算机是否可以在不进行过多调整的情况下访问 IPv6 地址?我尝试使用 Teredo 服务。它似乎工作了一段时间,然后我无法与 IPv6 寻址(例如,ipv6.google.com)进行通信。是否有任何隧道服务可以用来绕过内部网络层并直接与 IPv6 通信?
  2. 如果我想打开一个服务,比如连接到 IPv6 蜂窝调制解调器的计算机中的 VNC 服务,我可以从常规 IPv4 网络访问此服务吗?

另外,我可以知道在哪里可以找到有关此类问题的知识吗?似乎我什至没有正确的关键字来谷歌。

2个回答

IPv4 和 IPv6 是两个完全独立的协议,具有独立的、不兼容的数据包头和寻址,仅 IPv4 的主机无法直接与仅 IPv6 的主机通信。

执行此操作的正确方法是将一台或两台主机双堆栈,以便它们同时运行 IPv4 和 IPv6 协议。否则,您必须使用某种类型的 kludge 在 IPv4 和 IPv6 之间进行转换,但其中任何一个都存在问题和限制。例如,IPv6 地址比 IPv4 地址多得多,因此将 IPv4 地址转换为仅支持 IPv6 的主机可以理解的内容比做相反的操作更容易。

2017年,IPv4主机和网络依然存在的时代已经过去。大多数 ISP 都支持 IPv6,如果您的企业还没有开始推出 IPv6,那么它可能会发现自己将来会争先恐后地这样做。

欢迎来到 IPv6 过渡的混乱世界。

IPv4 和 IPv6 是两个独立的协议,不能直接互操作。

IPv6 支持者的想法是我们都将转向双栈,在过渡期间并行运行 IPv4 和 IPv6。然后一旦 IPv6 无处不在,就可以关闭 IPv4。

不幸的是,部署双堆栈意味着在未来某个不确定的时间立即为收益增加成本。不出所料,在世界没有双栈的情况下,使用速度非常慢,而且 IPv4 耗尽。

现在大多数 IP 传输提供商都将提供双栈,但对于移动和宽带 ISP,情况往往不那么乐观。


所以无论如何回到互操作的问题。由于很明显在现实世界中 IPv4 不会很快消失,因此已经设计了各种机制来尝试弥合差距。

第一个也是最简单的就是点对点隧道,这样的隧道非常可靠,并且使用正确的隧道技术可以在 NAT 后面工作。问题当然是隧道必须在某个地方终止。存在免费的隧道提供商,但他们在性能和/或限制方面并非没有问题。

接下来是6to4。具有非自然 IPv4 连接的主机或网络可以从其公共 IPv4 IP 生成 IPv6 /48。来自 6to4 客户端的数据包封装在 IPv4 中,可以发送到其他 6to4 客户端或中继任播地址。不幸的是它在 NAT 后面不起作用

接下来要提到的是teredo。Teredo 尝试使用 NAT 穿越技术向 NAT 后面的客户端提供 IPv6 地址。不幸的是,它非常脆弱,经常失败。同样由于 teredo 查找中继的方式,它只有在 IPv6 主机响应 ping 时才能工作。

此外,ISP 似乎大多没有采取措施并在其网络中部署 6to4 和 teredo 中继,因此 6to4 和 teredo 流量最终会通过少数为互联网提供中继的网络之一。这通常最终会限制性能。

Teredo 和 6to4 在很大程度上未能实现支持 ipv6 的客户群的增长。很明显,虽然 IPv6 部署正在增长,但那些希望运行纯 IPv6 网络的人将不得不承担互操作性的负担。

这让我们了解他们如何做到这一点。客户端最常用的方法可能是 NAT64/DNS64。网络将 DNS A 响应转换为指向一系列 IPv6 地址的 AAAA 响应,这些地址被路由到有状态的 NAT64 框。NAT64 盒将流量从 IPv6 转换为 IPv4,允许客户端访问 IPv4 互联网上的服务器。对此的扩展是 464XLAT,其中客户端具有无状态 NAT46,允许仅 IPv4 的应用程序通过 NAT64 发送请求。

在服务器端,基于 NAT 的方法也是可能的,但它们存在的问题是您仍然需要为每个服务器提供一个 IPv4 地址,这使运行仅 IPv6 的网络失去了大部分意义。另一种选择是反向代理,它可以根据应用层标头引导流量。


不幸的是,尝试在您的蜂窝调制解调器上运行服务很可能是一种沮丧的练习。正如您所说,它没有 IPv4 地址,虽然它可能确实有公共 IPv6 地址,但您可能仍然会发现存在防火墙并且 IPv6 地址不是很稳定。

一般来说,我发现管理处于未知网络情况的设备的最佳方法是使用 VPN。在公共互联网上拥有一台服务器(最好是双栈),您的所有设备都可以连接到该服务器,然后使用它们的 VPN IP 地址访问设备。