我在混合的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
不要使用ping6 ,请尝试ssh'ing ::ffff:127.0.0.1 。
我认为这里的具体失败与ping6有关,而不是IP4映射的地址。
IPv4映射的IPv6地址是否实际使用IPv4,因此不适用于ping6 ?
Linux有一个套接字选项,IPV6_V6ONLY,它阻止了一些使用IPv4映射地址的应用程序。 不过,我认为ping6的具体问题是内部工作的方式。
这是来自netbsd,但我认为它涵盖了这个问题。
您应该知道,IPv4映射的IPv6仍然是IPv4 – 它只是以类似IPv6的文本格式(或实际上,在调用操作系统的库或内核时使用二进制套接字地址格式)呈现。
对于双协议应用程序,这是没有问题的 – 他们知道如何切换(隐式地使用正确的(现代)库调用时)。