一种将IPv6孤岛接入IPv6网的方法 【技术领域】
本发明涉及IPv4网向IPv6网过渡技术领域,特别是指一种将IPv6孤岛接入IPv6网的方法。
背景技术
网络地址转换(NAT)是为了解决IPv4网地址空间不足而产生的技术,目前在Internet上已得到了普遍的应用。NAT技术允许用户使用私网地址空间的IPv4地址,与同一网络中的其他主机通信;当用户需要访问Internet时,位于用户所在私网和Internet之间的NAT设备负责将用户的私网IPv4地址转换为公网IPv4地址,并在两网之间转发数据包。
NAT是十分复杂的技术,由于在数据包从源到目的地传输过程中,数据包头中的地址要发生变化,因此,大部分地上层传输通道中的数据将无法直接自动穿越NAT设备。NAT技术只允许基于用户数据报协议(UDP)和传输控制协议(TCP)通道中的上层应用数据能够自动穿越。
NAT技术的使用只能暂时缓解地址不足的问题,要真正彻底解决IP地址不足问题还需要使用下一代的IP协议,即IPv6。这就涉及到IPv4网向IPv6网过渡的问题。在由IPv4网向IPv6网过渡时,通常是先将整个网络的一小部分升级为IPv6网,该IPv6网被大量IPv4网所包围,并称之为IPv6孤岛。
目前,主要采取以下两种方法使IPv6孤岛接入IPv6网:
方法一:隧道技术。它的基本工作原理如下:
1、隧道入口对IPv6数据包先进行IPv4封装,然后发送;
2、隧道出口收到隧道封装的数据包后,先确认该数据包是否经过分段,如果是,则对数据包进行重组后,再去掉隧道封装的IPv4报头,更新IPv6报头后,对收到的数据包作相应处理;否则直接去掉隧道封装的IPv4报头,更新IPv6报头后,对收到的数据包作相应处理。图1所示为现有隧道技术封装IPv6数据包的示意图。无论是应用手工配置隧道、自动配置隧道、隧道代理、6to4隧道、或站内自动隧道寻址协议(ISATAP),都可以使IPv6孤岛接入IPv6网。其共同特点是:在IPv4报头中直接承载IPv6数据,使IPv6数据包被封装在IPv4的报头之后。
上述方法的缺点是:所建立的隧道无法自动穿越NAT设备,因此,无法为处于NAT设备之后的IPv6用户提供连通IPv6的服务。
方法二:穿过NATs的承载在UDP的IPv6隧道(Teredo)技术。Teredo是一种允许在一级或多级NAT设备之后的主机之间建立自动IPv6隧道的IPv4向IPv6过渡的技术。Teredo适用于NAT设备不能提供6to4路由器功能的情况和存在多级NAT配置的情况。
图2所示为现有Teredo技术的原理模型示意图。位于NAT设备之后的Teredo客户端是一个双栈主机,它支持Teredo隧道接口技术。在Teredo客户端与仅支持IPv6的主机之间建立UDP隧道,并进行通信。
Teredo客户端首先与Teredo服务器进行通信,获得一个基于TeredoIPv6地址的地址前缀,并通过隧道接口和Teredo中继,数据包被传送到另一个Teredo客户端或IPv6中的节点。
Teredo服务器是一个连接IPv4 Internet和IPv6 Internet的双栈节点,它支持Teredo隧道接口技术。Teredo服务器帮助Teredo客户端进行地址配置,并且使Teredo客户端和其他Teredo客户端之间,或Teredo客户端和仅支持IPv6的主机之间进行通信。
Teredo中继是一个双栈路由器,它在Teredo客户端和仅支持IPv6的主机间转发数据包。
通常情况下,Teredo中继和Teredo服务器之间需互相作用,以促进Teredo客户端和仅支持IPv6的主机之间开始通信。
上述方法的缺陷是:应用Teredo技术只能提供位于NAT后的IPv6主机接入到IPv6网的服务,不能提供位于NAT设备之后的IPv6孤岛接入到IPv6网的服务;而且,该方法实现复杂,需要Teredo客户端、Teredo服务器和Teredo中继的协同工作;由于其结构复杂,因此部署成本高。
【发明内容】
有鉴于此,本发明的目的在于提供一种将IPv6孤岛接入IPv6网的方法。使IPv6孤岛不但能穿越NAT设备与IPv6网相连,而且实现方法简单。
为达到上述目的,本发明的技术方案是这样实现的:
一种将IPv6孤岛接入IPv6网的方法,该方法包括以下步骤:
在位于IPv6孤岛边界的支持双栈且具有隧道封装解封装功能的路由器与位于IPv4网和待接入IPv6网间的支持双栈且具有隧道封装解封装功能的路由器之间建立能够自动穿越网络地址转换设备的隧道,并在该隧道中传送IPv6数据。
较佳地,所述传送数据包括:
IPv6孤岛有数据传送给待接入的IPv6网络中时,IPv6孤岛内的IPv6数据包首先被发送给位于IPv6孤岛边界的路由器,该路由器将IPv6数据包封装在能够自动穿越网络地址转换设备的隧道中,然后通过IPv4网络发给位于IPv4网和待接入IPv6网间的支持双栈且具有隧道封装解封装功能的路由器,再由位于IPv4网和待接入IPv6网间的支持双栈且具有隧道封装解封装功能的路由器进行隧道的解封装,取出IPv6数据包后,发送给目的主机;
待接入IPv6网络中有数据传送给IPv6孤岛时,待接入IPv6网络中的IPv6数据包被发送给位于IPv4网和待接入IPv6网间的支持双栈且具有隧道封装解封装功能的路由器,该路由器将IPv6数据包封装在能够自动穿越网络地址转换设备的隧道中,然后通过IPv4网络发给位于IPv6孤岛边界的路由器,再由位于IPv6孤岛边界的路由器进行隧道的解封装,取出IPv6数据包后,发送给目的主机。
较佳地,所述能够自动穿越地址转换设备的隧道为用户数据报协议隧道或传输控制协议隧道。
较佳地,所述待接入IPv6网为IPv6孤岛或IPv6的互连网。
较佳地,所述IPv6孤岛为纯IPv6孤岛或双栈孤岛。
较佳地,所述IPv6孤岛建立于移动网或固定网之上。
应用本发明,通过在IPv6孤岛与待接入IPv6网之间建立能够穿越NAT设备的隧道,有效的解决了位于NAT之后的IPv6孤岛接入到IPv6网中的问题,而且,对于IPv6孤岛与待接入IPv6网之间没有NAT设备的情况同样适用。本发明应用方便,简单易行。
【附图说明】
图1所示为现有隧道技术封装IPv6数据包的示意图;
图2所示为现有Teredo技术的原理模型示意图;
图3所示为应用本发明的实施例一的示意图;
图4所示为UDP隧道内数据封装的格式。
图5所示为应用本发明的实施例二的示意图。
【具体实施方式】
下面结合附图及具体实施例对本发明再作进一步详细的说明。
本发明的思路是:在位于IPv6孤岛边界的路由器与位于IPv4网和待接入IPv6网间的支持双栈且具有隧道封装解封装功能的路由器之间建立能够自动穿越NAT设备的隧道,并在该隧道中传送数据。其中,上述IPv6孤岛可以是移动网也可以是固定网,上述隧道是UDP隧道或TCP隧道,上述另一IPv6网可以是另一个IPv6孤岛,也可以是IPv6的互连网(IPv6 Internet)。
实施例一:
以通用分组无线业务(GPRS)为例,具体说明IPv6孤岛通过UDP隧道接入IPv6 Internet的方法。
图3所示为应用本发明的实施例一的示意图。GPRS是在全球移动通信系统(GSM)网络上叠加了无线分组网,并在GSM网络中增加了服务支撑节点(SGSN)和网关支撑节点(GGSN),用于支撑分组交换和路由功能。
移动站(MS)通过接入网(RAN)接入GPRS网络中。在GPRS网络中,SGSN跟踪MS的位置,执行移动性管理、加密和接入控制等服务。GGSN提供数据包在GPRS网络与外部网络之间的路由和封装,以及分配IP地址等服务。MS收发的IP分组数据只对MS和GGSN可见,对SGSN是透明的。在GPRS网络内,MS通常使用私网的IPv4地址。该私网IPv4地址如果是由GGSN分配的,则由防火墙(Firewall)实现NAT功能,即由Firewall设备将私网地址转换为公网地址;该私网IPv4地址如果是由互联网业务提供商(ISP)分配的,则由ISP的边界路由器即图中的Router A来实现NAT功能,即由Router A将私网地址转换为公网地址。
基于GPRS网形成的IPv6孤岛要接入到IPv6 Internet时,该GPRS网为双栈孤岛,或边缘节点支持双栈中间节点仅支持IPv6的纯IPv6孤岛;MS为双栈节点或仅支持IPv6的节点;位于GPRS网边界的GGSN为双栈节点且支持UDP隧道的封装/解封装。
如果位于IPv4 Internet和IPv6 Internet之间的Router B支持双栈,且支持隧道封装/解封装;则在GGSN和Router B之间建立UDP隧道,在隧道上承载IPv6数据。隧道封装格式如图4所示。IPv6数据包被封装在IPv4报头和UDP报头之后。
当MS要访问IPv6 Internet上的IPv6主机时,MS所发送的IPv6数据包被发送给GGSN,GGSN将IPv6数据包封装在IPv4的UDP隧道中,然后通过IPv4网络发给Router B,再由Router B完成隧道的解封装,取出IPv6数据包后,发送给目的IPv6主机;当IPv6 Internet中的主机要与MS通信时,IPv6 Internet中的主机所发送的IPv6数据包被发送给Router B,Router B将IPv6数据包封装在IPv4 UDP隧道中,然后通过IPv4网络发给GGSN,再由GGSN完成隧道的解封装,取出IPv6数据包后,发送给MS。
经过IPv4 UDP隧道封装的IPv6数据包到达NAT设备即Router A或Firewall时,由于IPv6数据被封装在UDP隧道中,因此,NAT设备对IPv4地址的转换不会对IPv6数据包产生任何影响。
实施例二:
以固定网中的园区网为例,具体说明IPv6孤岛通过UDP隧道接入IPv6Internet的方法。
图5所示为应用本发明的实施例二的示意图。园区网主要是指校园网、企业网、虚拟专用网(VPN)或小区网等具有统一管理实体的网络。园区网内通常使用私网的IPv4地址,当园区网内的主机访问外部网络时,由位于园区网和IPv4 Internet之间的边界路由器即图中的Router B实现NAT功能,即由Router B将私网地址转换为公网地址。
如果在园区网内已建成一双栈孤岛,或边缘节点支持双栈中间节点仅支持IPv6的纯IPv6孤岛,且该IPv6孤岛要接入到IPv6 Internet中,则位于IPv6孤岛边界Router A必须是双栈路由器,且支持UDP隧道的封装/解封装。
如果位于IPv4与IPv6 Internet之间的Router C是双栈路由器,且支持UDP隧道的封装/解封装,则在Router A和Router C之间建立UDP隧道,在隧道上承载IPv6数据。隧道封装格式亦如图4所示。IPv6数据包被封装在IPv4报头和UDP报头之后。
当IPv6孤岛内的某一主机要访问IPv6 Internet上的IPv6主机时,IPv6孤岛内主机所发送的IPv6数据包被发送给Router A,Router A将该IPv6数据包封装在IPv4的UDP隧道中,然后通过IPv4网络发给Router C,再由Router C完成隧道的解封装,取出IPv6数据包后,发送给目的IPv6主机;当IPv6 Internet的主机要与IPv6孤岛内的某一主机通信时,IPv6 Internet中的主机所发送的IPv6数据包被发送给RouterC,Router C将该IPv6数据包封装在IPv4 UDP隧道中,然后通过IPv4网络发给Router A,再由Router A完成隧道的解封装,取出IPv6数据包后,发送给目的主机。
在经过IPv4 UDP隧道封装的IPv6数据包到达NAT设备即Router B时,由于IPv6数据被封装在UDP隧道中,因此,NAT设备对IPv4地址的转换不会对IPv6数据包产生任何影响。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。