设置你自己的 Teredo 中继

设置你自己的 Teredo 中继

我有两台电脑。

主机 1 是一台在 VirtualBox VPN 内运行 Miredo(Teredo 客户端)的 Debian 计算机。VM 主机在私有 IP 地址空间 (192.168.0.0) 下运行。

主机 2 是一台 Ubuntu 机器。

主机 1 <-> 虚拟主机 <-> 企业 NAT 网关 <-> 互联网 <-> D-Link 6to4 <-> 主机 2

  • 从主机 1 我可以ping6 ipv6.google.com
  • 从主持人 2 我可以ping6 ipv6.google.com
  • 从主机 1 到主机 2,95% 的数据包被丢弃。

但是我无法在主机 1 和主机 2 之间 ping 通。我发现 95% 的数据包被丢弃。有趣的是,实际上有一些数据包通过了,但还不足以建立可靠的连接。

我的问题...

IPv6 6to4 主机和 IPv6 Teredo 主机之间可以通信吗?

更新:我已设法在机器工作时在机器之间建立跟踪路由...

 1  6to4.fmt2.he.net (2001:470:0:108::2)  102.245 ms  102.240 ms  102.244 ms
 2  gige-g5-20.core1.fmt2.he.net (2001:470:0:108::1)  102.487 ms  102.387 ms  102.267 ms
 3  10gigabitethernet1-2.core1.pao1.he.net (2001:470:0:30::2)  365.425 ms  365.299 ms  365.180 ms
 4  6to4.pao1.he.net (2001:470:0:13b::2)  369.045 ms  367.008 ms  366.802 ms
 5  2002:ae00:444a::ae00:444a (2002:ae00:444a::ae00:444a)  164.187 ms  167.457 ms  172.094 ms
 6  2002:ae00:444a:5:215:f2ff:fe5c:2a16 (2002:ae00:444a:5:215:f2ff:fe5c:2a16)  171.991 ms * *

它在工作、75% 的数据包失败和只是普通的旧目的地无法到达之间跳跃。

答案1

6to4 以不可靠而闻名,而 Teredo 则更糟糕。在 6to4 和 Teredo 之间进行通信时,您会遇到两者的所有问题,此外由于协议之间的复杂交互,还会遇到其他一些问题。

因此,你可能会惊讶地发现答案是:是的,您可以在 6to4 和 Teredo 之间获得可靠的通信。

这两种协议都存在相同的主要问题。它们依赖于配置不足的第三方中继,并且由于其第三方性质,没有 SLA。

Teredo 使用一个中继器进行双向传输。6to4 通常使用两个中继器进行不同方向的传输,但由于 Teredo 中的三角路由,您最终将依赖三个 6to4 中继器,而不是两个。也就是说,您将依赖总共四个第三方中继器 - 所有这些中继器都必须具有足够的容量来处理您的流量。

但您不必依赖第三方中继。您可以设置自己的中继。

设置你自己的 Teredo 中继

Teredo 中继的设置最为简单,而且恰好也是您方案中最重要的中继。Teredo 中继需要公共 IPv4 地址上的单个 UDP 端口。因此,您不应将中继部署在 D-Link 路由器后面的 LAN 上。您应避免在 LAN 和 Teredo 中继之间的路径上安装任何 6to4 中继/网关。因此,您不应将中继部署在 D-Link 路由器之外。

简而言之,您需要在 D-Link 路由器上安装 Teredo 中继才能使连接可靠地工作。如果 D-Link 无法运行 Teredo 中继,则最佳选择是将 D-Link 路由器替换为可以运行 Teredo 中继的路由器。根据我的经验,如果您使用 Linux 计算机并在路由器的中继模式下配置 Miredo,它将可靠地工作。

在 D-Link 路由器上部署您自己的 Teredo 中继不仅意味着您不再依赖第三方 Teredo 中继,而且还会为您的 Teredo 中继和 LAN 提供一条本地路径,这样您就可以避免使用三个第三方 6to4 中继中的两个。

还剩下什么

您仍将依赖单个第三方 6to4 中继。Teredo 客户端需要选择要使用的 Teredo 服务器。据我所知,两个 Teredo 客户端均已配置了默认配置,如果您不自行更改配置,则将使用该配置。从 Teredo 服务器到您的 D-Link 路由器的网络路径必须经过 6to4 中继。

因此您需要做的是选择一个可以访问可靠 6to4 中继的 Teredo 服务器。理想情况下,应在运行 Teredo 服务器的计算机上配置 6to4 中继。

这是一个值得推荐的配置吗?

只要路由器有公共 IPv4 地址,在路由器上安装 Teredo 中继绝对可以提高可靠性。这将显著提高与 Teredo 用户的任何通信的可靠性,并且不会对其他通信产生任何影响。无论您的路由器使用的是 6to4 还是原生 IPv6,情况都是如此。

但是,不建议在 LAN 上使用 6to4,因为许多网络尚未安装任何 6to4 中继。LAN 上的主机在与使用原生 IPv6 的主机通信时经常会遇到问题。

不推荐使用 Teredo 客户端,原因与 6to4 一样。不过,在某些情况下 Teredo 还是有用的。最重要的是,Teredo 客户端可以连接到路由器后面的 LAN 上的主机(假设路由器有 Teredo 中继)。有时我遇到 CGN 部署效果很差,以至于通过 CGN 的 Teredo 比通过 CGN 的 TCP 更可靠。

答案2

它应该可以工作,但依赖于第三方运行的正确运行的中继路由器。

为了简化调试,最好分别测试 Teredo 和 6to4。我使用了Hurricane Electric 的镜子从 traceroute 输出中列出的 2 和 3 路由器 ping 您的 D-Link 路由器,IPv4 工作正常,IPv6 丢失大量数据包。我可以从那里 ping 自己。

我可以通过直接 6to4 隧道 ping 您的 D-Link,没有任何问题,但如果我使用从 Hurricane Electric 委派的源地址直接回复,数据包就会丢失。从您的 D-Link 到 Hurricane Electric id 的路径似乎有问题,因此使用从 6to4 端到 6to4 端的跟踪路由将有助于找到问题。还可以尝试跟踪路由到 192.88.99.1,即 6to4 中继任播地址。

您应该考虑与隧道代理签约,以避免 6to4 中继路由器出现的问题。

相关内容