一种创建路由表项的方法和交换设备技术

技术编号:3543459 阅读:227 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供了一种创建路由表项的方法和交换设备,其中方法包括:当学习到一条等价多径(ECMP)网段路由时,根据学习到的该ECMP网段路由的下一跳信息,判断下一跳(NextHop)表中是否已经存在包含该ECMP网段路由的下一跳信息的NextHop表项块,如果是,则利用已经存在的该NextHop表项块的标识,在最长路径匹配(LPM)表中创建学习到的ECMP网段路由的LPM表项。本发明专利技术能够节省NextHop表资源,提高了交换设备支持ECMP网段路由的数量。

【技术实现步骤摘要】

本专利技术涉及网络通信技术,特别涉及一种创建路由表项的方法和交换设备
技术介绍
为了减轻交换设备中CPU的处理负担,通常在交换设备中釆用硬件转 发的方式,其转发过程如图1所示主要包括根据报文的目的IP地址查找 最长路径匹配(LPM, Longest Path Math)表中匹配的LPM表项,获取该 表项中记录的下一跳(NextHop) ID;再根据该NextHop ID查找NextHop 表中匹配的NextH叩表项,获取该NextHop表项中的下一跳信息,包括出 接口的虚拟局域网(VLAN ) ID、出接口信息和地址解析协议(ARP )表项 指针;再根据该ARP表项指针所指向的ARP表项获取MAC地址信息,将对于不同的路由类型,NextHop表中各NextHop表项的存储方式以及 LPM表项与NextHop表项之间的调用关系也不相同。对于主机路由, 一条 LPM表项中的NextHop ID仅指向 一个NextHop表项,例如图2中的两条主 机路由1.1.1.1/32和1.1.1.2/32。对于网段路由则分为两种情况非等价多径 (ECMP, Equal Cost Multi-Path)网賴:路由指向其下一跳主才几路由所对应的 NextH叩表项,也就是说,非ECMP网段路由与其下一跳主机路由的NextHop ID相同,共享同 一个NextHop表项,例如图2中的非ECMP网段路由2.0.0.0/8 与其主机路由1.1.1.1/32指向同一条NextHop表项。ECMP网段路由由于其 存在至少两个下一跳路径,其NextHop ID并不是指向一个NextHop表项, 而是指向一个NextHop表项块(Block ),该NextHop Block是多个NextH叩表项的集合;即便不同的ECMP网段路由所对应的下一跳完全相同,即 NextHop Block中的NextHop表项完全相同,NextHop表中也分别针对各 ECMP网段路由分别存储NextHop Block,并为各ECMP网段路由分配不同 的NextHop ID指向不同的NextHop Block,但NextHop Block中的内容是相 同的,例如图2中的ECMP网段路由3.0.0.0/8和4.0.0.0/8具有相同的下一 跳,但仍指向不同的NextHop Block,但NextHop Block中的内容完全相同。 由于现有技术中即使ECMP网段路由下一跳信息完全相同,也为各 ECMP网l殳路由创建独立的NextHop Block这便会造成NextHop资源的浪 费,严重影响支持的ECMP路由的数量。例如假设交换设备支持12K条 单播路由,支持2K条ARP主机路由,即LPM表的规格为12K, NextHop 表的规格为2K。假设所有的网段路由都是具有4个下一跳的ECMP网段路 由,并且所有ECMP网段路由的下一跳信息完全相同,那么在这种情况下, 由于每个ECMP网段路由都有4个下一跳,因此,必然有4条主机路由,该 交换设备支持的最大ECMP数量受到NextHop表的容量限制,具体为(2 x 1024-4) /4 = 511。也就是说,即便LPM表的规格为12K,由于ECMP网 段路由对NextHop表资源的浪费,使得最多也仅支持511条ECMP网段路 由。
技术实现思路
有鉴于此,本专利技术提供了一种创建路由表项的方法和交换设备,以便于 节省NextHop表的资源,从而提高交换设备支持ECMP网段路由的数量。 一种创建路由表项的方法,该方法包括当学习到一条ECMP网段路由时,根据学习到的该ECMP网段路由的 下一跳信息,判断NextHop表中是否已经存在包含该ECMP网段路由的下 一跳信息的NextHop表项块,如果是,则利用已经存在的该NextHop表项 块的标识,在LPM表中创建学习到的ECMP网段路由的LPM表项。一种交换设备,该交换设备包括路由学习单元、第一判断单元和LPM表项创建单元;所述路由学习单元,用于学习路由以及该路由的下一跳信息; 所述第一判断单元,用于当所述路由学习单元学习到一条ECMP网段路由 时,根据所述路由学习单元学习到的该ECMP网段路由的下一跳信息,判断 NextHop表中是否已经存在包含该ECMP网段路由的下 一跳信息的NextHop表 项块;所述LPM表项创建单元,用于在所述第一判断单元的判断结果为是时, 利用已经存在的该NextHop表项块的标识,在LPM表中创建所述ECMP网 段^各由的LPM表项。由以上技术方案可以看出,本专利技术提供的方法和交换设备在创建ECMP 网段路由时,如果NextH叩表中已经存在包含该ECMP网段路由的NextHop block ,则利用已经存在的该NextHop block的标识,在LPM表中创建学习 到的ECMP网段路由的LPM表项。这样针对下一跳信息相同的多个ECMP 网段路由仅需要在NextHop表中存储一个NextHop block即可,使得下一跳 信息相同的所有ECMP网段路由指向同一个NextHop block,而不必在 NextHop表中针对各ECMP网段路由分别建立独立的NextHop block,大大 节省了占用的NextHop表资源,从而提高了交换设备支持ECMP网段路由 的数量。附图说明图1为交换设备硬件转发的示意图;图2为现有技术中各类型路由的调用关系示意图;图3为本专利技术实施例提供的详细方法流程图;图4为本专利技术实施例提供的具有相同下一跳的ECMP网段路由的调用 关系示意图;图5为本专利技术实施例提供的删除ECMP网段路由的方法流程图; 图6为本专利技术实施例提供的交换设备的结构示意图;图7为本专利技术实施例提供的交换设备的另一种结构示意图。具体实施方式为了使本专利技术的目的、技术方案和优点更加清楚,下面结合附图和具体 实施例对本专利技术进行详细描述。本专利技术提供的方法主要包括当学习到一条ECMP网段路由时,根据 学习到的该ECMP网段路由的下一跳信息判断NextHop表中是否已经存在 包含该ECMP网段路由的下一跳信息的NextHop Block,如果是,则利用已 经存在的该NextHop Block的NextHop ID创建学习到的ECMP网段路由的 LPM表项。下面结合具体实施例对上述方法进行详细描述,图3为本专利技术实施例提 供的详细方法流程图,如图3所示,该方法可以包括以下步骤 步骤301:交换设备学习到一条ECMP网段路由。当交换设备通过上层软件学习到ECMP网段路由时,已经获取到该 ECMP对应的下一跳信息,包括出接口的VLANID、出接口信息和ARP表项指针。步骤302:判断该学习到的ECMP网段路由是否已经存在于LPM表中, 如果是,结束该创建路由表项的流程;否则继续执行步骤303。本步骤是为了确定该学习到的ECMP网段路由是否是一条新的ECMP 网段路由,如果已经存在于LPM表中,则说明该ECMP网段路由不是一条 新的路由,不必进行路由表项的创建,直接结束流程。步骤303:根据该ECMP网段路由的下一跳信息判断NextH叩表中是否 已经存在包含该ECMP网段路由的下一跳信息的NextHop Block,如果是, 执行步骤304;否则,执行步骤305。在NextHop本文档来自技高网
...

【技术保护点】
一种创建路由表项的方法,其特征在于,该方法包括: 当学习到一条等价多径ECMP网段路由时,根据学习到的该ECMP网段路由的下一跳信息,判断下一跳NextHop表中是否已经存在包含该ECMP网段路由的下一跳信息的NextHop表项块,如果是,则利用已经存在的该NextHop表项块的标识,在最长路径匹配LPM表中创建学习到的ECMP网段路由的LPM表项。

【技术特征摘要】
1、一种创建路由表项的方法,其特征在于,该方法包括当学习到一条等价多径ECMP网段路由时,根据学习到的该ECMP网段路由的下一跳信息,判断下一跳NextHop表中是否已经存在包含该ECMP网段路由的下一跳信息的NextHop表项块,如果是,则利用已经存在的该NextHop表项块的标识,在最长路径匹配LPM表中创建学习到的ECMP网段路由的LPM表项。2、 根据权利要求1所述的方法,其特征在于,在执行所述判断下一跳 NextHop表中是否已经存在包含该ECMP网段路由的下 一跳信息的NextHop表 项块之前,还包括判断学习到的所述ECMP网段路由是否已经存在于LPM表中,如果是, 则结束流程,否则,继续执行所述判断下一跳NextHop表中是否已经存在包含 该ECMP网段路由的下 一跳信息的NextHop表项块的步骤。3、 根据权利要求1所述的方法,其特征在于,如果确定下一跳NextHop 表中尚未存在包含该ECMP网段路由的下 一跳信息的NextHop表项块,则利用 学习到的所述ECMP网段路由的下 一跳信息在NextHop表中创建NextHop表项 块,并利用该创建的NextHop表项块的标识创建所述ECMP网段路由的LPM 表项。4、 根据权利要求1至3所述的方法,其特征在于,该方法还包括如果要 删除所述ECMP网段路由,则查找所述ECMP网段路由的LPM表项获取该表 项中的NextHop表项块的标识;判断该标识对应的NextHop表项块是否还与其 他ECMP网段路由相关联,如果是,保留NextHop表中该标识所对应的NextHop 表项块,并删除LPM表中所述ECMP网段路由的LPM表项;否则,删除NextHop 表中该标识所对应的NextHop表项块以及LPM表中所述ECMP网段路由的 LPM表项。5、 根据权利要求4所述的方法,其特征在于,所述判断该标识对应的NextHop表项块是否还与其他ECMP网段路由相关联具体为查找LPM表, 判断是否还有其他LPM表项中也存在所述标识,如果是,则确定该标识对应的 NextHop表项块与其他ECMP网段路由相关联。6、 根据权利要求4所述的方法,其特征在于,在利用已经存在的该NextHop 表项块的标识创建所述LPM表项时,还包括将已经存在的所述NextH叩表 项块的关联计数器值加1,该关联计数器用于记录与该NextHop表项块相关联 的ECMP网段路由数目;在查找到所述NextHop表项块的标识之后以及在判断该标识对应的 NextHop表项块是否还与其他ECMP网段路由相关联之前,还包括将所述关 联计数器值减1;所述判断该标识对应的NextHop表项块是否还与其他ECMP网段路由相关 联具体为判断该标识对应的NextHop表项块的关联计数器值是否为0,如果 否,则确定该标识对应的NextHop表项块与其他ECMP网段路由相关联。7、 一种交换设备,其特征在于,该交换设备包括路由学习单元、第一判 断单元和LPM表项创建单元;所述路由学习单元,用于学习路由以及该路由的下一跳信息; 所述第一判断单...

【专利技术属性】
技术研发人员:吕志勇焦雪松
申请(专利权)人:杭州华三通信技术有限公司
类型:发明
国别省市:86[中国|杭州]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1