首页> 中国专利> 一种测试路由转发表正确性的方法和系统

一种测试路由转发表正确性的方法和系统

摘要

本发明本涉及IP路由测试技术。本发明公开了一种测试路由转发表正确性的方法,包括如下步骤:A、在待测试设备上增加或删除路由表项,当增加路由表项时向待测设备的接口发送匹配所述路由表项的数据流,删除路由表项时,不取消所述数据流的发送;B、检查数据流的转发结果是否与预期的测试结果相同,若相同则将数据流查找的路由结果信息记录到路由结果信息记录表,进入步骤C;否则说明路由表中的路由不正确,结束测试;C、比较记录的路由表项在路由表中的所有存储节点的转发结果信息,获得所述路由表项是否正确的测试结果;D、判断所有的路由表项是否测试完成,如是,则结束测试,否则返回步骤A。本发明同时公开了测试系统。本发明能够完备测试路由表。

著录项

  • 公开/公告号CN104301186A

    专利类型发明专利

  • 公开/公告日2015-01-21

    原文格式PDF

  • 申请/专利权人 迈普通信技术股份有限公司;

    申请/专利号CN201410625947.1

  • 发明设计人 刘宝琴;

    申请日2014-11-07

  • 分类号H04L12/26(20060101);

  • 代理机构成都宏顺专利代理事务所(普通合伙);

  • 代理人李顺德

  • 地址 610041 四川省成都市高新区九兴大道16号迈普大厦

  • 入库时间 2023-12-17 04:31:51

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2023-04-21

    专利权人的姓名或者名称、地址的变更 IPC(主分类):H04L12/26 专利号:ZL2014106259471 变更事项:专利权人 变更前:迈普通信技术股份有限公司 变更后:迈普通信技术股份有限公司 变更事项:地址 变更前:610041 四川省成都市高新区天府三街288号1栋15-24层 变更后:610041 四川省成都市高新区九兴大道16号

    专利权人的姓名或者名称、地址的变更

  • 2018-08-03

    专利权人的姓名或者名称、地址的变更 IPC(主分类):H04L12/26 变更前: 变更后: 申请日:20141107

    专利权人的姓名或者名称、地址的变更

  • 2017-12-19

    授权

    授权

  • 2015-02-18

    实质审查的生效 IPC(主分类):H04L12/26 申请日:20141107

    实质审查的生效

  • 2015-01-21

    公开

    公开

说明书

技术领域

本发明本涉及IP路由测试技术,特别涉及一种测试路由转发表正确性的方法和系统。

背景技术

随着网络技术的发展,在网络扩张的同时,在网络传输上为满足网络容量扩大和网络传 输速率增长的需求,网络中各个节点的转发设备中的路由表的容量也扩大了,并且为了提高 转发性能,在各种转发设备中会使用不同的路由算法和数据结构来构建路由表。如有的转发 设备使用TCAM(ternary content addressable memory,三态内容寻址存储器),有的使用mtrie, 有的使用hash,有的使用radix树,有的使用B树等路由算法和数据结构来构建路由表,并 且即使同一设备中的IPV4和IPV6也可能使用不同的路由算法和数据结构。

不同的IP转发设备可以在内部有不同的路由算法,但都要求能正确转发,尤其是在网络 路由动荡后,是否仍旧能正确转发是关乎转发设备稳定性的重要方面,因此路由表的正确性 测试是转发设备测试的关键技术之一。而丰富多样的内部路由算法,大量的路由表项,以及 在路由振荡的测试场景中,如何才能保证测试的完备性也是路由测试的难点。

一种常用的路由表正确性测试方法是:通过shell命令来查看路由表项的正确性。在此方 法中,要求检查在增加或删除路由操作后的路由表项是否正确,并且需要查看变化后的路由 表中的相关数据结构的节点的转发信息是否正确。此方法主要应用的是路由表的遍历,不同 的路由算法和数据结构,查看的信息和节点数目都会不同,但由于在转发数据时,是应用路 由的最长匹配查找,故此方法的缺点是遍历的正确,不一定等于转发的正确,单独只用此方 法不能完备地测试路由表的正确性。

另一种常用的测试方法是:在接口上发送数据流,检查数据流是否与预期相同被正确转 发。在此方法中,如果想完整测试一条路由表项,需要发送此条路由表项所能覆盖的以此网 段为目的的主机数量相同条数的数据流。如路由表项为:10.0.0.0/8的路由r1,由于掩码是8, 那么此路由所能匹配的主机数量是X=2(32-8)=224=16M个,如果想完整测试此条路由,需要在接 口上发送16M条数据流。而目前即使在接入层的转发设备中,整个路由表的容量都能达到 Y=50K条路由表项,如果用此方法,测试完整的路由表,那某个时刻的数据流数是X*Y。这 是相当大的一个数,而在高端转发设备中,路由表容量会更大,此时测试需要的数据流会更 大。可能会达到辅助测试设备的极限,而测试所耗时间也会导致测试周期相当长。此方法的 优点是使用是最长匹配方法来验证路由表,缺点也是明显的:一是需要发送非常多的数据流, 对辅助测试设备的要求较高,其二是在路由动荡过程中,该测试方法看不到路由变化的细节, 可能会因为动态变化而无法验证出路由动荡过程中的正确性。

以上两种方法分别涉及到的是遍历路由算法和查找路由算法,二者是分离的,故在路由 动荡时,某个中间过程导致的路由表项的变化,可能会被忽略或掩盖从而留下故障隐患。另 外,由于路由表可能使用不同的路由算法和数据结构来实现,而每个路由表项中的中间节点 信息根据路由算法或数据结构的不同,存储的信息也不同,在一个测试中仅做遍历或仅做查 找,都还不充分,需要将一个路由项的每个节点都遍历到并且进行精确匹配,这就要求针对 一个路由表项生成多个数据流进行测试。当路由表较大时,数据流较多,利用现有方法要充 分测试路由表的正确性常常要耗费巨大的人力物力和时间。

发明内容

有鉴于此,本发明的目的是提供一种路由表正确性的测试方法,缩短测试周期,减少测 试人力和测试资源的占用。

本发明实现上述目的的技术方案是,一种测试路由转发表正确性的方法,其特征在于, 包括如下步骤:

A、在待测试设备上增加或删除路由表项,当增加路由表项时向待测设备的接口发送匹 配所述路由表项的数据流,删除路由表项时,不取消所述数据流的发送;

B、检查数据流的转发结果是否与预期的测试结果相同,若相同则将数据流查找的路由 结果信息记录到路由结果信息记录表,进入步骤C;否则说明路由表中的路由不正确,结束 测试;

C、比较记录的路由表项在路由表中的所有存储节点的转发结果信息,获得所述路由表 项是否正确的测试结果;

D、判断所有的路由表项是否测试完成,如是,则结束测试,否则返回步骤A。

进一步的,所述步骤A中,增加或删除路由表项时,至少向待测设备的接口发送匹配所 述路由表项的单条数据流。

具体的,所述路由结果信息至少包括:目的IP地址、路由前缀、掩码、下一跳地址、网 关地址、出接口和路由表项的内部指针。

具体的,所述步骤B具体为:

B1、检查数据流的转发结果与预期的测试结果是否相同,若相同则进入步骤B2,否则说 明路由表错误,结束测试;

B2、在路由结果信息记录表中查找是否已记录与预期的测试结果相同的路由结果信息, 如是则完成该步骤,否则进入步骤B3;

B3、在路由结果记录表中添加与预期的测试结果相同的路由表项的路由结果信息。

具体的,所述步骤C具体为:

C1、遍历记录的路由结果信息在路由表中的各个存储节点,并比较各个存储节点的路由 信息与记录的路由结果是否相同,如是,则说明路由正确,结束检测;否则进入步骤C2;

C2、查找增加或删除路由的父路由和子路由,查找路由结果不相同的节点的父路由和子 路由,比较此二者的父路由和子路由,如果都相同,则说明此节点的路由不正确,结束检测; 否则进入步骤C3;

C3、以路由结果不同的节点构造目的IP地址,查找路由记录结果表,找不到表项,说明 路由错误,结束检测;找到表项,比较结果记录表中的路由结果与现在节点的路由结果,如 果不同,路由错误,否则路由正确。

本发明的另一个目的是,提供一种测试路由转发表正确性的系统,包括测试仪和待测设 备,其特征在于,

所述测试仪,用于向待测设备的接口发送与增加的路由表项匹配的数据流;且当待测设 备删除所述增加的路由表项时,不取消所述数据流的发送;

所述待测设备包括路由算法单元和路由测试单元,所述路由算法单元,包括路由算法和 路由表,用于提供路由表的操作接口;

所述路由测试单元,包括路由检测模块、路由结果管理模块和接口模块;

所述接口模块,用于完成不同路由表或路由算法的隔离和适配,为路由检测单元提供接 口;

所述路由检测模块,用于完成路由检测的处理逻辑,调用路由结果管理模块提供的操作 接口进行逻辑判断和处理;检查数据流的转发结果是否与预期的测试结果相同,若相同则通 知路由结果管理模块将数据流查找的路由结果信息记录到路由结果信息记录表,比较记录的 路由表项在路由表中的所有存储节点的转发结果信息,获得所述路由转发表项是否正确的测 试结果;否则判断路由表中的路由不正确,结束测试;

所述路由结果管理模块,用于将数据流查找的路由结果信息记录到路由结果信息记录表, 管理路由结果信息记录表。

进一步的,所述测试仪进一步用于,增加或删除路由表项时,至少向待测设备的接口发 送匹配所述路由表项的单条数据流。

具体的,所述路由结果信息至少包括:目的IP地址、路由前缀、掩码、下一跳地址、网 关地址、出接口和路由表项的内部指针。

具体的,所述路由检测模块具体用于,

检查数据流的转发结果与预期的测试结果是否相同,如果不同,则说明路由表错误,结 束测试;

如果相同,在路由结果记录表中查找是否已记录与预期的测试结果相同的路由结果;如 果没有,则添加一条结果信息表项。

进一步的,所述路由检测模块还用于,

遍历记录的路由表项对应的各个存储节点,并将节点的路由结果与记录的路由结果比较, 相同,说明路由正确,结束检测;否则查找增加或删除路由的父路由和子路由,查找路由结 果不相同的节点的父路由和子路由,比较此二者的父路由和子路由,如果都相同,则说明此 节点的路由不正确,结束检测;否则以路由结果不同的节点构造目的IP地址,查找路由记录 结果表,找不到表项,说明路由错误,结束检测;找到表项,比较结果记录表中的路由结果 与现在节点的路由结果,如果不同,路由错误,否则路由正确。

本发明的有益效果是,在测试过程中将路由遍历和路由匹配查找结合起来,能够覆盖测 试到每条路由表项的所有节点,做到了完备测试路由表。并且本发明的技术方案与具体的路 由算法和数据结构关系不密切,方便应用于自动化测试中测试各种转发设备。除了静态路由 表测试外,在大量路由动荡情形下,本发明仍旧能验证变化过程中的路由转发表项的正确性, 使用本发明可以节约人力、时间和测试资源。

附图说明

图1是测试路由转发表正确性的方法流程图;

图2是检查并记录路由结果的流程图;

图3是路由检测的流程图;

图4是测试系统的组成结构示意图。

具体实施方式

下面结合附图及实施例,详细描述本发明的技术方案。

本发明的技术方案,适用于测试各种路由表,如IPV4的路由表,IPV6的路由表等,本发 明的测试方法不需要关心具体路由表是使用什么结构组织路由前缀的,如mtrie树,radix树, hash,b树等。以下为方便理解和描述,以IPV4路由表,mtrie结构为例进行说明。如图1所示 具体流程包括:

101,测试准备。首先确认物理连接正常,然后启动测试脚本,配置测试仪和待测设备(以 下使用简称DUT);测试仪可以是具备收发包和统计功能的计算机,也可以是专用网络测试仪 器。对DUT的配置,主要包括配置接口,IP地址,路由协议等等。

102,路由表建立。利用测试脚本在DUT上增加一条或多条路由表项,并在网络测试仪器 上向待测设备的接口发送匹配该路由的数据流,每条路由至少发送一条数据流。也可以删除 一条或多条路由表项,但保持原先的数据流不变。即保证增加或删除的路由表项,至少发送 一条数据流。在测试脚本中对这些数据流有相应的转发结果预期的设置。

在此步骤中,可以添加和删除一条或多条路由。此步骤验证了路由表的添加和删除操作 是否正常,并且在转发数据流的过程中验证了路由的最长匹配查找算法,可以排除大部分路 由表的正确性问题。经过多次重复102步骤后,就可以根据需要建立起完整的路由表。

此步骤中可以进行路由动荡的测试,即快速的增加或删除多条路由。

103,初步检查并记录路由结果。在步骤102的每一条变化路由(新增或删除的路由)时, 检查数据流转发结果与结果预期是否符合,并记录和更新路由结果记录表。如图2所示,如果 与预期不符合,则说明路由错误,记录测试结果并结束测试。如果符合预期结果,先查找路 由结果记录表中是否有此路由结果记录,如果没有则记录此数据流路由查找的结果到路由结 果记录表中。路由结果信息至少包括如下内容:目的IP地址、路由前缀、掩码、下一跳地址、 网关地址、出接口地址以及路由表项的内部指针。路由结果记录表主要是需要精确匹配,可 以使用方便的数据结构来组织此表的结构。此表的组织结构与待测试的路由表的结构无关。 简单的可以使用hash表来组织此表。

在此步骤中,当增加一条路由时,数据流的转发结果可以是按此路由的结果正常转发或 按子路由结果转发(有更长掩码的路由),或者按照负载均衡的路由结果转发。

当删除路由时,数据流转发结果可以是不能转发丢弃报文,也可以是正常转发,还可以 是找到了父路由(前缀相同,子网掩码更短的路由)进行了转发。

104,路由检测。遍历记录的路由表项的所有节点,检测其转发结果信息是否正确,具体 如图3所示。在数据流的查找结果正确后,在301步骤中,调用路由表的遍历接口,遍历此路 由的所有存储这条路由表项的节点。不同的路由表结构,存储节点不一样,此遍历接口由各 路由算法提供自己的遍历接口。以mtrie树的路由表(查找步长为8,每块中有256个节点)为 例,如果路由前缀是r3:10.40.0.0/18,如果没有子路由,则此路由的节点数为4个,如果有子路 由r4:10.40.0.0/30,则r3的路由节点数为255个,通过mtrie的条件遍历接口,可以找到第3级的 块,如果路由记录结果是流10.40.0.1的转发结果,则还需要遍历节点10.40.0.0~10.40.0.255, 10.40.1.x(x是0-255),10.40.2.x,10.40.3.x的路由结果进行比较。首先假设没有子路由r4,则 在添加r3时,比较各个节点的结果,发现各个节点的路由结果与记录表中的相同。假设在加 r3前,有子路由r4,并且假设r3没有父路由,则在节点比较到10.40.0.0时,发现路由结果与记 录结果不同,进入步骤302,此时,查找r3的父路由为空,但r4的父路由是r3。进入303,此时, 以10.40.0.1为目的地址,查找路由结果记录表,找到了r4的路由结果记录表项,将此路由节点 的路由结果与记录表中的路由结果比较,相同,则说明路由正确,不同,则说明路由错误。 在步骤302中,如果r3、r4的父路由、子路由都相同,但节点中的路由结果不同的话,说明表 中节点路由错误,结束测试,记录测试结果。

105,测试判断,判断路由测试完成了没有,如果还需要增加或删除路由表项,就进入102 步骤,否则结束测试。

本发明测试路由转发表正确性的系统结构如图4所示,包括:待测设备410,测试仪器420。

测试仪器420可以是各种有收发报文功能的设备如PC或测试仪,如果需要自动化测试, 则可由测试脚本进行控制。用于向待测设备的接口发送与增加的路由表项匹配的数据流;且 当待测设备删除所述增加的路由表项时,不取消所述数据流的发送;所述待测设备包括路由 检测模块和路由结果管理模块。

所述待测设备410包括路由算法单元411和路由测试单元412,所述路由算法单元411, 由各种路由算法和路由表组成,是待测试的实体。如IPV4的radix路由表,或mtrie路由表, 或b+树路由表等。对于一种DUT,一般会包含一到两种路由表。此单元提供不同路由表的添 加,删除,遍历,查找等接口,如果路由表结构不同,则路由表的操作接口也不同。包括至 少一种路由算法和路由表,用于提供路由表的操作接口。

所述路由测试单元412包括接口模块4121、路由检测模块4122和路由结果管理模块4123;

所述接口模块4121,用于完成不同路由表或路由算法的隔离和适配,为路由检测单元提 供统一的通用接口。

所述路由检测模块4122,用于完成路由检测的处理逻辑,调用路由结果管理模块提供的 操作接口进行逻辑判断和处理;检查数据流的转发结果是否与预期的测试结果相同,如是, 则通知路由结果管理模块将数据流查找的路由结果信息记录到路由结果信息记录表,比较记 录的路由表项在路由表中的所有存储节点的转发结果信息,获得所述路由转发表项是否正确 的测试结果;否则判断路由表中的路由不正确,结束测试;

所述路由结果管理模块4123,用于将数据流查找的路由结果信息记录到路由结果信息记 录表,管理路由结果信息记录表。该路由结果信息记录表是独立的表,仅用于测试,是动态 生成和变化的。

综上所述,本系统是个通用的路由测试系统,可以完备地测试各种路由表的正确性,还 能方便地进行自动化部署。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号