CN106341319B - 一种CPE设备基于Linux架构的路由加速系统及方法 - Google Patents

一种CPE设备基于Linux架构的路由加速系统及方法 Download PDF

Info

Publication number
CN106341319B
CN106341319B CN201610761612.1A CN201610761612A CN106341319B CN 106341319 B CN106341319 B CN 106341319B CN 201610761612 A CN201610761612 A CN 201610761612A CN 106341319 B CN106341319 B CN 106341319B
Authority
CN
China
Prior art keywords
routing
fib
link table
list item
link
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.)
Active
Application number
CN201610761612.1A
Other languages
English (en)
Other versions
CN106341319A (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.)
Fiberhome Telecommunication Technologies Co Ltd
Original Assignee
Fiberhome Telecommunication Technologies Co Ltd
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 Fiberhome Telecommunication Technologies Co Ltd filed Critical Fiberhome Telecommunication Technologies Co Ltd
Priority to CN201610761612.1A priority Critical patent/CN106341319B/zh
Publication of CN106341319A publication Critical patent/CN106341319A/zh
Application granted granted Critical
Publication of CN106341319B publication Critical patent/CN106341319B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology 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设备基于Linux架构的路由加速系统及方法
技术领域
本发明涉及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表设置于适配层,所述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表中,实现同步。
CN201610761612.1A 2016-08-29 2016-08-29 一种CPE设备基于Linux架构的路由加速系统及方法 Active CN106341319B (zh)

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 CN106341319A (zh) 2017-01-18
CN106341319B true 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)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108243107B (zh) * 2018-01-30 2020-11-20 盛科网络(苏州)有限公司 一种动态调整硬件表项老化周期的方法及装置
CN110581805A (zh) * 2018-06-08 2019-12-17 杭州海康威视数字技术股份有限公司 路由表更新方法、装置、交换机及存储介质

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1842042A (zh) * 2005-04-01 2006-10-04 国际商业机器公司 用于搜索网络连接的方法和装置
CN101834871A (zh) * 2010-05-14 2010-09-15 浙江工商大学 一种开放式路由器装置及其方法
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设备路由转发表管理的实现方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8560634B2 (en) * 2007-10-17 2013-10-15 Dispersive Networks, Inc. Apparatus, systems and methods utilizing dispersive networking

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1842042A (zh) * 2005-04-01 2006-10-04 国际商业机器公司 用于搜索网络连接的方法和装置
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设备路由转发表管理的实现方法

Also Published As

Publication number Publication date
CN106341319A (zh) 2017-01-18

Similar Documents

Publication Publication Date Title
CN104243318B (zh) Vxlan网络中的mac地址学习方法及装置
CN103595637B (zh) 基于树与哈希表的内容中心网络结点处理数据方法
CN103888386B (zh) 可扩展虚拟局域网报文的传输方法及装置、系统
CN102857414B (zh) 一种转发表写入、报文转发方法及装置
US20170180274A1 (en) Packets Processing
CN104954218A (zh) 分布式虚拟交换装置及转发方法
US20030037042A1 (en) Table searching technique
CN102487374B (zh) 一种访问控制列表实现方法及装置
CN104410655B (zh) 基于命名机制的分布式网络的存储系统及方法
CN103368851A (zh) 基于资源复用的Openflow流表存储优化方法
WO2021169514A1 (zh) 一种虚拟机vm的迁移方法及装置
CN106341319B (zh) 一种CPE设备基于Linux架构的路由加速系统及方法
CN107666442B (zh) 一种基于软件定义网络sdn的虚拟网络控制方法和装置
CN108287905A (zh) 一种网络流特征的提取与存储方法
CN106789157A (zh) 堆叠系统及堆叠交换机的硬件资源管理方法
EP3456002B1 (en) Plug and play in a controller based network
CN108833250A (zh) 一种VxLAN与VLAN之间的转发方法
CN107332843A (zh) iOS网络请求拦截转发缓存方法及系统
EP3119046B1 (en) Tunnel type selection method and apparatus
CN109412925A (zh) 基于vtep的转发表项更新方法及vtep
CN102081603A (zh) 一种在多核环境下的arp查询优化的方法
CN106716870A (zh) 卫星设备处的本地分组交换
CN105765922B (zh) 流表项处理方法和装置
US9166819B2 (en) Method and device for realizing flexible QinQ
KR102226915B1 (ko) 소프트웨어 정의 네트워크에서 플로우 룰 데이터베이스를 운영하는 방법, 장치 및 컴퓨터 프로그램

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