CN101005461A - 一种IPv6路由表查找、转发的方法 - Google Patents
一种IPv6路由表查找、转发的方法 Download PDFInfo
- Publication number
- CN101005461A CN101005461A CNA2007100729717A CN200710072971A CN101005461A CN 101005461 A CN101005461 A CN 101005461A CN A2007100729717 A CNA2007100729717 A CN A2007100729717A CN 200710072971 A CN200710072971 A CN 200710072971A CN 101005461 A CN101005461 A CN 101005461A
- Authority
- CN
- China
- Prior art keywords
- route
- tcam
- prefix
- ipv6
- forwarding
- 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.)
- Granted
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种IPv6路由表查找、转发的方法,包括步骤:a:根据统计分布,将IPv6路由表按照前缀长度分成两部分;b:将这两部分分别存储在RAM和TCAM中并进行管理;c:在IP路由转发过程中,以目的IP地址,分别查找RAM和TCAM,并按照最长匹配原则进行转发。本发明由硬件和CPU共同管理路由表,减轻了cpu的负担;同时TCAM采用动态自适应分配算法,提高了TCAM的利用率;无须维护TCAM路由表的shadow表,节省了内存。
Description
技术领域
本发明涉及网络设备IP路由转发领域,尤其涉及一种IPv6路由表查找、转发的方法。
背景技术
随着互联网的迅速发展,IPv4面临越来越多的问题,其中最突出的是地址空间耗尽危机。另外,由于IPv4地址方案不能很好地支持地址汇聚,现有的互联网正面临路由表不断膨胀的压力;IPv4在服务质量、移动性和安全性等方面也有着其天然的不足。
为了解决IPv4所固有的问题,IETF提出了拥有128位地址的IPv6互联网协议。与IPv4相比,IPv6至少具有如下优势:扩展的地址空间和类似CIDR的地址结构;支持自动配置;更好的移动性和安全性。目前,IPv6的主要协议均已完善,其代替IPv4已成为必然趋势。国内外各大通信设备厂商都在IPv6的应用与研究方面投入了大量的资源。
IPv6技术包含多方面的内容,对网络设备也提出了众多新的要求。就IP路由转发而言,网络设备至少需要保证符合两方面的要求:路由表容量和包转发速率。
网络设备进行三层转发时,需要遵循最长匹配原则。即若搜索路由表时有多条表项均匹配,则按照前缀长度最大的表项进行转发。在IPv6网络中,地址从IPv4的32位扩展为128位,进行最长前缀匹配变得更加困难,因此,快速路由查找算法成为影响转发性能的重要因素之一。
目前,从物理角度看,基于RAM(随机存取存储器)的技术(典型为M-Trie技术)以及基于TCAM(三态内容寻址存储器)的技术已经在IPv4中得到广泛的使用。但是,这两种技术不能简单的应用到IPv6中。首先,IPv6地址长度为128bit,若采用RAM技术,步宽选择和树深的选择也更加困难,若步宽选择过大,则会占用更多RAM,若树深过大,则转发时访问RAM的次数将增大,会影响转发性能;其次,与RAM相比,TCAM单位比特的TCAM更加昂贵,而且TCAM芯片存储容量更小。因此,对于大容量IPv6路由表而言,完全采用TCAM实现,成本高昂。再次,对于TCAM表的管理,若事先将TCAM固定分配给某些前缀长度的路由,则TCAM的利用率不高。而且,当前的算法通常需要cpu在内存中维护对应的shadow表,这增加了内存开销和cpu负担。
发明内容
本发明所要解决的技术问题是提供一种IPv6路由表查找、转发的方法,使得在IP路由转发时,能够快速查找到其路由并进行转发,同时也增大了路由表容量。
为解决上述技术问题,本发明是通过以下技术方案实现的:
一种IPv6路由表查找、转发的方法,包括步骤:
a:根据统计分布,将IPv6路由表按照前缀长度分成两部分;
b:将这两部分分别存储在RAM和TCAM中并进行管理;
c:在IP路由转发过程中,以目的IP地址,分别查找RAM和TCAM,并按照最长匹配原则进行转发。
其中,步骤a中将所述IPv6路由分为前缀长度属于区间[a,b]的路由和前缀长度不属于区间[a,b]的路由,其中a、b的取值保证大多数路由落在区间[a,b]中。
其中,步骤b中将所述前缀长度属于区间[a,b]的路由存储在RAM中,并采用带预处理引擎的M-Trie算法进行管理。
其中,所述采用带预处理引擎的M-Trie算法进行管理具体包括:将IPv6的前a比特IPv6[128,(128-a)]做预处理运算并得到预处理结果为Rst;以Rst+IPv6[128-a,128-b]来构造M-Trie树。
其中,步骤b中将所述前缀长度不属于区间[a,b]的路由存储在TCAM中,并采用前缀长度约束算法进行管理。
其中,所述采用前缀长度约束算法进行管理具体为:保证前缀长度长的路由在TCAM内的存储地址比前缀长度短的路由小;TCAM表根据实际情况动态分配资源给路由。
其中,在所述TCAM中添加一条路由,具体包括:若该路由对应的前缀组在TCAM中已经存在,并且具有空闲表项,则直接添加之;若前缀组中已无空闲表项,则从具有空闲表项的邻居前缀组中划分一定数量的空闲表项,然后再进行添加操作;若该路由对应的前缀组在TCAM中不存在,则首先需要创建该前缀组,并从相邻前缀组中划分一定数量的空闲表项给该前缀组,然后再进行添加操作。
其中,在所述TCAM中删除一条路由,具体包括:若对应前缀组还包含其他路由,则直接删除该路由;若前缀组中仅包含该条路由,则需要将该前缀组删除,并将其占用的空闲表项分配给其相邻前缀组。
其中,在TCAM中增加记录路由表项的前缀长度字段。
本发明具有如下有益效果:
1)本发明只需访问两次RAM;
2)与完全采用TCAM技术相比,本发明成本更低;
3)由硬件和CPU共同管理路由表,减轻了cpu的负担;
4)TCAM采用动态自适应分配算法,提高了TCAM的利用率;
5)无须维护TCAM路由表的shadow表,节省了内存。
附图说明
图1是硬件三层转发过程示意图;
图2是TCAM路由表的示意图;
图3是TCAM的添加操作示意图;
图4是TCAM的删除操作示意图;
图5是TCAM路由表项的组成示意图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步详细的描述:
根据统计分布,网络中的前缀长度绝大多数集中在某个区间内,目前高达70%的IPv6路由前缀长度为48。据此,本发明将IPv6路由分成两大部分,前缀长度属于区间[a,b]的路由和其他路由(a和b的取值,视实际网络地址分布情况而定,保证大多数路由落在区间[a,b]中,目前,可取a=40,b=48)。对于前者,采用带预处理引擎的M-Trie实现。对于后者,采用TCAM实现。
1)带预处理引擎的M-Trie表
前缀长度分布在[a,b]的路由,采用带预处理引擎的M-Trie实现。
具体步骤如下:
首先,将IPv6的前a比特IPv6[128,(128-a)]做预处理运算(典型地,预处理算法可以选择hash算法),假定预处理结果为Rst,为了达到节省内存的目的,Rst一般长度小于a。典型地,若a=40,则Rst长度可取为16;
其次,以Rst+IPv6[128-a,128-b]来构造M-Trie树。
2)TCAM表
前缀长度属于区间[0,a-1],前缀长度属于区间[b+1,128],预处理冲突(若预处理采用hash算法,则为hash冲突),或者M-Trie已满时的路由均存储在TCAM中。
本发明的核心思想如图1所示本发明流程图,包括:
步骤101:根据统计分布,将IPv6路由表按照前缀长度分成两部分;
步骤102:将这两部分分别存储在RAM和TCAM中并进行管理;
步骤103:在IP路由转发过程中,以目的IP地址,分别查找RAM和TCAM,并按照最长匹配原则进行转发。
其中,路由表管理通常包括添加,删除和更新路由表项等操作。路由管理一般包括两个步骤:
a:确定某条路由是否在硬件路由表中存在;
b:确定某条路由在硬件中的具体位置,并进行相应的操作。
本发明中的路由表管理分成两部分:RAM和TCAM;对于RAM部分,采用常见的M-Trie算法即可实现。
为了保证最长前缀匹配,本发明TCAM路由表管理采用前缀长度约束,如图2所示。这样,TCAM表从逻辑上可以看成是由前缀长度相同的集合(前缀组)所组成的线性表,每个前缀组包含的路由条数称为前缀组容量。
实际网络环境中,路由表的具体组成是不可预知的,所以事先无法确定前缀组的数目以及每个前缀组的容量。基于此,本发明提供了一种动态自适应TCAM表管理方法。更具体的说,TCAM表并不预先固定分配给某些特定前缀组,而是根据实际情况动态分配,保证只分配给当前存在的前缀组。以下分别说明添加和删除操作。
添加操作:
如图3所示,添加一条路由,若该路由对应的前缀组在TCAM中已经存在,并且具有空闲表项,则直接添加之;若前缀组中已无空闲表项,则从具有空闲表项的邻居前缀组(可直接相邻或者间接相邻)中划分一定数量的空闲表项,然后再进行添加操作,在借用空闲表项的过程中保证前缀长度约束;若该路由对应的前缀组在TCAM中不存在,则首先需要创建该前缀组,并从相邻前缀组中划分一定数量的空闲表项给该前缀组,然后再进行添加操作。
删除操作:
如图4所示,删除一条路由,若对应的前缀组还包含其他路由,则直接删除该路由。若前缀组中仅仅包含该条路由,则需要将该前缀组删除,并将其占用的空闲表项分配给其邻居前缀组。
如图5所示,本发明在TCAM中增加Prefix Length字段,用来记录路由表项的前缀长度。由于IP地址+前缀长度可以唯一确定一条路由,因此,通过IP+前缀长度检索TCAM表,TCAM必然返回精确匹配的那条路由。因此,CPU无须再维护TCAM的shadow表,只需向硬件发送一条查询指令,而由硬件搜索检索TCAM,并返回相应结果。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (9)
1、一种IPv6路由表查找、转发的方法,其特征在于,包括步骤:
a:根据统计分布,将IPv6路由表按照前缀长度分成两部分;
b:将这两部分分别存储在随机存取存储器RAM和三态内容寻址存储器TCAM中并进行管理;
c:在IP路由转发过程中,以目的IP地址,分别查找RAM和TCAM,并按照最长匹配原则进行转发。
2、如权利要求1所述IPv6路由表查找、转发的方法,其特征在于,步骤a中将所述IPv6路由分为前缀长度属于区间[a,b]的路由和前缀长度不属于区间[a,b]的路由,其中a、b的取值保证大多数路由落在区间[a,b]中。
3、如权利要求2所述IPv6路由表查找、转发的方法,其特征在于,步骤b中将所述前缀长度属于区间[a,b]的路由存储在RAM中,并采用带预处理引擎的M-Trie算法进行管理。
4、如权利要求3所述IPv6路由表查找、转发的方法,其特征在于,所述采用带预处理引擎的M-Trie算法进行管理具体包括:将IPv6的前a比特IPv6[128,(128-a)]做预处理运算并得到预处理结果为Rst;以Rst+IPv6[128-a,128-b]来构造M-Trie树。
5、如权利要求2所述IPv6路由表查找、转发的方法,其特征在于,步骤b中将所述前缀长度不属于区间[a,b]的路由存储在TCAM中,并采用前缀长度约束算法进行管理。
6、如权利要求5所述IPv6路由表查找、转发的方法,其特征在于,所述采用前缀长度约束算法进行管理具体为:保证前缀长度长的路由在TCAM内的存储地址比前缀长度短的路由小;TCAM表根据实际情况动态分配资源给路由。
7、如权利要求6所述IPv6路由表查找、转发的方法,其特征在于,在所述TCAM中添加一条路由,具体包括:若该路由对应的前缀组在TCAM中已经存在,并且具有空闲表项,则直接添加之;若前缀组中已无空闲表项,则从具有空闲表项的邻居前缀组中划分一定数量的空闲表项,然后再进行添加操作;若该路由对应的前缀组在TCAM中不存在,则首先需要创建该前缀组,并从相邻前缀组中划分一定数量的空闲表项给该前缀组,然后再进行添加操作。
8、如权利要求6所述IPv6路由表查找、转发的方法,其特征在于,在所述TCAM中删除一条路由,具体包括:若对应前缀组还包含其他路由,则直接删除该路由;若前缀组中仅包含该条路由,则需要将该前缀组删除,并将其占用的空闲表项分配给其相邻前缀组。
9、如权利要求5至8任一项所述IPv6路由表查找、转发的方法,其特征在于,在TCAM中增加记录路由表项的前缀长度字段。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2007100729717A CN101005461B (zh) | 2007-01-16 | 2007-01-16 | 一种IPv6路由表查找、转发的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2007100729717A CN101005461B (zh) | 2007-01-16 | 2007-01-16 | 一种IPv6路由表查找、转发的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101005461A true CN101005461A (zh) | 2007-07-25 |
CN101005461B CN101005461B (zh) | 2010-06-16 |
Family
ID=38704331
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007100729717A Expired - Fee Related CN101005461B (zh) | 2007-01-16 | 2007-01-16 | 一种IPv6路由表查找、转发的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101005461B (zh) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011069381A1 (zh) * | 2009-12-08 | 2011-06-16 | 中兴通讯股份有限公司 | 路由表的维护方法与装置 |
CN101335706B (zh) * | 2008-07-21 | 2011-08-17 | 北京星网锐捷网络技术有限公司 | 对路由表进行空间管理的方法、装置、交换机及路由器 |
CN102307149A (zh) * | 2011-09-23 | 2012-01-04 | 中国科学院计算技术研究所 | Ip查找方法和装置以及路由更新方法和装置 |
CN102439918A (zh) * | 2011-10-11 | 2012-05-02 | 华为技术有限公司 | 一种报文转发的方法、设备及系统 |
CN102957758A (zh) * | 2011-08-25 | 2013-03-06 | 中国电信股份有限公司 | 地址分配方法、系统、DHCPv6服务器及RG设备 |
CN103229488A (zh) * | 2012-12-27 | 2013-07-31 | 华为技术有限公司 | Ipv6地址溯源方法、装置和系统 |
CN101848133B (zh) * | 2009-03-25 | 2013-08-07 | 华为技术有限公司 | 一种前缀匹配的方法、装置和系统 |
CN103428093A (zh) * | 2013-07-03 | 2013-12-04 | 北京邮电大学 | 一种基于名字路由前缀存储、匹配及更新方法与装置 |
CN104539540A (zh) * | 2015-01-15 | 2015-04-22 | 浪潮(北京)电子信息产业有限公司 | 一种基于图形处理单元gpu的路由方法和设备 |
CN102957758B (zh) * | 2011-08-25 | 2016-12-14 | 中国电信股份有限公司 | 地址分配方法、系统、DHCPv6服务器及RG设备 |
CN106709065A (zh) * | 2017-01-19 | 2017-05-24 | 国家电网公司 | 一种地址信息标准化处理方法及装置 |
CN108134739A (zh) * | 2016-12-01 | 2018-06-08 | 深圳市中兴微电子技术有限公司 | 一种基于索引特里树的路由查找方法及装置 |
CN109688117A (zh) * | 2018-12-11 | 2019-04-26 | 国家电网公司信息通信分公司 | 一种大容量ip地址拦截方法和设备 |
CN110071871A (zh) * | 2019-03-13 | 2019-07-30 | 国家计算机网络与信息安全管理中心 | 一种大模式集ip地址匹配方法 |
CN112118185A (zh) * | 2020-09-24 | 2020-12-22 | 盛科网络(苏州)有限公司 | 报文转发方法和装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5515370A (en) * | 1994-03-31 | 1996-05-07 | Siemens Aktiengesellschaft | Circuit arrangement for line units of an ATM switching equipment |
US6061368A (en) * | 1997-11-05 | 2000-05-09 | Xylan Corporation | Custom circuitry for adaptive hardware routing engine |
CN100407693C (zh) * | 2004-12-30 | 2008-07-30 | 中兴通讯股份有限公司 | 基于fpga的路由查找和刷新的调度方法及其装置 |
-
2007
- 2007-01-16 CN CN2007100729717A patent/CN101005461B/zh not_active Expired - Fee Related
Cited By (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101335706B (zh) * | 2008-07-21 | 2011-08-17 | 北京星网锐捷网络技术有限公司 | 对路由表进行空间管理的方法、装置、交换机及路由器 |
CN101848133B (zh) * | 2009-03-25 | 2013-08-07 | 华为技术有限公司 | 一种前缀匹配的方法、装置和系统 |
CN101741737B (zh) * | 2009-12-08 | 2013-01-16 | 中兴通讯股份有限公司 | 路由表的维护方法与装置 |
WO2011069381A1 (zh) * | 2009-12-08 | 2011-06-16 | 中兴通讯股份有限公司 | 路由表的维护方法与装置 |
CN102957758A (zh) * | 2011-08-25 | 2013-03-06 | 中国电信股份有限公司 | 地址分配方法、系统、DHCPv6服务器及RG设备 |
CN102957758B (zh) * | 2011-08-25 | 2016-12-14 | 中国电信股份有限公司 | 地址分配方法、系统、DHCPv6服务器及RG设备 |
WO2013040730A1 (zh) * | 2011-09-23 | 2013-03-28 | 中国科学院计算技术研究所 | Ip查找方法和装置以及路由更新方法和装置 |
CN102307149A (zh) * | 2011-09-23 | 2012-01-04 | 中国科学院计算技术研究所 | Ip查找方法和装置以及路由更新方法和装置 |
CN102307149B (zh) * | 2011-09-23 | 2014-05-07 | 中国科学院计算技术研究所 | Ip查找方法和装置以及路由更新方法和装置 |
WO2012163000A1 (zh) * | 2011-10-11 | 2012-12-06 | 华为技术有限公司 | 一种报文转发的方法、设备及系统 |
CN102439918A (zh) * | 2011-10-11 | 2012-05-02 | 华为技术有限公司 | 一种报文转发的方法、设备及系统 |
CN103229488A (zh) * | 2012-12-27 | 2013-07-31 | 华为技术有限公司 | Ipv6地址溯源方法、装置和系统 |
US9973399B2 (en) | 2012-12-27 | 2018-05-15 | Huawei Technologies Co., Ltd. | IPV6 address tracing method, apparatus, and system |
CN103229488B (zh) * | 2012-12-27 | 2016-05-25 | 华为技术有限公司 | IPv6地址溯源方法、装置和系统 |
CN103428093A (zh) * | 2013-07-03 | 2013-12-04 | 北京邮电大学 | 一种基于名字路由前缀存储、匹配及更新方法与装置 |
CN103428093B (zh) * | 2013-07-03 | 2017-02-08 | 北京邮电大学 | 一种基于名字路由前缀存储、匹配及更新方法与装置 |
CN104539540A (zh) * | 2015-01-15 | 2015-04-22 | 浪潮(北京)电子信息产业有限公司 | 一种基于图形处理单元gpu的路由方法和设备 |
CN108134739A (zh) * | 2016-12-01 | 2018-06-08 | 深圳市中兴微电子技术有限公司 | 一种基于索引特里树的路由查找方法及装置 |
CN106709065A (zh) * | 2017-01-19 | 2017-05-24 | 国家电网公司 | 一种地址信息标准化处理方法及装置 |
CN106709065B (zh) * | 2017-01-19 | 2020-08-04 | 国家电网公司 | 一种地址信息标准化处理方法及装置 |
CN109688117A (zh) * | 2018-12-11 | 2019-04-26 | 国家电网公司信息通信分公司 | 一种大容量ip地址拦截方法和设备 |
CN110071871A (zh) * | 2019-03-13 | 2019-07-30 | 国家计算机网络与信息安全管理中心 | 一种大模式集ip地址匹配方法 |
CN112118185A (zh) * | 2020-09-24 | 2020-12-22 | 盛科网络(苏州)有限公司 | 报文转发方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN101005461B (zh) | 2010-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101005461B (zh) | 一种IPv6路由表查找、转发的方法 | |
US6985483B2 (en) | Methods and systems for fast packet forwarding | |
CN104462141B (zh) | 一种数据存储与查询的方法、系统及存储引擎装置 | |
WO2020107484A1 (zh) | 一种acl的规则分类方法、查找方法和装置 | |
Xiao et al. | Using parallel bloom filters for multiattribute representation on network services | |
CN101620623A (zh) | 内容可寻址存储器表项管理方法和装置 | |
JP2006313949A (ja) | パケット転送装置 | |
CN101594319A (zh) | 表项查找方法和装置 | |
CN103560959B (zh) | 一种选择静态路由的方法及装置 | |
Yoon | Aging bloom filter with two active buffers for dynamic sets | |
CN102279810A (zh) | 一种网络存储服务器及其缓存数据的方法 | |
WO2019233061A1 (zh) | 一种三层交换机的路由资源控制方法及系统 | |
CN105791455B (zh) | 三态内容寻址存储器tcam空间的处理方法及装置 | |
CN103270727B (zh) | 存储体感知多位特里结构 | |
CN101540730A (zh) | 地址查找方法、交换机和网络系统 | |
Li et al. | 5G with B-MaFIB based named data networking | |
CN104780101A (zh) | 内容中心网络转发平面fib表结构及其检索方法 | |
CN103973571A (zh) | 网络处理器及其路由查找方法 | |
CN103457855A (zh) | 无类域间路由表建立、以及报文转发的方法和装置 | |
CN100477644C (zh) | 一种路由存储方法及装置 | |
CN100358288C (zh) | 在网络设备中处理五元流组的方法 | |
Chen et al. | Improving NDN forwarding engine performance by rendezvous-based caching and forwarding | |
CN104301227B (zh) | 基于tcam的高速低功耗ip路由表查找方法 | |
CN1905516B (zh) | 一种分配双向转发检测会话鉴别符的方法 | |
CN103532758B (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: 20100616 Termination date: 20170116 |
|
CF01 | Termination of patent right due to non-payment of annual fee |