![为什么在实现IPv6隧道代理之前必须实现双栈协议?](https://linux22.com/image/1516161/%E4%B8%BA%E4%BB%80%E4%B9%88%E5%9C%A8%E5%AE%9E%E7%8E%B0IPv6%E9%9A%A7%E9%81%93%E4%BB%A3%E7%90%86%E4%B9%8B%E5%89%8D%E5%BF%85%E9%A1%BB%E5%AE%9E%E7%8E%B0%E5%8F%8C%E6%A0%88%E5%8D%8F%E8%AE%AE%EF%BC%9F.png)
为了在 IPv4 上发送 IPv6 流量,为什么我们必须在实现隧道代理之前实现双栈协议?
答案1
这是因为您需要 IPv4 和 IPv6。隧道使用 IPv6,但隧道源是 IPv4 地址。隧道是具有自己的协议寻址的虚拟接口,但它使用具有自己寻址的其他真实接口。
例如,您的 IPv6 隧道需要启用 IPv6 才能在隧道上进行 IPv6 寻址,但该隧道是一个虚拟接口,它使用真实的 IPv4 接口在 IPv4 网络上传输 IPv6 流量。
答案2
根本不存在‘双栈协议’。
从根本上来说,您需要 IPv4 支持,因为您的网络在您所在的网段上不会以本机方式“谈论” IPv6,并且位必须以某种方式流动。
您想要 ipv6,因为这就是您使用隧道的原因,对吧?因此,您的网络需要从作为隧道端点的系统以及连接到该系统的任何和所有客户端支持 ipv6。
由于 IPv4 和 IPv6 是分开运行的(不计算各种 4 到 6 的过渡方法),因此双栈设置是结果运行隧道所需的必要部件,而不是您首先需要的东西。
您可以运行双栈没有隧道代理(我喜欢!),或者纯粹在 ipv4 空间中运行应用程序(我的 Ubuntu 系统经常禁用 apt 的 ipv6,因为它被证明存在缺陷)或者在纯粹的 ipv6 空间中运行应用程序,或者以上任何组合。