一种自动隧道的实现方法及设备的制作方法

文档序号:7658680阅读:166来源:国知局

专利名称::一种自动隧道的实现方法及设备的制作方法
技术领域
:本发明涉及数据传输
技术领域
,尤其涉及一种自动隧道的实现方法及设备。
背景技术
:随着Interne"互联网)的日益膨胀,现有的IPv4(InternetProtocolVersion4,互联网协议版本4)地址已经十分紧缺,虽然使用分配临时IPv4地址或NAT(NetworkAddressTranslator,网络地址转换)等技术,在一定程度上緩解了IPv4地址不足的状况,但也增加了地址解析和处理方面的开销,同时导致某些高层应用失效,而且仍然无法回避IPv4地址即将被分配殆尽这个问题。釆用128位地址长度的IPv6(InternetProtocolVersion6,互联网协议版本6)协议,彻底解决了IPv4地址不足的难题,并且在地址容量、安全性、网络管理、移动性以及服务质量等方面有明显的改进,是下一代互联网络协议采用的核心标准之一。IPv6与IPv4不兼容,但IPv6同所有的TCP/IP(TransmissionControlProtocol/InternetProtocol,传输控制协议/互联网络协议)协议族中的其他协议兼容,即IPv6完全可以取代IPv4。在IPv6成为主流协议之前,希望使用IPv6协议栈的网络能与当前仍被IPv4支撑着的Internet进行正常通信,因此必须开发出IPv4和IPv6互通技术以保证IPv4能够平稳过渡到IPv6。国际上正TF(InternetEngineeringTaskForce,互联网工程工作小组)组建了专门的NGTRANS(下一代网络演进)工作组,开展对IPv4和IPv6过渡问题和高效无缝互通问题的研究,目前解决过渡问题的基本技术主要有3种双协议栈(RFC2893),Tunnel(隧道)技术(RFC2893)和NAT-PT(NetworkAddlressTtranslation+ProtocolTranslation,网络地址转换+协议转换)(RFC2766)。其中,隧道是一种封装技术,利用一种网络协议来传输另一种网络协议,即利用一种网络传输协议,将其他协议产生的数据报文封装在自己的报文中,然后在网络中传输。隧道技术包括数据封装、传输和解封装在内的全过程,一个Tunnel提供了一条使封装的数据报文能够传输的通路,并且在一个Tunnd的两端可以分别对数据^^文进行封装及解封装。目前已经主流且已形成标准的隧道主要有手工配置隧道和自动隧道两种。手工配置隧道中,用于隧道封装的IPv4报文头中目的地址和源地址必须手工配置指定;自动隧道由RFC3056、RFC4212等定义,用于隧道封装的IPv4报文头中目的地址虽然可以从IPv6报文的目的地址中自动获取,但IPv4源地址必须手工配置指定。另外,现有的自动隧道技术对于IPv6网络的地址有严格要求,每种自动隧道只能转发固定格式目的地址的IPv6数据包。
发明内容本发明提供了一种自动隧道的实现方法及设备,以解决现有技术中自动隧道转发IPv6数据包必须手动配置隧道源IPv4地址和手动配置静态IPv6路由的问题。本发明提供了一种自动隧道的实现方法,应用于包括一个IPv4网络和至少两个IPv6孤岛网络的系统中,每个IPv6孤岛网络边缘分别具有IPv4和IPv6双栈功能的网络设备,所述方法包括以下步骤所述网络设备接收本IPv6孤岛网络发送的IPv6报文,将所述IPv6报文封装为IPv4报文,其中,所述IPv4报文源地址为建立邻居关系使用的IPv4报文地址,IPv4报文目的地址为IPv6路由下一跳地址中的最后32比特;所述网络设备将所述IPv4报文通过其他网络设备发送到对应的IPv6孤岛网络。所述接收本IPv6孤岛网络发送的IPv6报文之前还包括所述网络设备通过边界网关协议与其他网络设备建立邻居关系。所述与其他网络设备建立邻居关系之后还包括所述网络i殳备通过内部网关协议获取内部IPv6路由;所述网络设备之间通过升级消息相互传递各自网络中的IPv6路由,建立IPv6路由表。所述IPv6路由表包括目的IPv6地址、网络掩码、下一跳地址和协议类型;所述下一跳地址格式为:FFFF:v4ADRESS。所述将IPv6报文封装为IPv4报文之前还包括与其他网络设备之间触发自动隧道转发。所述邻居关系使用网络设备的环回接口地址建立。本发明实施例还提供了一种实现自动隧道的网络设备,应用于包括一个IPv4网络和多个IPv6孤岛网络的系统中,用于连接IPv6孤岛网络和IPv4网络,包括报文处理单元,用于接收本IPv6孤岛网络发送的IPv6报文,将所述IPv6报文封装为IPv4报文,其中,所述IPv4报文源地址为建立邻居关系使用的IPv4报文地址,IPv4报文目的地址为IPv6路由下一跳地址的32比特;并对来自其他网络设备的IPv4报文解封装为Ipv6报文;报文转发单元,将所述IPv4报文通过其他网络设备发送到对应的IPv6孤岛网络;并接收其他网络设备发送的IPv4报文。还包括邻居关系建立单元,与所述报文处理单元连接,用于通过边界网关协议与其他网络设备建立邻居关系。还包括IPv6路由信息交互单元,分别与所述邻居关系建立单元和报文处理单元连接,用于通过内部网关协议获取内部IPv6路由,并在网络设备之间通过升级消息相互传递各自网络中的IPv6路由。还包括自动隧道触发单元,与所述报文处理单元连接,用于与其他网络设备使能自动隧道转发。与现有技术相比,本发明实施例具有以下优点本发明的实施例中,在不需要升级网络设备的情况下,即可实现对IPv6自动进行隧道封装后转发到其他IPv6网络,用于隧道封装的源地址和目的地址不需要手工配置,更加灵活。另外,设备对IPv6报文转发时自动寻址,不需要配置静态路由,可以转发可变格式目的地址的IPv6数据包。图1是本发明实施例中一个IPv4网络和多个IPv6孤岛网络的系统结构图;图2是本发明实施例中自动隧道的实现方法流程图;图3是本发明实施例中MP—REACH—NLRI的格式示意图;图4是本发明实施例中自动隧道的实现网络设备结构图。具体实施方式本发明的核心思想是利用MP-BGP(Multiprotocol-BorderGatewayProtocol,多协议边界网关协议)技术,可以将多个IPv6孤岛网络连接起来,互相交互本地所有的IPv6路由,IPv6路由在IPv6孤岛网络中的下一跳地址为IPv4映射的IPv6地址。当IPv6数据包需要转发给另一个IPv6孤岛网络时,自动对IPv6数据包进行IPv6overIPv4的隧道封装,其中,用于隧道封装的源IPv4地址选取建立MP-BGP建立邻居关系时使用的IPv4地址,用于随道封装的目的IPv4地址是IPv6路由的下一跳IPv4映射IPv6地址中的32比特。网络设备对IPv6数据包的封装、解封装等处理完全依据现有技术中的RFC2893标准进行。下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述本发明实施例应用于包括一个IPv4网络和多个IPv6孤岛网络的系统中,如图1所示,设有三个IPv6孤岛网络被IPv4网络隔离,需要通过某种过渡技术实现IPv6网络互通。三个IPv6网络的边缘分别各有一台支持IPv4/IPv6双栈技术和MP-BGP技术的Rl、R2、R3路由器(或三层交换机等网络设备)接入IPv4网络。其中IPv4/IPv6双栈网络设备链路层接收到数据段,拆开并检查包头,如果IPv4/IPv6头中的第一个字段,即IP包的版本号是4,该包就由IPv4栈来处理,如果版本号是6,则由IPv6栈处理。图1系统中自动隧道的实现方法如图2所示,包括以下步骤步骤s201,网络设备通过边界网关协议与其他网络设备建立邻居关系。通常情况下,使用网络设备的环回接口地址建立邻居关系,环回接口作为一台路由器的管理地址,系统管理员完成网络规划之后,为了方便管理,会为每一台路由器创建一个环回接口,并在该接口上单独指定一个IP地址作为管理地址,管理员会使用该地址对路由器远程登录(telnet),该地址实际上起到了类似设备名称一类的功能。由于telnet命令使用TCP报文,会存在如下情况路由器的某一个接口由于故障down掉了,但是其他的接口却仍旧可以teln改,也就是说,到达这台路由器的TCP连接依旧存在,所以选择的telnet地址必须是永远也不会down掉的,而虛接口恰好满足此类要求。步骤s202,网络设备通过内部网关协议获取内部IPv6路由,例如,三台路由器通过IGP(InteriorGatewayProtocol,内部网关十办i义),i口OSPFv3(OpenShortestPathFirstVersion3,开》文最短^各径优先第3版)、RIPng(RoutingInformationProtocolnextgeneration,路由4言息十办i义下一)等,学习到了各自IPv6孤岛中所有的IPv6路由。RIP计算路由选择路径是基于到一个目的站中最少路由跳数,或到一个相邻路由器路径的费用计算出来的一个总的费用。RIP路由选择表与其他路由器大约每30秒钟交换一次,路由器就是基于新的消息来重新生成它们的路由选择信息表。OSPF是一个链路状态路由选择算法,计算路由是基于分组必须跳跃(hop)过的路由器数、传输线路的速度、交通拥塞延迟和根据某种度量的路由器费用。步骤s203,网络设备之间通过升级消息相互传递各自网络中的IPv6路由,建立IPv6路由表。然后将各自设备上通过IGP路由协议学习到的IPv6路由注入BGP路由协议中,此时MP—REACH_NLRI中携带的网络前缀信息为IPv6网段路由,那么建立BGP邻居使用的IPv4地址,利用该IPv4地址映射成IPv6地址,将其设置下一跳地址,格式为:FFFF:V4ADDR。其中,MP—REACH—NLRI的才各式如图3所示前两个字节表示AddressFamilyIdentifier(地址族标识)字段,携带网络层协议与网络地址的连接标识;第三个字节表示SubsequentAddressFamilyIdentifier(并发地址族标识)字段,携带包含在属性中的网络层可达信息(NLRI)类型的补充信息;第四个字节表示LengthofNextHopNetworkAddress(下一跳地址长度),表明了下一跳地址的长度;第五个字节NetworkAddressofNextHop(下一跳地址),长度可变,包含了到达目的系统的下一个路由器的地址;而后所有的内容是表示IPv6路由前缀信息的。这里,除了下一跳地址的填充有别于BGP4+协议中外,其他所有的字段填充原则是完全相同的。比如AddressFamilyIdentifier填充为2,代表IPv6;SubsequentAddressFamilyIdentifier填充为1,代表单播路由。在本发明中,要求下一跳地址必须填充为IPv4映射的IPv6地址,其中IPv4地址为建立BGP邻居使用的IPv4地址。步骤s204,网络设备接收本IPv6孤岛网络发送的IPv6报文,将IPv6报文封装为IPv4报文,并与其他网络设备之间触发自动隧道转发。其中,IPv4报文源地址为建立邻居关系使用的IPv4报文地址,IPv4报文目的地址为IPv6路由下一跳地址中的最后32比特。步骤s205,网络设备将IPv4报文通过其他网络设备发送到对应的IPv6孤岛网络。下面以在R1与R2设备上要互相配置BGP邻居关系为例进行说明,这时需要在网络设备中设计一条指定允许与BGP邻居建立自动隧道转发的能力。可以设计但不限于这样一条命令peerx.x.x.xauto-tunnel其中,x.x.x.x表示为BGP邻居对端设备的IPv4地址;auto-tunnel表明设备有通过IPv4映射IPv6地址与对端设备建立IPv4overIPv6自动隧道的能力。这样,在Rl上,使用E0/1的接口地址1.1.1.1与R2的E0/1的接口地址2.2.2.2建立BGP邻居关系,所有BGP的相关配置完毕后,增加如下的配置peer2.2.2.2auto-tunnel同理,在R2上增加如下的配置peer1.1.1.1auto-tunnel此后,当Rl与R2的BGP邻居关系达到已建立完成后,通过升级消息互相传递各自网络中的IPv6路由。那么Rl对自己IPv6网络中下一跳的填充为IPv4映射IPv6i也址,即:FFFF:1丄1.1;R2对自己IPv6网络中下一浪匕的填充为IPv4映射IPv6地址,即::FFFF:2.2.2.2。此时,Rl上生成的IPv6路由表如表1所示,R2上生成的IPv6路由表如表2所示表1:<table>tableseeoriginaldocumentpage10</column></row><table>在生成类似上述格式的路由表后,需要Rl和R2路由器接收到的待转发的IPv6数据包做如下处理,以R1为例Rl收到一个IPv6数据包,例如其目的地址为2002:1::1.1.1.1,则Rl查询IPv6路由表,将匹配到2002:1::/64的BGP路由,此时该路由的下一跳地址为IPv4映射的IPv6地址::FFFF:2.2.2.2,发现该条BGP路由的下一跳地址类型为IPv4映射IPv6地址时,则进一步判断,若设备使能了与BGP邻居2.2.2.2的auto-tunnel功能,则对IPv6数据包进行隧道封装,封装规则遵循RFC2893。其中用于隧道封装的目的IPv4地址取下一跳IPv6地址::FFFF:2.2.2.2中的最后32比特,IPv4的源地址取与2.2.2.2建立BGP邻居的用的IPv4地址,即l丄l.l。IPv4的协议类型为4,表示是封装了IPv6报文的IPv4数据包。接下的过程就是Rl通过IPv4网络将封装后的数据包发送到R2,转发过程为现有技术,而R2对数据包的解封装过程同样遵循RFC2893。如果Rli殳备没有使能与BGP邻居2.2.2.2的auto-tunnel功能,则Rl应该丢弃该数据包,因为下一跳地址是IPv4映射的IPv6地址,不应该进行转发。同理,R2向Rl转发IPv6数据包做上述类似的处理;Rl还可以与R3乃至更多的双栈路由器通过本发明实现IPv6网络的互联。本发明实施例还提供了一种实现自动隧道的网络设备,应用于包括一个IPv4网络和多个IPv6孤岛网全各的系统中,用于连4妄IPv6孤岛网乡各和IPv4网络。如图4所示,包括报文处理单元110,用于接收本IPv6孤岛网络发送的IPv6报文,将IPv6报文封装为IPv4报文,其中,IPv4报文源地址为建立邻居关系使用的IPv4报文地址,IPv4报文目的地址为IPv6路由下一跳地址的32比特;并对来自其他网络设备的IPv4报文解封装为Ipv6报文;报文转发单元120,将IPv4报文通过其他网络设备发送到对应的IPv6孤岛网络;并接收其他网络设备发送的IPv4报文;邻居关系建立单元130,与报文处理单元110连接,用于通过边界网关协议与其他网络设备建立邻居关系;IPv6路由信息交互单元140,分别与邻居关系建立单元130和报文处理单元IIO连接,用于通过内部网关协议获取内部IPv6路由,并在网络设备之间通过升级消息相互传递各自网络中的IPv6路由;自动隧道触发单元150,与报文处理单元110连接,用于与其他网络设备使能自动隧道转发。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例的方法。以上所述仅是本发明的优选实施方式,应当指出,对于本
技术领域
的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。权利要求1、一种自动隧道的实现方法,应用于包括一个IPv4网络和至少两个IPv6孤岛网络的系统中,每个IPv6孤岛网络边缘分别具有IPv4和IPv6双栈功能的网络设备,其特征在于,所述方法包括以下步骤所述网络设备接收本IPv6孤岛网络发送的IPv6报文,将所述IPv6报文封装为IPv4报文,其中,所述IPv4报文源地址为建立邻居关系使用的IPv4报文地址,IPv4报文目的地址为IPv6路由下一跳地址中的32比特;所述网络设备将所述IPv4报文通过其他网络设备发送到对应的IPv6孤岛网络。2、如权利要求1所述自动隧道的实现方法,其特征在于,所述接收本IPv6孤岛网络发送的IPv6报文之前还包括所述网络设备通过边界网关协议与其他网络设备建立邻居关系。3、如权利要求2所述自动隧道的实现方法,其特征在于,所述与其他网络设备建立邻居关系之后还包括所述网络设备通过内部网关协议获取内部IPv6路由;所述网络设备之间通过升级消息相互传递各自网络中的IPv6路由,建立IPv6路由表。4、如权利要求1所述自动隧道的实现方法,其特征在于,所述将IPv6报文封装为IPv4报文之前还包括与其他网络设备之间触发自动隧道转发。5、如权利要求1至4中任一项所述自动隧道的实现方法,其特征在于,所述邻居关系使用网络设备的环回接口地址建立。6、一种实现自动隧道的网络设备,应用于包括一个IPv4网络和多个IPv6孤岛网络的系统中,用于连接IPv6孤岛网络和IPv4网络,其特征在于,包括报文处理单元,用于接收本IPv6孤岛网络发送的IPv6报文,将所述IPv6报文封装为IPv4报文,其中,所述IPv4报文源地址为建立邻居关系使用的IPv4报文地址,IPv4报文目的地址为IPv6路由下一跳地址的32比特;并对来自其他网络设备的IPv4报文解封装为Ipv6报文;报文转发单元,将所述IPv4报文通过其他网络设备发送到对应的IPv6孤岛网络;并接收其他网络设备发送的IPv4报文。7、如权利要求6所述实现自动隧道的网络设备,其特征在于,还包括邻居关系建立单元,与所述报文处理单元连接,用于通过边界网关协议与其他网络设备建立邻居关系。8、如权利要求6所述实现自动隧道的网络设备,其特征在于,还包括IPv6路由信息交互单元,分别与所述邻居关系建立单元和报文处理单元连接,用于通过内部网关协议获取内部IPv6路由,并在网络设备之间通过升级消息相互传递各自网络中的IPv6路由。9、如权利要求6所述实现自动隧道的网络设备,其特征在于,还包括自动隧道触发单元,与所述报文处理单元连接,用于与其他网络设备使能自动隧道转发。全文摘要本发明提供了一种自动隧道的实现方法,应用于包括一个IPv4网络和至少两个IPv6孤岛网络的系统中,每个IPv6孤岛网络边缘分别具有IPv4和IPv6双栈功能的网络设备,所述方法包括以下步骤所述网络设备接收本IPv6孤岛网络发送的IPv6报文,将所述IPv6报文封装为IPv4报文,其中,所述IPv4报文源地址为建立邻居关系使用的IPv4报文地址,IPv4报文目的地址为IPv6路由下一跳地址中的最后32比特。本发明的实施例中,在不需要升级网络设备的情况下,即可实现对IPv6自动进行隧道封装后转发到其他IPv6网络,用于隧道封装的源地址和目的地址不需要手工配置,更加灵活。文档编号H04L12/46GK101155115SQ200710130800公开日2008年4月2日申请日期2007年7月26日优先权日2007年7月26日发明者辉王,贾欣武申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1