CN100486212C - 一种提高路由表容量的方法 - Google Patents

一种提高路由表容量的方法 Download PDF

Info

Publication number
CN100486212C
CN100486212C CNB200510012151XA CN200510012151A CN100486212C CN 100486212 C CN100486212 C CN 100486212C CN B200510012151X A CNB200510012151X A CN B200510012151XA CN 200510012151 A CN200510012151 A CN 200510012151A CN 100486212 C CN100486212 C CN 100486212C
Authority
CN
China
Prior art keywords
information
route
forwarding
searching
reference count
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CNB200510012151XA
Other languages
English (en)
Other versions
CN1897560A (zh
Inventor
胡韶华
王建国
马彧
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ZTE Corp
Original Assignee
ZTE Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ZTE Corp filed Critical ZTE Corp
Priority to CNB200510012151XA priority Critical patent/CN100486212C/zh
Publication of CN1897560A publication Critical patent/CN1897560A/zh
Application granted granted Critical
Publication of CN100486212C publication Critical patent/CN100486212C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明涉及一种提高路由表容量的方法,其特征在于,包括:步骤一,将路由表分为两部分:存放查找信息的查找部分和存放转发信息的条目内容部分;其中,所述转发信息被分类为不同的项,所述不同的项分别存放于不同的聚合信息库中,并用索引号标识所述不同的信息库,所述索引号与所述查找部分关联;步骤二,转发引擎查找路由,首先在路由表的查找部分得到所述不同信息库的索引号,再根据所述索引号到所述对应的信息库读取对应的转发信息项。采用所述的方法,成倍的节省了转发信息占用的资源,提高了网络设备路由容量。

Description

一种提高路由表容量的方法
技术领域
本发明涉及数据通讯领域路由表的生成,提出一种通过减少路由表所占资源提高路由表容量的方法。
背景技术
随着因特网的高速发展,因特网规模持续扩大,业务功能更加丰富,网络设备(路由器,交换机,网关等,特别是高端路由器)中路由表条目急剧膨胀,另一方面,为提升性能,网络设备越来越多的采用把路由表放入特殊存储区,由转发引擎完成查表;网络设备中几十万甚至上百万路由条目和多种业务转发信息占用了越来越多的硬件资源。
传统的按二叉树或多叉树方法组织的路由表在路由条目节点上存放了路由的转发信息,转发引擎根据数据包中的目的地址信息查找路由表,并读取路由的转发信息,完成数据包的转发。由于每条路由的转发信息都被完整存放,当支持负荷分担,链路聚合,多协议标签交换,快速重路由等业务,需要存放的多个出接口及权值,下一跳信息和多层标签等内容时,几十万甚至上百万路由条目的转发信息占用资源非常可观;如图1。另外,在IPV6环境中,更长的16字节下一跳地址更加剧了资源的消耗。
中国专利CN02131448提出了通过优化减少提交到转发路由表的路由数目的方法,来压缩路由表。其缺点是:当多条路由聚合为一条路由时,由于聚合后的路由覆盖范围比聚合前的多条路由大,会使一些本来查不到路由需要丢弃的数据包按聚合后的路由进行转发。而本文涉及的方法通过减少存放的转发信息条目,达到节约资源的目的,同时不影响数据包转发。
发明内容
本发明所要解决的技术问题在于提供一种提高路由表容量的方法,用于在负荷分担,多协议标签交换,快速重路由,链路聚合等多业务环境下减少转发信息大小,提高路由表容量。
为了实现上述目的,本发明提供了一种提高路由表容量的方法,其中,包括:
步骤一,将路由表分为两部分:存放查找信息的查找部分和存放转发信息的条目内容部分;其中,所述转发信息被分类为不同的项,所述不同的项分别存放于不同的聚合信息库中,并用索引号标识所述不同的信息库,所述索引号与所述查找部分关联;
步骤二,转发引擎查找路由,首先在路由表的查找部分得到所述不同信息库的索引号,再根据所述索引号到所述对应的信息库读取对应的转发信息项。
所述的方法,其特征在于,所述索引号存放于所述查找部分。
所述的方法,其特征在于,所述转发信息按照内容种类的可聚合性分类成不同的项。所述的方法,其中,所述聚合信息库中只存放所述转发信息相应项的一份拷贝。
所述的方法,其中,所述查找部分的结构和大小与所选择的路由查找算法相关;所述条目内容部分与路由器外部连接拓扑及业务功能相关。
所述的方法,其中,所述查找部分和条目内容部分分别存放于转发硬件中。
所述的方法,其中,所述信息库存放于转发硬件中,信息库的管理部分可不必放入转发硬件。
所述的方法,其中,进一步包括一设置引用计数来记录所述信息库中相应的转发信息项被引用的次数的步骤。
所述的方法,其中,进一步包括一更新所述聚合信息库的步骤;所述更新具体包括:检查所要添加的所述转发信息中的一项或多项是否已存在于对应的所述信息库中;若已存在,将对应的引用计数加一,并记录该项索引号;若不存在,则分配一新表项存放所述新添加的信息,将对应的引用计数置一,并记录该项索引号。
所述的方法,其中,进一步包括一添加一路由的步骤,具体包括:
步骤a1,将所述要添加路由的查找信息写入所述查找部分;
步骤a2,根据所述要添加路由的转发信息更新相应聚合信息库;
步骤a3,关联相应索引号和所述要添加的路由。
所述的方法,其中,进一步包括一删除一路由的步骤,具体包括:
步骤b1,将所述查找部分中所述要删除的路由查找信息删除,同时获得相应的信息库索引;
步骤b2,根据所获得的索引值,依次检查相应信息库中的转发信息项,将对应的引用计数减一后,若引用计数值为零,则从所述信息库中将信息删除。
所述的方法,其中,进一步包括一清空相应索引值与所述要删除的路由关联的步骤。
采用上面所述方法,成倍的节省了转发信息占用的资源,提高了网络设备路由容量。在实际应用中,路由容量提高了一倍以上,改进后一百万条路由所占转发资源为原大小的一半以下。
以下结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的限定。
附图说明
图1是在传统的路由表中,每条路由节点保存了完整的转发信息;
图2是按照本发明的方法聚合的路由表;
图3是按照本发明方法的出接口和下一跳地址聚合的一实施例;
图4是按照本发明方法的出接口、下一跳地址和标签聚合的另一实施例。
具体实施方式
本发明的方法包括以下几个部分:
步骤一:将路由表分为两部分,存放查找信息的查找部分和存放转发信息的条目内容部分。其中,存放查找信息的查找部分结构和大小依赖于所选择的路由查找算法;而存放转发信息的条目内容与路由器外部连接拓扑及业务功能有关。上述两部分分别存放在转发硬件中。
步骤二:存放的转发信息的内容,按种类的可聚合性,进行分类。根据分类,转发信息的各项信息分别存放在聚合信息库中;信息库中只存放该项信息的一份拷贝,用索引号标识。
信息库放在转发硬件,信息库的管理部分可不必放入转发硬件。
步骤三:在查找部分存放步骤二生成的各个索引号,与查找部分关联起来。其中,索引号也可以其他方式与所述查找部分关联。
步骤四:转发引擎查找路由时,首先在路由表的查找部分得到各个信息库索引号,再根据索引号到各信息库读取转发信息。
更进一步,步骤二可以通过引用计数记录该项信息被引用的次数。具体更新聚合信息库步骤为:检查所要添加的该项信息是否已存在于信息库中;若已存在,对应引用计数加一,记录该项索引号;若不存在,分配一新表项存放该项信息,对应引用计数置一,记录该项索引号。
下面以一个包括出接口信息、下一跳地址、标签等转发信息的路由表为例:
1、添加一条包括出接口信息、下一跳地址、标签等转发信息的路由步骤:
a)首先将路由查找信息写入查找部分;具体与所选择的查找算法(二叉树,多叉树等)及查找硬件相关。
b)若该条路由为新添加路由,则
I.检查所要添加的出接口列表、权值表是否已存在于出接口信息库中;若已存在,对应的引用计数加一,记录该项索引号;若不存在,分配一新表项存放该出接口列表、权值表,对应的引用计数置一,记录该项索引号;
II.检查所要添加的下一跳地址是否已存在于下一跳信息库中;若已存在,对应的引用计数加一,记录该项索引号;若不存在,分配一新表项存放该下一跳地址,对应的引用计数置一,记录该项索引号;
III.检查所要添加的标签是否已存在于标签信息表中;若已存在,对应的引用计数加一,记录该项索引号;若不存在,分配一新表项存放该标签,对应的引用计数置一,记录该项索引号;
IV.处理其他信息
V.把上述这些索引号与查找部分关联
c)若该条路由原先已存在:
I.检查所要添加的出接口列表、权值表是否与该路由原出接口列表,权值表相同,若相同不做处理;若不同,将原出接口列表、权值表对应的引用计数减一后,若为零,可把其从出接口信息库中删除,然后检查所要添加的出接口列表,权值表是否已存在于出接口信息表中;若已存在,对应的引用计数加一,记录该项索引号;若不存在,分配一新表项存放该出接口列表、权值表,对应的引用计数置一,记录该项索引号;
II.检查所要添加的下一跳地址是否与该路由原下一跳地址相同,若相同不做处理;若不同,将原下一跳地址对应的引用计数减一后,若为零,可把其从下一跳信息库中删除,然后检查所要添加的下一跳地址是否已存在于下一跳信息库中;若已存在,对应的引用计数加一,记录其索引号;若不存在,分配一新表项存放该下一跳地址,对应的引用计数置一,记录该项索引号;
III.检查所要添加的标签是否与该路由原标签相同,若相同不做处理;若不同,将原标签对应的引用计数减一后,若为零,可把其从标签库中删除,然后检查所要添加的标签是否已存在于标签库中;若已存在,对应的引用计数加一,记录其索引号;若不存在,分配一新表项存放该标签,对应引用计数置一,记录该项索引号;
IV.处理其他信息;
V.把上述这些索引号与添加路由关联。
2、删除一条路由步骤:
a)首先将路由查找部分的该路由查找信息删除,同时获得对应的出接口信息库索引、下一跳地址库索引、标签库索引;
b)依次将对应的引用计数减一后,若引用计数为零,从库中把信息删除。
下面结合附图2对技术方案的实施作进一步的详细描述:路由A、B、C是接口1和接口3负荷分担,下一跳地址为10.40.88.12和10.40.66.12的路由,添加路由A步骤如下:
1)检查出接口信息库,未找到接口1和接口3信息,则分配索引值1,在库中添加接口1和接口3信息和权值,置对应的引用计数为1;
2)检查下一跳信息库,未找到10.40.88.12下一跳,则分配索引值1,在库中添加10.40.88.12下一跳,置对应的引用计数为1;10.40.66.12也如此处理,分配索引值2。
3)将分配的索引值与路由A关联。
添加路由B步骤如下:
1)检查出接口信息库,找到接口1和接口3信息,其索引值为1,对应的引用计数加1;
2)检查下一跳信息库,找到10.40.88.12下一跳,其索引值为1,对应的引用计数加1;找到10.40.66.12的索引值为2,对应的引用计数加1。
3)将分配的索引值与路由B关联。
添加路由C步骤同路由B。
删除路由步骤:
1)根据索引值,检查出接口信息库,找到接口1和接口3信息,若对应的引用计数为1,表示接口1和接口3信息不再有用,删除之;若对应引用计数大于1,则将其减一。
2)根据索引值,检查下一跳信息库,找到10.40.88.12下一跳,若对应的引用计数为1,表示10.40.88.12下一跳不再有用,删除之;若对应引用计数大于1,则将其减一。
3)清空索引值与路由的关联
附图3是出接口和下一跳聚合的例子:路由A内容为接口1,下一跳地址为10.40.88.12;路由B、C是接口3,下一跳地址为10.40.66.12的路由,处理结果后如图3。
附图4是更一般的包括出接口库、下一跳地址库、标签库及可能的其他库的聚合。
当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。

Claims (12)

1、一种提高路由表容量的方法,其特征在于,包括:
步骤一,将路由表分为两部分:存放查找信息的查找部分和存放转发信息的条目内容部分;其中,所述转发信息被分类为不同的项,所述不同的项分别存放于不同的聚合信息库中,并用索引号标识所述不同的信息库,所述索引号与所述查找部分关联;
步骤二,转发引擎查找路由,首先在路由表的查找部分得到所述不同信息库的索引号,再根据所述索引号到所述对应的信息库读取对应的转发信息项。
2、根据权利要求1所述的方法,其特征在于,所述索引号存放于所述查找部分。
3、根据权利要求1或2所述的方法,其特征在于,所述转发信息按照内容种类的可聚合性分类成不同的项。
4、根据权利要求3所述的方法,其特征在于,所述聚合信息库中只存放所述转发信息项的一份拷贝。
5、根据权利要求1、2或4所述的方法,其特征在于,所述查找部分的结构和大小与所选择的路由查找算法相关;所述条目内容部分与路由器外部连接拓扑及业务功能相关。
6、根据权利要求5所述的方法,其特征在于,所述查找部分和条目内容部分分别存放于转发硬件中。
7、根据权利要求1所述的方法,其特征在于,所述信息库存放于转发硬件中。
8、根据权利要求1、2、4、6或7所述的方法,其特征在于,进一步包括一设置引用计数来记录所述信息库中相应的转发信息项被引用的次数的步骤。
9、根据权利要求8所述的方法,其特征在于,进一步包括一更新所述聚合信息库的步骤;所述更新具体包括:检查所要添加的所述转发信息中的一项或多项是否已存在于对应的所述信息库中;若已存在,将对应的引用计数加一,并记录该项索引号;若不存在,则分配一新表项存放所述新添加的信息,将对应的引用计数置一,并记录该项索引号。
10、根据权利要求9所述的方法,其特征在于,进一步包括一添加一路由的步骤,具体包括:
步骤a1,将所述要添加路由的查找信息写入所述查找部分;
步骤a2,根据所述要添加路由的转发信息更新相应聚合信息库;
步骤a3,关联相应索引号和所述要添加的路由。
11、根据权利要求9或10所述的方法,其特征在于,进一步包括一删除一路由的步骤,具体包括:
步骤b1,将所述查找部分中所述要删除的路由查找信息删除,同时获得相应的信息库索引;
步骤b2,根据所获得的索引值,依次检查相应信息库中的转发信息项,将对应的引用计数减一后,若引用计数值为零,则从所述信息库中将信息删除。
12、根据权利要求11所述的方法,其特征在于,进一步包括一清空相应索引值与所述要删除的路由关联的步骤。
CNB200510012151XA 2005-07-12 2005-07-12 一种提高路由表容量的方法 Expired - Fee Related CN100486212C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB200510012151XA CN100486212C (zh) 2005-07-12 2005-07-12 一种提高路由表容量的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB200510012151XA CN100486212C (zh) 2005-07-12 2005-07-12 一种提高路由表容量的方法

Publications (2)

Publication Number Publication Date
CN1897560A CN1897560A (zh) 2007-01-17
CN100486212C true CN100486212C (zh) 2009-05-06

Family

ID=37609941

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB200510012151XA Expired - Fee Related CN100486212C (zh) 2005-07-12 2005-07-12 一种提高路由表容量的方法

Country Status (1)

Country Link
CN (1) CN100486212C (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101494612B (zh) * 2009-02-26 2011-06-22 中兴通讯股份有限公司 一种mpls vpn网络下的vrf路由限制管理方法
WO2011000144A1 (zh) * 2009-06-30 2011-01-06 Shi Wen 信息项目集合目录的聚合方法和系统
CN102035738B (zh) * 2010-12-14 2014-12-31 中兴通讯股份有限公司 一种获取路由信息的方法及装置
CN102263693B (zh) * 2011-07-20 2017-10-10 中兴通讯股份有限公司 一种路由表管理方法及系统
US9369367B2 (en) * 2012-04-25 2016-06-14 Telefonaktiebolaget Lm Ericsson (Publ) Host-router virtual tunnelling and multiple tunnel management
CN106331196A (zh) * 2015-06-26 2017-01-11 中兴通讯股份有限公司 一种实现nat的方法和装置
CN108683595A (zh) * 2018-04-23 2018-10-19 上海泰砚通信技术有限公司 一种优化的路由存储方法
CN111327532A (zh) * 2020-01-21 2020-06-23 南京贝伦思网络科技股份有限公司 一种网络设备超大转发策略表容量的实现方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
"IPv4 Unicast Forwarding Service API Implementation Agreement Revision 1.0". Hormuzd Khosravi, Randy Worzella.The Netwok Processing Forum(NPF). 2003
"IPv4 Unicast Forwarding Service API Implementation Agreement Revision 1.0". Hormuzd Khosravi, Randy Worzella.The Netwok Processing Forum(NPF). 2003 *

Also Published As

Publication number Publication date
CN1897560A (zh) 2007-01-17

Similar Documents

Publication Publication Date Title
CN100486212C (zh) 一种提高路由表容量的方法
CN108337172B (zh) 大规模OpenFlow流表加速查找方法
CN100428225C (zh) 执行路由查找和管理路由选择/转发表的装置和方法
US7835304B2 (en) Method and apparatus for assigning IP addresses
CN102971732A (zh) 键/值存储器的集成分级查询处理的系统结构
US20050259672A1 (en) Method to improve forwarding information base lookup performance
CN1633111B (zh) 高速网络业务流分类方法
CN108566296B (zh) 网络设备分层方法、网络管理设备及计算机可读存储介质
CN101388030A (zh) 数据库和数据库处理方法
CN103238145A (zh) 用于网络装备中的高性能、可更新和确定的哈希表的方法和设备
US8990492B1 (en) Increasing capacity in router forwarding tables
CN101631086A (zh) 并行ip路由查找的路由表分区和放置方法
US6574701B2 (en) Technique for updating a content addressable memory
CN109600313A (zh) 报文转发方法及装置
CN101160930A (zh) 一种e.164号码域名存储和查询方法
CN100397816C (zh) 在网络设备中对接收数据包进行分类的方法
CN101241499A (zh) Patricia树快速查找方法
Yang et al. Clue: Achieving fast update over compressed table for parallel lookup with reduced dynamic redundancy
CN100487697C (zh) 一种应用改进的哈希方法进行查找的方法
CN102868775A (zh) 地址解析协议表容量的扩展方法、报文转发方法和装置
Chang et al. Dynamic segment trees for ranges and prefixes
CN102045262A (zh) 媒体接入控制地址表更新方法、装置及网络设备
CN105138581A (zh) 一种移动信息写入和读取方法及系统
CN1330190C (zh) 一种基于用户ip地址路由的路由选择方法
WO2021237943A1 (zh) 适用于软件定义网络的数据包分类方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20090506

Termination date: 20150712

EXPY Termination of patent right or utility model