Teredo 地址

Teredo 地址包括以下内容:

  • Teredo 前缀

    前 32 位用于 Teredo 前缀,这对所有 Teredo 地址都是相同的。 Windows XP 和 Windows Server 2003 最初使用 3FFE:831F::/32 Teredo 前缀。 RFC 4380 中为 Teredo 定义的前缀为 2001::/32,是 Teredo 在 Windows Vista 和 Windows Server 2008 中使用的前缀。 使用 Microsoft 安全公告 MS06-064 进行更新时,运行 Windows XP 和 Windows Server 2003 的计算机将使用 2001::/32 Teredo 前缀。

  • Teredo 服务器 IPv4 地址

    接下来的 32 位包含有助于配置此 Teredo 地址的 Teredo 服务器的 IPv4 公共地址。 有关详细信息,请参阅本文中的“Teredo 客户端的初始配置”。

  • 标志

    接下来的 16 位是为 Teredo 标志保留的。 对于基于 Windows XP 的 Teredo 客户端,唯一定义的标志是称为 Cone 标志的高阶位。 当 Teredo 客户端位于圆锥 NAT 后面时,将设置 Cone 标志。 确定连接到 Internet 的 NAT 是否为圆锥 NAT 是在 Teredo 客户端的初始配置期间进行的。 有关详细信息,请参阅本文中的“Teredo 客户端的初始配置”。

    对于基于 Windows Vista 和 Windows Server 2008 的 Teredo 客户端,“标志”字段中未使用的位提供针对恶意用户的地址扫描的保护级别。 Windows Vista 和基于 Windows Server 2008 的 Teredo 客户端的“标志”字段中的 16 位包含以下内容:CRAAAAUG AAAAAAAAAA。 C 位表示 Cone 标志。 保留 R 位供将来使用。 U 位表示通用/本地标志 (设置为 0) 。 G 位是“个人/组”标志, (设置为 0) 。 A 位设置为随机生成的 12 位数字。 如果对 A 位使用随机数,则通过捕获 Teredo 客户端与 Teredo 服务器之间的数据包的初始配置交换来确定 Teredo 地址其余部分的恶意用户必须尝试最多 4,096 (212) 不同地址,以便在地址扫描期间确定 Teredo 客户端的地址。

  • 遮盖的外部端口

    接下来的 16 位存储对应于此 Teredo 客户端的所有 Teredo 流量的模糊版本的外部 UDP 端口。 当 Teredo 客户端将其初始数据包发送到 Teredo 服务器时,数据包的源 UDP 端口由 NAT 映射到不同的外部 UDP 端口。 Teredo 客户端维护此端口映射,使其保留在 NAT 的转换表中。 因此,主机的所有 Teredo 流量都使用相同的外部映射 UDP 端口。 外部 UDP 端口由 Teredo 服务器从 Teredo 客户端发送并发送回 Teredo 客户端的传入初始数据包的源 UDP 端口确定。

    外部端口通过 XOR 使用0xFFFF来遮盖外部端口。 例如,十六进制格式的外部端口 5000 的模糊版本为 EC77 (5000 = 0x1388,0x1388 XOR 0xFFFF = 0xEC77) 。 遮盖外部端口可防止 NAT 转换它们要转发的数据包的有效负载中的外部端口。

  • 模糊的外部地址

    最后 32 位存储对应于此 Teredo 客户端的所有 Teredo 流量的模糊版本的外部 IPv4 地址。 与外部端口一样,当 Teredo 客户端将其初始数据包发送到 Teredo 服务器时,数据包的源 IP 地址由 NAT 映射到不同的外部 (公共) 地址。 Teredo 客户端维护此地址映射,使其保留在 NAT 的转换表中。 因此,主机的所有 Teredo 流量使用相同的外部映射公共 IPv4 地址。 外部 IPv4 地址由 Teredo 服务器从 Teredo 客户端发送并发送回 Teredo 客户端的传入初始数据包的源 IPv4 地址确定。

    外部地址通过 XOR 使用0xFFFFFFFF来遮盖外部地址。 例如,冒号十六进制格式的公共 IPv4 地址 131.107.0.1 的模糊版本为 7C94:FFFE (131.107.0.1 = 0x836B0001,0x836B0001 XOR 0xFFFFFFFF = 0x7C94FFFE) 。 遮盖外部地址可防止 NAT 在它们转发的数据包的有效负载内转换外部地址。