Linux 是否支持 IPv4 映射的 IPv6 地址?

Linux 是否支持 IPv4 映射的 IPv6 地址?

我在混合 IPv4 / IPv6 环境中工作。我读到 IPv4 地址可以使用以下语法映射到 IPv6 空间

::ffff:1.2.3.4 (1.2.3.4 是 IPv4 地址)

Linux 支持这种表示法吗?所有这些都在我的服务器上失败:

ping6 ::ffff:1.2.3.4 # to the server IP
ping6 ::ffff:127.0.0.1

答案1

不要使用ping6,而是尝试 ssh 到::ffff:127.0.0.1

我认为这里的具体失败与有关ping6,而不是 IP4 映射地址。

IPv4 映射的 IPv6 地址实际上不是使用 IPv4 吗,因此不适合ping6

Linux 有一个套接字选项 IPV6_V6ONLY,它可以阻止某些应用程序使用 IPv4 映射地址。但是,我认为ping6具体问题在于它内部的工作方式。

来自 netbsd,但我认为它涵盖了这个问题。

您应该知道,IPv4 映射的 IPv6 仍然是 IPv4 - 它仅以类似于 IPv6 的文本格式呈现(或者实际上,在调用操作系统的库或内核时,以二进制套接字地址格式呈现。)

对于双协议应用程序来说这不是问题——它们知道如何切换(隐式地,当使用正确的(现代)库调用时)。

相关内容