CN105939266B - 一种报文的传输方法和装置 - Google Patents
一种报文的传输方法和装置 Download PDFInfo
- Publication number
- CN105939266B CN105939266B CN201510560076.4A CN201510560076A CN105939266B CN 105939266 B CN105939266 B CN 105939266B CN 201510560076 A CN201510560076 A CN 201510560076A CN 105939266 B CN105939266 B CN 105939266B
- Authority
- CN
- China
- Prior art keywords
- routing
- convergence
- forwarding chip
- aggregate
- 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.)
- Active
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/74—Address processing for routing
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/10—Mapping addresses of different types
- H04L61/103—Mapping addresses of different types across network layers, e.g. resolution of network layer into physical layer addresses or address resolution protocol [ARP]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种报文的传输方法和装置,该方法包括:中央处理器获得多个非汇聚路由对应的汇聚路由,确定汇聚路由对应的转发芯片,并将多个非汇聚路由下发到转发芯片,将汇聚路由下发到转发芯片之外的其它转发芯片;转发芯片在接收到报文时,获得报文对应的路由;当报文对应的路由为非汇聚路由时,转发芯片利用非汇聚路由对应的ARP表项确定由本转发芯片发送报文,并利用非汇聚路由对应的ARP表项发送报文;当报文对应的路由为汇聚路由时,转发芯片利用汇聚路由对应的ARP表项确定由其它转发芯片发送报文,并利用汇聚路由对应的ARP表项将报文发送给其它转发芯片。通过本发明的技术方案,可以利用所有转发芯片的资源,增加了网络设备能够存储的路由数量。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种报文的传输方法和装置。
背景技术
在报文从源设备传输到目的设备的过程中,路由(routing)用于决定源设备与目的设备之间的传输路径。网络设备(如路由器等)在接收到报文时,基于路由转发该报文,以实现网络互连。网络设备可以支持TCP(Transmission Control Protocol,传输控制协议)/IP(Internet Protocol,网络互连协议)等协议。网络设备通常连接两个或者多个由IP子网或点到点协议标识的逻辑端口,至少拥有1个物理端口。网络设备通过动态维护路由表来反映当前的网络拓扑,并通过与网络上其它网络设备交换路由和链路信息来维护路由表。
由于转发芯片能够存储的路由数量受到转发芯片规格的限制,当网络设备建立的路由数量很多时,转发芯片无法存储所有路由,网络设备向转发芯片下发路由时,无法将所有路由下发到转发芯片。例如,转发芯片能够存储的路由数量为10万条,网络设备建立的路由数量为100万条,则网络设备只能向转发芯片下发10万条路由,另外90万条路由无法被下发到转发芯片。
发明内容
本发明提供一种报文的传输方法,该方法应用在网络设备上,所述网络设备包括中央处理器和多个转发芯片,所述方法包括以下步骤:
所述中央处理器获得多个能够进行汇聚的非汇聚路由对应的汇聚路由,确定所述汇聚路由对应的转发芯片,并将所述多个非汇聚路由下发到所述汇聚路由对应的转发芯片,并将所述汇聚路由下发到所述汇聚路由对应的转发芯片之外的其它转发芯片;
转发芯片在接收到报文时,获得所述报文对应的路由;
当所述报文对应的路由为非汇聚路由时,所述汇聚路由对应的转发芯片利用所述非汇聚路由对应的地址解析协议ARP表项确定由所述汇聚路由对应的转发芯片发送所述报文,并利用所述非汇聚路由对应的ARP表项发送所述报文;
当所述报文对应的路由为汇聚路由时,所述汇聚路由对应的转发芯片利用所述汇聚路由对应的ARP表项确定由其它转发芯片发送所述报文,并利用所述汇聚路由对应的ARP表项将所述报文发送给所述其它转发芯片,由所述其它转发芯片利用所述报文对应的非汇聚路由对应的ARP表项发送所述报文。
所述中央处理器确定所述汇聚路由对应的转发芯片的过程,具体包括:
所述中央处理器利用转发芯片的数量、路由的数量、各转发芯片能够存储的最大路由数量,确定所述汇聚路由对应的转发芯片;或者,
所述中央处理器获得各转发芯片关联的三层接口的数量,并利用各转发芯片关联的三层接口的数量,确定所述汇聚路由对应的转发芯片;或者,
所述中央处理器获得路由协议学习到非汇聚路由的接口关联的转发芯片,统计所述多个非汇聚路由对应的转发芯片,并利用所述多个非汇聚路由对应的转发芯片,确定所述汇聚路由对应的转发芯片;或者,
所述中央处理器获得路由协议学习到非汇聚路由的接口关联的转发芯片,并获得所述多个非汇聚路由中的掩码最短的非汇聚路由,并确定所述汇聚路由对应的转发芯片为掩码最短的非汇聚路由对应的转发芯片;或者,
所述中央处理器获得各转发芯片关联的三层接口的数量,并获得路由协议学习到非汇聚路由的接口关联的转发芯片,统计所述多个非汇聚路由对应的转发芯片;所述中央处理器利用各转发芯片关联的三层接口的数量以及所述多个非汇聚路由对应的转发芯片,确定所述汇聚路由对应的转发芯片。
所述方法进一步包括:
针对所述多个非汇聚路由中的每个非汇聚路由,所述中央处理器获得所述非汇聚路由对应的ARP表项,并将所述ARP表项下发到所述汇聚路由对应的转发芯片上;其中,所述非汇聚路由包括的索引值为所述ARP表项在所述汇聚路由对应的转发芯片的位置信息,所述ARP表项的出接口为指向其它网络设备的接口;
针对所述汇聚路由,所述中央处理器获得所述汇聚路由对应的特定ARP表项,并将所述特定ARP表项下发到所述其它转发芯片上;其中,所述汇聚路由包括的索引值为所述特定ARP表项在所述其它转发芯片的位置信息,所述特定ARP表项的出接口为指向所述汇聚路由对应的转发芯片的接口。
所述汇聚路由对应的转发芯片利用所述非汇聚路由对应的ARP表项确定由所述汇聚路由对应的转发芯片发送所述报文,具体包括:当所述报文对应的非汇聚路由包括的索引值为所述ARP表项在所述汇聚路由对应的转发芯片的位置信息时,则所述汇聚路由对应的转发芯片利用所述非汇聚路由中包括的所述ARP表项在所述汇聚路由对应的转发芯片的位置信息,查找到所述ARP表项,并利用所述ARP表项的出接口确定由所述汇聚路由对应的转发芯片发送所述报文;
所述汇聚路由对应的转发芯片利用所述汇聚路由对应的ARP表项确定由其它转发芯片发送所述报文的过程,具体包括:当所述报文对应的汇聚路由包括的索引值为特定ARP表项在所述汇聚路由对应的转发芯片的位置信息时,则所述汇聚路由对应的转发芯片利用所述汇聚路由中包括的特定ARP表项在所述汇聚路由对应的转发芯片的位置信息,查找到特定ARP表项,并利用特定ARP表项的出接口确定由其它转发芯片发送所述报文。
所述汇聚路由对应的转发芯片或者所述其它转发芯片利用非汇聚路由对应的ARP表项发送所述报文,具体包括:所述汇聚路由对应的转发芯片或者所述其它转发芯片从所述非汇聚路由对应的ARP表项中,获得出接口、目的媒体访问控制MAC地址和接口索引,并通过所述接口索引查询预先配置的接口索引表,得到所述接口索引对应的MAC地址;其中,所述接口索引表中预先记录了接口索引与MAC地址的对应关系;所述汇聚路由对应的转发芯片或者所述其它转发芯片将所述报文的源MAC地址修改为所述接口索引对应的MAC地址,并将所述报文的目的MAC地址修改为获得的所述目的MAC地址,并通过所述出接口发送修改后的报文。
本发明提供一种报文的传输装置,所述报文的传输装置应用在网络设备上,所述网络设备包括中央处理器和多个转发芯片,所述报文的传输装置具体包括处理模块、与多个转发芯片对应的多个转发模块,所述处理模块位于所述中央处理器内,且每个转发芯片内包括一个转发模块;其中:
所述处理模块,用于获得多个能够进行汇聚的非汇聚路由对应的汇聚路由,确定所述汇聚路由对应的转发芯片,并将所述多个非汇聚路由下发到所述汇聚路由对应的转发芯片,并将所述汇聚路由下发到所述汇聚路由对应的转发芯片之外的其它转发芯片;
所述转发模块,在接收到报文时,获得所述报文对应的路由;当所述报文对应的路由为非汇聚路由时,利用所述非汇聚路由对应的地址解析协议ARP表项确定由所述汇聚路由对应的转发芯片发送所述报文,并利用所述非汇聚路由对应的ARP表项发送所述报文;当所述报文对应的路由为汇聚路由时,利用所述汇聚路由对应的ARP表项确定由其它转发芯片发送所述报文,并利用所述汇聚路由对应的ARP表项将所述报文发送给所述其它转发芯片,由所述其它转发芯片利用所述报文对应的非汇聚路由对应的ARP表项发送所述报文。
所述处理模块,具体用于在确定所述汇聚路由对应的转发芯片的过程中,利用转发芯片的数量、路由的数量、各转发芯片能够存储的最大路由数量,确定所述汇聚路由对应的转发芯片;或者,获得各转发芯片关联的三层接口的数量,并利用各转发芯片关联的三层接口的数量,确定所述汇聚路由对应的转发芯片;或者,获得路由协议学习到非汇聚路由的接口关联的转发芯片,统计所述多个非汇聚路由对应的转发芯片,并利用所述多个非汇聚路由对应的转发芯片,确定所述汇聚路由对应的转发芯片;或者,获得路由协议学习到非汇聚路由的接口关联的转发芯片,并获得所述多个非汇聚路由中的掩码最短的非汇聚路由,并确定所述汇聚路由对应的转发芯片为掩码最短的非汇聚路由对应的转发芯片;或者,获得各转发芯片关联的三层接口的数量,并获得路由协议学习到非汇聚路由的接口关联的转发芯片,统计所述多个非汇聚路由对应的转发芯片;利用各转发芯片关联的三层接口的数量以及所述多个非汇聚路由对应的转发芯片,确定所述汇聚路由对应的转发芯片。
所述处理模块,还用于针对所述多个非汇聚路由中的每个非汇聚路由,则获得所述非汇聚路由对应的ARP表项,并将所述ARP表项下发到所述汇聚路由对应的转发芯片上;其中,所述非汇聚路由包括的索引值为所述ARP表项在所述转发芯片的位置信息,所述ARP表项的出接口为指向其它网络设备的接口;
所述处理模块,还用于针对所述汇聚路由,则获得所述汇聚路由对应的特定ARP表项,并将所述特定ARP表项下发到所述其它转发芯片上;其中,所述汇聚路由包括的索引值为所述特定ARP表项在所述其它转发芯片的位置信息,所述特定ARP表项的出接口为指向所述汇聚路由对应的转发芯片的接口。
所述转发模块,具体用于在利用所述非汇聚路由对应的ARP表项确定由所述汇聚路由对应的转发芯片发送所述报文的过程中,当所述报文对应的非汇聚路由包括的索引值为所述ARP表项在所述汇聚路由对应的转发芯片的位置信息时,则利用所述非汇聚路由中包括的所述ARP表项在所述汇聚路由对应的转发芯片的位置信息,查找到所述ARP表项,并利用所述ARP表项的出接口确定由所述汇聚路由对应的转发芯片发送所述报文;
所述转发模块,具体用于在利用所述汇聚路由对应的ARP表项确定由其它转发芯片发送所述报文的过程中,当所述报文对应的汇聚路由包括的索引值为特定ARP表项在所述汇聚路由对应的转发芯片的位置信息时,则利用所述汇聚路由中包括的特定ARP表项在所述汇聚路由对应的转发芯片的位置信息,查找到特定ARP表项,并利用特定ARP表项的出接口确定由其它转发芯片发送所述报文。
所述转发模块,具体用于在利用非汇聚路由对应的ARP表项发送所述报文的过程中,从所述非汇聚路由对应的ARP表项中,获得出接口、目的媒体访问控制MAC地址和接口索引,并通过所述接口索引查询预先配置的接口索引表,得到所述接口索引对应的MAC地址;其中,所述接口索引表中预先记录了接口索引与MAC地址的对应关系;将所述报文的源MAC地址修改为所述接口索引对应的MAC地址,并将所述报文的目的MAC地址修改为获得的所述目的MAC地址,并通过所述出接口发送修改后的报文。
基于上述技术方案,本发明实施例中,网络设备通过将路由下发到多个转发芯片中的一个转发芯片,而不是将路由下发到多个转发芯片中的每个转发芯片,从而可以利用所有转发芯片的资源,增加转发芯片能够存储的路由数量。通过增加转发芯片的数量,来提高网络设备能够存储的路由数量。例如,每个转发芯片能够存储的路由数量为10万条时,通过在网络设备上配置10个转发芯片,使得所有转发芯片能够存储的路由数量为100万条,当建立的路由数量为100万条时,则网络设备的所有转发芯片能够存储所有的路由。
附图说明
图1是本发明一种实施方式中的应用场景的示意图;
图2是本发明一种实施方式中的报文的传输方法的流程图;
图3是本发明一种实施方式中的路由存储树的结构示意图;
图4是本发明一种实施方式中的网络设备的硬件结构图;
图5是本发明一种实施方式中的报文的传输装置的结构图。
具体实施方式
针对现有技术中存在的问题,本发明实施例中提出了一种报文的传输方法,该方法应用在网络设备上,该网络设备包括中央处理器和多个转发芯片,以图1为本发明实施例的应用场景示意图。其中,该中央处理器具体可以为CPU(Central Processing Unit,中央处理器)。在由多个单板组合的框式网络设备中,转发芯片具体可以为单板。在由多个盒式设备级联成的网络设备中,转发芯片具体可以为盒式设备。其中,在框式网络设备中,包括机框、电源、多个单板等,单板具体可以包括但不限于主控板、业务板、接口板等。主控板是一种带有中央处理器的特殊单板,用于控制整台框式网络设备,包括控制层面和数据层面两部分。业务板是一种带有中央处理器和转发芯片的处理业务转发的单板,该业务板的所有转发表项来自主控板,包括中央处理器转发和芯片转发两部分。接口板是只带有转发芯片的单板,只具备芯片转发功能。在级联成的网络设备中,级联设备可能有几个盒式设备或几个框式设备组成,即通过一种虚拟化技术将几台独立的设备虚拟成一台网络设备。
在上述应用场景下,如图2所示,该报文的传输方法可以包括以下步骤:
步骤201,中央处理器获得多个能够进行汇聚的非汇聚路由对应的汇聚路由,确定该汇聚路由对应的转发芯片,并将这多个非汇聚路由下发到该转发芯片,并将该汇聚路由下发到该转发芯片之外的其它转发芯片。
本发明实施例中,可以采用分布式路由存储方式,按照预设算法确定汇聚路由对应的一个转发芯片,并将该汇聚路由对应的所有非汇聚路由(即多个非汇聚路由)下发到该转发芯片,而不是将该汇聚路由对应的所有非汇聚路由下发到所有转发芯片,即不同的转发芯片会存储不同的非汇聚路由,不用每个转发芯片均存储所有的非汇聚路由。通过网络设备的多个转发芯片,共同完成大容量的路由存储。其中,非汇聚路由即现有实现中的路由。
本发明实施例中,多个能够进行汇聚的非汇聚路由是指:对应于同一指定掩码长度的非汇聚路由。在实际应用中,指定掩码长度的数值可以根据实际经验任意选择,如指定掩码长度的最小值为8。基于此,当多个非汇聚路由对应同一掩码长度为8的路由时,可以将该掩码长度为8的路由作为这多个非汇聚路由对应的汇聚路由;当多个非汇聚路由对应同一掩码长度为12的路由时,可以将该掩码长度为12的路由作为这多个非汇聚路由对应的汇聚路由;当多个非汇聚路由对应同一掩码长度为16的路由时,可以将该掩码长度为16的路由作为这多个非汇聚路由对应的汇聚路由;以此类推。
其中,将多个能够进行汇聚的非汇聚路由进行汇聚,得到汇聚路由时所使用的路由汇聚算法,可根据实际经验任意配置,如将对应于同一指定掩码长度的非汇聚路由进行汇聚,并将指定掩码长度的非汇聚路由作为汇聚路由。具体的,汇聚路由可以为多条非汇聚路由汇聚出的路由,如掩码长度为8的路由等,汇聚路由也可以为多条非汇聚路由中的掩码最短的路由。
如图3所示,为一种路由存储树的结构示意图,从图3中可以看出,多个非汇聚路由1.0.0.0/8、1.1.0.0/16,1.2.0.0/16和1.1.2.0/24对应同一掩码长度为8的路由1.0.0.0/8,因此可以确定这多个非汇聚路由对应的汇聚路由为1.0.0.0/8,该汇聚路由为1.0.0.0/8也为掩码最短的路由,假设确定该汇聚路由对应的转发芯片为转发芯片1,则将这多个非汇聚路由1.0.0.0/8、1.1.0.0/16,1.2.0.0/16和1.1.2.0/24下发到转发芯片1,并将汇聚路由1.0.0.0/8下发到转发芯片2、转发芯片3和转发芯片4。多个非汇聚路由2.2.0.0/16、2.2.1.0/24、2.2.1.128/28、2.2.1.192/28对应同一掩码长度为8的路由2.0.0.0/8,因此可以确定这多个非汇聚路由对应的汇聚路由为2.0.0.0/8,或者,确定这多个非汇聚路由对应的汇聚路由为掩码最短的路由2.2.0.0/16,假设确定该汇聚路由对应的转发芯片为转发芯片2,则将这多个非汇聚路由2.2.0.0/16、2.2.1.0/24、2.2.1.128/28、2.2.1.192/28下发到转发芯片2,并将汇聚路由2.2.0.0/16或者2.0.0.0/8下发到转发芯片1、转发芯片3和转发芯片4。多个非汇聚路由3.3.3.0/24、3.3.3.128/28、3.3.3.128/32对应同一掩码长度为8的路由3.0.0.0/8,因此可以确定这多个非汇聚路由对应的汇聚路由为3.0.0.0/8,或者,确定这多个非汇聚路由对应的汇聚路由为掩码最短的路由3.3.3.0/24,假设确定该汇聚路由对应的转发芯片为转发芯片3,则将这多个非汇聚路由3.3.3.0/24、3.3.3.128/28、3.3.3.128/32下发到转发芯片3,并将汇聚路由3.3.3.0/24或者3.0.0.0/8下发到转发芯片1、转发芯片2和转发芯片4。此外,默认路由(如0.0.0.0/0)不进行路由汇聚,直接下发到所有的转发芯片。
基于上述处理,在一种示例中,则转发芯片1内存储的路由表可以如表1所示,转发芯片2内存储的路由表可以如表2所示,转发芯片3内存储的路由表可以如表3所示,转发芯片4内存储的路由表可以如表4所示。
表1
VRF(虚拟路由转发表)标识 | 路由 | ARP表项的索引值 |
0 | 1.0.0.0/8 | 2 |
0 | 1.1.0.0/16 | 2 |
0 | 1.2.0.0/16 | 2 |
0 | 1.1.2.0/24 | 2 |
0 | 0.0.0.0/0 | 2 |
0 | 2.2.0.0/16或者2.0.0.0/8 | 10 |
0 | 3.3.3.0/24或者3.0.0.0/8 | 11 |
表2
VRF(虚拟路由转发表)标识 | 路由 | ARP表项的索引值 |
0 | 2.2.0.0/16 | 2 |
0 | 2.2.1.0/24 | 2 |
0 | 2.2.1.128/28 | 2 |
0 | 2.2.1.192/28 | 2 |
0 | 0.0.0.0/0 | 2 |
0 | 1.0.0.0/8 | 9 |
0 | 3.3.3.0/24或者3.0.0.0/8 | 11 |
表3
表4
VRF(虚拟路由转发表)标识 | 路由 | ARP表项的索引值 |
0 | 0.0.0.0/0 | 2 |
0 | 1.0.0.0/8 | 9 |
0 | 2.2.0.0/16或者2.0.0.0/8 | 10 |
0 | 3.3.3.0/24或者3.0.0.0/8 | 11 |
本发明实施例中,针对多个汇聚路由中的每个汇聚路由,中央处理器确定汇聚路由对应的转发芯片的过程,具体可以包括但不限于如下方式:
方式一,基于预设算法,中央处理器可以根据转发芯片的数量以及路由的数量,确定汇聚路由对应的转发芯片以及每个转发芯片上下发的非汇聚路由的数量,具体的预设算法可以根据实际需要任意设置,在此不再赘述。
方式二,中央处理器可以利用转发芯片的数量、路由的数量、以及各转发芯片能够存储的最大路由数量,确定汇聚路由对应的转发芯片。
在该方式中,中央处理器可以根据各转发芯片的路由规格(即转发芯片能够存储的最大路由数量),转发芯片的数量、路由的数量进行非汇聚路由对应的转发芯片的划分。例如,网络设备中的非汇聚路由的数量为100条,转发芯片的数量为3个,这3个转发芯片的路由规格分别为80,40,60。基于此,在3个转发芯片下发的非汇聚路由的数量分别为(80/(80+40+60))*100,(40/(80+40+60))*100,(60/(80+40+60))*100。基于非汇聚路由下发的转发芯片,则可以确定出非汇聚路由对应的汇聚路由的转发芯片。
在该方式中,中央处理器是根据各转发芯片的路由规格,占用所有转发芯片的路由总规格的比例,来为转发芯片分配非汇聚路由,继而确定汇聚路由的转发芯片,即不考虑任何条件随机分配非汇聚路由所要下发的转发芯片。
方式三,中央处理器可以获得各转发芯片关联的三层接口的数量,并利用各转发芯片关联的三层接口的数量,确定汇聚路由对应的转发芯片。
中央处理器统计所有三层接口关联的转发芯片,各转发芯片关联的三层接口的数量,并将汇聚路由对应的非汇聚路由优先下发给关联三层接口的数量最多的转发芯片,然后依次往后排。例如,网络设备中路由的总数为100条,有3个转发芯片,3个转发芯片关联的三层接口数量分别为10个,5个,3个。基于此,根据各转发芯片关联三层接口的数量占总三层接口数量的比例,确定汇聚路由对应的转发芯片,在3个转发芯片下发的非汇聚路由的数量为(10/(10+5+3))*100,(5/(10+5+3))*100,(3/(10+5+3))*100。
方式四,中央处理器可以获得路由协议学习到非汇聚路由的接口关联的转发芯片,并统计汇聚路由对应的多个非汇聚路由对应的转发芯片,并利用多个非汇聚路由对应的转发芯片,确定该汇聚路由对应的转发芯片。
在动态路由协议学习到非汇聚路由时,还可以记录学习到该非汇聚路由的接口,并获得学习到非汇聚路由的接口关联的转发芯片。针对汇聚路由对应的多个非汇聚路由,可以获得学习到该非汇聚路由的接口关联的转发芯片,继而统计出汇聚路由对应的多个非汇聚路由对应的转发芯片,并确定该汇聚路由对应的转发芯片为对应非汇聚路由的数量最多的转发芯片。
例如,当汇聚路由对应的100个非汇聚路由中,有50个非汇聚路由对应的转发芯片为转发芯片1,有25个非汇聚路由对应的转发芯片为转发芯片2,有15个非汇聚路由对应的转发芯片为转发芯片3,有10个非汇聚路由对应的转发芯片为转发芯片4,则确定汇聚路由对应的转发芯片为转发芯片1。
在该方式中,考虑了路由学习的因素,正常情况下,路由从哪个接口学习过来,则从这个接口上来的业务报文匹配这条路由的机率就很大。
方式五,中央处理器可以获得路由协议学习到非汇聚路由的接口关联的转发芯片,并获得这多个非汇聚路由中的掩码最短的非汇聚路由,并确定汇聚路由对应的转发芯片为该掩码最短的非汇聚路由对应的转发芯片。
在动态路由协议学习到非汇聚路由时,还可以记录学习到非汇聚路由的接口,并获得学习到该非汇聚路由的接口关联的转发芯片。针对汇聚路由对应的多个非汇聚路由,可以获得学习到这多个非汇聚路由中的掩码最短的非汇聚路由的接口关联的转发芯片。基于此,中央处理器可以直接确定汇聚路由对应的转发芯片为该掩码最短的非汇聚路由对应的转发芯片。
方式六,中央处理器获得各转发芯片关联的三层接口的数量,并获得路由协议学习到非汇聚路由的接口关联的转发芯片,并统计多个非汇聚路由对应的转发芯片。基于此,中央处理器利用各转发芯片关联的三层接口的数量以及多个非汇聚路由对应的转发芯片,确定汇聚路由对应的转发芯片。
在实际应用中,中央处理器可以实时的向转发芯片下发非汇聚路由,即中央处理器在得到一个非汇聚路由后,直接确定该一个非汇聚路由对应的汇聚路由对应的转发芯片。中央处理器也可以批量的向转发芯片下发非汇聚路由,即中央处理器同一时间需要确定批量的非汇聚路由对应的汇聚路由对应的转发芯片。针对上述方式一和方式二,可以适用于批量的向转发芯片下发非汇聚路由的应用场景。此外,针对上述方式三、方式四、方式五、方式六,可以适用于实时的向转发芯片下发非汇聚路由的应用场景,也可以适用于批量的向转发芯片下发非汇聚路由的应用场景。
当然,在实际应用中,并不局限于采用方式一-方式六来确定汇聚路由对应的转发芯片,还可以手工配置汇聚路由对应的转发芯片,在此不再赘述。
以下结合具体的应用场景对方式六的实现过程进行详细说明。
假设在对多个能够进行汇聚的非汇聚路由进行汇聚,得到汇聚路由时所使用的路由汇聚算法,是一种多叉树结构,该多叉树共分为七层,第一层为0~8位掩码的路由,共2的8次方个节点,第二层为9~12位掩码的路由,每个父节点下有2的4次方个节点,第三层为13~16位掩码的路由,每个父节点下有2的4次方个节点,第四层为17~20位掩码的路由,每个父节点下有2的4次方个节点,第五层为21~24位掩码的路由,每个父节点下有2的4次方个节点,第六层为25~28位掩码的路由,每个父节点下有2的4次方个节点,第七层为29~32位掩码的路由,每个父节点下有2的4次方个节点。
在上述应用场景下,每个节点对应为一个非汇聚路由。上述多叉树结构只是为了说明路由的结构的示例,并不意味着真实的树结构就一定如此,真实情况下会有所变动,而且,多叉树的层数设计也可以根据实际情况改变。
针对实时的向转发芯片下发非汇聚路由的应用场景,即非汇聚路由的实时下发算法,可以用于实时的非汇聚路由的下发、或者部署新的转发芯片时的非汇聚路由的下发、或者减少转发芯片时的非汇聚路由的下发。
在此过程中,可以统计当前的转发芯片的数量、各转发芯片关联的三层接口的数量、学习到非汇聚路由的接口关联的转发芯片。其中,针对动态路由,可以根据路由协议学习到非汇聚路由时的入接口,判断该非汇聚路由关联的转发芯片,如果入接口为虚拟接口(如VLAN(虚拟局域网)接口),则非汇聚路由可能会关联多个转发芯片。针对静态路由,由于是静态配置,无法获得非汇聚路由的入接口,因此静态路由默认不关联任何转发芯片。父节点的非汇聚路由自动关联子节点的非汇聚路由关联的转发芯片。这样,整棵路由树分类出的子树都有自己关联的转发芯片,并且可能不止一个,优先选择关联非汇聚路由数最多的转发芯片。如果一颗子树全部为静态路由,则优先选择关联三层接口数最多的转发芯片。根节点维护所有独立下发转发芯片的非汇聚路由以及对应的转发芯片,根节点的默认转发芯片为任意指定的转发芯片,如第一条非汇聚路由对应的转发芯片,或者指定的其它转发芯片。
在将非汇聚路由下发转发芯片之前,最长匹配会遍历根节点下所有独立下发转发芯片的节点(即非汇聚路由),如果找到当前节点,则按照当前节点所属的转发芯片进行下发,否则按照根节点所属的转发芯片进行下发。如果匹配到节点对应的转发芯片或根节点对应的转发芯片的路由表已满,则基于当前节点重新创建独立下发转发芯片的节点,按照以下方法选择转发芯片。
情况一、在动态路由下发时,优先下发非汇聚路由关联的转发芯片中关联三层接口数最多的转发芯片。其中,如果优先选择的转发芯片的路由表已满,则选择次优关联的转发芯片,以此类推。如果优先选择的转发芯片的路由表已经超过预设阈值,则检测是否所有的转发芯片的路由表均已经超过预设阈值,如果是,则选择当前优先选择的转发芯片,否则,选择次优关联的转发芯片,以此类推。如果非汇聚路由关联的所有转发芯片的路由表均已满或者超过预设阈值,则按照关联三层接口数来依次选择转发芯片。
情况二、在静态路由下发时,优先下发关联三层接口数最多的转发芯片。其中,如果优先选择的转发芯片的路由表已满,则选择次优关联的转发芯片,以此类推。如果优先选择的转发芯片的路由表已经超过预设阈值,则检测是否所有的转发芯片的路由表均已经超过预设阈值,如果是,则选择当前优先选择的转发芯片,否则,选择次优关联的转发芯片,以此类推。
本发明实施例中,所有的根节点以及独立下发转发芯片的节点,均需要将当前节点对应的汇聚路由下发给除当前转发芯片之外的所有转发芯片。当新插入一个转发芯片时,遍历所有没有下发转发芯片的节点,以各个子树中未下发转发芯片的起始节点,创建独立下发转发芯片的节点,并将对应的非汇聚路由下发新的转发芯片。当拔出一个转发芯片时,遍历所有的根节点以及独立下发转发芯片的节点的路由,为其设置未下发转发芯片的属性,并删除独立下发的转发芯片的节点,按照上述算法重新规划转发芯片的下发。
针对批量的向转发芯片下发非汇聚路由的应用场景,即非汇聚路由的批量下发算法,可以用于重新规划所有转发芯片上的非汇聚路由。
在此过程中,可以统计当前的转发芯片的数量、各转发芯片关联的三层接口的数量、学习到非汇聚路由的接口关联的转发芯片。
其中,根据第一层各节点的子节点数和转发芯片数统计分类,统计分类算法如下:如果第一层节点的个数大于转发芯片数,则可以将子节点个数少的关联到同一个转发芯片。如果第一层节点的个数小于转发芯片数,则可以考虑第二层节点。如果第二层节点加上第一层节点数大于转发芯片数,则可以将子节点个数少的关联到同一个转发芯片。如果第二层节点加上第一层节点数也小于转发芯片数,则可以考虑第三层节点,以此类推。如果节点数大于了转发芯片数,则将子节点数少的关联到同一个转发芯片。
上述算法的基本原则是:尽量保证同一类节点下的非汇聚路由,下发到同一个转发芯片上,即:如果所选择的转发芯片的路由规格容量,无法满足当前节点下的所有非汇聚路由,则可以选择其它容量更大的转发芯片。如果所有转发芯片的单独容量,都无法容纳当前节点下的所有非汇聚路由,则将该节点树当成一颗整树,递归执行当前算法,如果是非根节点树下的非汇聚路由下发转发芯片,则需要创建独立下发转发芯片的节点,并在根节点记录其下的独立创建下发转发芯片的所有子节点,以及其选择的转发芯片。
本发明实施例中,所有的根节点以及独立下发转发芯片的节点,均需要将当前节点对应的汇聚路由下发给除当前转发芯片之外的所有转发芯片。根节点以及独立下发转发芯片的节点,选择转发芯片的算法如下:1、如果根节点已配置其对应的转发芯片,则选择配置的转发芯片。2、优先选择关联子节点数量最多的转发芯片,如果该转发芯片的容量已满,则按照关联子节点数量由多到少的顺序,依次选择。3、如果转发芯片的路由表已经超过预设阈值,则检测是否所有的转发芯片的路由表均已经超过预设阈值,如果是,则选择当前的转发芯片,否则,按照关联三层接口数量来依次选择转发芯片。
本发明实施例中,在中央处理器获得多个非汇聚路由对应的汇聚路由,确定该汇聚路由对应的转发芯片,并将这多个非汇聚路由下发到该转发芯片,并将该汇聚路由下发到该转发芯片之外的其它转发芯片之后,则针对多个非汇聚路由中的每个非汇聚路由,则中央处理器获得该非汇聚路由对应的ARP(Address Resolution Protocol,地址解析协议)表项,并将该ARP表项下发到该转发芯片上;其中,该非汇聚路由包括的索引值为ARP表项在转发芯片的位置信息,ARP表项的出接口为指向其它网络设备的接口。针对汇聚路由,则中央处理器获得汇聚路由对应的特定ARP表项,并将特定ARP表项下发到其它转发芯片上;其中,该汇聚路由包括的索引值为特定ARP表项在其它转发芯片的位置信息,该特定ARP表项的出接口为指向该转发芯片的接口。
其中,中央处理器获得汇聚路由/非汇聚路由的过程,与中央处理器获得ARP表项的过程是两个独立的过程,二者不具备关联关系,即不需要基于ARP表项获得汇聚路由/非汇聚路由,也不需要基于汇聚路由/非汇聚路由获得ARP表项,只是汇聚路由/非汇聚路由包括的索引值,与ARP表项在相应的转发芯片的位置有关,并不代表汇聚路由/非汇聚路由是基于ARP表项生成的,也不代表ARP表项是基于汇聚路由/非汇聚路由生成的。
如表1所示,非汇聚路由(1.0.0.0/8、1.1.0.0/16,1.2.0.0/16和1.1.2.0/24)被下发到转发芯片1,非汇聚路由1.0.0.0/8对应的ARP表项1在转发芯片1的位置信息可为第2个ARP表项,非汇聚路由1.0.0.0/8包括的索引值为ARP表项1在转发芯片1的位置信息(第2个ARP表项),ARP表项1的出接口为指向其它网络设备的接口。非汇聚路由1.1.0.0/16对应的ARP表项1在转发芯片1的位置信息可为第2个ARP表项,非汇聚路由1.1.0.0/16包括的索引值为ARP表项1在转发芯片1的位置信息(第2个ARP表项),ARP表项1的出接口为指向其它网络设备的接口。非汇聚路由1.2.0.0/16对应的ARP表项1在转发芯片1的位置信息可为第2个ARP表项,非汇聚路由1.2.0.0/16包括的索引值为ARP表项1在转发芯片1的位置信息(第2个ARP表项),ARP表项1的出接口为指向其它网络设备的接口。非汇聚路由1.1.2.0/24对应的ARP表项1在转发芯片1的位置信息可为第2个ARP表项,非汇聚路由1.1.2.0/24包括的索引值为ARP表项1在转发芯片1的位置信息(第2个ARP表项),ARP表项1的出接口为指向其它网络设备的接口。
如表2所示,非汇聚路由(1.0.0.0/8、1.1.0.0/16,1.2.0.0/16和1.1.2.0/24)对应的汇聚路由1.0.0.0/8被下发到转发芯片2,汇聚路由1.0.0.0/8对应的特定ARP表项在转发芯片2的位置信息可为第9个ARP表项,汇聚路由1.0.0.0/8包括的索引值为特定ARP表项在转发芯片2的位置信息(第9个ARP表项),特定ARP表项的出接口为指向转发芯片1的接口,如接口10。
如表3所示,非汇聚路由(1.0.0.0/8、1.1.0.0/16,1.2.0.0/16和1.1.2.0/24)对应的汇聚路由1.0.0.0/8被下发到转发芯片3,汇聚路由1.0.0.0/8对应的特定ARP表项在转发芯片3的位置信息可为第9个ARP表项,汇聚路由1.0.0.0/8包括的索引值为特定ARP表项在转发芯片3的位置信息(第9个ARP表项),特定ARP表项的出接口为指向转发芯片1的接口,如接口11。
如表4所示,非汇聚路由(1.0.0.0/8、1.1.0.0/16,1.2.0.0/16和1.1.2.0/24)对应的汇聚路由1.0.0.0/8被下发到转发芯片4,汇聚路由1.0.0.0/8对应的特定ARP表项在转发芯片4的位置信息可为第9个ARP表项,汇聚路由1.0.0.0/8包括的索引值为特定ARP表项在转发芯片4的位置信息(第9个ARP表项),特定ARP表项的出接口为指向转发芯片1的接口,如接口12。
步骤202,转发芯片在接收到报文时,获得该报文对应的路由。
其中,当该报文对应的路由为非汇聚路由时,则转发芯片执行步骤203。当该报文对应的路由为汇聚路由时,则转发芯片执行步骤204。
其中,转发芯片在接收到报文时,利用该报文的目的IP地址查询本转发芯片维护的所有路由。如果没有匹配该报文的目的IP地址的路由,则无法获得该报文对应的路由,直接丢弃该报文。如果有匹配该报文的目的IP地址的路由,则获得匹配该报文的目的IP地址的路由,并执行后续处理。
步骤203,转发芯片利用非汇聚路由对应的ARP表项确定由本转发芯片发送该报文,并利用该非汇聚路由对应的ARP表项发送该报文。
步骤204,转发芯片利用汇聚路由对应的ARP表项确定由其它转发芯片发送该报文,并利用汇聚路由对应的ARP表项将报文发送给其它转发芯片,由其它转发芯片利用该报文对应的非汇聚路由对应的ARP表项发送该报文。
本发明实施例中,转发芯片利用非汇聚路由对应的ARP表项确定由本转发芯片发送该报文的过程,具体可以包括但不限于如下方式:当该报文对应的非汇聚路由包括的索引值为ARP表项在本转发芯片的位置信息时,则本转发芯片利用该非汇聚路由中包括的ARP表项在本转发芯片的位置信息,查找到该ARP表项,并利用该ARP表项的出接口确定由本转发芯片直接发送该报文。其中,该ARP表项的出接口为指向其它网络设备的接口。
本发明实施例中,转发芯片利用汇聚路由对应的ARP表项确定由其它转发芯片发送该报文的过程,具体可以包括但不限于如下方式:当报文对应的汇聚路由包括的索引值为特定ARP表项在本转发芯片的位置信息时,则转发芯片利用汇聚路由中包括的特定ARP表项在本转发芯片的位置信息,查找到该特定ARP表项,并利用该特定ARP表项的出接口确定由其它转发芯片发送该报文。其中,该特定ARP表项的出接口为指向其它转发芯片的接口。
如图1所示,转发芯片1在接收到匹配非汇聚路由1.1.0.0/16的报文时,由于该非汇聚路由1.1.0.0/16包括的索引值为ARP表项1在转发芯片1的位置信息(如第2个ARP表项),因此,转发芯片1利用非汇聚路由1.1.0.0/16中包括的ARP表项1的位置信息,查找到该ARP表项1。由于该ARP表项1的出接口为指向其它网络设备的接口,因此转发芯片1利用该ARP表项1的出接口确定由本转发芯片1发送该报文。转发芯片2在接收到匹配汇聚路由1.0.0.0/8的报文时,由于该汇聚路由1.0.0.0/8包括的索引值为特定ARP表项在转发芯片2的位置信息(如第9个ARP表项),因此转发芯片2利用汇聚路由1.0.0.0/8中包括的特定ARP表项的位置信息,查找到特定ARP表项。由于该特定ARP表项的出接口为指向转发芯片1的接口,因此转发芯片2利用该特定ARP表项的出接口(即指向转发芯片1的接口)确定由转发芯片1发送该报文,并通过指向转发芯片1的接口将报文发送给转发芯片1。
本发明实施例中,转发芯片或者其它转发芯片利用非汇聚路由(即报文对应的非汇聚路由)对应的ARP表项发送该报文的过程,具体可以包括但不限于如下方式:转发芯片或者其它转发芯片从非汇聚路由对应的ARP表项中,获得出接口、目的MAC(Media AccessControl,媒体访问控制)地址和接口索引,并通过该接口索引查询预先配置的接口索引表,以得到该接口索引对应的MAC地址;其中,该接口索引表中预先记录了接口索引与MAC地址的对应关系。进一步的,转发芯片或者其它转发芯片将该报文的源MAC地址修改为该接口索引对应的MAC地址,并将该报文的目的MAC地址修改为当前获得的目的MAC地址,并通过该出接口发送修改后的报文。
其中,当网络设备存在多个出接口,且不同的出接口配置有不同的MAC地址时,可以预先在转发芯片上配置接口索引表,该接口索引表用于记录接口索引与MAC地址之间的对应关系,且该接口索引用于表示相应的出接口,且在ARP表项中记录了该出接口与该接口索引的对应关系。基于此,通过该接口索引查询预先配置的接口索引表,可以得到出接口对应的MAC地址。
如图1所示,转发芯片1利用非汇聚路由1.1.0.0/16包括的索引值(如第2个ARP表项)获得对应的ARP表项,即转发芯片1的第2个ARP表项。转发芯片1从ARP表项1中获得出接口1、目的MAC地址1和接口索引1,通过接口索引1查询预先配置的接口索引表,得到接口索引1对应的MAC地址2。转发芯片1将报文的源MAC地址修改为MAC地址2,并将报文的目的MAC地址修改为目的MAC地址1,并通过出接口1发送修改后的报文。
如图1所示,转发芯片2确定由转发芯片1发送报文时,基于该报文对应的汇聚路由1.0.0.0/8包括的索引值找到特定ARP表项,并基于该特定ARP表项的出接口(即指向转发芯片1的接口),转发芯片2可以通过该接口将报文发送给转发芯片1。进一步的,在转发芯片2将该报文发送给转发芯片1之后,转发芯片1接收来自转发芯片2的报文。由于该报文匹配到非汇聚路由1.1.0.0/16,且非汇聚路由1.1.0.0/16包括的索引值为ARP表项1在转发芯片1的位置信息(如第2个ARP表项),因此,转发芯片1确定由本转发芯片1发送该报文。转发芯片1利用非汇聚路由1.1.0.0/16包括的索引值(如第2个ARP表项)获得对应的ARP表项,即转发芯片1的第2个ARP表项。转发芯片1从ARP表项1中获得出接口1、目的MAC地址1和接口索引1,通过接口索引1查询预先配置的接口索引表,得到接口索引1对应的MAC地址2。转发芯片1将报文的源MAC地址修改为MAC地址2,并将报文的目的MAC地址修改为目的MAC地址1,并通过出接口1发送修改后的报文。
基于上述技术方案,本发明实施例中,网络设备通过将路由下发到多个转发芯片中的一个转发芯片,而不是将路由下发到多个转发芯片中的每个转发芯片,从而可以利用所有转发芯片的资源,增加转发芯片能够存储的路由数量。通过增加转发芯片的数量,来提高网络设备能够存储的路由数量。例如,每个转发芯片能够存储的路由数量为10万条时,通过在网络设备上配置10个转发芯片,使得所有转发芯片能够存储的路由数量为100万条,当建立的路由数量为100万条时,则网络设备的所有转发芯片能够存储所有的路由。
基于与上述方法同样的发明构思,本发明实施例中还提供一种报文的传输装置,该报文的传输装置应用在网络设备上,该网络设备包括中央处理器和多个转发芯片,该报文的传输装置具体包括处理模块、与多个转发芯片对应的多个转发模块,该处理模块位于中央处理器内,且每个转发芯片内包括一个转发模块。其中,该报文的传输装置可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在的网络设备的中央处理器,将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图4所示,为本发明提出的报文的传输装置所在的网络设备的一种硬件结构图,该网络设备可以包括中央处理器、网络接口、内存、非易失性存储器、负责处理报文的转发芯片等;从硬件结构上来讲,该网络设备还可能是分布式设备。
如图5所示,为本发明实施例中提出的报文的传输装置的结构图,所述报文的传输装置具体可以包括:处理模块11和转发模块12;其中:
所述处理模块11,用于获得多个能够进行汇聚的非汇聚路由对应的汇聚路由,确定所述汇聚路由对应的转发芯片,并将所述多个非汇聚路由下发到所述转发芯片,并将所述汇聚路由下发到所述转发芯片之外的其它转发芯片;
所述转发模块12,在接收到报文时,获得所述报文对应的路由;当所述报文对应的路由为非汇聚路由时,利用所述非汇聚路由对应的地址解析协议ARP表项确定由所述转发芯片发送所述报文,并利用所述非汇聚路由对应的ARP表项发送所述报文;当所述报文对应的路由为汇聚路由时,利用所述汇聚路由对应的ARP表项确定由其它转发芯片发送所述报文,并利用所述汇聚路由对应的ARP表项将所述报文发送给所述其它转发芯片,由所述其它转发芯片利用所述报文对应的非汇聚路由对应的ARP表项发送所述报文。
所述处理模块11,具体用于在确定所述汇聚路由对应的转发芯片的过程中,利用转发芯片的数量、路由的数量、各转发芯片能够存储的最大路由数量,确定所述汇聚路由对应的转发芯片;或者,获得各转发芯片关联的三层接口的数量,并利用各转发芯片关联的三层接口的数量,确定所述汇聚路由对应的转发芯片;或者,获得路由协议学习到非汇聚路由的接口关联的转发芯片,统计所述多个非汇聚路由对应的转发芯片,并利用所述多个非汇聚路由对应的转发芯片,确定所述汇聚路由对应的转发芯片;或者,获得路由协议学习到非汇聚路由的接口关联的转发芯片,并获得所述多个非汇聚路由中的掩码最短的非汇聚路由,并确定所述汇聚路由对应的转发芯片为掩码最短的非汇聚路由对应的转发芯片;或者,获得各转发芯片关联的三层接口的数量,并获得路由协议学习到非汇聚路由的接口关联的转发芯片,统计所述多个非汇聚路由对应的转发芯片;利用各转发芯片关联的三层接口的数量以及所述多个非汇聚路由对应的转发芯片,确定所述汇聚路由对应的转发芯片。
所述处理模块11,还用于针对所述多个非汇聚路由中的每个非汇聚路由,则获得所述非汇聚路由对应的ARP表项,并将所述ARP表项下发到所述转发芯片上;其中,所述非汇聚路由包括的索引值为所述ARP表项在所述转发芯片的位置信息,所述ARP表项的出接口为指向其它网络设备的接口;
所述处理模块11,还用于针对所述汇聚路由,则获得所述汇聚路由对应的特定ARP表项,并将所述特定ARP表项下发到所述其它转发芯片上;其中,所述汇聚路由包括的索引值为所述特定ARP表项在所述其它转发芯片的位置信息,所述特定ARP表项的出接口为指向所述转发芯片的接口。
所述转发模块12,具体用于在利用所述非汇聚路由对应的ARP表项确定由所述转发芯片发送所述报文的过程中,当所述报文对应的非汇聚路由包括的索引值为所述ARP表项在所述转发芯片的位置信息时,则利用所述非汇聚路由中包括的所述ARP表项在所述转发芯片的位置信息,查找到所述ARP表项,并利用所述ARP表项的出接口确定由所述转发芯片发送所述报文;
所述转发模块12,具体用于在利用所述汇聚路由对应的ARP表项确定由其它转发芯片发送所述报文的过程中,当所述报文对应的汇聚路由包括的索引值为特定ARP表项在所述转发芯片的位置信息时,则利用所述汇聚路由中包括的特定ARP表项在所述转发芯片的位置信息,查找到特定ARP表项,并利用特定ARP表项的出接口确定由其它转发芯片发送所述报文。
所述转发模块12,具体用于在利用非汇聚路由对应的ARP表项发送所述报文的过程中,从所述非汇聚路由对应的ARP表项中,获得出接口、目的媒体访问控制MAC地址和接口索引,并通过所述接口索引查询预先配置的接口索引表,得到所述接口索引对应的MAC地址;其中,所述接口索引表中预先记录了接口索引与MAC地址的对应关系;将所述报文的源MAC地址修改为所述接口索引对应的MAC地址,并将所述报文的目的MAC地址修改为获得的所述目的MAC地址,并通过所述出接口发送修改后的报文。
其中,本发明装置的各个模块可以集成于一体,也可以分离部署。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可进一步拆分成多个子模块。上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。
Claims (10)
1.一种报文的传输方法,该方法应用在网络设备上,其特征在于,所述网络设备包括中央处理器和多个转发芯片,所述方法包括以下步骤:
所述中央处理器获得多个能够进行汇聚的非汇聚路由对应的汇聚路由,确定所述汇聚路由对应的转发芯片,并将所述多个非汇聚路由下发到所述汇聚路由对应的转发芯片,并将所述汇聚路由下发到所述汇聚路由对应的转发芯片之外的其它转发芯片;
转发芯片在接收到报文时,获得所述报文对应的路由;
当所述报文对应的路由为非汇聚路由时,所述汇聚路由对应的转发芯片利用所述非汇聚路由对应的地址解析协议ARP表项确定由所述汇聚路由对应的转发芯片发送所述报文,并利用所述非汇聚路由对应的ARP表项发送所述报文;
当所述报文对应的路由为汇聚路由时,所述汇聚路由对应的转发芯片利用所述汇聚路由对应的ARP表项确定由其它转发芯片发送所述报文,并利用所述汇聚路由对应的ARP表项将所述报文发送给所述其它转发芯片,由所述其它转发芯片利用所述报文对应的非汇聚路由对应的ARP表项发送所述报文。
2.根据权利要求1所述的方法,其特征在于,所述中央处理器确定所述汇聚路由对应的转发芯片的过程,具体包括:
所述中央处理器利用转发芯片的数量、路由的数量、各转发芯片能够存储的最大路由数量,确定所述汇聚路由对应的转发芯片;或者,
所述中央处理器获得各转发芯片关联的三层接口的数量,并利用各转发芯片关联的三层接口的数量,确定所述汇聚路由对应的转发芯片;或者,
所述中央处理器获得路由协议学习到非汇聚路由的接口关联的转发芯片,统计所述多个非汇聚路由对应的转发芯片,并利用所述多个非汇聚路由对应的转发芯片,确定所述汇聚路由对应的转发芯片;或者,
所述中央处理器获得路由协议学习到非汇聚路由的接口关联的转发芯片,并获得所述多个非汇聚路由中的掩码最短的非汇聚路由,并确定所述汇聚路由对应的转发芯片为掩码最短的非汇聚路由对应的转发芯片;或者,
所述中央处理器获得各转发芯片关联的三层接口的数量,并获得路由协议学习到非汇聚路由的接口关联的转发芯片,统计所述多个非汇聚路由对应的转发芯片;所述中央处理器利用各转发芯片关联的三层接口的数量以及所述多个非汇聚路由对应的转发芯片,确定所述汇聚路由对应的转发芯片。
3.根据权利要求1所述的方法,其特征在于,所述方法进一步包括:
针对所述多个非汇聚路由中的每个非汇聚路由,所述中央处理器获得所述非汇聚路由对应的ARP表项,并将所述ARP表项下发到所述汇聚路由对应的转发芯片上;其中,所述非汇聚路由包括的索引值为所述ARP表项在所述汇聚路由对应的转发芯片的位置信息,所述ARP表项的出接口为指向其它网络设备的接口;
针对所述汇聚路由,所述中央处理器获得所述汇聚路由对应的特定ARP表项,并将所述特定ARP表项下发到所述其它转发芯片上;其中,所述汇聚路由包括的索引值为所述特定ARP表项在所述其它转发芯片的位置信息,所述特定ARP表项的出接口为指向所述汇聚路由对应的转发芯片的接口。
4.根据权利要求3所述的方法,其特征在于,所述汇聚路由对应的转发芯片利用所述非汇聚路由对应的ARP表项确定由所述汇聚路由对应的转发芯片发送所述报文,具体包括:
当所述报文对应的非汇聚路由包括的索引值为所述ARP表项在所述汇聚路由对应的转发芯片的位置信息时,则所述汇聚路由对应的转发芯片利用所述非汇聚路由中包括的所述ARP表项在所述汇聚路由对应的转发芯片的位置信息,查找到所述ARP表项,并利用所述ARP表项的出接口确定由所述汇聚路由对应的转发芯片发送所述报文;
所述汇聚路由对应的转发芯片利用所述汇聚路由对应的ARP表项确定由其它转发芯片发送所述报文的过程,具体包括:当所述报文对应的汇聚路由包括的索引值为特定ARP表项在所述汇聚路由对应的转发芯片的位置信息时,则所述汇聚路由对应的转发芯片利用所述汇聚路由中包括的特定ARP表项在所述汇聚路由对应的转发芯片的位置信息,查找到特定ARP表项,并利用特定ARP表项的出接口确定由其它转发芯片发送所述报文。
5.根据权利要求1所述的方法,其特征在于,所述汇聚路由对应的转发芯片或者所述其它转发芯片利用非汇聚路由对应的ARP表项发送所述报文,具体包括:
所述汇聚路由对应的转发芯片或者所述其它转发芯片从所述非汇聚路由对应的ARP表项中,获得出接口、目的媒体访问控制MAC地址和接口索引,并通过所述接口索引查询预先配置的接口索引表,得到所述接口索引对应的MAC地址;其中,所述接口索引表中预先记录了接口索引与MAC地址的对应关系;
所述汇聚路由对应的转发芯片或者所述其它转发芯片将所述报文的源MAC地址修改为所述接口索引对应的MAC地址,并将所述报文的目的MAC地址修改为获得的所述目的MAC地址,并通过所述出接口发送修改后的报文。
6.一种报文的传输装置,所述报文的传输装置应用在网络设备上,其特征在于,所述网络设备包括中央处理器和多个转发芯片,所述报文的传输装置具体包括处理模块、与多个转发芯片对应的多个转发模块,所述处理模块位于所述中央处理器内,且每个转发芯片内包括一个转发模块;其中:
所述处理模块,用于获得多个能够进行汇聚的非汇聚路由对应的汇聚路由,确定所述汇聚路由对应的转发芯片,并将所述多个非汇聚路由下发到所述汇聚路由对应的转发芯片,并将所述汇聚路由下发到所述汇聚路由对应的转发芯片之外的其它转发芯片;
所述转发模块,在接收到报文时,获得所述报文对应的路由;当所述报文对应的路由为非汇聚路由时,利用所述非汇聚路由对应的地址解析协议ARP表项确定由所述汇聚路由对应的转发芯片发送所述报文,并利用所述非汇聚路由对应的ARP表项发送所述报文;当所述报文对应的路由为汇聚路由时,利用所述汇聚路由对应的ARP表项确定由其它转发芯片发送所述报文,并利用所述汇聚路由对应的ARP表项将所述报文发送给所述其它转发芯片,由所述其它转发芯片利用所述报文对应的非汇聚路由对应的ARP表项发送所述报文。
7.根据权利要求6所述的装置,其特征在于,
所述处理模块,具体用于在确定所述汇聚路由对应的转发芯片的过程中,利用转发芯片的数量、路由的数量、各转发芯片能够存储的最大路由数量,确定所述汇聚路由对应的转发芯片;或者,获得各转发芯片关联的三层接口的数量,并利用各转发芯片关联的三层接口的数量,确定所述汇聚路由对应的转发芯片;或者,获得路由协议学习到非汇聚路由的接口关联的转发芯片,统计所述多个非汇聚路由对应的转发芯片,并利用所述多个非汇聚路由对应的转发芯片,确定所述汇聚路由对应的转发芯片;或者,获得路由协议学习到非汇聚路由的接口关联的转发芯片,并获得所述多个非汇聚路由中的掩码最短的非汇聚路由,并确定所述汇聚路由对应的转发芯片为掩码最短的非汇聚路由对应的转发芯片;或者,获得各转发芯片关联的三层接口的数量,并获得路由协议学习到非汇聚路由的接口关联的转发芯片,统计所述多个非汇聚路由对应的转发芯片;利用各转发芯片关联的三层接口的数量以及所述多个非汇聚路由对应的转发芯片,确定所述汇聚路由对应的转发芯片。
8.根据权利要求6所述的装置,其特征在于,
所述处理模块,还用于针对所述多个非汇聚路由中的每个非汇聚路由,则获得所述非汇聚路由对应的ARP表项,并将所述ARP表项下发到所述汇聚路由对应的转发芯片上;其中,所述非汇聚路由包括的索引值为所述ARP表项在所述汇聚路由对应的转发芯片的位置信息,所述ARP表项的出接口为指向其它网络设备的接口;
所述处理模块,还用于针对所述汇聚路由,则获得所述汇聚路由对应的特定ARP表项,并将所述特定ARP表项下发到所述其它转发芯片上;其中,所述汇聚路由包括的索引值为所述特定ARP表项在所述其它转发芯片的位置信息,所述特定ARP表项的出接口为指向所述汇聚路由对应的转发芯片的接口。
9.根据权利要求8所述的装置,其特征在于,
所述转发模块,具体用于在利用所述非汇聚路由对应的ARP表项确定由所述汇聚路由对应的转发芯片发送所述报文的过程中,当所述报文对应的非汇聚路由包括的索引值为所述ARP表项在所述汇聚路由对应的转发芯片的位置信息时,则利用所述非汇聚路由中包括的所述ARP表项在所述汇聚路由对应的转发芯片的位置信息,查找到所述ARP表项,并利用所述ARP表项的出接口确定由所述汇聚路由对应的转发芯片发送所述报文;
所述转发模块,具体用于在利用所述汇聚路由对应的ARP表项确定由其它转发芯片发送所述报文的过程中,当所述报文对应的汇聚路由包括的索引值为特定ARP表项在所述汇聚路由对应的转发芯片的位置信息时,则利用所述汇聚路由中包括的特定ARP表项在所述汇聚路由对应的转发芯片的位置信息,查找到特定ARP表项,并利用特定ARP表项的出接口确定由其它转发芯片发送所述报文。
10.根据权利要求6所述的装置,其特征在于,
所述转发模块,具体用于在利用非汇聚路由对应的ARP表项发送所述报文的过程中,从所述非汇聚路由对应的ARP表项中,获得出接口、目的媒体访问控制MAC地址和接口索引,并通过所述接口索引查询预先配置的接口索引表,得到所述接口索引对应的MAC地址;其中,所述接口索引表中预先记录了接口索引与MAC地址的对应关系;将所述报文的源MAC地址修改为所述接口索引对应的MAC地址,并将所述报文的目的MAC地址修改为获得的所述目的MAC地址,并通过所述出接口发送修改后的报文。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510560076.4A CN105939266B (zh) | 2015-09-06 | 2015-09-06 | 一种报文的传输方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510560076.4A CN105939266B (zh) | 2015-09-06 | 2015-09-06 | 一种报文的传输方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105939266A CN105939266A (zh) | 2016-09-14 |
CN105939266B true CN105939266B (zh) | 2018-11-27 |
Family
ID=57152787
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510560076.4A Active CN105939266B (zh) | 2015-09-06 | 2015-09-06 | 一种报文的传输方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105939266B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10764235B2 (en) * | 2018-03-21 | 2020-09-01 | Huawei Technologies Co., Ltd. | Method and system for network access discovery |
CN109194575B (zh) * | 2018-08-23 | 2021-08-06 | 新华三技术有限公司 | 路由选择方法及装置 |
CN113037879A (zh) * | 2019-12-24 | 2021-06-25 | 中兴通讯股份有限公司 | Arp学习方法和节点设备 |
CN113225256B (zh) * | 2020-02-04 | 2022-09-13 | 中国移动通信有限公司研究院 | 一种路由方法、装置、设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6847645B1 (en) * | 2001-02-22 | 2005-01-25 | Cisco Technology, Inc. | Method and apparatus for controlling packet header buffer wrap around in a forwarding engine of an intermediate network node |
CN1881931A (zh) * | 2005-06-13 | 2006-12-20 | 中兴通讯股份有限公司 | 组播转发路由聚合方法 |
CN101562573A (zh) * | 2009-04-22 | 2009-10-21 | 中兴通讯股份有限公司 | 一种聚合路由条目的方法和系统 |
CN101938421A (zh) * | 2010-09-14 | 2011-01-05 | 北京星网锐捷网络技术有限公司 | 多协议标签交换网络中实现路由汇聚的方法及路由设备 |
CN104426781A (zh) * | 2013-09-05 | 2015-03-18 | 华为技术有限公司 | 实现组播路由汇聚的方法、组播方法及路由设备 |
-
2015
- 2015-09-06 CN CN201510560076.4A patent/CN105939266B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6847645B1 (en) * | 2001-02-22 | 2005-01-25 | Cisco Technology, Inc. | Method and apparatus for controlling packet header buffer wrap around in a forwarding engine of an intermediate network node |
CN1881931A (zh) * | 2005-06-13 | 2006-12-20 | 中兴通讯股份有限公司 | 组播转发路由聚合方法 |
CN101562573A (zh) * | 2009-04-22 | 2009-10-21 | 中兴通讯股份有限公司 | 一种聚合路由条目的方法和系统 |
CN101938421A (zh) * | 2010-09-14 | 2011-01-05 | 北京星网锐捷网络技术有限公司 | 多协议标签交换网络中实现路由汇聚的方法及路由设备 |
CN104426781A (zh) * | 2013-09-05 | 2015-03-18 | 华为技术有限公司 | 实现组播路由汇聚的方法、组播方法及路由设备 |
Non-Patent Citations (1)
Title |
---|
一种非随机生成聚合组播路由转发表的算法;刘晓峰;《计算机仿真》;20080724;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN105939266A (zh) | 2016-09-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7864769B1 (en) | Multicast packet replication | |
US10069764B2 (en) | Ruled-based network traffic interception and distribution scheme | |
CN103947160B (zh) | 通过基于trill的网络承载fcoe帧的方法 | |
Chen et al. | Survey on routing in data centers: insights and future directions | |
CN105939266B (zh) | 一种报文的传输方法和装置 | |
US8811398B2 (en) | Method for routing data packets using VLANs | |
JP6177890B2 (ja) | 別個のインフィニバンドサブネット間のトラフィックをファットツリールーティングに基づいてルーティングするためのシステムおよび方法 | |
CN103795644B (zh) | 策略表表项配置方法、装置及系统 | |
US20130308647A1 (en) | Virtual Local Area Network State Processing in a Layer 2 Ethernet Switch | |
CN106797351A (zh) | 使用控制器执行逻辑网络转发的系统和方法 | |
CN106559324A (zh) | 一种基于等价多路径转发报文的方法及网络设备 | |
US20160112299A1 (en) | Configuring forwarding information | |
CN105262667A (zh) | Overlay网络中控制组播传输的方法、装置 | |
TW201640866A (zh) | 基於軟體定義網路的資料中心網路系統及其封包傳送方法、位址解析方法與路由控制器 | |
CN104038447B (zh) | 一种报文传输方法和设备 | |
CN104168209B (zh) | 多接入sdn网络报文转发方法和控制器 | |
CN104780088A (zh) | 一种业务报文的传输方法和设备 | |
US9548900B1 (en) | Systems and methods for forwarding network packets in a network using network domain topology information | |
CN107113241A (zh) | 路由确定方法、网络配置方法以及相关装置 | |
CN109547354A (zh) | 负载均衡方法、装置、系统、核心层交换机及存储介质 | |
CN108259218A (zh) | 一种ip地址分配方法和装置 | |
CN106656843A (zh) | 一种负载分担方法以及相关装置 | |
WO2018036256A1 (zh) | 生成acl表的方法和装置 | |
CN107222496A (zh) | 基于现场层设备的报文的安全策略匹配方法和现场层设备 | |
CN106209637A (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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: Binjiang District and Hangzhou city in Zhejiang Province Road 310051 No. 68 in the 6 storey building Applicant after: Hangzhou Dipu Polytron Technologies Inc Address before: Binjiang District and Hangzhou city in Zhejiang Province Road 310051 No. 68 in the 6 storey building Applicant before: Hangzhou Dipu Technology Co., Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |