Teredo在校园网中的应用研究
2013-04-29李超
李超
摘要:随着IPv6网络在各个校园网中的普及,越来越多的用户通过隧道方式接入了IPv6网络,但是传统的GRE隧道需要具有公网IPv4地址才能使用,使得使用NAT设备后的用户无法访问IPv6网络资源,本文介绍了Teredo草案,并进行了通过Teredo实现校园网私有地址用户实现IPv6访问的网络部署研究。
关键词:IPv6 over IPv4 NAT Teredo
1 Teredo概述
Teredo作为一项分配地址和自动隧道技术,能跨越 IPv4 Internet完成IPv6的单播连接。通过UDP数据包实现在传统的IPv4网络上传递IPv6数据包,是一种IPv4到IPv6的过渡技术。
Teredo通过在站点内的主机之间通过UDP数据包实现IPv6数据包隧道来解决现在NAT设备缺乏IPv6 over IPv4功能以及隧道穿越的配置问题。因为传统的6to4 使用的是边缘设备之间的隧道。这个时候主机之间隧道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转换技术,IPv6自动隧道能够在处于单个或者多个IPv4 NAT设备后的主机之间实现。因为,借助IPv4 UDP数据格式Teredo进行发送。对于NAT来说,如果支持UDP端口解析,那么就能支持Teredo。来自Teredo主机的IPv6数据流就能够通过NAT。
2 Teredo的组成
构成Teredo隧道需要由Teredo服务器、Teredo中继器和Teredo客户端三部分组成。
2.1 Teredo客户端
所谓Teredo客户端是指IPv6/IPv4节点,该节点支持Teredo隧道接口,通过隧道界面数据包可以传送给其它的Teredo客户端和IPv6 Internet上的其它节点。基于Teredo的IPv6地址用的地址前缀的基础上,Teredo客户端与Teredo服务器建立通信获得配置,同时帮助与IPv6 Internet上其它Teredo客户端和服务器之间建立通信。
2.2 Teredo服务器
所谓Teredo服务器通常是指IPv6/IPv4节点,该节点连接IPv4 Internet与IPv6 Internet,并且支持Teredo隧道接口。对于Teredo服务器来说,就是帮助Teredo客户端的地址配置以及协助在Teredo客户端之间或者客户端与纯IPv6主机之间与其他Teredo客户端建立通信连接。
2.3 Teredo中继
在IPv4网络上,Teredo客户端之间以及与纯IPv6主机之间传送数据包的IPv6/IPv4路由器构成所谓Teredo中继。Teredo中继和Teredo服务器协同工作,在Teredo客户端之间以及与纯IPv6主机之间帮助建立连接。在Teredo中继中,借助UDP 3544端口对Teredo通信进行侦听。
配置了公网地址的Teredo客户端与IPv6主机之间的通信必须经过Teredo中继。但是,当IPv6主机同时支持IPv6和IPv4,并且同时与IPv4 Internet和IPv6 Internet进行连接,那么,通过IPv4 Internet实现Teredo 客户端与IPv6主机之间的通信,而不必经过IPv6 Internet和Teredo中繼。
3 Teredo支持的NAT类型
NAT(网络地址转换)作为一个IETF(Internet工程任务组)标准,在Internet上允许一个整体机构出现一个公用IP地址。
NAT有以下三种类型:
3.1 Cone(Cone)NAT
在NAT转换表中,完全NAT是指存储了内、外部地址和端口号,以及相互之间映射关系的NAT。如果NAT 转换表开始工作,任何源地址和端口通往外部地址和端口的入站数据包都将被转换。
3.2 受限NAT
在NAT转换表中,受限NAT是指存储了内部地址和端口号与外部地址和端口号之间的映射,无论是特定的源地址,还是特定源地址与端口号。如果从未知外部地址或端口到外部目标地址和端口的入站数据包与NAT转换表相互吻合,那么就自动放弃此数据流。
3.3 对称NAT
根据外部目标地址,将相同的内部地址和端口号映射到不同的外部地址和端口号的NAT就是对称NAT。
由于Teredo中继使用UDP 3544端口侦听Teredo 通信,所以Teredo只能工作于Cone和受限NAT,不能工作于对称NAT。
4 Teredo部署
在校园网与IPv6试验床之间分别建立Teredo服务器与Teredo中继,IPv6试验床通过GRE隧道连入CERNET2国家网络中心(如图1)。
当私网IP用户要访问IPv6网络上的一个IPv6主机时,通过Teredo 客户端会发送一个通信初始化数据包, Teredo 客户端会首先对Teredo中继的IPv4地址和UDP端口号进行验证。这时经由Teredo服务器,Teredo客户端发送一个IPv6回应请求消息。收到IPv6回应请求消息后,Teredo服务器在IPv6网上把它发送给IPv6主机,若IPv6主机不在IPv6试验床上,则通过GRE隧道封装后访问到外网CERNET2上。IPv6主机发送给Teredo客户端的一个Teredo地址予以响应。根据IPv6的网络路由结构,Teredo中继接收到含有Teredo地址的数据包。Teredo中继将IPv6回应请求进行重新封装后,并直接发送给Teredo客户端(也就是私网IP用户)。
从IPv6主机发送初始化数据包至私网IP用户时,也就是IPv6主机发送一个数据包至Teredo客户端。结合IPv6网络的结构,以Teredo地址打包的数据包被发送到Teredo中继。在NAT之后,Teredo中继对Teredo客户端进行验证。数据包与IPv4和UDP的标志通过Teredo中继压缩在一起,从IPv6主机发送到Teredo客户端。Teredo客户端根据这个数据包的接收回执,储存对应于Teredo中继的IPv4地址和UDP端口号,这样,响应数据包被发送给Teredo中继。Teredo中继接收到它们,除去IPv4和UDP标志后,发送该IPv6数据包到IPv6主机。
5 结束语
综上所述,由于UDP数据包对现有的NAT设备有较好的兼容性,通过Teredo草案可以较好的解决私网IPv4用户通过UDP封装后能较好的通过NAT设备,实行对IPv6资源的访问问题。通过此方案也为校园网私网IP用户能够访问IPv6网络提供了一种较好的解决方法。
参考文献:
[1]田鹏.IPv4网络向IPv6网络过渡中的隧道应用研究[J].吉林建筑工程学院学报,2010(10).
[2]W.Richard Stevens.TCP/IP详解[M].机械工业出版社,2007(4).
[3]傅光轩,高鸿峰,卢朝晖.下一代互联网核心通信协议——IPv6原理及应用[M].贵州教育出版社,2004.