用于自动地经IPv6网络互连IPv4网络的系统和方法

文档序号:7636056阅读:193来源:国知局
专利名称:用于自动地经IPv6网络互连IPv4网络的系统和方法
用于自动地经IPv6网络互连IPv4网络的系统和方法 相关申请的声明
本申请要求2005年3月21日提交的名称为"METHOD AND SYSTEM FOR INTERCONNECTING IPv4 NETWORKS ACROSS IPv6 NETWORK (用于 经IPv6网络来互连IPv4网络的系统和方法)"的美国临时申请No. 60/664,013 (代理案号No. CISCP906+)的优先权,该临时申请的内容通过引 用全部结合于此。
背景技术
本发明一般地涉及数据联网,并且更具体地涉及用于自动地经IPv6网 络互连IPv4网络的系统和方法。
为了适应互联网的迅猛发展,大量的网络节点已被配置为利用IP (因 特网协议)。这些节点包括用户工作站到相当大吞吐量的核心路由器。
互联网工程协会己经在实现从IPv4到IPv6的转变。IPv6的优点包括 可用地址空间的大量扩充以适应更加普遍存在的能够实现互联网的 (Internet-enabled)设备,以及对已经被用于保存(conserve)地址的烦琐 的网络地址转换方案的较少的依赖。IPv6还提供了非常有用的自动配置能 力。
因此,需要一种方法,该方法使供应商自动地经他们选择部署为纯 IPv6网络的网络来为其客户处理IPv4业务。己经在努力研发与存在于纯 IPv6网络中的个别IPv4节点一起工作的方法。例如,"Dual Stack Transition Mechanism (双栈转换机制)"(Bound, 2003年7月,draft-ietf-bound-dstm-exp-00.txt)解决了在纯IPv6网络中的个别IPv4节点的问 题。但是,这篇文献并没有解决自动地经纯IPv6网络来处理整个IPv4节 点的网络的问题。

发明内容
本发明公开了一种用于自动地经IPv6网络来互连IPv4网络的方法和 系统。所述方法包括在IPv6网络中的入口路由器处接收IPv4分组,并 在所接收的分组中找到IPv4地址的最长匹配IPv4路由条目以标识在IPv6 网络中的出口路由器。IPv4分组被封装以创建IPv6分组,其中经封装的 分组的目的地址和源地址标识与IPv6网络中的入口路由器和出口路由器相 对应的子网路由器任播。经封装的分组被转发到出口路由器。
根据本发明的另一个方面,用于自动地经IPv6网络来互连IPv4网络 的方法一般包括将IPv4分组从第一 IPv4网络转发到IPv6网络中的入口 路由器,并在IPv6网络中创建用于经该IPv6网络来传送分组的隧道。隧 道端点被定义为与入口路由器和出口路由器相对应的IPv6子网路由器任 播。所述方法还包括对IPv4分组进行封装以创建IPv6分组,将经封装 的分组转发到出口路由器,在出口路由器处对分组进行解封装,并将分组 转发到第二 IPv4网络。通过参考说明书的其余部分和附图可以实现对本发 明的本质和优点的进一步理解。


图1描绘了与IPv6网络通信的IPv4网络;
图2是示出了根据本发明一个实施例的过程的流程图,所述过程用于 经IPv6网络从IPv4网络中的一个IPv4网络向其它IPv4网络传送分组,如 图l所示;
图3是示出了图2的流程图中的用于建立隧道端点的步骤的细节的流 程图4描绘了在实现本发明的实施例时有用的网络器件。
具体实施例方式
以下描述是为了使本领域的普通技术人员能够制造并使用本发明而给 出的。具体实施例和应用的描述仅被提供作为示例,并且各种修改对于本 领域技术人员来说将是非常明显的。这里所描述的一般原理可以被应用于其它实施例和应用而不脱离本发明的范围。因此,本发明并不限于所示出 的实施例,而是具有与这里所描述的原理和特征相一致的最宽的范围。为 了清楚起见,没有详细描述涉及在与本发明相关的技术领域中已公知的技 术资料的细节。
本发明在包括多个网络元件的数据通信网络的上下文中操作。采用本 发明的网络中的元件中的一些可以是诸如路由器之类的网络设备。例如,
节点中的一些可以是诸如从San Jose, California的Cisco Systems, Inc.可获 得的那些路由器之类的专门配置的路由器。这里所使用的术语"路由器" 被用于指代基于网络和更高层的信息来转发分组的设备。路由器可以包括 例如主中央处理单元(CPU)、接口和总线(例如PCI总线)。CPU优选 地包括存储器和处理器。当在合适的软件和硬件控制之下工作时,CPU负 责这样的路由器任务路由表计算、网络管理和分组的一般处理。CPU优 选地在包括操作系统(例如Cisco Systems, Inc.的互联网络操作系统 (IOS )版本)和任何合适的应用软件的软件控制下实现所有这些功 能。CPU可以包括一个或更多个处理器,例如来自摩托罗拉系列的处理器 或者MIPS系列微处理器的微处理器。在可替换的实施例中,处理器是用 于控制路由器的操作的专门设计的硬件。存储器可以是非易失性的RAM 或者ROM。但是,存在可以将存储器耦合到系统的许多不同的方法。可 以在诸如计算机系统之类的通用网络主机或者如以下参考图4描述的网络 设备上实现路由器。
这里所描述的系统和方法使得纯IPv6网络(IPv6-only network)的运 营者能够自动地为纯IPv4网络(IPv4-only network)提供透明传输服务。 本发明允许通过IPv6网络来互连整个IPv4网络,而不是仅仅个别IPv4节 点。可以在路由器上实现本发明以使得顾客能够部署纯IPv6网络,同时仍 然支持其仅采用IPv4的顾客。互联网服务提供商也可以使用本发明和系统 部署纯IPv6的主干网络,同时透明地互连其IPv4顾客的网络。本发明也 可以用于支持在服务提供商的整个网络的任何纯IPv6部分的周边的IPv4 小型网络。
图1描绘了适合用于实现本发明的一个实施例的网络环境。图1示出了与IPv6网络14进行通信的两个IPv4网络10、 12。 IPv6网络14包括 IPv6节点16, IPv6节点16实现IPv6层功能,并且IPv4网络包括IPv4节 点18。为了描绘的清楚起见,图1仅示出了边缘路由器(edge router), 而省略了内部节点。在IPv6网络的入口和出口处的边缘节点16与IPv4网 络10、 12进行通信,并且IPv4网络10的边缘节点18与IPv6网络进行通 信。这里边缘节点16被称为IPv4/IPv6边界路由器。应当了解图l所示的 网络仅仅是在其中可以使用本发明的方法和系统的网络的一个示例,并且 在不脱离本发明的范围的情况下,所述网络可以具有不同的配置。
该方法和系统被用于在经纯IPv6网络14来互连IPv4网络10、 12时 自动地确定IPv6隧道端点。如图1所示,隧道20在IPv6网络14的边缘 路由器16之间延伸。隧道20可以经过IPv6网络14中的任意数目的IPv6 节点(未示出)。该系统不需要人工的隧道配置。只有在不同协议版本之 间的边界处的路由器16、 18才会觉察到其它网络的业务。纯IPv6的路由 器觉察不到IPv4流量,同时纯IPv4的路由器也觉察不到中间的纯IPv6的 基础结构。
使用子网路由器任播(anycast)来自动获取隧道端点的IPv6地址。任 播地址允许将分组被路由到响应于同一地址的许多不同节点中的一个节 点。向IPv6网络注入路由更新的路由器扮演整个被注入的IPv6前缀的子 网路由器的角色。封装头的目的地址和源地址标识对应于新前缀(这里被 称为连接前缀)+ IPv4前缀的子网路由器任播。为了找到相应的出口路由 器,入口路由器在将被封装的分组中标识IPv4地址的最长匹配的IPv4路 由条目,如下所述。
连接前缀是本地定义的前缀。未被另外用于纯IPv6的路由范围内的 IPv6路由的任何前缀都可以被用作连接前缀。连接前缀优选地等于或短于 128减去最长的活动IPv4路由前缀的长度。连接前缀的一个示例是使用在 IPv6全球空间中明确未定义的/32的值(例如2002:7FFF:/32)。基于RFC 3056 ( "Connection of IPv6 Domains via IPv4 Clouds" , B.Carpenter等, 2001年2月)和RFC 3330 ( "Special-Use IPv4 Address" , IANA, 2002 年9月)的组合定义,上述值未被定义。应当理解所述前缀可以具有与这里所描述的长度或配置不同的长度或配置,而不脱离本发明的范围。
图2示出了用于处理在IPv6网络14的入口路由器16处从IPv4网络 10、 12中的一个接收到的分组的方法。在步骤20,在入口路由器16处分 组被接收。隧道端点被建立并且IPv4分组被封装在IPv6分组中(步骤 22)。以下参考图3的流程图来描述该步骤的细节。在一个实施例中,路 由器根据RFC 2473 ( "Generic Packet Tunneling in IPv6 Specification", A.Conta等,1998年12月)来执行基本的分组封装过程,所述的RFC 2473通过引用全部结合于此。
封装得到的IPv6分组在纯IPv6网络14中被使用常规的IPv6服务转发 到出口路由器16 (步骤24)。在纯IPv6网络14的出口处的IPv4/IPv6边 界路由器16处,IPv6头被去掉(步骤26),并且留下的IPv4分组在IPv4 网络中被使用常规的IPv4服务来转发(步骤28)。如果本地管理选择将 纯IPv6的跳数(hop count)透露给IPv4节点18,则出口路由器16将需要 把跳数从IPv6头复制回IPv4 TTL,并重新求校验和。
图3的流程图详述了图2的步骤22,并且示出了如何创建IPv6地址 以建立隧道端点。隧道端点地址被定义为对应于入口路由器和出口路由器 的IPv6子网路由器任播。在步骤30,路由器在将被封装的分组中找到 IPv4地址的最长匹配IPv4路由条目,以自动地找到相应的IPv6出口路由 器。在纯IPv6网络的入口处的IPv4/IPv6边界路由器处,通过串接连接前 缀与对应于接收到的目的IPv4地址和源IPv4地址两者的最长匹配IPv4路 由条目来创建IPv6地址,以产生相应的IPv6前缀值(步骤32)。在每个 地址中的剩余位被设置为0以指示IPv6目的或源是用于该特定IPv6前缀 的子网路由器任播(步骤34)。这个过程自动地在注入了覆盖任何具体 IPv4地址的路由更新的一个或多个路由器处建立了隧道端点。
在封装过程之后,所得到的IPv6地址被输入到IPv6头中相应的目的 地址字段和源地址字段中,所述IPv6头将被用于封装整个原始IPv4分组 (步骤36和38)。适当的IPv4字段被以如下方式复制
将IPv4的服务类型(Type-of-Service)复制到IPv6的业务类别 (Traffic-class)(但是本地策略可以为业务类别设置具体值),
9将IPv4的总长度(Total-length)复制到IPv6的有效载荷长度 (Payload-length);以及
将IPv4的生存时间(Time-to-Live)复制到IPv6的跳数(Hop-count) o
IPv6头的下一个协议字段被设置为4以指示有效载荷是IPv4分组。
当某路由器不是源地址(即假的IPv4源)的适当返回路径出口路由器 时,该路由器不对分组进行封装。
合理的链路MTU (最大传输单元)优选地是1280字节,以避免超过 任何内部的纯IPv6的链路的MTU的可能性。这意味着在边界路由器进入 IPv4的一侧遵循IPv4分段规则(fragmentation rule),就好像这是任何其 它具有1280字节MTU的IPv4链路。
以下描述如何处理ICMP (互联网控制消息协议)消息,包括在网络 的IPv4部分中最初生成的ICMP消息、由于在入口 IPv4/IPv6边界路由器 处的处理而生成的ICMP消息和在IPv6网络中生成的ICMP消息。
在ICMP消息在网络的IPv4部分中最初生成的情况下,这些消息被封 装并作为任何其它的IPv4分组来处理。
在ICMP消息由于在入口 IPv4/IPv6边界路由器中的处理而生成的情况 下,该路由器扮演其在IPv4中的角色,因此适用常规的IPv4 ICMP规则。 除非另外明确地配置,否则如果IPv4分组大于1240字节并且DF (不分 段)位被设置,则返回类型为3代码为4 (Type3Code4)的消息。
在ICMP消息是响应于经封装的IPv4分组而在纯IPv6网络中生成的 情况下,ICMP的目的地是入口 IPv4/IPv6边界路由器(由封装的IPv6源 地址来标识)。在网络的纯IPv6的部分中,优选地将任何其中IPv6源地 址不是针对经封装的IPv4源地址的子网路由器任播的分组作为伪造分组来 丢弃。取决于ICMP消息类型,封装路由器可以采取适当的措施,或者将 相应ICMP消息返回到最初生成该消息的IPv4节点。以下按格式示出IPv6 值的示例
类型 功能(在每个示例之下有简单描述)
1 没有到目的地的路由指示没有到出口路由器的路径。入口路由器利用原来的IPv4来将IPv4 ICMP类型3代码0返回到IPv4源地址。
2 分组太大
指示入口 IPv4路由器未能适当地分段。如果入口路由器将这作为具有 1280字节MTU的合理链路来处理,则可以避免这种错误,但是如果网络 正在被明确地管理用于更大的MTU并且入口路由器被错误配置用于比网 络的其余部分更大的值,则这种错误可能发生。如果DF位在IPv4分组上 被设置,则入口封装处理将优选地在分组被转发到IPv6网络之前捕获该分 组。
3 超时
指示分组没有到达出口路由器。入口路由器返回IPv4类型11代码0。关 于透露IPv6节点的本地策略被用于确定在被返回之前IPv6头的跳数是否 被复制到IPv4 ICMP的TTL。
4 参数问题 由于环境是被统一管理的路由器的完备(contained)网络,因此这种情况 应该不会发生。如果IPv6环境采用多种管理,则这种错误可能发生,但是 任何这种参数问题的目标将是进行封装的入口路由器,因此到起始的IPv4 节点的任何消息将不是这种IPv6 ICMP类型的直接结果。
以下描述了用于路由更新的方法。在所描述的本发明的实施例中,在 子网掩码是相邻的并且路由前缀也可以被定义为值和长度的情况下,所述 方法采用CIDR (无类别域间路由)型IPv4路由。
当经由IPv4路由更新获悉路由时,将连接前缀预先放入条目中,将连 接前缀的长度与所获悉的前缀长度相加,并且所得到的值被输入作为IPv6 侧上的路由更新。
当经由IPv6更新获悉连接前缀中的路由时,连接前缀被去掉,从获悉 的前缀长度中减去连接前缀的长度,并且所得到的值被输入作为IPv4侧上 的路由更新。
在边界路由器处是静态默认IPv4路由的情况下,所述边界路由器将被 配置有适合于本地网络的特定的IPv6目的地。因为默认的IPv6路由器将
ii还需要用于每个IPv4前缀的相应的静态IPv4到IPv6出口的映射,所以这 种情况不太可能广泛使用,但是其将很好地适用于已经使用静态IPv4路由
的环境。
优选地在纯IPv4级完成网络管理之间的交互,每一方在内部适当地使 用该方法。这呈现了原本的IPv4网络的面貌,就好像是经由下层的多点帧 中继或ATM网络来连接的原本的IPv4路由器。
为了避免安全隐患,优选地通过任意的外部路由对等来明确地阻止本 地定义的前缀,并且任何IPv6顾客连接都优选地具有主动过滤功能以丢弃 包含作为源地址的前缀的分组。
图4描绘了可以用于实现如上所述的方法和系统的网络设备40。在一 个实施例中,网络设备40是可以用硬件、软件或者硬件和软件的任意组 合来实现的可编程机器。处理器42运行存储在程序存储器44中的代码。 程序存储器44是计算机可读介质的一个示例。程序存储器44可以是易失 性存储器。存储相同代码的计算机可读介质的另一种形式可以是诸如软 盘、CD-ROMs、 DVD-ROMs、硬盘、闪存等之类的某种非易失性存储 器。经网络承载代码的载波是计算机可读介质的另一个示例。
网络设备40经由多个线路卡46来与物理介质相接口。当分组被网络 设备40接收、处理并转发时,这些分组可以被存储在分组存储器48中。 可以在线路卡46的一个中部分地或者完整地进行分组传输操作。为了实 现根据本发明的功能,线路卡46可以将类似于如上所讨论的那些处理和 存储器资源与所述网络设备合并作为一个整体。网络设备40实现由本发 明提供的所有特征。
图4所示的网络设备40仅仅是适于使用本发明的计算机系统的一个 示例。也可以利用其它具有不同子系统配置的器件和系统。通过使用通信 协议使得可以进行网络中的各个计算机之间的通信,所述通信协议规定计 算机如何在网络上交换信息。
应当理解这里所描述的示例和实施例仅仅是用于说明性的目的,并且 本领域的技术人员可以根据所描述的示例和实施例的启示来提出各种修改 和改变,并且所述修改和改变将被包括在本申请的精神和范围、所附权利要求的范围及其等同物的全部范围中
权利要求
1. 一种用于自动地经IPv6网络来互连IPv4网络的方法,所述方法包括在所述IPv6网络中的入口路由器处接收IPv4分组;在所接收的分组中找到IPv4地址的最长匹配IPv4路由条目,以标识在所述IPv6网络中的出口路由器;对所述IPv4分组进行封装以创建IPv6分组,其中所述经封装的分组的目的地址和源地址标识与所述IPv6网络中的所述入口路由器和所述出口路由器相对应的子网路由器任播;以及将所述经封装的分组转发到所述出口路由器。
2. 如权利要求1所述的方法,还包括将前缀与所述最长匹配IPv4路 由条目串接起来以创建IPv6前缀值。
3. 如权利要求2所述的方法,还包括将IPv6地址中的剩余位设置为零。
4. 如权利要求1所述的方法,其中所述经封装的分组包括业务类别 字段、有效载荷长度字段和跳数字段。
5. —种用于经IPv6网络从第一 IPv4网络向第二 IPv4网络发送分组 的方法,所述方法包括将IPv4分组从所述第一 IPv4网络转发到所述IPv6网络中的入口路由器;在所述IPv6网络中创建用于经所述IPv6网络来传送所述分组的隧 道,包括将隧道端点地址定义为与所述入口路由器和出口路由器相对应的 IPv6子网路由器任播;对所述IPv4分组进行封装以创建IPv6分组;将所述经封装的分组转发到所述出口路由器;在所述出口路由器处对所述分组进行解封装;以及将所述分组转发到所述第二 IPv4网络。
6. 如权利要求5所述的方法,其中,定义隧道端点还包括在所接收的IPv4分组中找到与目的IPv4地址和源IPv4地址相对应的最长匹配IPv4 路由条目。
7. 如权利要求5所述的方法,其中对所述分组进行解封装包括去掉 IPv6头。
8. 如权利要求5所述的方法,还包括将跳数从所述经封装的头中的 IPv6头复制到IPv4生存时间字段。
9. 如权利要求5所述的方法,还包括将前缀与所述最长匹配IPv4路 由条目串接起来以创建IPv6前缀值。
10. 如权利要求5所述的方法,其中,对所述IPv4分组进行封装包括 对在所述IPv4网络中最初生成的ICMP消息进行封装。
11. 如权利要求5所述的方法,其中,合理的链路MTU是1280字节。
12. —种计算机程序产品,用于自动地经IPv6网络来互连IPv4网 络,所述产品包括在接收到的IPv4分组中找到IPv4地址的最长匹配IPv4路由条目以标 识所述IPv6网络中的出口路由器的代码;对所述IPv4分组进行封装以创建IPv6分组的代码,其中所述经封装 的分组的目的地址和源地址标识与所述IPv6网络中的所述入口路由器和所 述出口路由器相对应的子网路由器任播;将所述经封装的分组转发到所述出口路由器的代码;以及存储所述代码的计算机可读介质。
13. 如权利要求12所述的计算机程序产品,还包括创建本地定义的 前缀并将所述前缀与所述最长匹配IPv4路由条目连接起来以创建IPv6前 缀值的代码。
14. 一种用于自动地经IPv6网络来互连IPv4网络的设备,所述设备 包括用于在所述IPv6网络中的入口路由器处接收IPv4分组的装置; 用于在所接收的分组中找到IPv4地址的最长匹配IPv4路由条目以标 识所述IPv6网络中的出口路由器的装置;用于对所述IPv4分组进行封装以创建IPv6分组的装置,其中,所述经封装的分组的目的地址和源地址标识与所述IPv6网络中的所述入口路由器和所述出口路由器相对应的子网路由器任播;以及用于将所述经封装的分组转发到所述出口路由器的装置。
15.如权利要求14所述的设备,还包括用于创建本地定义的前缀并将所述前缀与所述最长匹配IPv4路由条目连接起来以创建IPv6前缀值的装置。
全文摘要
本发明公开了一种用于自动地经IPv6网络来互连IPv4网络的方法和系统。所述方法包括在IPv6网络中的入口路由器处接收IPv4分组,并在接收的分组中找到IPv4地址的最长匹配IPv4路由条目以标识所述IPv6网络中的出口路由器。IPv4分组被封装以创建IPv6分组,其中经封装的分组的目的地址和源地址标识与IPv6网络中的入口路由器和出口路由器相对应的子网路由器任播。经封装的分组被转发到出口路由器。
文档编号H04L12/56GK101427526SQ200680004058
公开日2009年5月6日 申请日期2006年2月27日 优先权日2005年3月21日
发明者安东尼·阿因, 戴维·D·沃德 申请人:思科技术公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1