有没有什么办法可以让不支持 IPv6 的应用程序继续在仅具有 IPv6 连接的主机上工作?
主机的 IPv4 实现可以知道该问题并将 IPv4 地址封装在 IPv6 标头中(如 0::ffff:[ipv4]?),但是这些数据包在哪里转换为真正的 IPv4 数据包?
当前操作系统是否已为仅支持 IPv4 的应用程序提供此类功能?NAT64 或提供商的其他网关是否能够提供所需的功能?
如果提供商不使用 NAT64 的标准前缀 (64:FF9B::/96),那么实际前缀如何确定?操作系统和网络堆栈会处理所有这些问题吗?
当应用程序已经支持 IPv6,但仍想与 IPv4 主机通信时,该如何工作?前缀在网络堆栈的哪里确定,还是应用程序必须处理它?
答案1
让我们使用术语“依赖 IPv4 的应用程序”来指代使用 IPv4 文字(例如 10.10.10.1)或以其他方式与 IPv4 耦合的应用程序,这些方式会破坏仅支持 IPv6 的主机上的功能。依赖 IPv4 的应用程序无法在仅支持 IPv6 的主机上运行。
许多不使用 IPv4 文字并依赖 DNS 名称的应用程序可以在仅支持 IPv6 的主机上顺利运行。
NAT64/DNS64 是 IPv6 专用主机访问互联网上 IPv4 主机的机制。需要这种转换方法,因为大多数互联网内容只能通过 IPv4 传输访问。
我建议阅读IPv6 专用网络的经验。您将发现大量有关哪些应用程序在仅支持 IPv6 的主机上崩溃的资料。