CN106341319A - 一种CPE设备基于Linux架构的路由加速系统及方法 - Google Patents
一种CPE设备基于Linux架构的路由加速系统及方法 Download PDFInfo
- Publication number
- CN106341319A CN106341319A CN201610761612.1A CN201610761612A CN106341319A CN 106341319 A CN106341319 A CN 106341319A CN 201610761612 A CN201610761612 A CN 201610761612A CN 106341319 A CN106341319 A CN 106341319A
- Authority
- CN
- China
- Prior art keywords
- fib
- list item
- link table
- route
- information
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种CPE设备基于Linux架构的路由加速系统及方法,涉及CPE设备领域,初次加载路由加速系统时,对Linux协议栈中已有的路由信息、接口信息进行读取,将路由信息写入适配层的FIB表,接口信息写入适配层的LINK表内;将内核的信息转化为FIB表的表项信息,同步到适配层的FIB表和/或LINK表内,并通过hook处理单元、学习事件单元、设备状态单元和更新老化单元,对FIB表和/或LINK表进行维护,根据FIB表和/或LINK表实现路由转发。本发明在适配层建立并维护FIB表(路由转发表)与LINK表(出口信息表),通过FIB表与LINK表实现路由数据的转发,减少CPE设备负担,提高路由转发速度。
Description
技术领域
本发明涉及CPE(Customer Premise Equipment,客户驻地设备)设备领域,具体来讲涉及一种CPE设备基于Linux架构的路由加速系统及方法。
背景技术
随着宽带提速的深入发展,网络接入设备的性能就越发得到重视。原有的CPE设备中,由于二层业务可以通过交换芯片来实现,其硬件转发性能完全能够得到保障。但是路由这一块的性能一直是其薄弱环节。路由数据转发的核心是tcp/ip协议栈,Linux架构使用的网络协议栈就是基于BSD(Berkeley Software Distribution,伯克利软件套件)tcp/ip协议栈发展起来的,主要是针对服务器、个人电脑等性能较强的设备。目前的CPE设备普遍并不具备很强的运算和处理能力,而这些CPE设备又需要网络路由转发的功能实现,如果使用linux原始的实现方式,即路由数据通过内核协议栈转发,则会给CPE设备造成较大负担,并且无法满足高速路由转发的性能要求。
发明内容
针对现有技术中存在的缺陷,本发明的目的在于提供一种CPE设备基于Linux架构的路由加速系统及方法,在适配层建立并维护FIB表(路由转发表)与LINK表(出口信息表),通过FIB表与LINK表实现路由数据的转发,减少CPE设备负担,提高路由转发速度。
为达到以上目的,本发明采取一种CPE设备基于Linux架构的路由加速系统,包括FIB表、LINK表、hook处理单元、学习事件单元、设备状态单元和更新老化单元,FIB表和LINK表设置于适配层;FIB表中存储的表项包括目的IP地址、出口设备IP信息、出口设备索引、转发属性、静态标识以及指向LINK表的索引;LINK表中存储的表项包括出口设备IP信息和出口设备MAC信息;所述hook处理单元,用于在Linux协议栈中捕获路由信息,并将内核的路由表项同步到FIB表内;所述学习事件单元,用于在linux协议栈的邻居学习表有更新时,同步对FIB表和LINK表进行处理,所述处理包括:添加或删除出口设备信息时,对应新增或删除LINK表中相应出口设备信息的表项,添加或删除指向此出口设备的主机路由信息,同时删除FIB表中对应的主机路由表项;所述设备状态单元,用于Linux架构中有网络接口增加或删除时,增加或删除LINK表中对应的表项;还用于有网络接口修改时,修改除LINK表中对应的表项;所述更新老化单元,用于实现FIB表和LINK表的同步和老化处理。
在上述技术方案的基础上,当CPE设备支持硬件加速时,所述路由加速系统还包括一个硬件转发单元,用于存储适配层下发的FIB表和LINK表,实现硬件路由转发。
本发明还提供一种基于Linux架构的路由加速方法,包括:初次加载路由加速系统时,对Linux协议栈中已有的路由信息、接口信息进行读取,将路由信息写入适配层的FIB表,接口信息写入适配层的LINK表内;将内核的信息转化为FIB表的表项信息,同步到适配层的FIB表和/或LINK表内,并通过hook处理单元、学习事件单元、设备状态单元和更新老化单元,对FIB表和/或LINK表进行维护,根据FIB表和/或LINK表实现路由转发。
在上述技术方案的基础上,当Linux架构执行路由的添加时,在hook处理主函数中,将内核的路由信息转换成FIB表的表项,并添加到适配层的FIB表中;当Linux架构执行路由的删除时,将内核的路由信息转换成FIB表的表项,由FIB表中删除对应的表项。
在上述技术方案的基础上,当Linux架构通过邻居学习获得新的出口设备信息,或删除不存在的出口设备信息时,学习事件单元根据邻居学习事件,对应新增或删除LINK表中相应出口设备信息的表项;添加或删除指向此出口设备的主机路由信息,同时添加或删除FIB表中对应的主机路由表项。
在上述技术方案的基础上,当Linux架构增加或删除网络接口时,设备状态单元在适配层的LINK表中,增加或删除对应表项;当修改网络接口时,修改LINK表中已有出口设备表项的出口设备IP信息或出口设备MAC信息。
在上述技术方案的基础上,当FIB表添加表项,LINK表后添加表项时,反向查找指向该LINK表的FIB表,更新FIB表中指向LINK表的索引。
在上述技术方案的基础上,建立关系表作为FIB表与LINK表的关联,当LINK表的表项老化,指向该LINK表表项的FIB表表项没有被命中时,FIB表表项进行老化的时间超过180s,则删除LINK表中对应表项、以及删除指向该LINK表内容的FIB表的表项。
在上述技术方案的基础上,当CPE设备支持硬件加速时,硬件层设置一个硬件转发单元,适配层下发FIB表和LINK表给硬件转发单元,通过硬件转发单元实现路由硬件加速,即在硬件转发单元的FIB表和/或LINK表中,实现同步。
本发明的有益效果在于:
1、本发明在适配层设置FIB表和LINK表,两个表内分别存有路由转发所需表项,hook处理单元、学习事件单元、设备状态单元和更新老化单元维护并随时更新FIB表和/或LINK表,适配层设置FIB表和LINK表实现路由数据的转发,不通过Linux协议栈,减少CPE设备负担,提高路由转发速度。
2、当CPE设备支持硬件加速时,硬件层设置一个硬件转发单元,适配层下发的FIB表和LINK表给硬件转发单元,通过硬件转发单元实现路由硬件加速,满足随着网络速度大幅发展的情况下,CPE设备日渐增长的速度需求。
附图说明
图1为本发明实施例CPE设备基于Linux架构的路由加速系统的示意图。
具体实施方式
以下结合附图及实施例对本发明作进一步详细说明。
如图1所示,本发明CPE设备基于Linux架构的路由加速系统,包括适配层的FIB表和LINK表,以及hook处理单元、学习事件单元、设备状态单元和更新老化单元;hook处理单元、学习事件单元、设备状态单元和更新老化单元维护并随时更新所述FIB表和/或LINK表。
适配层中设置FIB表和LINK表,FIB表中存储路由信息,表项包括:目的IP地址、出口设备IP信息、出口设备索引、转发属性、静态标识以及指向LINK表的索引;LINK表中存储接口信息,表项包括:出口设备IP信息和出口设备MAC信息,如果出口设备是PPP设备,还包括PPP会话ID和表项索引。
所述hook处理单元,用于捕获Linux协议栈中的路由信息,并将内核的路由表项同步到FIB表内。所述学习事件单元,通过注册邻居学习事件以及网络设备状态变化事件的通知处理,实现当linux协议栈邻居学习表有更新时,同步对FIB表和LINK表进行处理。所述处理包括:添加或删除出口设备信息时,对应新增或删除LINK表中相应出口设备信息的表项,添加或删除指向此出口设备的主机路由信息,同时添加或删除FIB表中对应的主机路由表项。所述设备状态单元,用于Linux架构中有网络接口增加或删除时,增加或删除LINK表中对应的表项;还用于有网络接口修改时,修改除LINK表中对应的表项。所述更新老化单元,用于实现FIB表和LINK表的同步和老化处理。
当CPE设备支持硬件加速时,所述路由加速系统还包括一个硬件转发单元,用于存储适配层下发的FIB表和LINK表,通过硬件转发单元内的FIB表和LINK表,实现硬件路由转发。
本发明CPE设备基于Linux架构的路由加速方法,包括:
初次加载路由加速系统时,对Linux协议栈中已有的路由信息、接口信息进行读取,将路由信息写入适配层的FIB表,接口信息写入适配层的LINK表内,通过索引建立两个表的映射。将内核的信息转化为FIB表的表项信息,同步到适配层的FIB表和/或LINK表内,并通过hook处理单元、学习事件单元、设备状态单元和更新老化单元,对FIB表和/或LINK表进行维护,根据FIB表和/或LINK表实现路由转发。
具体的,路由加速方法还包括以下几个方面:
当Linux架构执行路由的添加时,通过hook处理单元进行处理;在hook处理主函数中,将内核的路由信息转换成FIB表的表项,并添加到适配层的FIB表中;如果系统包括硬件转发单元,则将适配层FIB表中的对应表项下发到硬件转发单元中的FIB表中,进行硬件路由转发加速。当Linux架构执行路由的删除时,同理,将内核的路由信息转换成FIB表的表项,由FIB表中删除对应的表项。如果系统包括硬件转发单元,则将硬件转发单元中的FIB表中对应表项也删除。同理,Linux架构执行路由的修改时,对应修改适配层的FIB表中对应表项,此处不再赘述。
当Linux架构通过邻居学习获得新的出口设备信息,或删除不存在的出口设备信息时,学习事件单元根据邻居学习事件,对应新增或删除LINK表中相应出口设备信息的表项;添加或删除指向此出口设备的主机路由信息,同时删除FIB表中对应的主机路由表项。如果系统包括硬件转发单元,则对其中的FIB表和LINK表,同样做添加表项或者删除表项的处理。
当Linux架构增加或删除PCE设备的网络接口时,设备状态单元在适配层的LINK表中,进行增加或删除对应表项的处理,实现对适配层的LINK表的同步更新。当修改网络接口时,修改LINK表中已有出口设备表项的出口设备IP信息或出口设备MAC信息。如果系统包括硬件转发单元,则对其中的LINK表也进行进行增加、修改或删除对应表项的处理。
当适配层的FIB表和LINK表,其中任意有更新或老化的时候,更新老化单元对适配层LINK表和FIB表进行解析并关联更新,如果系统包括硬件转发单元,则下发到硬件层的FIB表和LINK表实现硬件加速配置的下发。
当FIB表添加表项,LINK表后添加表项时,反向查找指向该LINK表的FIB表,更新FIB表中指向LINK表的索引;当LINK表的表项老化时,需要反向查找指向该LINK表的FIB表,更新FIB表中指向LINK表的索引。为此,建立关系表作为FIB表与LINK表的关联,以便反向查找时,能高效查找到指向LINK表的FIB表的表项。当LINK表的表项老化,指向该LINK表表项的FIB表表项没有被命中时,FIB表表项进行老化时间超过180s,删除LINK表中对应表项,以及删除指向该LINK表内容的FIB表的表项。
本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。
Claims (9)
1.一种CPE设备基于Linux架构的路由加速系统,其特征在于,包括FIB表、LINK表、hook处理单元、学习事件单元、设备状态单元和更新老化单元,FIB表和LINK表设置于适配层;
FIB表中存储的表项包括目的IP地址、出口设备IP信息、出口设备索引、转发属性、静态标识以及指向LINK表的索引;
LINK表中存储的表项包括出口设备IP信息和出口设备MAC信息;
所述hook处理单元,用于在Linux协议栈中捕获路由信息,并将内核的路由表项同步到FIB表内;
所述学习事件单元,用于在linux协议栈的邻居学习表有更新时,同步对FIB表和LINK表进行处理,所述处理包括:添加或删除出口设备信息时,对应新增或删除LINK表中相应出口设备信息的表项,添加或删除指向此出口设备的主机路由信息,同时删除FIB表中对应的主机路由表项;
所述设备状态单元,用于Linux架构中有网络接口增加或删除时,增加或删除LINK表中对应的表项;还用于有网络接口修改时,修改除LINK表中对应的表项;
所述更新老化单元,用于实现FIB表和LINK表的同步和老化处理。
2.如权利要求1所述的CPE设备基于Linux架构的路由加速系统,其特征在于:当CPE设备支持硬件加速时,所述路由加速系统还包括一个硬件转发单元,用于存储适配层下发的FIB表和LINK表,实现硬件路由转发。
3.一种基于权利要求1所述系统的CPE设备基于Linux架构的路由加速方法,其特征在于,包括:
初次加载路由加速系统时,对Linux协议栈中已有的路由信息、接口信息进行读取,将路由信息写入适配层的FIB表,接口信息写入适配层的LINK表内;
将内核的信息转化为FIB表的表项信息,同步到适配层的FIB表和/或LINK表内,并通过hook处理单元、学习事件单元、设备状态单元和更新老化单元,对FIB表和/或LINK表进行维护,根据FIB表和/或LINK表实现路由转发。
4.如权利要求3所述的CPE设备基于Linux架构的路由加速方法,其特征在于:当Linux架构执行路由的添加时,在hook处理主函数中,将内核的路由信息转换成FIB表的表项,并添加到适配层的FIB表中;当Linux架构执行路由的删除时,将内核的路由信息转换成FIB表的表项,由FIB表中删除对应的表项。
5.如权利要求3所述的CPE设备基于Linux架构的路由加速方法,其特征在于:当Linux架构通过邻居学习获得新的出口设备信息,或删除不存在的出口设备信息时,学习事件单元根据邻居学习事件,对应新增或删除LINK表中相应出口设备信息的表项;添加或删除指向此出口设备的主机路由信息,同时添加或删除FIB表中对应的主机路由表项。
6.如权利要求3所述的CPE设备基于Linux架构的路由加速方法,其特征在于:当Linux架构增加或删除网络接口时,设备状态单元在适配层的LINK表中,增加或删除对应表项;当修改网络接口时,修改LINK表中已有出口设备表项的出口设备IP信息或出口设备MAC信息。
7.如权利要求3所述的CPE设备基于Linux架构的路由加速方法,其特征在于:当FIB表添加表项,LINK表后添加表项时,反向查找指向该LINK表的FIB表,更新FIB表中指向LINK表的索引。
8.如权利要求3所述的CPE设备基于Linux架构的路由加速方法,其特征在于:建立关系表作为FIB表与LINK表的关联,当LINK表的表项老化,指向该LINK表表项的FIB表表项没有被命中时,FIB表表项进行老化的时间超过180s,则删除LINK表中对应表项、以及删除指向该LINK表内容的FIB表的表项。
9.如权利要求4-8中任一所述的CPE设备基于Linux架构的路由加速方法,其特征在于:当CPE设备支持硬件加速时,硬件层设置一个硬件转发单元,适配层下发FIB表和LINK表给硬件转发单元,通过硬件转发单元实现路由硬件加速,即在硬件转发单元的FIB表和/或LINK表中,实现同步。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610761612.1A CN106341319B (zh) | 2016-08-29 | 2016-08-29 | 一种CPE设备基于Linux架构的路由加速系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610761612.1A CN106341319B (zh) | 2016-08-29 | 2016-08-29 | 一种CPE设备基于Linux架构的路由加速系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106341319A true CN106341319A (zh) | 2017-01-18 |
CN106341319B CN106341319B (zh) | 2019-05-03 |
Family
ID=57822742
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610761612.1A Active CN106341319B (zh) | 2016-08-29 | 2016-08-29 | 一种CPE设备基于Linux架构的路由加速系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106341319B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108243107A (zh) * | 2018-01-30 | 2018-07-03 | 盛科网络(苏州)有限公司 | 一种动态调整硬件表项老化周期的方法及装置 |
CN110581805A (zh) * | 2018-06-08 | 2019-12-17 | 杭州海康威视数字技术股份有限公司 | 路由表更新方法、装置、交换机及存储介质 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1842042A (zh) * | 2005-04-01 | 2006-10-04 | 国际商业机器公司 | 用于搜索网络连接的方法和装置 |
CN101834871A (zh) * | 2010-05-14 | 2010-09-15 | 浙江工商大学 | 一种开放式路由器装置及其方法 |
US20110179136A1 (en) * | 2007-10-17 | 2011-07-21 | Dispersive Networks, Inc. | Apparatus, systems and methods utilizing dispersive networking |
CN102404235A (zh) * | 2011-12-26 | 2012-04-04 | 杭州华三通信技术有限公司 | 包转发方法及现场可编程门阵列 |
CN104038414A (zh) * | 2013-08-21 | 2014-09-10 | 江南大学 | 一种多协议智能家庭网关装置及其系统 |
CN104202268A (zh) * | 2014-09-16 | 2014-12-10 | 桂林电子科技大学 | 无线传感器网络IPv6路由协议报文分片重组的方法 |
CN104683234A (zh) * | 2013-12-02 | 2015-06-03 | 北京信威通信技术股份有限公司 | 一种通信网络设备路由方法和装置 |
CN104734958A (zh) * | 2013-12-18 | 2015-06-24 | 深圳市中兴微电子技术有限公司 | 一种路由信息的老化方法与装置 |
CN105407105A (zh) * | 2015-12-24 | 2016-03-16 | Tcl集团股份有限公司 | 一种在samba服务上进行设备鉴权的方法及系统 |
CN105704033A (zh) * | 2016-01-08 | 2016-06-22 | 烽火通信科技股份有限公司 | 一种pon设备路由转发表管理的实现方法 |
-
2016
- 2016-08-29 CN CN201610761612.1A patent/CN106341319B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1842042A (zh) * | 2005-04-01 | 2006-10-04 | 国际商业机器公司 | 用于搜索网络连接的方法和装置 |
US20110179136A1 (en) * | 2007-10-17 | 2011-07-21 | Dispersive Networks, Inc. | Apparatus, systems and methods utilizing dispersive networking |
CN101834871A (zh) * | 2010-05-14 | 2010-09-15 | 浙江工商大学 | 一种开放式路由器装置及其方法 |
CN102404235A (zh) * | 2011-12-26 | 2012-04-04 | 杭州华三通信技术有限公司 | 包转发方法及现场可编程门阵列 |
CN104038414A (zh) * | 2013-08-21 | 2014-09-10 | 江南大学 | 一种多协议智能家庭网关装置及其系统 |
CN104683234A (zh) * | 2013-12-02 | 2015-06-03 | 北京信威通信技术股份有限公司 | 一种通信网络设备路由方法和装置 |
CN104734958A (zh) * | 2013-12-18 | 2015-06-24 | 深圳市中兴微电子技术有限公司 | 一种路由信息的老化方法与装置 |
CN104202268A (zh) * | 2014-09-16 | 2014-12-10 | 桂林电子科技大学 | 无线传感器网络IPv6路由协议报文分片重组的方法 |
CN105407105A (zh) * | 2015-12-24 | 2016-03-16 | Tcl集团股份有限公司 | 一种在samba服务上进行设备鉴权的方法及系统 |
CN105704033A (zh) * | 2016-01-08 | 2016-06-22 | 烽火通信科技股份有限公司 | 一种pon设备路由转发表管理的实现方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108243107A (zh) * | 2018-01-30 | 2018-07-03 | 盛科网络(苏州)有限公司 | 一种动态调整硬件表项老化周期的方法及装置 |
CN108243107B (zh) * | 2018-01-30 | 2020-11-20 | 盛科网络(苏州)有限公司 | 一种动态调整硬件表项老化周期的方法及装置 |
CN110581805A (zh) * | 2018-06-08 | 2019-12-17 | 杭州海康威视数字技术股份有限公司 | 路由表更新方法、装置、交换机及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN106341319B (zh) | 2019-05-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104243318B (zh) | Vxlan网络中的mac地址学习方法及装置 | |
CN104380658B (zh) | 流分类器、业务路由触发器、报文处理的方法和系统 | |
CN103477588B (zh) | 刀片服务器中刀片间网络业务的分类和管理方法和系统 | |
CN103888386B (zh) | 可扩展虚拟局域网报文的传输方法及装置、系统 | |
US7099324B2 (en) | System and method for processing packets | |
CN103259727B (zh) | 一种报文转发方法及设备 | |
CN103595637B (zh) | 基于树与哈希表的内容中心网络结点处理数据方法 | |
CN102857414B (zh) | 一种转发表写入、报文转发方法及装置 | |
CN104954218A (zh) | 分布式虚拟交换装置及转发方法 | |
CN103095546A (zh) | 一种处理报文的方法、装置及数据中心网络 | |
CN102487374B (zh) | 一种访问控制列表实现方法及装置 | |
CN103546380B (zh) | 一种基于策略路由的报文转发方法和装置 | |
CN103368851A (zh) | 基于资源复用的Openflow流表存储优化方法 | |
CN104079478B (zh) | 报文转发方法和装置 | |
CN112543108B (zh) | 网络隔离策略管理方法和网络隔离策略管理系统 | |
CN107360096A (zh) | 一种vxlan报文的转发方法及系统 | |
CN104125128A (zh) | Linux软桥支持VLAN的方法 | |
CN109412925A (zh) | 基于vtep的转发表项更新方法及vtep | |
CN106453091B (zh) | 路由器转发平面的等价路由管理方法和装置 | |
EP3119046B1 (en) | Tunnel type selection method and apparatus | |
CN108833250A (zh) | 一种VxLAN与VLAN之间的转发方法 | |
CN106341319A (zh) | 一种CPE设备基于Linux架构的路由加速系统及方法 | |
CN108039968A (zh) | 网络优化方法、设备及计算机可读存储介质 | |
CN106716870A (zh) | 卫星设备处的本地分组交换 | |
CN105765922B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |