Teredo 原理概述-IPv6隧道技术

摘要

本页内容

简介

网络地址转换(NAT)概述

 Teredo 构成

 Teredo 地址

 Teredo 数据包格式

 Teredo 路由

 Teredo 过程

总结


简介

在开始有关 Teredo 详细讨论前,我们有必要首先了解一下什么是 Teredo 以及我们为什么需要它。 Teredo 是一项地址分配和自动隧道技术,能够跨越 IPv4 Internet 实现 IPv6 单播连接。在它之前已经有了一种能够通过 IPv4 Internet 实现 IPv6 单播连接的自动隧道技术—— 6to4 。 6to4 路由器使用一个公用的 IPv4 地址来构建 6to4 前缀,起到 IPv6 通告和促进路由器的作用。 6to4 路由器压缩和解压经过站点节点的 IPv6 数据流。

6to4 技术依靠公用 IPv4 地址的配置以及边界设备中采用的 6to4 路由功能。在许多小型办公室/家庭办公室(SOHO)配置中, IPv4 Internet 络地址转换(NAT)被广泛使用。如要了解更多关于网络地址转换工作的情况,请参阅文中的“网络地址转换(NAT)概述”。在大多数 NAT 配置中,提供 NAT 功能的设备并不具备成为 6to4 路由器的功能。即使 NAT 设备普遍支持 6to4 ,还是有一些配置包含多层NAT。在这些多层配置中,支持 6to4 的NAT无法成为路由器,因为它不具备一个公共的 IPv4 地址。

Teredo 通过在站点内的主机之间实现 IPv6 数据包隧道来解决现今 NAT 设备缺乏 6to4 功能以及多层 NAT 配置问题。相反, 6to4 使用边缘设备之间的隧道。主机之间隧道给 NAT 带来了另外一个问题:IPv4 压缩的 IPv6 数据包发送时协议域的 IPv4 标头设定为41。大多数的 NAT只解析 TCP 或者 UDP 数据流,而且需要通过手动设置来实现对其它协议的解析或者安装负责处理解析的 NAT 编辑器。因为协议41的解析并不是 NAT 的通用功能,所以 IPv4 压缩的 IPv6 通信传输不能通过一般的 NAT。为了使 IPv6 数据传输能够通过单个或多层 NAT, IPv6 数据包必须压缩成 IPv4 UDP 格式的数据,包含 IPv4 和 UDP 标头各一个。UDP 数据普遍能够被 NAT 解析而且能够通过多层 NAT。

总之, Teredo 是一项 IPv6/IPv4 转换技术,能够实现在处于单个或者多个 IPv4 NAT 后的主机之间的 IPv6 自动隧道。来自 Teredo 主机的 IPv6 数据流能够通过 NAT,因为它是以 IPv4 UDP 数据格式发送的。如果 NAT 支持 UDP 端口解析,那么它就支持 Teredo 。但是对称 NAT是一个例外,详细情况在本文的"NAT 的种类"中讲解。

Teredo 是作为实现 IPv6 连接最后一种转换技术而设计的,认识到这一点很重要。如果原来的 IPv6 、 6to4 或者ISATAP连接可用,那么主机就不必作为 Teredo 的客户端。现在,越来越多的 IPv4 NAT 经过了升级以便能够支持 6to4 ,而且 IPv6 连接变得越来越普遍, Teredo 将会使用得越来越少,直到最后完全被放弃。


网络地址转换(NAT)概述

网络地址转换(NAT)是指符合 RFC 1631 标准的 IPv4 路由器,它能够在发送前解析数据包 IP 地址以及 TCP/UDP 端口号。例如,设想一个由多台计算机组成的,连接到 Internet 的小型商务网。通常需要为每台连接到 Internet 的电脑从 Internet 服务提供商(ISP)处得到一个 IP 地址。但是通过 NAT,这个小型的商务网就可以使用私有地址(如 RFC 1918 所述),然后通过 NAT 将专用地址映射到单个或者多个 IP 公用地址。

NAT 是针对以下各项要求的常见解决方案:

• 你想利用一条连接访问 Internet,而不是将多台电脑连接到 Internet 上。

• 你想使用私有地址。

• 你想在不部署代理服务器的情况下使用 Internet 资源。


网络地址转换的工作原理

当一台小型商务企业的内部网计算机用户连接到 Internet 资源时,该用户的 TCP/IP 协议产生一个 IP 数据包,该数据包包含以下值,这些值位于 IP 和 TCP 或 UDP 标头中:(粗体内容表示受 NAT 影响的项目):

• 目标 IP 地址:Internet 资源 IP 地址

• 源 IP 地址:私有 IP 地址

• 目标端口:Internet 资源 TCP 或 UDP 端口

• 源端口: 源应用程序 TCP 或 UDP 端口

请求源主机或者其它路由器将此 IP 数据包发送给 NAT,然后由 NAT 将向外发送的数据包的地址解析如下:

• 目标IP地址:Internet 资源 IP 地址

• 源IP 地址:ISP 分配的公用地址

• 目标端口:Internet 资源 TCP 或 UDP 端口

• 源端口:重新映射的源应用程序 TCP 或 UDP 端口

NAT 将重新映射的 IP 数据包发送到 Internet 。响应计算机将向 NAT 返回一个响应。当 NAT 接收到此响应时,该数据包将包含以下地址信息:

• 目标IP 地址:ISP 分配的公用地址

• 源IP地址:Internet 资源 IP 地址

• 目标端口:重新映射的源应用程序 TCP 或 UDP 端口

• 源端口:Internet 资源的 TCP 或者 UDP 端口

当 NAT 完成映射和解析地址后,将向 Internet 客户端发送数据包,此数据包包含以下地址信息:

• 目标 IP 地址:私有 IP 地址

• 源 IP 地址:Internet 资源 IP 地址

• 目标端口:源应用程序 TCP 或者 UDP 端口

• 源端口:Internet 资源 TCP 或 UDP 端口

对于向外发送的数据包,源 IP 地址和 TCP/UDP 端口号将被映射到一个公用源 IP 地址和一个可能变化的 TCP/UDP 端口号。对于接收的数据包,目标 IP 地址和 TCP/UDP 端口号将被映射到私有 IP 地址和初始 TCP/UDP 端口号。

例如,一个小型办公网络使用 192.168.0.0/24 作为企业内部网络私有 ID 并且其 Internet 网络服务提供商分配的单一公用IP地址为131.107.0.1。当此小型内部网中一台内部私有地址为 192.168.0.99 的客户访问 IP 地址为 157.60.0.1的网站服务器时,此用户机的 TCP/IP 协议产生一个包含以下在 IP 和 TCP 或者 UDP 标头中的数值的 IP 数据包:

• 目标IP地址:157.60.0.1

• 源IP地址: 192.168.0.99

• 目标端口:80

• 源端口:1025

请求源主机将此 IP 数据包发送给 NAT 设备,然后由 NAT 设备解析向外发送数据包的地址如下:

• 目标 IP 地址:157.60.0.1

• 源 IP 地址:131.107.0.1

• 目标端口:80

• 源端口:5000

NAT 将重新映射后的 IP 数据包发送到 Internet。网站服务器向 NAT 返回一个响应。当 NAT 接受到此响应时,数据包包含以下地址信息:

• 目标IP地址:131.107.0.1

• 源IP地址:157.50.0.1

• 目标端口:5000

• 源端口:80

当 NAT 完成地址的映射和解析后,它将此数据包发送给 Internet 客户端,数据包包含以下地址信息:

• 目标IP地址:192.168.0.99

• 源IP地址:157.60.0.1

• 目标端口:1025

• 源端口:80

图 1 展示了此例子的配置方式。


图1:NAT示例


从私用流量到公共流量的映射储存在一个 NAT 转换表中,包括两种类型的条目:

1.动态映射

在专用网络用户开始通信时产生。除非被与 NAT 转换表相对应的流量所刷新,否则动态映射在指定的时间后将从 NAT 转换表中删除。

2.静态映射

通过手动设置,使 Internet 客户进行的通信能够映射到某个特定的私有网络地址和端口。如果想让连接在 Internet 上的计算机能够使用某个私有网络上的服务器(如网站服务器)以及应用程序(如游戏),那么静态映射是必需的。静态映射不会从 NAT 转换表中删除。

如果在 NAT 转换表中存在某个映射,那么 NAT 只是单向地从 Internet 向私有网络传送数据。这样,NAT 就为连接到私有网络部分的计算机提供了某种程度的保护。但是,如果考虑到 Internet 的安全性,NAT 就要配合全功能的防火墙一起使用。


NAT 的类型

以下各类 NAT 的定义:

• Cone(Cone) NAT

完全 NAT 是指在 NAT 转换表中存储了内部地址和端口号与外部地址和端口号之间映射关系的一类 NAT。一旦 NAT 转换表开始工作,来自任何源地址和端口通往外部地址和端口的入站数据包都将被转换。

• 受限 NAT

受限 NAT是指在 NAT 转换表中存储了内部地址和端口号与外部地址和端口号之间的映射,无论是特定的源地址或者特定源地址与端口号。如果从某个未知外部地址或者端口到外部目标地址和端口的入站数据包与 NAT 转换表吻合,那么此数据流将被自动放弃。

• 对称 NAT

对称 NAT 是指根据外部目标地址(适用于出站数据包)将相同的内部地址和端口号映射到不同的外部地址和端口号的 NAT。

Teredo 只能工作于Cone和受限 NAT,不能工作于对称 NAT。


Teredo 构成

Teredo 结构由以下各部分组成(如图 2 所示):

• Teredo 客户端

• Teredo 服务器

• Teredo 中继

• 特定于 Teredo 主机的中继



图2:Teredo 结构图


Teredo 客户端

Teredo 客户端是指支持 Teredo 隧道接口的 IPv6 / IPv4 节点,通过此隧道界面数据包可以传送给其它的 Teredo 客户端以及 IPv6 Internet上的其它节点(通过 Teredo 中继)。 Teredo 客户端与 Teredo 服务器建立通信获得配置基于 Teredo 的 IPv6 地址用的地址前缀或者帮助建立与 IPv6 Internet上其它 Teredo 客户端和服务器之间的通信。

The Advanced Networking Pack for Windo

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值