CN101005461B - 一种IPv6路由表查找、转发的方法 - Google Patents

一种IPv6路由表查找、转发的方法 Download PDF

Info

Publication number
CN101005461B
CN101005461B CN2007100729717A CN200710072971A CN101005461B CN 101005461 B CN101005461 B CN 101005461B CN 2007100729717 A CN2007100729717 A CN 2007100729717A CN 200710072971 A CN200710072971 A CN 200710072971A CN 101005461 B CN101005461 B CN 101005461B
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.)
Expired - Fee Related
Application number
CN2007100729717A
Other languages
English (en)
Other versions
CN101005461A (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 CN2007100729717A priority Critical patent/CN101005461B/zh
Publication of CN101005461A publication Critical patent/CN101005461A/zh
Application granted granted Critical
Publication of CN101005461B publication Critical patent/CN101005461B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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

一种IPv6路由表查找、转发的方法
技术领域
本发明涉及网络设备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路由分为前缀长度属于区间[a,b]的路由和前缀长度不属于区间[a,b]的路由,其中a、b的取值保证大多数路由落在区间[a,b]中;
b:将所述前缀长度属于区间[a,b]的路由存储在RAM中,并采用带预处理引擎的M-Trie算法进行管理;将所述前缀长度不属于区间[a,b]的路由存储在TCAM中,并采用前缀长度约束算法进行管理;
c:在IP路由转发过程中,以目的IP地址,分别查找RAM和TCAM,并按照最长匹配原则进行转发。
其中,所述采用带预处理引擎的M-Trie算法进行管理具体包括:将IPv6的前a比特IPv6[128,(128-a)]做预处理运算并得到预处理结果为Rst;以Rst+IPv6[128-a,128-b]来构造M-Trie树。
其中,所述采用前缀长度约束算法进行管理具体为:保证前缀长度长的路由在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;
其次,以Pst+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 (6)

1.一种IPv6路由表查找、转发的方法,其特征在于,包括步骤:
a:根据统计分布,将所述IPv6路由分为前缀长度属于区间[a,b]的路由和前缀长度不属于区间[a,b]的路由,其中a、b的取值保证大多数路由落在区间[a,b]中;
b:将所述前缀长度属于区间[a,b]的路由存储在RAM中,并采用带预处理引擎的M-Trie算法进行管理;将所述前缀长度不属于区间[a,b]的路由存储在TCAM中,并采用前缀长度约束算法进行管理;
c:在IP路由转发过程中,以目的IP地址,分别查找RAM和TCAM,并按照最长匹配原则进行转发。
2.如权利要求1所述IPv6路由表查找、转发的方法,其特征在于,所述采用带预处理引擎的M-Trie算法进行管理具体包括:将IPv6的前a比特IPv6[128,(128-a)]做预处理运算并得到预处理结果为Rst;以Rst+IPv6[128-a,128-b]来构造M-Trie树。
3.如权利要求1所述IPv6路由表查找、转发的方法,其特征在于,所述采用前缀长度约束算法进行管理具体为:保证前缀长度长的路由在TCAM内的存储地址比前缀长度短的路由小;TCAM表根据实际情况动态分配资源给路由。
4.如权利要求3所述IPv6路由表查找、转发的方法,其特征在于,在所述TCAM中添加一条路由,具体包括:若该路由对应的前缀组在TCAM中已经存在,并且具有空闲表项,则直接添加之;若前缀组中已无空闲表项,则从具有空闲表项的邻居前缀组中划分一定数量的空闲表项,然后再进行添加操作;若该路由对应的前缀组在TCAM中不存在,则首先需要创建该前缀组,并从相邻前缀组中划分一定数量的空闲表项给该前缀组,然后再进行添加操作。
5.如权利要求3所述IPv6路由表查找、转发的方法,其特征在于,在所述TCAM中删除一条路由,具体包括:若对应前缀组还包含其他路由,则直接删除该路由;若前缀组中仅包含该条路由,则需要将该前缀组删除,并将其占用的空闲表项分配给其相邻前缀组。
6.如权利要求1至5任一项所述IPv6路由表查找、转发的方法,其特征在于,在TCAM中增加记录路由表项的前缀长度字段。
CN2007100729717A 2007-01-16 2007-01-16 一种IPv6路由表查找、转发的方法 Expired - Fee Related CN101005461B (zh)

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 CN101005461A (zh) 2007-07-25
CN101005461B true 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)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
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 中兴通讯股份有限公司 路由表的维护方法与装置
CN102307149B (zh) * 2011-09-23 2014-05-07 中国科学院计算技术研究所 Ip查找方法和装置以及路由更新方法和装置
CN102439918A (zh) * 2011-10-11 2012-05-02 华为技术有限公司 一种报文转发的方法、设备及系统
EP2928141A4 (en) 2012-12-27 2016-03-16 Huawei Tech Co Ltd METHOD, DEVICE AND SYSTEM FOR IPV6 ADDRESS TRACKING
CN103428093B (zh) * 2013-07-03 2017-02-08 北京邮电大学 一种基于名字路由前缀存储、匹配及更新方法与装置
CN104539540A (zh) * 2015-01-15 2015-04-22 浪潮(北京)电子信息产业有限公司 一种基于图形处理单元gpu的路由方法和设备
CN108134739B (zh) * 2016-12-01 2020-10-02 深圳市中兴微电子技术有限公司 一种基于索引特里树的路由查找方法及装置
CN106709065B (zh) * 2017-01-19 2020-08-04 国家电网公司 一种地址信息标准化处理方法及装置
CN109688117B (zh) * 2018-12-11 2021-10-15 国家电网公司信息通信分公司 一种大容量ip地址拦截方法和设备
CN110071871A (zh) * 2019-03-13 2019-07-30 国家计算机网络与信息安全管理中心 一种大模式集ip地址匹配方法
CN112118185A (zh) * 2020-09-24 2020-12-22 盛科网络(苏州)有限公司 报文转发方法和装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0675617A1 (de) * 1994-03-31 1995-10-04 Siemens Aktiengesellschaft Schaltungsanordnung für Anschlusseinheiten einer ATM-Koppeleinrichtung
US6061368A (en) * 1997-11-05 2000-05-09 Xylan Corporation Custom circuitry for adaptive hardware routing engine
CN1798088A (zh) * 2004-12-30 2006-07-05 中兴通讯股份有限公司 基于fpga的路由查找和刷新的调度方法及其装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0675617A1 (de) * 1994-03-31 1995-10-04 Siemens Aktiengesellschaft Schaltungsanordnung für Anschlusseinheiten einer ATM-Koppeleinrichtung
US6061368A (en) * 1997-11-05 2000-05-09 Xylan Corporation Custom circuitry for adaptive hardware routing engine
CN1798088A (zh) * 2004-12-30 2006-07-05 中兴通讯股份有限公司 基于fpga的路由查找和刷新的调度方法及其装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
殷科.基于RAM和TCAM存储结构的高速路由查找算法.计算机工程与应用 20.2005,(20),159-161.
殷科.基于RAM和TCAM存储结构的高速路由查找算法.计算机工程与应用 20.2005,(20),159-161. *

Also Published As

Publication number Publication date
CN101005461A (zh) 2007-07-25

Similar Documents

Publication Publication Date Title
CN101005461B (zh) 一种IPv6路由表查找、转发的方法
US6985483B2 (en) Methods and systems for fast packet forwarding
CN101594319B (zh) 表项查找方法和装置
CN101620623A (zh) 内容可寻址存储器表项管理方法和装置
WO2020107484A1 (zh) 一种acl的规则分类方法、查找方法和装置
WO2019233061A1 (zh) 一种三层交换机的路由资源控制方法及系统
CN105791455B (zh) 三态内容寻址存储器tcam空间的处理方法及装置
Yoon Aging bloom filter with two active buffers for dynamic sets
CN102279810A (zh) 一种网络存储服务器及其缓存数据的方法
CN104102586A (zh) 一种地址映射处理的方法、装置
CN103560959A (zh) 一种选择静态路由的方法及装置
CN105007328A (zh) 一种基于一致性hash的网络cache设计方法
Li et al. 5G with B-MaFIB based named data networking
CN104780101A (zh) 内容中心网络转发平面fib表结构及其检索方法
CN103973571A (zh) 网络处理器及其路由查找方法
CN103457855A (zh) 无类域间路由表建立、以及报文转发的方法和装置
CN100477644C (zh) 一种路由存储方法及装置
CN104301227B (zh) 基于tcam的高速低功耗ip路由表查找方法
EP2074766A1 (en) Method, device, computer program product and system for representing a partition of n w-bit intervals associated to d-bit data in a data communications network
CN1905516B (zh) 一种分配双向转发检测会话鉴别符的方法
CN101237405A (zh) 数据缓存方法和装置
Chen et al. Improving NDN forwarding engine performance by rendezvous-based caching and forwarding
CN104639570A (zh) 资源对象存储处理方法及装置
CN110460528A (zh) 命名数据网转发平面的fib存储结构及其使用方法
CN101945139A (zh) IPv6地址存储和查找方法及相关设备

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