CN105515991A - 一种扩展三层转发设备的路由表容量的方法及转发设备 - Google Patents
一种扩展三层转发设备的路由表容量的方法及转发设备 Download PDFInfo
- Publication number
- CN105515991A CN105515991A CN201410490502.7A CN201410490502A CN105515991A CN 105515991 A CN105515991 A CN 105515991A CN 201410490502 A CN201410490502 A CN 201410490502A CN 105515991 A CN105515991 A CN 105515991A
- Authority
- CN
- China
- Prior art keywords
- table items
- route table
- routing iinformation
- message
- exchange chip
- 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.)
- Pending
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
- H04L45/54—Organization of routing tables
-
- 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/60—Router architectures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了一种扩展三层转发设备的路由表容量的方法及转发设备,所述三层转发设备包括CPU、交换芯片和扩展运算单元,方法包括:获得路由信息,所述路由信息包括路由的目的IP地址以及该目的IP地址对应的二层转发信息;根据所述路由信息生成路由表项,并将生成的第一部分路由表项保存在所述扩展运算单元中,将除所述第一部分路由表项外的其他路由表项保存在所述交换芯片中。本发明提供的方案通过将路由信息保存在扩展运算单元和交换芯片中,大幅提高了网络设备的路由表容量,降低了扩展路由表的成本,并且具有很好的灵活性和很强的扩展性,能够大大提高用户的满意度。
Description
技术领域
本发明涉及通信技术领域,特别是一种扩展三层转发设备的路由表容量的方法及转发设备。
背景技术
路由表是指路由器或者三层交换机等网络设备上存储的一张表,该表中存有到达特定网络终端的路径。IP报文的路由转发就是根据报文中携带的目的地址,通过查表操作查找路由表来获取下一跳的出口信息,因此路由表的容量直接决定了交换设备能够支撑的网络规模。随着城域网的快速发展,接入和汇聚网络设备的带宽越来越大,同时运营商要求一个设备接入的用户越来越多。由于接入设备(DSLAM、PON、城域网交换机等)需要使用交换芯片来进行数据汇聚和L3转发。
随着接入用户的不断增加,现有交换芯片路由表的容量已越来越难以满足这一需求。因此在满足性能要求的前提下,提升路由表的容量已成为迫切需要解决的问题。目前一般的做法有两个:一是对交换芯片的资源进行重新规划整合,最大限度的使用交换芯片资源;二是升级硬件,使用路由表容量更大的交换芯片。但重新规划芯片资源,必然会导致其他一些功能的使用受到制约,而且这样的提升也是很有限的。而升级交换芯片受限于两个条件:一是芯片厂家是否能及时提供这样的产品,二是芯片的成本会很高。
发明内容
本发明要解决的技术问题是提供一种扩展三层转发设备的路由表容量的方法及转发设备,解决现有技术中路由表容量太小的问题。
为了解决上述技术问题,本发明实施例提供一种扩展三层转发设备的路由表容量的方法,其特征在于,所述三层转发设备包括CPU、交换芯片和扩展运算单元,包括:
获得路由信息,所述路由信息包括路由的目的IP地址以及该目的IP地址对应的二层转发信息;
根据所述路由信息生成路由表项,并将生成的第一部分路由表项保存在所述扩展运算单元中,将除所述第一部分路由表项外的其他路由表项保存在所述交换芯片中。
上述的方法,其中,所述根据所述路由信息生成路由表项,并将生成的第一部分路由表项保存在所述扩展运算单元中,将除所述第一部分路由表项外的其他路由表项保存在所述交换芯片中,包括:
判断所述路由信息的路由类型是否为主机路由,得到第一判断结果;
若所述第一判断结果指示所述路由信息的路由类型是主机路由,根据所述路由信息生成第一主机路由表项并保存在所述扩展运算单元中。
上述的方法,其中,所述根据所述路由信息生成路由表项,并将生成的第一部分路由表项保存在所述扩展运算单元中,将除所述第一部分路由表项外的其他路由表项保存在所述交换芯片中,还包括:
在所述扩展运算单元中存储的主机路由表项达到第一门限后,根据新获得的路由类型为主机路由的路由信息生成第二主机路由表项并保存在所述交换芯片中。
上述的方法,其中,所述根据所述路由信息生成路由表项,并将生成的第一部分路由表项保存在所述扩展运算单元中,将除所述第一部分路由表项外的其他路由表项保存在所述交换芯片中,还包括:
若所述第一判断结果指示所述路由信息的信息类型不是主机路由,判断所述路由信息的前缀类型与预设前缀类型是否一致,得到第二判断结果;
若所述第二判断结果指示所述路由信息的前缀类型与所述预设前缀类型一致,根据所述路由信息生成第三路由表项并保存在所述扩展运算单元中。
上述的方法,其中,所述根据所述路由信息生成路由表项,并将生成的第一部分路由表项保存在所述扩展运算单元中,将除所述第一部分路由表项外的其他路由表项保存在所述交换芯片中,还包括:
若所述第二判断结果指示所述路由信息的前缀类型与所述预设前缀类型均不一致,根据所述路由信息生成第四路由表项并保存在所述交换芯片中。
上述的方法,其中,还包括:
接收IP报文;
将所述IP报文直接发送给所述扩展运算单元;
由所述扩展运算单元判断所述IP报文是否需要上送所述CPU处理,得到第三判断结果;
若所述第三判断结果指示所述IP报文需要上送所述CPU处理,则将所述IP报文通过所述交换芯片上送所述CPU进行处理。
上述的方法,其中,还包括:
若所述第三判断结果指示所述IP报文不需要上送所述CPU处理,则由所述扩展运算单元根据所述IP报文的目的IP地址,在所述扩展运算单元中的路由表项中进行匹配,并根据匹配成功的路由表项的二层转发信息,修改所述IP报文的二层报文头后发送给所述交换芯片进行转发。
上述的方法,其中,在所述IP报文未匹配上所述扩展运算单元中的路由表项时,所述方法还包括:
将所述IP报文转发给所述交换芯片,由所述交换芯片根据所述IP报文的目的IP地址,查找所述交换芯片中的路由表项进行转发处理。
本发明还提供了一种转发设备,包括CPU、交换芯片和扩展运算单元,其中,
所述CPU,用于获得路由信息,所述路由信息包括路由的目的IP地址以及该目的IP地址对应的二层转发信息;以及,根据所述路由信息生成路由表项,并将生成的第一部分路由表项保存在所述扩展运算单元中,将除所述第一部分路由表项外的其他路由表项保存在所述交换芯片中。
上述的转发设备,其中,所述CPU包括:
第一判断模块,用于判断所述路由信息的路由类型是否为主机路由,得到第一判断结果;
第一生成保存模块,用于若所述第一判断结果指示所述路由信息的路由类型是主机路由,根据所述路由信息生成第一主机路由表项并保存在所述扩展运算单元中。
上述的转发设备,其中,所述CPU还包括:
第二生成保存模块,用于在所述扩展运算单元中存储的主机路由表项达到第一门限后,根据新获得的路由类型为主机路由的路由信息生成第二主机路由表项并保存在所述交换芯片中。
上述的转发设备,其中,所述CPU还包括:
第二判断模块,用于若所述第一判断结果指示所述路由信息的信息类型不是主机路由,判断所述路由信息的前缀类型与预设前缀类型是否一致,得到第二判断结果;
第三生成保存模块,用于若所述第二判断结果指示所述路由信息的前缀类型与所述预设前缀类型一致,根据所述路由信息生成第三路由表项并保存在所述扩展运算单元中。
上述的转发设备,其中,所述CPU还包括:
第四生成保存模块,用于若所述第二判断结果指示所述路由信息的前缀类型与所述预设前缀类型均不一致,根据所述路由信息生成第四路由表项并保存在所述交换芯片中。
上述的转发设备,其中,
所述交换芯片,用于接收IP报文,并将所述IP报文直接发送给所述扩展运算单元;
所述扩展运算单元,用于判断所述IP报文是否需要上送所述CPU处理,得到第三判断结果,并若所述第三判断结果指示所述IP报文需要上送所述CPU处理,则将所述IP报文通过所述交换芯片上送所述CPU进行处理。
上述的转发设备,其中,
所述扩展运算单元,还用于若所述第三判断结果指示所述IP报文不需要上送所述CPU处理,则根据所述IP报文的目的IP地址,在所述扩展运算单元自身保存的路由表项中进行匹配,并根据匹配成功的路由表项的二层转发信息,修改所述IP报文的二层报文头后发送给所述交换芯片进行转发。
上述的转发设备,其中,
所述交换芯片,还用于接收所述扩展运算单元在所述IP报文未匹配上所述扩展运算单元自身保存的路由表项时转发的IP报文,并根据所述IP报文的目的IP地址,查找所述交换芯片自身保存的路由表项进行转发处理。
本发明的上述技术方案的有益效果如下:
上述方案中,所述扩展三层转发设备的路由表容量的方法通过将路由信息保存在扩展运算单元和交换芯片中,大幅提高了网络设备的路由表容量,降低了扩展路由表的成本,并且具有很好的灵活性和很强的扩展性,能够大大提高用户的满意度。
附图说明
图1为本发明实施例的方法步骤示意图;
图2为本发明实施例的转发设备部分结构示意图;
图3本发明实施例提供的方法在实际应用中的具体实时交互流程的步骤示意图;
图4为本发明实施例提供的采用FPGA的转发设备的部分结构示意图。
具体实施方式
为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。
本发明针对现有的技术中路由表容量太小的问题,提供一种扩展三层转发设备的路由表容量的方法,所述三层转发设备包括CPU、交换芯片和扩展运算单元,如图1所示,包括:
步骤11:获得路由信息,所述路由信息包括路由的目的IP地址以及该目的IP地址对应的二层转发信息;
步骤12:根据所述路由信息生成路由表项,并将生成的第一部分路由表项保存在所述扩展运算单元中,将除所述第一部分路由表项外的其他路由表项保存在所述交换芯片中。
本发明实施例提供的所述扩展三层转发设备的路由表容量的方法通过将路由信息保存在扩展运算单元和交换芯片中,大幅提高了网络设备的路由表容量,降低了扩展路由表的成本,并且具有很好的灵活性和很强的扩展性,能够大大提高用户的满意度。
其中,扩展运算单元可以采用可编程逻辑器件,如FPGA;二层转发信息包括源MAC、目的MAC以及VLAN;路由信息可以是路由器/三层交换机学习到的路由,或者是接收到的人为配置的路由。
其中,所述根据所述路由信息生成路由表项,并将生成的第一部分路由表项保存在所述扩展运算单元中,将除所述第一部分路由表项外的其他路由表项保存在所述交换芯片中,包括:判断所述路由信息的路由类型是否为主机路由,得到第一判断结果;若所述第一判断结果指示所述路由信息的路由类型是主机路由,根据所述路由信息生成第一主机路由表项并保存在所述扩展运算单元中。
考虑到实际应用情况,所述根据所述路由信息生成路由表项,并将生成的第一部分路由表项保存在所述扩展运算单元中,将除所述第一部分路由表项外的其他路由表项保存在所述交换芯片中,还包括:在所述扩展运算单元中存储的主机路由表项达到第一门限后,根据新获得的路由类型为主机路由的路由信息生成第二主机路由表项并保存在所述交换芯片中。
进一步的,所述根据所述路由信息生成路由表项,并将生成的第一部分路由表项保存在所述扩展运算单元中,将除所述第一部分路由表项外的其他路由表项保存在所述交换芯片中,还包括:若所述第一判断结果指示所述路由信息的信息类型不是主机路由,判断所述路由信息的前缀类型与预设前缀类型是否一致,得到第二判断结果;若所述第二判断结果指示所述路由信息的前缀类型与所述预设前缀类型一致,根据所述路由信息生成第三路由表项并保存在所述扩展运算单元中。
其中,在判断所述路由信息的前缀类型与预设前缀类型是否一致前还包括:获取预设前缀类型。考虑到节省交换芯片的资源以及处理效率,预设前缀的个数优先选择3个,且在判断路由信息的前缀类型与预设前缀类型是否一致时采用(掩码/前缀)最长匹配原则。
具体的,所述根据所述路由信息生成路由表项,并将生成的第一部分路由表项保存在所述扩展运算单元中,将除所述第一部分路由表项外的其他路由表项保存在所述交换芯片中,还包括:若所述第二判断结果指示所述路由信息的前缀类型与所述预设前缀类型均不一致,根据所述路由信息生成第四路由表项并保存在所述交换芯片中。
为了使得交换芯片和扩展运算单元的端口能够正常工作,本发明实施例提供的所述方法还包括:获取所述交换芯片与所述扩展运算单元的相连端口的属性配置条件以及包过滤引擎条目的配置参数发送给所述交换芯片;根据所述属性配置条件对所述相连端口的属性进行配置;根据所述配置参数对所述包过滤引擎条目进行配置。
具体的,根据所述属性配置条件对所述相连端口的属性进行配置的步骤包括:将所述相连端口配成XAUI;将发送和接收速率配成10G;关闭所述相连端口的MAC学习功能。
考虑到路由信息存储位置变动后,对应的处理过程将产生相应的改动,多以,本发明实施例提供的所述方法还包括:接收IP报文;将所述IP报文直接发送给所述扩展运算单元;由所述扩展运算单元判断所述IP报文是否需要上送所述CPU处理,得到第三判断结果;若所述第三判断结果指示所述IP报文需要上送所述CPU处理,则将所述IP报文通过所述交换芯片上送所述CPU进行处理。
其中,判断IP报文是否需要上报CPU处理可依照现有技术实现。
进一步的,所述方法还包括:若所述第三判断结果指示所述IP报文不需要上送所述CPU处理,则由所述扩展运算单元根据所述IP报文的目的IP地址,在所述扩展运算单元中的路由表项中进行匹配,并根据匹配成功的路由表项的二层转发信息,修改所述IP报文的二层报文头后发送给所述交换芯片进行转发。
更进一步的,在所述IP报文未匹配上所述扩展运算单元中的路由表项时,所述方法还包括:将所述IP报文转发给所述交换芯片,由所述交换芯片根据所述IP报文的目的IP地址,查找所述交换芯片中的路由表项进行转发处理。
为了解决上述技术问题,本发明实施例还提供了一种转发设备,如图2所示,包括CPU、交换芯片和扩展运算单元,其中,
所述CPU,用于获得路由信息,所述路由信息包括路由的目的IP地址以及该目的IP地址对应的二层转发信息;以及,根据所述路由信息生成路由表项,并将生成的第一部分路由表项保存在所述扩展运算单元中,将除所述第一部分路由表项外的其他路由表项保存在所述交换芯片中。
其中,扩展运算单元可以采用可编程逻辑器件,如FPGA;二层转发信息包括源MAC、目的MAC以及VLAN;路由信息可以是路由器/三层交换机学习到的路由,或者是接收到的人为配置的路由。
具体的,所述CPU包括:第一判断模块,用于判断所述路由信息的路由类型是否为主机路由,得到第一判断结果;第一生成保存模块,用于若所述第一判断结果指示所述路由信息的路由类型是主机路由,根据所述路由信息生成第一主机路由表项并保存在所述扩展运算单元中。
考虑到实际应用情况,所述CPU还包括:第二生成保存模块,用于在所述扩展运算单元中存储的主机路由表项达到第一门限后,根据新获得的路由类型为主机路由的路由信息生成第二主机路由表项并保存在所述交换芯片中。
进一步的,所述CPU还包括:第二判断模块,用于若所述第一判断结果指示所述路由信息的信息类型不是主机路由,判断所述路由信息的前缀类型与预设前缀类型是否一致,得到第二判断结果;第三生成保存模块,用于若所述第二判断结果指示所述路由信息的前缀类型与所述预设前缀类型一致,根据所述路由信息生成第三路由表项并保存在所述扩展运算单元中。
其中,所述CPU还用于获取预设前缀类型。考虑到节省交换芯片的资源以及处理效率,预设前缀的个数优先选择3个,且在判断路由信息的前缀类型与预设前缀类型是否一致时第二判断模块采用(掩码/前缀)最长匹配原则。
具体的,所述CPU还包括:第四生成保存模块,用于若所述第二判断结果指示所述路由信息的前缀类型与所述预设前缀类型均不一致,根据所述路由信息生成第四路由表项并保存在所述交换芯片中。
为了使得交换芯片和扩展运算单元的端口能够正常工作,本发明实施例提供的所述转发设备中所述CPU还用于获取所述交换芯片与所述扩展运算单元的相连端口的属性配置条件以及包过滤引擎条目的配置参数发送给所述交换芯片;所述交换芯片用于根据所述属性配置条件对所述相连端口的属性进行配置,并根据所述配置参数对所述包过滤引擎条目进行配置。
具体的,所述交换芯片用于将所述相连端口配成XAUI;将发送和接收速率配成10G;关闭所述相连端口的MAC学习功能。
考虑到路由信息存储位置变动后,对应的处理过程将产生相应的改动,多以,本发明实施例提供的所述交换芯片,用于接收IP报文,并将所述IP报文直接发送给所述扩展运算单元;所述扩展运算单元,用于判断所述IP报文是否需要上送所述CPU处理,得到第三判断结果,并若所述第三判断结果指示所述IP报文需要上送所述CPU处理,则将所述IP报文通过所述交换芯片上送所述CPU进行处理。
其中,所述扩展运算单元判断IP报文是否需要上报CPU处理时可依照现有技术实现。
进一步的,所述扩展运算单元,还用于若所述第三判断结果指示所述IP报文不需要上送所述CPU处理,则根据所述IP报文的目的IP地址,在所述扩展运算单元自身保存的路由表项中进行匹配,并根据匹配成功的路由表项的二层转发信息,修改所述IP报文的二层报文头后发送给所述交换芯片进行转发。
更进一步的,所述交换芯片,还用于接收所述扩展运算单元在所述IP报文未匹配上所述扩展运算单元自身保存的路由表项时转发的IP报文,并根据所述IP报文的目的IP地址,查找所述交换芯片自身保存的路由表项进行转发处理。
其中,上述扩展三层转发设备的路由表容量的方法的所述实现实施例均适用于该转发设备的实施例中,也能达到相同的技术效果。
下面对本方案进行进一步的说明。
本发明提供的方法可以应用于基于FPGA的扩展路由表容量系统,则该系统包括以下模块:
交换芯片,FPGA,主机路由表,子网路由表。
与现有和其它技术方案不同点在于,FPGA扩展路由表容量系统可以通过将符合某些规则的路由条目配置到FPGA,其他条目仍配置交换芯片,并对交换芯片和FPGA上的路由条目进行统一管理。这样就可以大大提升路由表的容量,可以达到数倍于交换芯片的容量。故该方案具有以下明显优点:容量大,成本低,灵活性好,扩展性强。
本发明提供的方法包括控制配置流程和转发流程:
控制配置流程主要是通过路由协议交互或者命令行静态配置产生路由表,可以分为预处理流程和实时交互流程。
预处理流程主要是指系统初始化过程中,对交换芯片和FPGA进行的一系列特殊配置,主要步骤如下:
第一步:设置交换芯片和FPGA相连端口的属性,主要包括端口配成XAUI,强制,速率配成10G,关闭端口MAC学习功能(以防止出现MAC地址漂移现象)。
第二步:从配置文件中获取需要配置在FPGA的前缀类型,并将前缀类型配置到FPGA,通过写FPGA上的前缀表项完成。
第三步:配置FP条目,将所有进入交换芯片的三层报文都重定向到FPGA。
更进一步的,第四步,配置交换芯片和FPGA相连端口聚合,即对多个FPGA端口做聚合,使用合适的负荷分担算法,可以提高网络转发容量。
实时交互流程,主要是为了处理通过命令行或者协议交互后,接收到的下发的路由配置,主要步骤如下:
第一步:将所有的IPV4和IPV6主机路由都配置在FPGA,FPGA表项配满后,再去写交换芯片的主机路由表;
需要将目的IP以及对应的源MAC,目的MAC,VLAN等信息写入FPGA相应的路由表中。
第二步:将所有的IPV4子网路由都配置在交换芯片。
第三步:指定需要配置在FPGA上的三个IPV6子网网段(比如前缀为64,56,48),并将前缀信息下发FPGA。
第四步:将符合第三步要求的子网路由配置在FPGA,匹配时按照(掩码)最长匹配原则,其余IPV6子网路由配置在交换芯片。同样需要将目的IP以及对应的源MAC,目的MAC,VLAN等信息写入FPGA相应的路由表中。
具体的,FPGA上采用五张路由存储表,其中一张是用于存储IPV4主机路由,其余四张用于存储IPV6的主机路由和三个不同前缀的子网路由,该四张路由表分别对应不同前缀。每张表各8K个bucket,每个bucket可包含4个冲突项(冲突项是指哈希冲突项,用于存储路由条目),共能容纳32K条路由条目。路由表采用双哈希算法,通过两张哈希表来计算路由表中bucket的索引和冲突项,从而可以大大提高路由表的利用率。这样既兼顾了子网路由表项的扩充,又充分考虑了查表效率的问题,在现网使用中具有很大的灵活性。
实际应用中,具体实时交互流程如图3所示,包括以下步骤:
步骤30:配置路由条目;
步骤31:判断是否开启FPGA扩展路由模式;
步骤32:如果没有开启,则按照原来的处理方式,将所有路由条目都配置在交换芯片;
步骤33:如果开启FPGA扩展路由模式,则需要判断该路由是否为主机路由(即判断该路由是主机路由还是子网路由);
步骤34:如果是主机路由,则需要进一步判断FPGA的主机路由表项是否已配满;
步骤35:如果FPGA的主机路由表项没有配满,则将该路由条目配置在FPGA;
步骤36:如果FPGA的主机路由表项已配满,则将该路由条目配置在交换芯片;
步骤37:如果是子网路由,则需要进一步判断掩码的类型;
步骤38:如果该子网路由的掩码属于指定类型,则将该路由条目配置在FPGA;
步骤39:如果该子网路由的掩码不属于指定类型,则将该路由条目配置在交换芯片。
转发流程主要处理根据路由转发表将IP报文传递到正确的目的地址,主要包含以下步骤:
第一步:所有进入交换芯片的IP报文,都优先送到FPGA进行路由表匹配,FPGA上的路由条目保存着一条路由转发所需要的信息,包括目的IP、掩码、源MAC、目的MAC以及VLAN。
第二步:FPGA对IP报文进行类型判断,对于需要送到CPU处理的协议报文,FPGA不进行处理转发给交换芯片,交换芯片在交换芯片和FPGA的相连口的入口处进行FP(filterprocessor-交换芯片的包过滤处理引擎)提包到CPU。
第三步:IP报文如果匹配命中,则在FPGA上进行报文的修改(包括源MAC、目的MAC以及VLAN的替换),将修改后的IP报文送回交换芯片继续走二层转发(ARP学习阶段,交换芯片已保存着MAC和端口的对应信息)。
第四步:IP报文如果匹配不命中,则FPGA不对报文进行任何修改,原样送回交换芯片(进行表项匹配)继续走三层转发流程。
交换芯片接收到FPGA转发的IP报文后,通过判断IP报文中目的MAC是否与本地MAC一致来确定走二层转发流程还是三层转发流程。
众所周知,在现有技术中,假如包含三条IP报文(报文1、报文2、报文3),交换芯片内部包含三张表,分别为L2MAC表,L3主机路由表,L3子网路由表。所有的路由条目都配置在交换芯片,这三条IP报文均在交换芯片内部做三层转发(交换芯片上进行修改报文的源、目的MAC以及VLAN,并将修改后的报文送到正确的端口)。
而本发明实施例提供的(采用FPGA)转发设备中交换芯片和FPGA之间通过两个XAUI口相连。交换芯片和CPU之间通过PCIE相连,FPGA和CPU之间通过LOCALBUS相连,如图4所示。采用FPGA的转发设备将所有进入交换芯片的报文,都优先送到FPGA进行路由表匹配。如果匹配命中,则在FPGA上进行报文的修改,修改完后报文送回交换芯片继续走二层转发(ARP学习阶段,交换芯片已保存着MAC和端口的对应信息(MAC表里保存了MAC和端口的信息,如果报文的目的MAC和MAC表中的某一条一致,则报文会被转发到该条MAC对应的端口去);如果匹配不命中,则FPGA不对报文进行任何修改,原样送回交换芯片继续走三层转发流程。
本发明提供的方案可以大幅提高网络设备的路由表容量,降低扩展路由表的成本,具有很好的灵活性,能够大大提高用户的满意度。
以上所述的是本发明的优选实施方式,应当指出对于本技术领域的普通人员来说,在不脱离本发明所述原理前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (16)
1.一种扩展三层转发设备的路由表容量的方法,其特征在于,所述三层转发设备包括CPU、交换芯片和扩展运算单元,包括:
获得路由信息,所述路由信息包括路由的目的IP地址以及该目的IP地址对应的二层转发信息;
根据所述路由信息生成路由表项,并将生成的第一部分路由表项保存在所述扩展运算单元中,将除所述第一部分路由表项外的其他路由表项保存在所述交换芯片中。
2.如权利要求1所述的方法,其特征在于,所述根据所述路由信息生成路由表项,并将生成的第一部分路由表项保存在所述扩展运算单元中,将除所述第一部分路由表项外的其他路由表项保存在所述交换芯片中,包括:
判断所述路由信息的路由类型是否为主机路由,得到第一判断结果;
若所述第一判断结果指示所述路由信息的路由类型是主机路由,根据所述路由信息生成第一主机路由表项并保存在所述扩展运算单元中。
3.如权利要求1所述的方法,其特征在于,所述根据所述路由信息生成路由表项,并将生成的第一部分路由表项保存在所述扩展运算单元中,将除所述第一部分路由表项外的其他路由表项保存在所述交换芯片中,还包括:
在所述扩展运算单元中存储的主机路由表项达到第一门限后,根据新获得的路由类型为主机路由的路由信息生成第二主机路由表项并保存在所述交换芯片中。
4.如权利要求3所述的方法,其特征在于,所述根据所述路由信息生成路由表项,并将生成的第一部分路由表项保存在所述扩展运算单元中,将除所述第一部分路由表项外的其他路由表项保存在所述交换芯片中,还包括:
若所述第一判断结果指示所述路由信息的信息类型不是主机路由,判断所述路由信息的前缀类型与预设前缀类型是否一致,得到第二判断结果;
若所述第二判断结果指示所述路由信息的前缀类型与所述预设前缀类型一致,根据所述路由信息生成第三路由表项并保存在所述扩展运算单元中。
5.如权利要求4所述的方法,其特征在于,所述根据所述路由信息生成路由表项,并将生成的第一部分路由表项保存在所述扩展运算单元中,将除所述第一部分路由表项外的其他路由表项保存在所述交换芯片中,还包括:
若所述第二判断结果指示所述路由信息的前缀类型与所述预设前缀类型均不一致,根据所述路由信息生成第四路由表项并保存在所述交换芯片中。
6.如权利要求1所述的方法,其特征在于,还包括:
接收IP报文;
将所述IP报文直接发送给所述扩展运算单元;
由所述扩展运算单元判断所述IP报文是否需要上送所述CPU处理,得到第三判断结果;
若所述第三判断结果指示所述IP报文需要上送所述CPU处理,则将所述IP报文通过所述交换芯片上送所述CPU进行处理。
7.如权利要求6所述的方法,其特征在于,还包括:
若所述第三判断结果指示所述IP报文不需要上送所述CPU处理,则由所述扩展运算单元根据所述IP报文的目的IP地址,在所述扩展运算单元中的路由表项中进行匹配,并根据匹配成功的路由表项的二层转发信息,修改所述IP报文的二层报文头后发送给所述交换芯片进行转发。
8.如权利要求7所述的方法,其特征在于,在所述IP报文未匹配上所述扩展运算单元中的路由表项时,所述方法还包括:
将所述IP报文转发给所述交换芯片,由所述交换芯片根据所述IP报文的目的IP地址,查找所述交换芯片中的路由表项进行转发处理。
9.一种转发设备,其特征在于,包括CPU、交换芯片和扩展运算单元,其中,
所述CPU,用于获得路由信息,所述路由信息包括路由的目的IP地址以及该目的IP地址对应的二层转发信息;以及,根据所述路由信息生成路由表项,并将生成的第一部分路由表项保存在所述扩展运算单元中,将除所述第一部分路由表项外的其他路由表项保存在所述交换芯片中。
10.如权利要求9所述的转发设备,其特征在于,所述CPU包括:
第一判断模块,用于判断所述路由信息的路由类型是否为主机路由,得到第一判断结果;
第一生成保存模块,用于若所述第一判断结果指示所述路由信息的路由类型是主机路由,根据所述路由信息生成第一主机路由表项并保存在所述扩展运算单元中。
11.如权利要求9所述的转发设备,其特征在于,所述CPU还包括:
第二生成保存模块,用于在所述扩展运算单元中存储的主机路由表项达到第一门限后,根据新获得的路由类型为主机路由的路由信息生成第二主机路由表项并保存在所述交换芯片中。
12.如权利要求11所述的转发设备,其特征在于,所述CPU还包括:
第二判断模块,用于若所述第一判断结果指示所述路由信息的信息类型不是主机路由,判断所述路由信息的前缀类型与预设前缀类型是否一致,得到第二判断结果;
第三生成保存模块,用于若所述第二判断结果指示所述路由信息的前缀类型与所述预设前缀类型一致,根据所述路由信息生成第三路由表项并保存在所述扩展运算单元中。
13.如权利要求12所述的转发设备,其特征在于,所述CPU还包括:
第四生成保存模块,用于若所述第二判断结果指示所述路由信息的前缀类型与所述预设前缀类型均不一致,根据所述路由信息生成第四路由表项并保存在所述交换芯片中。
14.如权利要求9所述转发设备,其特征在于,其中,
所述交换芯片,用于接收IP报文,并将所述IP报文直接发送给所述扩展运算单元;
所述扩展运算单元,用于判断所述IP报文是否需要上送所述CPU处理,得到第三判断结果,并若所述第三判断结果指示所述IP报文需要上送所述CPU处理,则将所述IP报文通过所述交换芯片上送所述CPU进行处理。
15.如权利要求14所述的转发设备,其特征在于,其中,
所述扩展运算单元,还用于若所述第三判断结果指示所述IP报文不需要上送所述CPU处理,则根据所述IP报文的目的IP地址,在所述扩展运算单元自身保存的路由表项中进行匹配,并根据匹配成功的路由表项的二层转发信息,修改所述IP报文的二层报文头后发送给所述交换芯片进行转发。
16.如权利要求15所述的转发设备,其特征在于,其中,
所述交换芯片,还用于接收所述扩展运算单元在所述IP报文未匹配上所述扩展运算单元自身保存的路由表项时转发的IP报文,并根据所述IP报文的目的IP地址,查找所述交换芯片自身保存的路由表项进行转发处理。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410490502.7A CN105515991A (zh) | 2014-09-23 | 2014-09-23 | 一种扩展三层转发设备的路由表容量的方法及转发设备 |
PCT/CN2015/076921 WO2016045368A1 (zh) | 2014-09-23 | 2015-04-17 | 一种扩展三层转发设备的路由表容量的方法及转发设备 |
EP15845105.4A EP3200405B1 (en) | 2014-09-23 | 2015-04-17 | Layer-3-forwarding device route table capacity expansion method and forwarding device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410490502.7A CN105515991A (zh) | 2014-09-23 | 2014-09-23 | 一种扩展三层转发设备的路由表容量的方法及转发设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105515991A true CN105515991A (zh) | 2016-04-20 |
Family
ID=55580239
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410490502.7A Pending CN105515991A (zh) | 2014-09-23 | 2014-09-23 | 一种扩展三层转发设备的路由表容量的方法及转发设备 |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP3200405B1 (zh) |
CN (1) | CN105515991A (zh) |
WO (1) | WO2016045368A1 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106656799A (zh) * | 2017-02-14 | 2017-05-10 | 湖南基石通信技术有限公司 | 一种基于无线mesh网络的报文转发方法及装置 |
CN106789671A (zh) * | 2016-12-29 | 2017-05-31 | 瑞斯康达科技发展股份有限公司 | 一种业务报文转发方法及设备 |
CN112769701A (zh) * | 2020-12-30 | 2021-05-07 | 杭州迪普信息技术有限公司 | 一种转发报文的方法及装置 |
CN114265805A (zh) * | 2021-12-13 | 2022-04-01 | 中国科学院计算技术研究所 | 一种PCIe交换芯片上、下游端口路由表构建方法及系统 |
CN114265804A (zh) * | 2021-12-13 | 2022-04-01 | 中国科学院计算技术研究所 | 一种多根CPU下的PCIe交换芯片上、下游端口路由表构建方法 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106485395A (zh) * | 2016-08-30 | 2017-03-08 | 上海交通大学 | 一种考虑配电网网损和扩容成本的分布式电源配置方法 |
CN108874987B (zh) * | 2018-06-11 | 2020-09-29 | 深圳市风云实业有限公司 | 表项管理方法、装置及交换芯片 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030023581A1 (en) * | 2001-07-27 | 2003-01-30 | International Business Machines Corporation | Method and system for performing a longest prefix match search |
US20110222539A1 (en) * | 2010-03-15 | 2011-09-15 | Grosser Donald B | Methods, systems, and computer readable media for automatically selecting between internet protocol switching modes on a per-module basis in a packet forwarding device |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6920133B1 (en) * | 2000-06-07 | 2005-07-19 | At&T Corp. | Techniques for introducing in-band network management packets in multi-protocol label switching networks |
US6965572B1 (en) * | 2000-06-07 | 2005-11-15 | At&T Corp. | Loopback capability for bi-directional multi-protocol label switching traffic engineered trucks |
CN101841483B (zh) * | 2010-05-06 | 2013-06-19 | 北京星网锐捷网络技术有限公司 | 硬件路由表管理方法、装置和通讯设备 |
CN101883055B (zh) * | 2010-07-19 | 2013-11-20 | 福建星网锐捷网络有限公司 | 路由转发表容量扩展实现方法、装置及交换设备 |
CN102868775B (zh) * | 2012-09-06 | 2015-05-20 | 福建星网锐捷网络有限公司 | 地址解析协议表容量的扩展方法、报文转发方法和装置 |
-
2014
- 2014-09-23 CN CN201410490502.7A patent/CN105515991A/zh active Pending
-
2015
- 2015-04-17 WO PCT/CN2015/076921 patent/WO2016045368A1/zh active Application Filing
- 2015-04-17 EP EP15845105.4A patent/EP3200405B1/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030023581A1 (en) * | 2001-07-27 | 2003-01-30 | International Business Machines Corporation | Method and system for performing a longest prefix match search |
US20110222539A1 (en) * | 2010-03-15 | 2011-09-15 | Grosser Donald B | Methods, systems, and computer readable media for automatically selecting between internet protocol switching modes on a per-module basis in a packet forwarding device |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106789671A (zh) * | 2016-12-29 | 2017-05-31 | 瑞斯康达科技发展股份有限公司 | 一种业务报文转发方法及设备 |
CN106789671B (zh) * | 2016-12-29 | 2020-01-14 | 瑞斯康达科技发展股份有限公司 | 一种业务报文转发方法及设备 |
CN106656799A (zh) * | 2017-02-14 | 2017-05-10 | 湖南基石通信技术有限公司 | 一种基于无线mesh网络的报文转发方法及装置 |
CN106656799B (zh) * | 2017-02-14 | 2019-12-03 | 湖南基石通信技术有限公司 | 一种基于无线mesh网络的报文转发方法及装置 |
CN112769701A (zh) * | 2020-12-30 | 2021-05-07 | 杭州迪普信息技术有限公司 | 一种转发报文的方法及装置 |
CN114265805A (zh) * | 2021-12-13 | 2022-04-01 | 中国科学院计算技术研究所 | 一种PCIe交换芯片上、下游端口路由表构建方法及系统 |
CN114265804A (zh) * | 2021-12-13 | 2022-04-01 | 中国科学院计算技术研究所 | 一种多根CPU下的PCIe交换芯片上、下游端口路由表构建方法 |
Also Published As
Publication number | Publication date |
---|---|
EP3200405B1 (en) | 2020-01-01 |
WO2016045368A1 (zh) | 2016-03-31 |
EP3200405A1 (en) | 2017-08-02 |
EP3200405A4 (en) | 2017-11-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105515991A (zh) | 一种扩展三层转发设备的路由表容量的方法及转发设备 | |
US9485194B2 (en) | Virtual link aggregation of network traffic in an aggregation switch | |
CN107733793B (zh) | 一种转发表项维护方法及装置 | |
CN104243630B (zh) | Vxlan网络中的mac地址学习方法及装置 | |
CN101005458B (zh) | 一种下发路由的方法、装置及系统 | |
CN102137024B (zh) | 报文处理方法、出口路由设备及边界路由设备 | |
CN104243270B (zh) | 一种建立隧道的方法和装置 | |
CN105577502B (zh) | 业务传送方法及装置 | |
CN105721321B (zh) | 一种等价多路径的出接口更新方法及装置 | |
CN104518940A (zh) | 实现nvo3网络与mpls网络之间通信的方法和装置 | |
CN104243317A (zh) | 一种实现ip路由转发的方法和装置 | |
CN101155136A (zh) | 一种虚拟网关、虚拟子网的实现方法以及系统 | |
CN104702438A (zh) | Pe设备管理方法以及装置 | |
EP2652914A1 (en) | Methods for configuring network switches | |
CN104702479A (zh) | Sdn网络中建立隧道的方法和装置 | |
US20180302371A1 (en) | Firewall cluster | |
CN106559246B (zh) | 集群的实现方法和服务器 | |
US9832121B1 (en) | Next hop instruction associations for forwarding unit programming within a network device | |
CN101364927A (zh) | 实现虚拟专用网vpn故障恢复的方法、设备及系统 | |
CN108259341A (zh) | 一种前缀标签分配方法和sdn控制器 | |
CN106385365B (zh) | 基于开放流Openflow表实现云平台安全的方法和装置 | |
CN103957157B (zh) | 一种网络接口可定义转发规则的路由方法 | |
CN103634423A (zh) | 一种基于三层接口的mpls-tp配置方法及装置 | |
CN104144122A (zh) | 建立标签交换路径的方法、设备及系统 | |
CN106559342A (zh) | 一种基于sdn的协议端口保护方法、装置和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20160420 |
|
WD01 | Invention patent application deemed withdrawn after publication |