仅 IPv4 的应用程序如何在仅 IPv6 的主机上工作?

lxg*_*xgr 3 nat ipv6

有什么方法可以让不支持 IPv6 的应用程序继续在只有 IPv6 连接的主机上工作?

主机的 IPv4 实现可以知道这个问题,只需将 IPv4 地址封装在 IPv6 标头中(如 0::ffff:[ipv4]?),但是这些包在哪里转换为真正的 IPv4 数据包?

当前的操作系统是否已经为仅支持 IPv4 的应用程序提供了这种功能?提供商的 NAT64 或其他网关是否能够提供所需的功能?

如果提供商未使用 NAT64 的标准前缀 (64:FF9B::/96),则如何确定实际前缀?操作系统和网络堆栈会处理所有这些吗?

当应用程序已经知道 IPv6,但仍想与 IPv4 主机通信时,这是如何工作的?前缀在哪里确定,在网络堆栈中,还是应用程序必须处理?

Jef*_*dge 5

让我们使用术语“依赖 IPv4 的应用程序”来指代使用 IPv4 文本(例如 10.10.10.1)或以其他方式耦合到 IPv4 的应用程序,这些方式会破坏仅支持 IPv6 的主机上的功能。依赖 IPv4 的应用程序将无法在仅支持 IPv6 的主机上运行。

许多不使用 IPv4 文字并依赖 DNS 名称的应用程序将在仅支持 IPv6 的主机上正常运行。

NAT64/DNS64 是 IPv6-only 主机到达 Internet 上 IPv4 主机的机制。需要这种转换方法是因为大多数 Internet 内容只能通过 IPv4 传输访问。

我建议阅读来自 IPv6-Only Network 的经验。您会找到大量关于应用程序在仅支持 IPv6 的主机上中断的资料。