【发布时间】:2014-01-06 14:27:03
【问题描述】:
我使用流行的教程移植了一个支持 IPv6 的应用程序。我决定对这两种协议只使用一个套接字侦听器。现在我意识到我必须正确设置IPV6_V6ONLY(它只适用于我的 x86 linux 开箱即用,但不适用于我的 ARM)。
这真的是要走的路吗?有人说不应该使用 IPV6_V6ONLY(显然它已经过时了,因为 IPv4 映射在网络上),有人说为两种协议使用一个套接字很好。
所以,我很困惑。这个问题的现状如何?我是不是理解错了问题?
【问题讨论】:
-
澄清一点:V6ONLY 会影响软件处理数据包的方式。它不会影响电线上的位。在软件方面,一切看起来都像一个 IPv6 数据包。如果在网络上它实际上是一个 IPv4 数据包,那么软件端使它看起来像一个 IPv6 数据包,并将 IPv4 地址映射到 IPv6 地址,即
::ffff:,后跟 IPv4 地址的 32 位。 V6ONLY 仅在软件中对此进行更改。在网络上,它们是普通的 IPv4 和 IPv6 数据包。::ffff:地址永远不会在网络上看到。 -
啊,对,谢谢你的澄清。所以它只在网络上被弃用,使用
IPV6_V6ONLY是可能的。如果支持或不支持如何处理它是一个不同的讨论:)