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

有没有办法使IPv6不知道的应用程序继续在只有IPv6连接的主机上工作?

主机的IPv4实现可以知道这个问题,只是将IPv4地址封装在IPv6头(如0 :: ffff:[ipv4]?)中,但是这些分组在什么地方被转换成真正的IPv4分组呢?

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

如果提供商不使用NAT64的标准前缀(64:FF9B :: / 96),那么实际前缀是如何确定的? 所有这一切都将由操作系统和networking堆栈来维护吗?

当应用程序已经可以识别IPv6,但是仍然想要与IPv4主机通信时,这是如何工作的? 在networking堆栈中确定的前缀在哪里,或者应用程序是否需要照顾?

让我们使用术语“依赖于IPv4的应用程序”来指代使用IPv4文本(如10.10.10.1)的应用程序,或者以其他方式将IPv4耦合到仅支持IPv6的主机上的function。 与IPv4相关的应用程序在仅支持IPv6的主机上不起作用。

许多不使用IPv4文本和依赖DNS名称的应用程序在仅支持IPv6的主机上运行时没有问题。

NAT64 / DNS64是IPv6主机到Internet上的IPv4主机的机制。 这种转换方法是必需的,因为大部分互联网内容只能通过IPv4传输到达。

我build议阅读纯IPv6networking的经验 。 你会发现大量的材料,在哪些应用程序打破只有IPv6的主机。