一种报文的传输方法和装置的制造方法

文档序号:10578070阅读:385来源:国知局
一种报文的传输方法和装置的制造方法
【专利摘要】本发明提供一种报文的传输方法和装置,该方法包括:中央处理器获得多个非汇聚路由对应的汇聚路由,确定汇聚路由对应的转发芯片,并将多个非汇聚路由下发到转发芯片,将汇聚路由下发到转发芯片之外的其它转发芯片;转发芯片在接收到报文时,获得报文对应的路由;当报文对应的路由为非汇聚路由时,转发芯片利用非汇聚路由对应的ARP表项确定由本转发芯片发送报文,并利用非汇聚路由对应的ARP表项发送报文;当报文对应的路由为汇聚路由时,转发芯片利用汇聚路由对应的ARP表项确定由其它转发芯片发送报文,并利用汇聚路由对应的ARP表项将报文发送给其它转发芯片。通过本发明的技术方案,可以利用所有转发芯片的资源,增加了网络设备能够存储的路由数量。
【专利说明】
-种巧文的传输方法和装置
技术领域
[0001] 本发明设及通信技术领域,尤其设及一种报文的传输方法和装置。
【背景技术】
[0002] 在报文从源设备传输到目的设备的过程中,路由(routing)用于决定源设备与目 的设备之间的传输路径。网络设备(如路由器等)在接收到报文时,基于路由转发该报文, W实现网络互连。网络设备可W支持TCP(Transmission Control Protocol,传输控制协 议)/IP(Internet Protocol,网络互连协议)等协议。网络设备通常连接两个或者多个由 IP子网或点到点协议标识的逻辑端口,至少拥有1个物理端口。网络设备通过动态维护路 由表来反映当前的网络拓扑,并通过与网络上其它网络设备交换路由和链路信息来维护路 由表。
[0003] 由于转发忍片能够存储的路由数量受到转发忍片规格的限制,当网络设备建立的 路由数量很多时,转发忍片无法存储所有路由,网络设备向转发忍片下发路由时,无法将所 有路由下发到转发忍片。例如,转发忍片能够存储的路由数量为10万条,网络设备建立的 路由数量为100万条,则网络设备只能向转发忍片下发10万条路由,另外90万条路由无法 被下发到转发忍片。

【发明内容】

[0004] 本发明提供一种报文的传输方法,该方法应用在网络设备上,所述网络设备包括 中央处理器和多个转发忍片,所述方法包括W下步骤:
[0005] 所述中央处理器获得多个能够进行汇聚的非汇聚路由对应的汇聚路由,确定所述 汇聚路由对应的转发忍片,并将所述多个非汇聚路由下发到所述转发忍片,并将所述汇聚 路由下发到所述转发忍片之外的其它转发忍片;
[0006] 转发忍片在接收到报文时,获得所述报文对应的路由;
[0007] 当所述报文对应的路由为非汇聚路由时,所述转发忍片利用所述非汇聚路由对应 的地址解析协议ARP表项确定由所述转发忍片发送所述报文,并利用所述非汇聚路由对应 的ARP表项发送所述报文;
[0008] 当所述报文对应的路由为汇聚路由时,所述转发忍片利用所述汇聚路由对应的 ARP表项确定由其它转发忍片发送所述报文,并利用所述汇聚路由对应的ARP表项将所述 报文发送给所述其它转发忍片,由所述其它转发忍片利用所述报文对应的非汇聚路由对应 的ARP表项发送所述报文。
[0009] 所述中央处理器确定所述汇聚路由对应的转发忍片的过程,具体包括:
[0010] 所述中央处理器利用转发忍片的数量、路由的数量、各转发忍片能够存储的最大 路由数量,确定所述汇聚路由对应的转发忍片;或者,
[0011] 所述中央处理器获得各转发忍片关联的=层接口的数量,并利用各转发忍片关联 的=层接口的数量,确定所述汇聚路由对应的转发忍片;或者,
[0012] 所述中央处理器获得路由协议学习到非汇聚路由的接口关联的转发忍片,统计所 述多个非汇聚路由对应的转发忍片,并利用所述多个非汇聚路由对应的转发忍片,确定所 述汇聚路由对应的转发忍片;或者,
[0013] 所述中央处理器获得路由协议学习到非汇聚路由的接口关联的转发忍片,并获得 所述多个非汇聚路由中的掩码最短的非汇聚路由,并确定所述汇聚路由对应的转发忍片为 掩码最短的非汇聚路由对应的转发忍片;或者,
[0014] 所述中央处理器获得各转发忍片关联的=层接口的数量,并获得路由协议学习到 非汇聚路由的接口关联的转发忍片,统计所述多个非汇聚路由对应的转发忍片;所述中央 处理器利用各转发忍片关联的=层接口的数量W及所述多个非汇聚路由对应的转发忍片, 确定所述汇聚路由对应的转发忍片。
[0015] 所述方法进一步包括:
[0016] 针对所述多个非汇聚路由中的每个非汇聚路由,所述中央处理器获得所述非汇聚 路由对应的ARP表项,并将所述ARP表项下发到所述转发忍片上;其中,所述非汇聚路由包 括的索引值为所述ARP表项在所述转发忍片的位置信息,所述ARP表项的出接口为指向其 它网络设备的接口;
[0017] 针对所述汇聚路由,所述中央处理器获得所述汇聚路由对应的特定ARP表项,并 将所述特定ARP表项下发到所述其它转发忍片上;其中,所述汇聚路由包括的索引值为所 述特定ARP表项在所述其它转发忍片的位置信息,所述特定ARP表项的出接口为指向所述 转发忍片的接口。
[0018] 所述转发忍片利用所述非汇聚路由对应的ARP表项确定由所述转发忍片发送所 述报文,具体包括:当所述报文对应的非汇聚路由包括的索引值为所述ARP表项在所述转 发忍片的位置信息时,则所述转发忍片利用所述非汇聚路由中包括的所述ARP表项在所述 转发忍片的位置信息,查找到所述ARP表项,并利用所述ARP表项的出接口确定由所述转发 忍片发送所述报文;
[0019] 所述转发忍片利用所述汇聚路由对应的ARP表项确定由其它转发忍片发送所述 报文的过程,具体包括:当所述报文对应的汇聚路由包括的索引值为特定ARP表项在所述 转发忍片的位置信息时,则所述转发忍片利用所述汇聚路由中包括的特定ARP表项在所述 转发忍片的位置信息,查找到特定ARP表项,并利用特定ARP表项的出接口确定由其它转发 忍片发送所述报文。
[0020] 所述转发忍片或者所述其它转发忍片利用非汇聚路由对应的ARP表项发送所述 报文,具体包括:所述转发忍片或者所述其它转发忍片从所述非汇聚路由对应的ARP表项 中,获得出接口、目的媒体访问控制MC地址和接口索引,并通过所述接口索引查询预先配 置的接口索引表,得到所述接口索引对应的MC地址;其中,所述接口索引表中预先记录了 接口索引与MC地址的对应关系;所述转发忍片或者所述其它转发忍片将所述报文的源 MC地址修改为所述接口索引对应的MC地址,并将所述报文的目的MC地址修改为获得的 所述目的MC地址,并通过所述出接口发送修改后的报文。
[0021] 本发明提供一种报文的传输装置,所述报文的传输装置应用在网络设备上,所述 网络设备包括中央处理器和多个转发忍片,所述报文的传输装置具体包括处理模块、与多 个转发忍片对应的多个转发模块,所述处理模块位于所述中央处理器内,且每个转发忍片 内包括一个转发模块;其中:
[0022] 所述处理模块,用于获得多个能够进行汇聚的非汇聚路由对应的汇聚路由,确定 所述汇聚路由对应的转发忍片,并将所述多个非汇聚路由下发到所述转发忍片,并将所述 汇聚路由下发到所述转发忍片之外的其它转发忍片;
[0023] 所述转发模块,在接收到报文时,获得所述报文对应的路由;当所述报文对应的路 由为非汇聚路由时,利用所述非汇聚路由对应的地址解析协议ARP表项确定由所述转发忍 片发送所述报文,并利用所述非汇聚路由对应的ARP表项发送所述报文;当所述报文对应 的路由为汇聚路由时,利用所述汇聚路由对应的ARP表项确定由其它转发忍片发送所述报 文,并利用所述汇聚路由对应的ARP表项将所述报文发送给所述其它转发忍片,由所述其 它转发忍片利用所述报文对应的非汇聚路由对应的ARP表项发送所述报文。
[0024] 所述处理模块,具体用于在确定所述汇聚路由对应的转发忍片的过程中,利用转 发忍片的数量、路由的数量、各转发忍片能够存储的最大路由数量,确定所述汇聚路由对应 的转发忍片;或者,获得各转发忍片关联的=层接口的数量,并利用各转发忍片关联的=层 接口的数量,确定所述汇聚路由对应的转发忍片;或者,获得路由协议学习到非汇聚路由的 接口关联的转发忍片,统计所述多个非汇聚路由对应的转发忍片,并利用所述多个非汇聚 路由对应的转发忍片,确定所述汇聚路由对应的转发忍片;或者,获得路由协议学习到非汇 聚路由的接口关联的转发忍片,并获得所述多个非汇聚路由中的掩码最短的非汇聚路由, 并确定所述汇聚路由对应的转发忍片为掩码最短的非汇聚路由对应的转发忍片;或者,获 得各转发忍片关联的=层接口的数量,并获得路由协议学习到非汇聚路由的接口关联的转 发忍片,统计所述多个非汇聚路由对应的转发忍片;利用各转发忍片关联的=层接口的数 量W及所述多个非汇聚路由对应的转发忍片,确定所述汇聚路由对应的转发忍片。
[0025] 所述处理模块,还用于针对所述多个非汇聚路由中的每个非汇聚路由,则获得所 述非汇聚路由对应的ARP表项,并将所述ARP表项下发到所述转发忍片上;其中,所述非汇 聚路由包括的索引值为所述ARP表项在所述转发忍片的位置信息,所述ARP表项的出接口 为指向其它网络设备的接口;
[0026] 所述处理模块,还用于针对所述汇聚路由,则获得所述汇聚路由对应的特定ARP 表项,并将所述特定ARP表项下发到所述其它转发忍片上;其中,所述汇聚路由包括的索引 值为所述特定ARP表项在所述其它转发忍片的位置信息,所述特定ARP表项的出接口为指 向所述转发忍片的接口。
[0027] 所述转发模块,具体用于在利用所述非汇聚路由对应的ARP表项确定由所述转发 忍片发送所述报文的过程中,当所述报文对应的非汇聚路由包括的索引值为所述ARP表项 在所述转发忍片的位置信息时,则利用所述非汇聚路由中包括的所述ARP表项在所述转发 忍片的位置信息,查找到所述ARP表项,并利用所述ARP表项的出接口确定由所述转发忍片 发送所述报文;
[002引所述转发模块,具体用于在利用所述汇聚路由对应的ARP表项确定由其它转发忍 片发送所述报文的过程中,当所述报文对应的汇聚路由包括的索引值为特定ARP表项在所 述转发忍片的位置信息时,则利用所述汇聚路由中包括的特定ARP表项在所述转发忍片的 位置信息,查找到特定ARP表项,并利用特定ARP表项的出接口确定由其它转发忍片发送所 述报文。
[0029] 所述转发模块,具体用于在利用非汇聚路由对应的ARP表项发送所述报文的过程 中,从所述非汇聚路由对应的ARP表项中,获得出接口、目的媒体访问控制MC地址和接口 索引,并通过所述接口索引查询预先配置的接口索引表,得到所述接口索引对应的MC地 址;其中,所述接口索引表中预先记录了接口索引与MC地址的对应关系;将所述报文的源 MC地址修改为所述接口索引对应的MC地址,并将所述报文的目的MC地址修改为获得的 所述目的MC地址,并通过所述出接口发送修改后的报文。
[0030] 基于上述技术方案,本发明实施例中,网络设备通过将路由下发到多个转发忍片 中的一个转发忍片,而不是将路由下发到多个转发忍片中的每个转发忍片,从而可W利用 所有转发忍片的资源,增加转发忍片能够存储的路由数量。通过增加转发忍片的数量,来提 高网络设备能够存储的路由数量。例如,每个转发忍片能够存储的路由数量为10万条时, 通过在网络设备上配置10个转发忍片,使得所有转发忍片能够存储的路由数量为100万 条,当建立的路由数量为100万条时,则网络设备的所有转发忍片能够存储所有的路由。
【附图说明】
[0031] 图1是本发明一种实施方式中的应用场景的示意图;
[0032] 图2是本发明一种实施方式中的报文的传输方法的流程图;
[0033] 图3是本发明一种实施方式中的路由存储树的结构示意图;
[0034] 图4是本发明一种实施方式中的网络设备的硬件结构图;
[0035] 图5是本发明一种实施方式中的报文的传输装置的结构图。
【具体实施方式】
[0036] 针对现有技术中存在的问题,本发明实施例中提出了一种报文的传输方法,该方 法应用在网络设备上,该网络设备包括中央处理器和多个转发忍片,W图1为本发明实施 例的应用场景示意图。其中,该中央处理器具体可W为CPU(Central Processing化it,中 央处理器)。在由多个单板组合的框式网络设备中,转发忍片具体可W为单板。在由多个盒 式设备级联成的网络设备中,转发忍片具体可W为盒式设备。其中,在框式网络设备中,包 括机框、电源、多个单板等,单板具体可W包括但不限于主控板、业务板、接口板等。主控板 是一种带有中央处理器的特殊单板,用于控制整台框式网络设备,包括控制层面和数据层 面两部分。业务板是一种带有中央处理器和转发忍片的处理业务转发的单板,该业务板的 所有转发表项来自主控板,包括中央处理器转发和忍片转发两部分。接口板是只带有转发 忍片的单板,只具备忍片转发功能。在级联成的网络设备中,级联设备可能有几个盒式设备 或几个框式设备组成,即通过一种虚拟化技术将几台独立的设备虚拟成一台网络设备。
[0037] 在上述应用场景下,如图2所示,该报文的传输方法可W包括W下步骤:
[0038] 步骤201,中央处理器获得多个能够进行汇聚的非汇聚路由对应的汇聚路由,确定 该汇聚路由对应的转发忍片,并将运多个非汇聚路由下发到该转发忍片,并将该汇聚路由 下发到该转发忍片之外的其它转发忍片。
[0039] 本发明实施例中,可W采用分布式路由存储方式,按照预设算法确定汇聚路由对 应的一个转发忍片,并将该汇聚路由对应的所有非汇聚路由(即多个非汇聚路由)下发到 该转发忍片,而不是将该汇聚路由对应的所有非汇聚路由下发到所有转发忍片,即不同的 转发忍片会存储不同的非汇聚路由,不用每个转发忍片均存储所有的非汇聚路由。通过网 络设备的多个转发忍片,共同完成大容量的路由存储。其中,非汇聚路由即现有实现中的路 由。
[0040] 本发明实施例中,多个能够进行汇聚的非汇聚路由是指:对应于同一指定掩码长 度的非汇聚路由。在实际应用中,指定掩码长度的数值可W根据实际经验任意选择,如指定 掩码长度的最小值为8。基于此,当多个非汇聚路由对应同一掩码长度为8的路由时,可W 将该掩码长度为8的路由作为运多个非汇聚路由对应的汇聚路由;当多个非汇聚路由对应 同一掩码长度为12的路由时,可W将该掩码长度为12的路由作为运多个非汇聚路由对应 的汇聚路由;当多个非汇聚路由对应同一掩码长度为16的路由时,可W将该掩码长度为16 的路由作为运多个非汇聚路由对应的汇聚路由;W此类推。
[0041] 其中,将多个能够进行汇聚的非汇聚路由进行汇聚,得到汇聚路由时所使用的路 由汇聚算法,可根据实际经验任意配置,如将对应于同一指定掩码长度的非汇聚路由进行 汇聚,并将指定掩码长度的非汇聚路由作为汇聚路由。具体的,汇聚路由可W为多条非汇聚 路由汇聚出的路由,如掩码长度为8的路由等,汇聚路由也可W为多条非汇聚路由中的掩 码最短的路由。
[0042] 如图3所示,为一种路由存储树的结构示意图,从图3中可W看出,多个非汇聚 路由1.0. 0.0/8U. 1.0. 0/16,1.2. 0.0/16和1. 1.2. 0/24对应同一掩码长度为8的路由 1. 0. 0. 0/8,因此可W确定运多个非汇聚路由对应的汇聚路由为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,因此可W确定运多个非汇聚路由对应的汇聚路由为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,因此可W确定运多个非汇聚路由对应的汇 聚路由为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) 不进行路由汇聚,直接下发到所有的转发忍片。
[0043] 基于上述处理,在一种示例中,则转发忍片1内存储的路由表可W如表1所示,转 发忍片2内存储的路由表可W如表2所示,转发忍片3内存储的路由表可W如表3所示,转 发忍片4内存储的路由表可W如表4所示。
[0044] 表 1
[0045]
[0(
[0(
[0(
[0(
[0(
[00
[00
[0053] 本发明实施例中,针对多个汇聚路由中的每个汇聚路由,中央处理器确定汇聚路 由对应的转发忍片的过程,具体可W包括但不限于如下方式:
[0054] 方式一,基于预设算法,中央处理器可W根据转发忍片的数量W及路由的数量,确 定汇聚路由对应的转发忍片W及每个转发忍片上下发的非汇聚路由的数量,具体的预设算 法可W根据实际需要任意设置,在此不再寶述。
[0055] 方式二,中央处理器可W利用转发忍片的数量、路由的数量、W及各转发忍片能够 存储的最大路由数量,确定汇聚路由对应的转发忍片。
[0056] 在该方式中,中央处理器可W根据各转发忍片的路由规格(即转发忍片能够存储 的最大路由数量),转发忍片的数量、路由的数量进行非汇聚路由对应的转发忍片的划分。 例如,网络设备中的非汇聚路由的数量为100条,转发忍片的数量为3个,运3个转发忍片 的路由规格分别为80,40,60。基于此,在3个转发忍片下发的非汇聚路由的数量分别为 (80/(80+40+60))*100,(40/(80+40+60))*100,化0/(80+40+60))*100。基于非汇聚路由下 发的转发忍片,则可W确定出非汇聚路由对应的汇聚路由的转发忍片。
[0057] 在该方式中,中央处理器是根据各转发忍片的路由规格,占用所有转发忍片的路 由总规格的比例,来为转发忍片分配非汇聚路由,继而确定汇聚路由的转发忍片,即不考虑 任何条件随机分配非汇聚路由所要下发的转发忍片。
[0058] 方式=,中央处理器可W获得各转发忍片关联的=层接口的数量,并利用各转发 忍片关联的=层接口的数量,确定汇聚路由对应的转发忍片。
[0059] 中央处理器统计所有=层接口关联的转发忍片,各转发忍片关联的=层接口的数 量,并将汇聚路由对应的非汇聚路由优先下发给关联=层接口的数量最多的转发忍片,然 后依次往后排。例如,网络设备中路由的总数为100条,有3个转发忍片,3个转发忍片关联 的=层接口数量分别为10个,5个,3个。基于此,根据各转发忍片关联=层接口的数量占 总S层接口数量的比例,确定汇聚路由对应的转发忍化在3个转发忍片下发的非汇聚路 由的数量为(10/(10+5+3)) *100,巧八10巧+3)) *100,(3八10巧+3)) *100。
[0060] 方式四,中央处理器可W获得路由协议学习到非汇聚路由的接口关联的转发忍 片,并统计汇聚路由对应的多个非汇聚路由对应的转发忍片,并利用多个非汇聚路由对应 的转发忍片,确定该汇聚路由对应的转发忍片。
[0061] 在动态路由协议学习到非汇聚路由时,还可W记录学习到该非汇聚路由的接口, 并获得学习到非汇聚路由的接口关联的转发忍片。针对汇聚路由对应的多个非汇聚路由, 可W获得学习到该非汇聚路由的接口关联的转发忍片,继而统计出汇聚路由对应的多个非 汇聚路由对应的转发忍片,并确定该汇聚路由对应的转发忍片为对应非汇聚路由的数量最 多的转发忍片。
[0062] 例如,当汇聚路由对应的100个非汇聚路由中,有50个非汇聚路由对应的转发忍 片为转发忍片1,有25个非汇聚路由对应的转发忍片为转发忍片2,有15个非汇聚路由对 应的转发忍片为转发忍片3,有10个非汇聚路由对应的转发忍片为转发忍片4,则确定汇聚 路由对应的转发忍片为转发忍片1。
[0063] 在该方式中,考虑了路由学习的因素,正常情况下,路由从哪个接口学习过来,贝U 从运个接口上来的业务报文匹配运条路由的机率就很大。
[0064] 方式五,中央处理器可W获得路由协议学习到非汇聚路由的接口关联的转发忍 片,并获得运多个非汇聚路由中的掩码最短的非汇聚路由,并确定汇聚路由对应的转发忍 片为该掩码最短的非汇聚路由对应的转发忍片。
[0065] 在动态路由协议学习到非汇聚路由时,还可W记录学习到非汇聚路由的接口,并 获得学习到该非汇聚路由的接口关联的转发忍片。针对汇聚路由对应的多个非汇聚路由, 可W获得学习到运多个非汇聚路由中的掩码最短的非汇聚路由的接口关联的转发忍片。基 于此,中央处理器可W直接确定汇聚路由对应的转发忍片为该掩码最短的非汇聚路由对应 的转发忍片。
[0066] 方式六,中央处理器获得各转发忍片关联的=层接口的数量,并获得路由协议学 习到非汇聚路由的接口关联的转发忍片,并统计多个非汇聚路由对应的转发忍片。基于此, 中央处理器利用各转发忍片关联的=层接口的数量W及多个非汇聚路由对应的转发忍片, 确定汇聚路由对应的转发忍片。
[0067] 在实际应用中,中央处理器可W实时的向转发忍片下发非汇聚路由,即中央处理 器在得到一个非汇聚路由后,直接确定该一个非汇聚路由对应的汇聚路由对应的转发忍 片。中央处理器也可W批量的向转发忍片下发非汇聚路由,即中央处理器同一时间需要确 定批量的非汇聚路由对应的汇聚路由对应的转发忍片。针对上述方式一和方式二,可W适 用于批量的向转发忍片下发非汇聚路由的应用场景。此外,针对上述方式=、方式四、方式 五、方式六,可W适用于实时的向转发忍片下发非汇聚路由的应用场景,也可W适用于批量 的向转发忍片下发非汇聚路由的应用场景。
[0068] 当然,在实际应用中,并不局限于采用方式一-方式六来确定汇聚路由对应的转 发忍片,还可W手工配置汇聚路由对应的转发忍片,在此不再寶述。
[0069] W下结合具体的应用场景对方式六的实现过程进行详细说明。
[0070] 假设在对多个能够进行汇聚的非汇聚路由进行汇聚,得到汇聚路由时所使用的路 由汇聚算法,是一种多叉树结构,该多叉树共分为屯层,第一层为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次方个节点。
[0071] 在上述应用场景下,每个节点对应为一个非汇聚路由。上述多叉树结构只是为了 说明路由的结构的示例,并不意味着真实的树结构就一定如此,真实情况下会有所变动,而 且,多叉树的层数设计也可W根据实际情况改变。
[0072] 针对实时的向转发忍片下发非汇聚路由的应用场景,即非汇聚路由的实时下发算 法,可W用于实时的非汇聚路由的下发、或者部署新的转发忍片时的非汇聚路由的下发、或 者减少转发忍片时的非汇聚路由的下发。
[0073] 在此过程中,可W统计当前的转发忍片的数量、各转发忍片关联的=层接口的数 量、学习到非汇聚路由的接口关联的转发忍片。其中,针对动态路由,可W根据路由协议学 习到非汇聚路由时的入接口,判断该非汇聚路由关联的转发忍片,如果入接口为虚拟接口 (如VLAN(虚拟局域网)接口),则非汇聚路由可能会关联多个转发忍片。针对静态路由, 由于是静态配置,无法获得非汇聚路由的入接口,因此静态路由默认不关联任何转发忍片。 父节点的非汇聚路由自动关联子节点的非汇聚路由关联的转发忍片。运样,整棵路由树分 类出的子树都有自己关联的转发忍片,并且可能不止一个,优先选择关联非汇聚路由数最 多的转发忍片。如果一颗子树全部为静态路由,则优先选择关联S层接口数最多的转发忍 片。根节点维护所有独立下发转发忍片的非汇聚路由W及对应的转发忍片,根节点的默认 转发忍片为任意指定的转发忍片,如第一条非汇聚路由对应的转发忍片,或者指定的其它 转发忍片。
[0074] 在将非汇聚路由下发转发忍片之前,最长匹配会遍历根节点下所有独立下发转发 忍片的节点(即非汇聚路由),如果找到当前节点,则按照当前节点所属的转发忍片进行下 发,否则按照根节点所属的转发忍片进行下发。如果匹配到节点对应的转发忍片或根节点 对应的转发忍片的路由表已满,则基于当前节点重新创建独立下发转发忍片的节点,按照 W下方法选择转发忍片。
[00巧]情况一、在动态路由下发时,优先下发非汇聚路由关联的转发忍片中关联=层接 口数最多的转发忍片。其中,如果优先选择的转发忍片的路由表已满,则选择次优关联的转 发忍片,W此类推。如果优先选择的转发忍片的路由表已经超过预设阔值,则检测是否所 有的转发忍片的路由表均已经超过预设阔值,如果是,则选择当前优先选择的转发忍片,否 贝1J,选择次优关联的转发忍片,W此类推。如果非汇聚路由关联的所有转发忍片的路由表均 已满或者超过预设阔值,则按照关联S层接口数来依次选择转发忍片。
[0076] 情况二、在静态路由下发时,优先下发关联=层接口数最多的转发忍片。其中,如 果优先选择的转发忍片的路由表已满,则选择次优关联的转发忍片,W此类推。如果优先选 择的转发忍片的路由表已经超过预设阔值,则检测是否所有的转发忍片的路由表均已经超 过预设阔值,如果是,则选择当前优先选择的转发忍片,否则,选择次优关联的转发忍片,W 此类推。
[0077] 本发明实施例中,所有的根节点W及独立下发转发忍片的节点,均需要将当前节 点对应的汇聚路由下发给除当前转发忍片之外的所有转发忍片。当新插入一个转发忍片 时,遍历所有没有下发转发忍片的节点,W各个子树中未下发转发忍片的起始节点,创建独 立下发转发忍片的节点,并将对应的非汇聚路由下发新的转发忍片。当拔出一个转发忍片 时,遍历所有的根节点W及独立下发转发忍片的节点的路由,为其设置未下发转发忍片的 属性,并删除独立下发的转发忍片的节点,按照上述算法重新规划转发忍片的下发。
[0078] 针对批量的向转发忍片下发非汇聚路由的应用场景,即非汇聚路由的批量下发算 法,可W用于重新规划所有转发忍片上的非汇聚路由。
[0079] 在此过程中,可W统计当前的转发忍片的数量、各转发忍片关联的=层接口的数 量、学习到非汇聚路由的接口关联的转发忍片。
[0080] 其中,根据第一层各节点的子节点数和转发忍片数统计分类,统计分类算法如下: 如果第一层节点的个数大于转发忍片数,则可W将子节点个数少的关联到同一个转发忍 片。如果第一层节点的个数小于转发忍片数,则可W考虑第二层节点。如果第二层节点加 上第一层节点数大于转发忍片数,则可W将子节点个数少的关联到同一个转发忍片。如果 第二层节点加上第一层节点数也小于转发忍片数,则可W考虑第S层节点,W此类推。如果 节点数大于了转发忍片数,则将子节点数少的关联到同一个转发忍片。
[0081] 上述算法的基本原则是:尽量保证同一类节点下的非汇聚路由,下发到同一个转 发忍片上,即:如果所选择的转发忍片的路由规格容量,无法满足当前节点下的所有非汇聚 路由,则可W选择其它容量更大的转发忍片。如果所有转发忍片的单独容量,都无法容纳当 前节点下的所有非汇聚路由,则将该节点树当成一颗整树,递归执行当前算法,如果是非根 节点树下的非汇聚路由下发转发忍片,则需要创建独立下发转发忍片的节点,并在根节点 记录其下的独立创建下发转发忍片的所有子节点,W及其选择的转发忍片。
[0082] 本发明实施例中,所有的根节点W及独立下发转发忍片的节点,均需要将当前节 点对应的汇聚路由下发给除当前转发忍片之外的所有转发忍片。根节点W及独立下发转发 忍片的节点,选择转发忍片的算法如下:1、如果根节点已配置其对应的转发忍片,则选择配 置的转发忍片。2、优先选择关联子节点数量最多的转发忍片,如果该转发忍片的容量已满, 则按照关联子节点数量由多到少的顺序,依次选择。3、如果转发忍片的路由表已经超过预 设阔值,则检测是否所有的转发忍片的路由表均已经超过预设阔值,如果是,则选择当前的 转发忍片,否则,按照关联=层接口数量来依次选择转发忍片。
[0083] 本发明实施例中,在中央处理器获得多个非汇聚路由对应的汇聚路由,确定该汇 聚路由对应的转发忍片,并将运多个非汇聚路由下发到该转发忍片,并将该汇聚路由下发 到该转发忍片之外的其它转发忍片之后,则针对多个非汇聚路由中的每个非汇聚路由,贝U 中央处理器获得该非汇聚路由对应的ARP(AcMress Resolution Protocol,地址解析协议) 表项,并将该ARP表项下发到该转发忍片上;其中,该非汇聚路由包括的索引值为ARP表项 在转发忍片的位置信息,ARP表项的出接口为指向其它网络设备的接口。针对汇聚路由,贝U 中央处理器获得汇聚路由对应的特定ARP表项,并将特定ARP表项下发到其它转发忍片上; 其中,该汇聚路由包括的索引值为特定ARP表项在其它转发忍片的位置信息,该特定ARP表 项的出接口为指向该转发忍片的接口。
[0084] 其中,中央处理器获得汇聚路由/非汇聚路由的过程,与中央处理器获得ARP表项 的过程是两个独立的过程,二者不具备关联关系,即不需要基于ARP表项获得汇聚路由/非 汇聚路由,也不需要基于汇聚路由/非汇聚路由获得ARP表项,只是汇聚路由/非汇聚路由 包括的索引值,与ARP表项在相应的转发忍片的位置有关,并不代表汇聚路由/非汇聚路由 是基于ARP表项生成的,也不代表ARP表项是基于汇聚路由/非汇聚路由生成的。
[0085] 如表1 所示,非汇聚路由(I. 0. 0. 0/8、I. I. 0. 0/16,1. 2. 0. 0/16 和 I. I. 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的出接口为指向其它网络设备的接口。
[0086] 如表 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。
[0087] 如表 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。
[0088] 如表 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。
[0089] 步骤202,转发忍片在接收到报文时,获得该报文对应的路由。
[0090] 其中,当该报文对应的路由为非汇聚路由时,则转发忍片执行步骤203。当该报文 对应的路由为汇聚路由时,则转发忍片执行步骤204。
[0091] 其中,转发忍片在接收到报文时,利用该报文的目的IP地址查询本转发忍片维护 的所有路由。如果没有匹配该报文的目的IP地址的路由,则无法获得该报文对应的路由, 直接丢弃该报文。如果有匹配该报文的目的IP地址的路由,则获得匹配该报文的目的IP 地址的路由,并执行后续处理。
[0092] 步骤203,转发忍片利用非汇聚路由对应的ARP表项确定由本转发忍片发送该报 文,并利用该非汇聚路由对应的ARP表项发送该报文。
[0093] 步骤204,转发忍片利用汇聚路由对应的ARP表项确定由其它转发忍片发送该报 文,并利用汇聚路由对应的ARP表项将报文发送给其它转发忍片,由其它转发忍片利用该 报文对应的非汇聚路由对应的ARP表项发送该报文。
[0094] 本发明实施例中,转发忍片利用非汇聚路由对应的ARP表项确定由本转发忍片发 送该报文的过程,具体可W包括但不限于如下方式:当该报文对应的非汇聚路由包括的索 引值为ARP表项在本转发忍片的位置信息时,则本转发忍片利用该非汇聚路由中包括的 ARP表项在本转发忍片的位置信息,查找到该ARP表项,并利用该ARP表项的出接口确定由 本转发忍片直接发送该报文。其中,该ARP表项的出接口为指向其它网络设备的接口。
[0095] 本发明实施例中,转发忍片利用汇聚路由对应的ARP表项确定由其它转发忍片发 送该报文的过程,具体可W包括但不限于如下方式:当报文对应的汇聚路由包括的索引值 为特定ARP表项在本转发忍片的位置信息时,则转发忍片利用汇聚路由中包括的特定ARP 表项在本转发忍片的位置信息,查找到该特定ARP表项,并利用该特定ARP表项的出接口确 定由其它转发忍片发送该报文。其中,该特定ARP表项的出接口为指向其它转发忍片的接 P。
[0096] 如图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。
[0097] 本发明实施例中,转发忍片或者其它转发忍片利用非汇聚路由(即报文对应的非 汇聚路由)对应的ARP表项发送该报文的过程,具体可W包括但不限于如下方式:转发忍片 或者其它转发忍片从非汇聚路由对应的ARP表项中,获得出接口、目的MC(Media Access Control,媒体访问控制)地址和接口索引,并通过该接口索引查询预先配置的接口索引 表,W得到该接口索引对应的MC地址;其中,该接口索引表中预先记录了接口索引与MC 地址的对应关系。进一步的,转发忍片或者其它转发忍片将该报文的源MC地址修改为该 接口索引对应的MC地址,并将该报文的目的MC地址修改为当前获得的目的MC地址,并 通过该出接口发送修改后的报文。
[009引其中,当网络设备存在多个出接口,且不同的出接口配置有不同的MC地址时,可 W预先在转发忍片上配置接口索引表,该接口索引表用于记录接口索引与MC地址之间的 对应关系,且该接口索引用于表示相应的出接口,且在ARP表项中记录了该出接口与该接 口索引的对应关系。基于此,通过该接口索引查询预先配置的接口索引表,可W得到出接口 对应的MC地址。
[0099] 如图1所示,转发忍片1利用非汇聚路由1. 1.0. 0/16包括的索引值(如第2个 ARP表项)获得对应的ARP表项,即转发忍片1的第2个ARP表项。转发忍片1从ARP表 项1中获得出接口 1、目的MC地址1和接口索引1,通过接口索引1查询预先配置的接口 索引表,得到接口索引1对应的MC地址2。转发忍片1将报文的源MC地址修改为MC地 址2,并将报文的目的MAC地址修改为目的MAC地址1,并通过出接口 I发送修改后的报文。
[0100] 如图1所示,转发忍片2确定由转发忍片1发送报文时,基于该报文对应的汇聚路 由1. 0. 0. 0/8包括的索引值找到特定ARP表项,并基于该特定ARP表项的出接口(即指向 转发忍片1的接口),转发忍片2可W通过该接口将报文发送给转发忍片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、目的MC地址1和接口索引1,通过接口索引1查询预先配置的接口索引表, 得到接口索引1对应的MC地址2。转发忍片1将报文的源MC地址修改为MC地址2,并 将报文的目的MAC地址修改为目的MC地址1,并通过出接口 1发送修改后的报文。
[0101] 基于上述技术方案,本发明实施例中,网络设备通过将路由下发到多个转发忍片 中的一个转发忍片,而不是将路由下发到多个转发忍片中的每个转发忍片,从而可W利用 所有转发忍片的资源,增加转发忍片能够存储的路由数量。通过增加转发忍片的数量,来提 高网络设备能够存储的路由数量。例如,每个转发忍片能够存储的路由数量为10万条时, 通过在网络设备上配置10个转发忍片,使得所有转发忍片能够存储的路由数量为100万 条,当建立的路由数量为100万条时,则网络设备的所有转发忍片能够存储所有的路由。
[0102] 基于与上述方法同样的发明构思,本发明实施例中还提供一种报文的传输装置, 该报文的传输装置应用在网络设备上,该网络设备包括中央处理器和多个转发忍片,该报 文的传输装置具体包括处理模块、与多个转发忍片对应的多个转发模块,该处理模块位于 中央处理器内,且每个转发忍片内包括一个转发模块。其中,该报文的传输装置可W通过软 件实现,也可W通过硬件或者软硬件结合的方式实现。W软件实现为例,作为一个逻辑意义 上的装置,是通过其所在的网络设备的中央处理器,将非易失性存储器中对应的计算机程 序指令读取到内存中运行形成的。从硬件层面而言,如图4所示,为本发明提出的报文的传 输装置所在的网络设备的一种硬件结构图,该网络设备可W包括中央处理器、网络接口、内 存、非易失性存储器、负责处理报文的转发忍片等;从硬件结构上来讲,该网络设备还可能 是分布式设备。
[0103] 如图5所示,为本发明实施例中提出的报文的传输装置的结构图,所述报文的传 输装置具体可W包括:处理模块11和转发模块12 ;其中:
[0104] 所述处理模块11,用于获得多个能够进行汇聚的非汇聚路由对应的汇聚路由,确 定所述汇聚路由对应的转发忍片,并将所述多个非汇聚路由下发到所述转发忍片,并将所 述汇聚路由下发到所述转发忍片之外的其它转发忍片;
[0105] 所述转发模块12,在接收到报文时,获得所述报文对应的路由;当所述报文对应 的路由为非汇聚路由时,利用所述非汇聚路由对应的地址解析协议ARP表项确定由所述转 发忍片发送所述报文,并利用所述非汇聚路由对应的ARP表项发送所述报文;当所述报文 对应的路由为汇聚路由时,利用所述汇聚路由对应的ARP表项确定由其它转发忍片发送所 述报文,并利用所述汇聚路由对应的ARP表项将所述报文发送给所述其它转发忍片,由所 述其它转发忍片利用所述报文对应的非汇聚路由对应的ARP表项发送所述报文。
[0106] 所述处理模块11,具体用于在确定所述汇聚路由对应的转发忍片的过程中,利用 转发忍片的数量、路由的数量、各转发忍片能够存储的最大路由数量,确定所述汇聚路由对 应的转发忍片;或者,获得各转发忍片关联的=层接口的数量,并利用各转发忍片关联的= 层接口的数量,确定所述汇聚路由对应的转发忍片;或者,获得路由协议学习到非汇聚路由 的接口关联的转发忍片,统计所述多个非汇聚路由对应的转发忍片,并利用所述多个非汇 聚路由对应的转发忍片,确定所述汇聚路由对应的转发忍片;或者,获得路由协议学习到 非汇聚路由的接口关联的转发忍片,并获得所述多个非汇聚路由中的掩码最短的非汇聚路 由,并确定所述汇聚路由对应的转发忍片为掩码最短的非汇聚路由对应的转发忍片;或者, 获得各转发忍片关联的=层接口的数量,并获得路由协议学习到非汇聚路由的接口关联的 转发忍片,统计所述多个非汇聚路由对应的转发忍片;利用各转发忍片关联的=层接口的 数量W及所述多个非汇聚路由对应的转发忍片,确定所述汇聚路由对应的转发忍片。
[0107] 所述处理模块11,还用于针对所述多个非汇聚路由中的每个非汇聚路由,则获得 所述非汇聚路由对应的ARP表项,并将所述ARP表项下发到所述转发忍片上;其中,所述非 汇聚路由包括的索引值为所述ARP表项在所述转发忍片的位置信息,所述ARP表项的出接 口为指向其它网络设备的接口;
[0108] 所述处理模块11,还用于针对所述汇聚路由,则获得所述汇聚路由对应的特定 ARP表项,并将所述特定ARP表项下发到所述其它转发忍片上;其中,所述汇聚路由包括的 索引值为所述特定ARP表项在所述其它转发忍片的位置信息,所述特定ARP表项的出接口 为指向所述转发忍片的接口。
[0109] 所述转发模块12,具体用于在利用所述非汇聚路由对应的ARP表项确定由所述转 发忍片发送所述报文的过程中,当所述报文对应的非汇聚路由包括的索引值为所述ARP表 项在所述转发忍片的位置信息时,则利用所述非汇聚路由中包括的所述ARP表项在所述转 发忍片的位置信息,查找到所述ARP表项,并利用所述ARP表项的出接口确定由所述转发忍 片发送所述报文;
[0110] 所述转发模块12,具体用于在利用所述汇聚路由对应的ARP表项确定由其它转发 忍片发送所述报文的过程中,当所述报文对应的汇聚路由包括的索引值为特定ARP表项在 所述转发忍片的位置信息时,则利用所述汇聚路由中包括的特定ARP表项在所述转发忍片 的位置信息,查找到特定ARP表项,并利用特定ARP表项的出接口确定由其它转发忍片发送 所述报文。
[0111] 所述转发模块12,具体用于在利用非汇聚路由对应的ARP表项发送所述报文的过 程中,从所述非汇聚路由对应的ARP表项中,获得出接口、目的媒体访问控制MAC地址和接 口索引,并通过所述接口索引查询预先配置的接口索引表,得到所述接口索引对应的MC 地址;其中,所述接口索引表中预先记录了接口索引与MC地址的对应关系;将所述报文的 源MC地址修改为所述接口索引对应的MC地址,并将所述报文的目的MC地址修改为获 得的所述目的MC地址,并通过所述出接口发送修改后的报文。
[0112] 其中,本发明装置的各个模块可W集成于一体,也可W分离部署。上述模块可化合 并为一个模块,也可W进一步拆分成多个子模块。
[0113] 通过W上的实施方式的描述,本领域的技术人员可W清楚地了解到本发明可借助 软件加必需的通用硬件平台的方式来实现,当然也可W通过硬件,但很多情况下前者是更 佳的实施方式。基于运样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的 部分可W W软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若 干指令用W使得一台计算机设备(可W是个人计算机,服务器,或者网络设备等)执行本发 明各个实施例所述的方法。本领域技术人员可W理解附图只是一个优选实施例的示意图, 附图中的模块或流程并不一定是实施本发明所必须的。
[0114] 本领域技术人员可W理解实施例中的装置中的模块可W按照实施例描述进行分 布于实施例的装置中,也可W进行相应变化位于不同于本实施例的一个或多个装置中。上 述实施例的模块可W合并为一个模块,也可进一步拆分成多个子模块。上述本发明实施例 序号仅仅为了描述,不代表实施例的优劣。
[0115] W上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领 域的技术人员能思之的变化都应落入本发明的保护范围。
【主权项】
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地址,并通过所述出接口发送修改后的报文。
【文档编号】H04L12/741GK105939266SQ201510560076
【公开日】2016年9月14日
【申请日】2015年9月6日
【发明人】王富涛
【申请人】杭州迪普科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1