识别 teredo 数据包和 teredo 中继端口

网络工程 路由 ipv4 ip 隧道 ipv6-transition
2021-07-19 04:20:54

我正在尝试识别网络上的 teredo 数据包,但我收到了关于发送实际 ipv6 封装流量的 Teredo 中继机是否侦听端口 3544 的冲突信息。

RFC4380 似乎没有关于 teredo 中继机是否在特定端口上侦听的任何具体信息。

但是赛门铁克的这篇论文说中继可以使用任何 udp 端口

“Teredo 服务器侦听的标准端口是 UDP 端口 3544。客户端和中继都可以将任何 UDP 端口用于其 Teredo 服务,因此它们的 UDP 服务端口可能是短暂的。”

从这里第 9 页开始,https://www.symantec.com/avcenter/reference/Teredo_Security.pdf

后来说要正确识别 teredo 数据包,我必须尝试将所有 udp 数据包解析为 teredo 才能确定。

但是,在 Microsoft 的 teredo 网站上,https : //msdn.microsoft.com/en-us/library/windows/desktop/bb968770( v= vs.85).aspx它说 Teredo 中继侦听端口 3544。

如果是这种情况,那么我可以尝试将端口 3544 的数据包解析为 teredo,这样处理会少得多。

那么,到底是怎么回事呢?谢谢你。

1个回答

关于 Teredo,您必须了解的一点是它不是传统的客户端-服务器协议。它是一种基于 NAT 穿越的协议。中继与客户端的共同点多于与服务器的共同点。

服务器必须在 IPv4 互联网上拥有一个至少相当稳定的地址和端口,因为它将包含在客户端配置中。使用众所周知的端口可以更轻松地配置客户端。

另一方面,客户端和中继可能位于 IPv4 NAT 之后。由于存在“端口保留”NAT,客户端或中继最好使用随机端口。

我不知道该帮助页面是否完全错误,或者是否 MS 做出了愚蠢的决定,使他们的 teredo 继电器使用固定端口。即使他们这样做了,您也不能依赖使用该端口的所有 teredo 流量。一些 teredo 流量将直接在两个客户端之间传输,而不会每次都击中中继。一些中继将位于 NAT 之后。许多中继将不会运行 MS 实现。

如果您想可靠地监控 teredo 流量,我会看到两个选项。

  1. 检查每个 UDP 数据包是否有 teredo 的迹象。
  2. 监视与 teredo 服务器的连接(最有可能使用众所周知的端口)并保存本地端口。然后,您可以监控那些本地端口的 teredo 数据流量。