基于无状态映射的IPv4和IPv6网互通的方法

文档序号:7665222阅读:88来源:国知局
专利名称:基于无状态映射的IPv4和IPv6网互通的方法
基于无状态映射的IPv4和IPv6网互通的方法技术领域基于无状态映射的IPv4和IPv6网互通的方法属于互3关网技术领域。
技术背景随着IPv4地址资源的耗尽和IPv6技术的发展,从IPv4过渡到IPv6网络 成为了 Internet发展的趋势。但IPv4和IPv6协议本身的不兼容性使得IPv4 到IPv6的过渡成为了一大难题一一即我们无法使全球的互联网在同一时刻完全 过渡到IPv6, IPv4到IPv6的转换是一个由部分而整体的逐步过程。在这个过 程中如何使互联网上资源的IPv4和IPv6均可访问性得到保证是我们要解决的 主要问题。在问题的基础上,已有很多研究成果,主要对应于三个方向1. IPv4/IPv6双栈网络。这种方式实际上是在运行两个网络,资源的可访问 性是在每个终端同时拥有两种地址的基础上保证的,因此在这种方式下原有 IPv4的地址枯竭问题并未得到解决。2. 隧道^妄入。这种方式适合于将IPv4或IPv6的《瓜岛网络通过IPv6或IPv4 的大网连接到其它IPv4或IPv6网络上。这种方式在IPv6的前期发展上起了很 大的作用,但是随着需要部署范围的增大,需要打通的隧道越来越多,使这种 方式显现出扩展性方面的局限性。3. 网络地址转换-端口转换协议NAT-PT数据包翻译。这种机制通过网关将 IPv4和IPv6的数据包互译,运行方式则类似目前用于解决IPv4地址缺乏的MT 网关。但由于其运用的是传输控制协议TCP/用户数据协议UDP端口到IP地址的有状态映射,因此IP网络端到端通信的特性无法保证,且状态的引入带来了同 样的可扩展性问题。我们设计的基于无状态映射的IPv6网和IPv4网间互通的方法,正是在上述方法的基础上,通过在数据包地址翻译过程中引入独特的无状态映射,达到互访和资源共享的目的。该方法消除了网络地址转换-端口转换协议NAP-PT中由 于状态造成的路径依赖性,从而使得用户网络在获得IPv6和IPv4互访功能的 同时,能够在多接入(Multihoming)环境下保持良好的路径多样性,从而在链 路可能发生故障的情况下提高IPv6/IPv6互访网络的性能和可靠性。我们的映射方法具备如下的独特性质1)——映射保证一个终端的标识, 无论其为IPv4还是IPv6,在IPv4 + IPv6全局中都是唯一的。这保证了该终端 在IPv4、 IPv6网中的全局可访问性。2)无状态即进行数据包翻译和地址映 射的设备无需保存与该次翻译相关的翻译和映射状态信息。这保证了系统的可 扩展性。3)兼容性IPv4和IPv6互相的地址映射,会导致互相间路由的融合。 映射过去的地址能很好的被路由,不会给路由系统带来过大的负担。发明内容本发明的目的在于克服已有的IPv4网络和IPv6网络互通方法可扩展性差的 问题,提供一种新的IPv4网络IPv6网络之间通信的技术方法。本发明解决其技术问题所采用的技术方案是通过无状态映射(IVI,其中 罗马字母IV表示IPv4,罗马字母VI表示IPv6),在IPv6网络中维护IPv4网 络的可达性信息,在此基础上,在IVI路由器上实现分组翻译,从而保证两个 不同网络节点之间的端到端通信。本发明所提出的方法的特征在于基于IVI无状态映射的IPv6网和IPv4网 间互通的方法其特征在于,当IPv4节点主动发起与IPv6节点的通信时,依次 含有以下步骤步骤(1 )初始化在所述IPv4、 IPv6网间配置一台边界路由器,在所选路由器中配置地址映射模 块和分组翻i奪^^莫块,其中地址映射模块,配置有一个路由表,其中含有IPv4到IPv6路由映射信息, 用于依次按以下步骤4巴IPv4地址翻译为IPv6地址把IPv4地址前加特定前缀后再添加到目标IPv6地址/32前缀后,再根据所述路由映射信息翻译为正确的IPv6地址;例如,设中缀为"FF,,,现有IPv4地址202. 38. 114. 1,名炎映射至IPv6地址前缀2001: 250: :/32下,则映射结果应为2001: 250: ff<202. 38. 114. 1>,翻译为正确的IPv6地址即为2001: 250: ffca: 2672: 0100::分组翻译模块,依次按以下步骤把IPv4分组头翻译为IPv6分组头的因特网报头长度值IHL,该IHL为设定值;IPv6分组头中的下一个分组头字段是直接复制自IPv4分组头中的协议字段;IPv6分组头中的跳数限制字段是直接复制自IPv4分组头中的生存周期字段;IPv6 ;格式的源地址为4巴IPv4的源地址添加IPv6的32位前缀和作为 IPv6的中缀的所述"FF"后得到的;IPv6才各式的目标地址为4巴IPv4的目标地址添加IPv6的32位前缀和所 述8位中缀"FF',后得到的;步骤(2)当前述的边界路由器的IPv4协议栈收到IPv4数据包后,首先查询路 由表,若路由为非IVI映射路由,则按普通IPv4数据包转发;步骤(3)若发现步骤(2)中的所述数据包的对应路由为IVI映射路由,则进 行IVI地址映射操作,把IPv4地址映射为IPv6地址;再进行翻译搡作,把IPv4 分组头翻译为IPv6分组头;步骤(4 )检查IP报头之后的协议当报文为传输控制协议TCP或用户数据协议UDP时,要分别用RFC 7 94和 RFC768中的方法重新计算校验和并更改报头的校验和域;当报文为因特网控制消息协议ICMP时,要把信息类型和代码由ICMP格式用 RFC2765中的方法翻译为ICMPv6格式,同时,若ICMP消息后附带IP数据包, 则要用前述的地址映射方法将其翻译为IPv6数据包;步骤(5 )报文翻译完成后,把新的数据包转送到IPv6协议栈,同普通IPv6数 据包一起进行后处理;当IPv6节点主动发起与IPv4节点的通信时,依次含有以下步骤 步骤(I)初始化在所述IPv6和IPv4网间配置一台边界路由器,在所述路由器中配置地址映 射模块和分组翻译模块,其中地址映射模块,配置有一个路由表,其中含有IPv6映射到IPv4的一部 分地址映射信息,用于依以下步骤把IPv6地址翻译为IPv4地址;所述的部分 IPv6地址是指原有的IPv4网过渡为IPv6网后按照映射规则的地址分配在把 这部分IPv6地址映射到IPv4地址时,直接去掉IPv6地址前缀和映射标志中缀, 以得到IPv4地址;例如,设中缀为"FF"上述的202. 38. 114. 1,在过渡到IPv6 时可获得地址2001: 250: ffca: 2672: 0100::,对于这个IPv4兼容的IPv6地址, 映射时直接去掉IPv6前缀和映射标志前缀"ff"即可得到IPv4地址202. 38. 114. 1;分組翻译模块,用于把IPv6分组头翻译为IPv4分组头,其步骤如下 新的IPv4分组头的因特网报头长度IHL的值设为5; IPv6分组头中的净荷长度字段的值加上4倍的IHL值直接作为IPv4分组 头中的全长字段;IPv6分组头中的跳数限制字段直接作为IPv4分组头中的生存周期字段; IPv6分组头中的下一个分组头字段直接作为IPv4分组头中的协议字段; IPv4分组头的校验和字段需要根据RFC791中的方法直接计算; IPv6的IVI格式源地址去掉前40位的前缀和所述的"FF"后,再去32位得到映射的IPv4源地址;IPv6的IVI才各式目的地址去掉前40位的前缀和所述的"FF"后,再去32位得到映射的IPv4目的地址;步骤(II)边界路由器在其IPv6协议栈收到IPv6数据包后,首先查询路由表, 若为非IVI映射路由,则按照普通IPv6数据包转发;步骤(III )若步骤(II )中的所达IPv6数据包为IVI映射路由,则进行IVI 地质映射操作,把IPv6地址翻译为IPv4地质;再进行分組翻译操作,把IPv6 分组头翻译为IPv4分组头;步骤(IV)检查IPv6分组头之后的协议若报文为传输控制协议TCP或用户数据协议UDP,则要重新计算校验和,并 改变校验和域的值;若报文为ICMPv6时,把信息类型和代码由ICMPv6格式翻译为ICMP格式,同时若ICMPv6消息后附IPv6数据包,则要翻译该数据包为IPv4数据包,方法 与步骤(I)中所述的方法相同;步骤(V)把步骤(IV)得到的新的数据包,转送到IPv4协议栈,同普通IPv4 数据包 一样进行后续处理。本发明所提出的基于IVI无状态映射的IPv6网络和IPv4网络互通方法,解 决了已有的协议翻译机制需要保存通信双方的状态信息而导致的单点故障和可 扩展性差的问题,提供一种新的IPv4网络IPv6网络之间通信的技术方法,可 以实现在网络中间节点无状态翻译分组,从而解决传统IPv4/v6网络之间互通 方法的可扩展性问题。


图1. IVI地址映射规则示意2.基于IVI无状态映射的IPv6网和IPv4网间互通的方法网络环境3.基于IVI无状态映射的IPv6网和IPv4网间互通的方法流程4.基于IVI无状态映射的IPv6网和IPv4网间互通的方法系统逻辑结构图具体实施方式
本发明按以下步骤实现Ipv4接入网通过IVI路由器接入至IPv6骨干网,并与有IPv4兼容的IPv6 地址的IPv6接入网进行通信,如图2所示。步骤l: V4客户端首先发起了对V6服务器的访问请求,如图2中1.0. 0. 1 发起对3. 0. 0. 1 ( V6地址为2001: 0: ff 30: 0100 )的请求。步骤2:IVI边界路由器在IPv4协议栈收到来自V4客户端的IPv4数据包后,发现其对应路由为IVI映射路由,开始进行IVI地址映射和数据包翻译操作;步骤3: IVI边界路由器根据路由表中的IVI路由映射信息将IPv4地址翻译 为IPv6地址,并将IPv4数据包的分组头翻译为IPv6分组头;步骤3. 1 IPv6分组头中的净荷长度字段(Payload Length)的值为IPv4分组 头中的全长字段(Total Length)减去4倍的IHL值;步骤3. 2: Ipv6分组头中的下一个分组头字段(Next Header)直接复制IPv4 分组头中的协议字^殳(Protocol);步骤3. 3: Ipv6分组头中的跳数限制字段(Hop limit)直接复制IPv4分组头 中的生存周期字段(TTL);步骤3. 4: IPv4的源地址根据IVI地址映射方法添加IPv6的32位前缀和"FF, 8位中缀后得到的IPv6 ;f各式的源地址,如图2,将1. 0. 0. 1翻译为 2001: 1: fflO: 0100:: j步骤3. 5: IPv4的目标地址纟艮据IVI地址映射方法添加IPv6的32位前缀和 "FF" 8位中缀后得到的IPv6格式的目标地址,如图2,将3. 0. 0. 1翻译为 2001: 0: ff30: 0100:: j步骤4:分组头翻译完毕后检查IP报头之后的协议,分为TCP / UDP / ICMP 三种情况;步骤4. 1:当报文为TCP或UDP时,因其报文校验和需要包含伪IP报头,所 以IP报头翻译后,需要重新计算此校验和并更改报头的校验和域,仅此一处改 动即可;步骤4. 2:当报文为ICMP时,需要将信息类型和代码由ICMP格式翻译为 ICMPv6格式;同时,如果ICMP消息后附带IP数据包,需要根据同样的方法将 此IP数据包翻译为IPv6数据包;翻译方法根据RFC2765即SIIT协议进行;步骤5:报文翻译过程完毕后,将新的数据包转送至IPv6协议栈,同普通 IPv6数据包一样进4亍后续处理;步骤6:新的IPv6数据包离开IVI边界路由器,通过IPv6网络路由到V6服 务器。反过来,从V6服务器到V4客户端的访问也是类似。步骤l: V6服务器首先发起了对V4客户端的访问请求,如图2中 2001: 0: ff30: 0100::发起对2001: 0: ffl0: 0100: : ( V4地址为1. 0. 0. 1 )的请求。步骤2: IVI边界路由器在IPv6协议栈收到IPv6数据包后,首先查询路由 表,如果路由为普通路由,则按普通IPv6数据包转发;步骤3:如果发现其对应路由为IVI映射路由,则进行IVI地址映射和翻译 操作;地址映射和翻译操作首先利用映射路由内的信息将IPv6地址翻译为IPv4 地址,将IPv6数据报头翻译为IPv4数据报头;步骤3. 1:从IPv6到IPv4的IVI地址规则如图1所示;在我们的映射MJ'j下,只有部分IPv6地址可以纟皮映射到IPv4地址,这些地 址通常来自原有的IPv4网络过渡为IPv6网络后按映射规则的地址分配;例如 上述的202. 38. 114. 1,在过渡到IPv6时可获得地址2001: 250: ffca: 2672: 0100::,对于这个IPv4兼容的IPv6地址,映射时直接去 掉IPv6前缀和映射标志前缀"ff,,即可得到IPv4地址202. 38. 114. 1; 步骤3. 2:按如下方式构造IPv4分组头新的IPv4分组头的IHL字,殳(Internet Header Length)设为5;IPv6分组头中的净荷长度字段(Payload Length)的值加上4倍的IHL值直接 填入IPv4分组头中的全长字段(Total Length);Ipv6分组头中的跳数限制字段(Hop limit)直接填入IPv4分组头中的生存周 期字段(TTL);Ipv6分组头中的下一个分组头字4殳(Next Header)直4妾填入IPv4分组头中的 协议字段(Protocol);直接计算IPv4分组头的校验和字段(Header Checksum);IPv6的IVI格式源地址去除前40位前缀和中缀后,再取32位得到映射的 IPv4源地址;如图2,将2001: 0: ff30: 0100::翻译为3. 0. 0. 1IPv6的IVI格式目标地址去除前40位前缀和中缀后,再取32位得到映射的 IPv4目标地址;如图2,将2001: 1: fflO: 0100::翻i奪为1. 0. 0. 1;步骤4:检查IP报头之后的协议,分为TCP / UDP / ICMPv6三种情况;步骤4. 1:当报文为TCP或UDP时,因其报文校验和需要包含伪IP报头,所 以IP报头翻译后,需要重新计算此校验和,并改变此域值,仅此一处改动即可;步骤4. 2:当报文为ICMPv6时,需要将信息类型和代码由ICMPv6格式翻译 为ICMP格式。同时,如果ICMPv6消息后附带IP数据包,需要将此IP数据包 翻译为IPv6数据包;翻译方法根据RFC2765即SIIT协议进行;步骤5:报文翻译过程完毕后,将新的数据包转送至IPv4协议栈,同普通 IPv4数据包一样进行后续处理;步骤6:新的Ipv4数据包离开IVI边界路由器,通过Ipv4网络路由到V4客 户端。
权利要求
1、基于无状态映射的IPv4和IPv6网互通的方法,其特征在于,当IPv4节点主动发起与IPv6节点的通信时,依次含有以下步骤步骤(1)初始化在所述IPv4、IPv6网间配置一台边界路由器,在所选路由器中配置地址映射模块和分组翻译模块,其中地址映射模块,配置有一个路由表,其中含有IPv4到IPv6路由映射信息,用于依次按以下步骤把IPv4地址翻译为IPv6地址把IPv4地址前加特定长度中缀后,再添加到目标IPv6地址/32前缀后,再根据所述路由映射信息翻译为正确的IPv6地址;分组翻译模块,依次按以下步骤把IPv4分组头翻译为IPv6分组头IPv6分组头中的净荷长度字段的值为IPv4分组头中的全长字段减去4倍的因特网报头长度值IHL,该IHL为设定值;IPv6分组头中的下一个分组头字段是直接复制自IPv4分组头中的协议字段;IPv6分组头中的跳数限制字段是直接复制自IPv4分组头中的生存周期字段;IPv6格式的源地址为把IPv4的源地址添加IPv6的32位前缀和作为IPv6的中缀的所述“FF”后得到的;IPv6格式的目标地址为把IPv4的目标地址添加IPv6的32位前缀和所述8位中缀“FF”后得到的;步骤(2)当前述的边界路由器的IPv4协议栈收到IPv4数据包后,首先查询路由表,若路由为非无状态映射路由,则按普通IPv4数据包转发;步骤(3)若发现步骤(2)中的所述数据包的对应路由为无状态映射路由,则进行无状态地址映射操作,把IPv4地址映射为IPv6地址;再进行翻译操作,把IPv4分组头翻译为IPv6分组头;步骤(4)检查IP报头之后的协议当报文为传输控制协议TCP或用户数据协议UDP时,要分别用RFC794和RFC768中的方法重新计算校验和并更改报头的校验和域;当报文为因特网控制消息协议ICMP时,要把信息类型和代码由ICMP格式用RFC2765中的方法翻译为ICMPv6格式,同时,若ICMP消息后附带IP数据包,则要用前述的地址映射方法将其翻译为IPv6数据包;步骤(5)报文翻译完成后,把新的数据包转送到IPv6协议栈,同普通IPv6数据包一起进行后处理;当IPv6节点主动发起与IPv4节点的通信时,依次含有以下步骤步骤(I)初始化在所述IPv6和IPv4网间配置一台边界路由器,在所述路由器中配置地址映射模块和分组翻译模块,其中地址映射模块,配置有一个路由表,其中含有IPv6映射到IPv4的一部分地址映射信息,用于依以下步骤把IPv6地址翻译为IPv4地址;所述的部分IPv6地址是指原有的IPv4网过渡为IPv6网后按照映射规则的地址分配在把这部分IPv6地址映射到IPv4地址时,直接去掉IPv6地址前缀和映射标志中缀,以得到IPv4地址;分组翻译模块,用于把IPv6分组头翻译为IPv4分组头,其步骤如下新的IPv4分组头的因特网报头长度IHL的值设为5;IPv6分组头中的净荷长度字段的值加上4倍的IHL值直接作为IPv4分组头中的全长字段;IPv6分组头中的跳数限制字段直接作为IPv4分组头中的生存周期字段;IPv6分组头中的下一个分组头字段直接作为IPv4分组头中的协议字段;IPv4分组头的校验和字段需要根据RFC791中的方法直接计算;IPv6的源地址去掉前40位的前缀和所述的“FF”后,再去32位得到映射的IPv4源地址;IPv6的目的地址去掉前40位的前缀和所述的“FF”后,再去32位得到映射的IPv4目的地址;步骤(II)边界路由器在其IPv6协议栈收到IPv6数据包后,首先查询路由表,若为非无状态映射路由,则按照普通IPv6数据包转发;步骤(III)若步骤(II)中的所达IPv6数据包为无状态映射路由,则进行无状态地址映射操作,把IPv6地址翻译为IPv4地质;再进行分组翻译操作,把IPv6分组头翻译为IPv4分组头;步骤(IV)检查IPv6分组头之后的协议若报文为传输控制协议TCP或用户数据协议UDP,则要重新计算校验和,并改变校验和域的值;若报文为ICMPv6时,把信息类型和代码由ICMPv6格式翻译为ICMP格式,同时若ICMPv6消息后附IPv6数据包,则要翻译该数据包为IPv4数据包,方法与步骤(I)中所述的方法相同;步骤(V)把步骤(IV)得到的新的数据包,转送到IPv4协议栈,同普通IPv4数据包一样进行后续处理。
全文摘要
基于无状态映射的IPv4和IPv6网互通的方法属于互联网技术领域,其特征在于在所选的IPv4和IPv6网间配置一台边界路由器,在该边界路由器中配置无状态地址映射模块,以进行IPv4和IPv6网间地址映射;分组翻译模块,以进行分组头之间的互相翻译,使得IPv6网中维护IPv4网的可达信息或者在IPv4网中维护IPv6网的可达性信息从而保证不同网之间的端到端通信,解决了可扩展性问题。
文档编号H04L12/46GK101227373SQ200710177618
公开日2008年7月23日 申请日期2008年3月21日 优先权日2008年3月21日
发明者星 李 申请人:清华大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1