CN103078798B - 一种建立路由表的方法和设备 - Google Patents
一种建立路由表的方法和设备 Download PDFInfo
- Publication number
- CN103078798B CN103078798B CN201210585501.1A CN201210585501A CN103078798B CN 103078798 B CN103078798 B CN 103078798B CN 201210585501 A CN201210585501 A CN 201210585501A CN 103078798 B CN103078798 B CN 103078798B
- Authority
- CN
- China
- Prior art keywords
- pod
- port
- equipment
- destination address
- access device
- 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
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种建立路由表的方法和装置,属于网络通信领域。所述方法应用于胖树拓扑网络,包括:获取所述胖树拓扑网络中各设备的设备类型和各设备之间的连接关系;根据所述各设备的设备类型和各设备之间的连接关系,确定目标转发设备的上行相邻设备和下行相邻设备;生成所述目标转发设备到所述上行相邻设备的上行路由表项,以及所述目标转发设备到所述下行相邻设备的下行路由表项,所述上行路由表项和下行路由表项构成所述目标转发设备的路由表。采用本发明,可以减少胖树拓扑网络中设备路由表表项的数目,缩短收敛时间。
Description
技术领域
本发明涉及网络通信领域,特别涉及一种建立路由表的方法和设备。
背景技术
目前,数据中心网络一般采用胖树拓扑,胖树拓扑结构规整,一般可分为二级胖树和三级胖树。
二级胖树网络的拓扑结构可以如图1所示,其中的转发设备可以分为核心设备和接入设备,核心设备连接的相邻设备均为接入设备,且每台核心设备都连接所有接入设备,相应的,接入设备连接的相邻设备均为核心设备,且每台接入设备也连接所有核心设备,同时每台接入设备还各自连接若干台服务器。
三级胖树网络的拓扑结构可以如图2所示,其中的转发设备可以分为核心设备、汇聚设备和接入设备。核心设备连接的相邻设备均为汇聚设备,且每台核心设备都连接所有汇聚设备。汇聚设备连接的相邻设备中,除了核心设备外,所有相邻设备均为接入设备,对于这些接入设备,它们连接的所有相邻转发设备均为汇聚设备,且它们均连接相同的汇聚设备,而且对于这些汇聚设备,它们连接的除核心设备外的相邻设备均为接入设备,且它们均连接相同的接入设备,上述这些汇聚设备和接入设备组成了一个性能优化数据中心(PerformanceOptimizationDatacenter,POD)(POD本身又是一个二级胖树)。三级胖树的拓扑结构中可以存在多个并列的POD。二级胖树中一个接入设备则可以看做是一个POD。
现有技术中,数据中心网络在进行路由计算时,一般采用基于最短路径优先(ShortestPathFirst,SPF)的内部网关协议(InteriorGatewayProtocol,IGP)算法,根据各链路的开销(cost)值计算各转发设备之间的最短路径,在各转发设备的路由表中记录网络中所有转发设备的地址,并对应的记录由本设备到达各转发设备的最短路径所使用的出端口。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
现有技术路由表的建立过程中,使用SPF算法计算路由,网络中各个节点(各转发设备)的路由表表项会很多,收敛时间较长,尤其在等价多路径(Equal-CostMultipathRouting,ECMP)协议场景下,路由表表项数目会非常庞大。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种建立路由表的方法和设备,以减少胖树拓扑网络中设备路由表表项的数目,缩短收敛时间。所述技术方案如下:
第一方面,提供了一种建立路由表的方法,应用于胖树拓扑网络,所述方法包括:
获取所述胖树拓扑网络中各设备的设备类型和各设备之间的连接关系;
根据所述各设备的设备类型和各设备之间的连接关系,确定目标转发设备的上行相邻设备和下行相邻设备;
生成所述目标转发设备到所述上行相邻设备的上行路由表项,以及所述目标转发设备到所述下行相邻设备的下行路由表项,所述上行路由表项和下行路由表项构成所述目标转发设备的路由表。
在所述第一方面的第一种可能的实现方式中,所述获取所述胖树拓扑网络中各设备的设备类型和各设备之间的连接关系之后,还包括:根据所述各设备的设备类型和各设备之间的连接关系,为各设备设置IP地址;
所述生成所述目标转发设备到所述下行相邻设备的下行路由表项,具体为:根据所述下行相邻设备的IP地址,生成所述目标转发设备到所述下行相邻设备的下行路由表项。
在所述第一方面或所述第一方面的第一种可能的实现方式中,还提供了所述第一方面的第二种可能的实现方式,在所述第一方面的第二种可能的实现方式中,所述胖树拓扑网络具体为二级胖树网络或三级胖树网络,且在所述胖树拓扑网络中,各接入设备连接主机设备的数目相同;
所述生成所述目标转发设备到所述上行相邻设备的上行路由表项,具体为:根据所述上行相邻设备的数目和每个接入设备连接主机设备的数目,将每个接入设备连接的各主机设备分组与连接各上行相邻设备的端口对应,生成所述目标转发设备到所述上行相邻设备的上行路由表项。
在所述第一方面或所述第一方面的第一种可能的实现方式中,还提供了所述第一方面的第三种可能的实现方式,在所述第一方面的第三种可能的实现方式中,所述胖树拓扑网络具体为二级胖树网络或三级胖树网络,且在所述胖树拓扑网络中,各接入设备连接主机设备的数目相同;
所述生成所述目标转发设备到所述上行相邻设备的上行路由表项,具体为:根据所述上行相邻设备的数目和每个接入设备连接主机设备的数目,将每个接入设备连接的各主机设备以轮询的方式与连接各上行相邻设备的端口对应,生成所述目标转发设备到所述上行相邻设备的上行路由表项。
在所述第一方面的第一种可能的实现方式中,还提供了所述第一方面的第四种可能的实现方式,在所述第一方面的第四种可能的实现方式中,所述胖树拓扑网络具体为二级胖树网络或三级胖树网络,所述二级胖树网络中的设备包括核心设备、接入设备和主机设备,所述三级胖树网络中的设备包括核心设备、汇聚设备、接入设备和主机设备,其中,
在所述三级胖树网络中:
第一核心设备的IP地址为x.0.0.ida,其中,x为预设整数,ida为所述第一核心设备的顺序编号,是从1开始的整数;
第一汇聚设备和第一接入设备的IP地址为x.pod.switch.1,其中,pod为各性能优化数据中心POD顺序编号,是从1开始的整数,switch为POD中所述第一汇聚设备和所述第一接入设备统一的顺序编号,所述POD中的接入设备顺序编号在前,汇聚设备顺序编号在后,是从1开始的整数;
第一主机设备的IP地址为x.pod.switch.idb,其中,switch为所述第一主机设备连接的接入设备的顺序编号,pod为所述第一主机设备连接的接入设备所在的POD的顺序编号,idb为所述第一主机设备的顺序编号,是从2开始的整数;
在所述二级胖树网络中:
第一核心设备的IP地址为x.0.0.ida,其中,x为预设整数,ida为所述第一核心设备的顺序编号,是从1开始的整数;
第一接入设备的IP地址为x.pod.1.1,其中,pod为各POD顺序编号,是从1开始的整数;
第一主机设备的IP地址为x.pod.1.idb,其中,pod为所述第一主机设备连接的接入设备所在的POD的顺序编号,idb为所述第一主机设备的顺序编号,是从2开始的整数;
其中,所述第一核心设备为所述二级胖树网络或三级胖树网络中核心设备中的任意核心设备,所述第一汇聚设备为所述三级胖树网络中汇聚设备中的任意汇聚设备,所述第一接入设备所述二级胖树网络或三级胖树网络中核心设备中的任意接入设备,所述第一主机设备为所述二级胖树网络或三级胖树网络中核心设备中的任意主机设备。
在所述第一方面的第四种可能的实现方式中,还提供了所述第一方面的第五种可能的实现方式,在所述第一方面的第五种可能的实现方式中,所述胖树拓扑网络具体为二级胖树网络,且在所述二级胖树网络中,各接入设备连接主机设备的数目相同;
当所述目标转发设备为核心设备时,所述下行路由表项具体为:目的地址项为x.pod.0.0/16,其中,pod为所述核心设备连接的各接入设备的pod,掩码为正掩码,目的地址项对应的端口为连接相应接入设备的端口;
当所述目标转发设备为接入设备时,所述下行路由表项具体为:目的地址项为x.pod.switch.idb/32,其中,pod、switch、idb为所述接入设备连接的各主机设备的pod、switch、idb,掩码为正掩码,目的地址项对应的端口为连接相应主机设备的端口;
当所述目标转发设备为接入设备时,所述上行路由表项具体为:对于c能整除h的情况,目的地址项为0.0.0.((h/c)*i+2)/8,目的地址项对应的端口为连接ida值为i的核心设备的端口;对于c不能整除h的情况,0.0.0.([h/c+1]*i+2)/8,目的地址项对应的端口为连接ida值为i的核心设备的端口;其中,c为核心设备数目,h为每个接入设备连接主机设备的数目,i为整数且i=1,…,c,[]为取整运算符,掩码为反掩码。
在所述第一方面的第四种可能的实现方式中,还提供了所述第一方面的第六种可能的实现方式,在所述第一方面的第六种可能的实现方式中,所述胖树拓扑网络具体为二级胖树网络,且在所述二级胖树网络中,各接入设备连接主机设备的数目相同;
当所述目标转发设备为核心设备时,所述下行路由表项具体为:目的地址项为x.pod.0.0/16,其中,pod为所述核心设备连接的各接入设备的pod,掩码为正掩码,目的地址项对应的端口为连接相应接入设备的端口;
当所述目标转发设备为接入设备时,所述下行路由表项具体为:目的地址项为x.pod.switch.idb/32,其中,pod、switch、idb为所述接入设备连接的各主机设备的pod、switch、idb,掩码为正掩码,目的地址项对应的端口为连接相应主机设备的端口;
当所述目标转发设备为接入设备时,所述上行路由表项具体为:目的地址项为0.0.0.idb/8,目的地址项对应的端口为连接ida值为(idb-2)%c+1的核心设备的端口;其中,idb为每个接入设备连接的主机设备的idb,c为核心设备数目,%为求余运算符,掩码为反掩码。
在所述第一方面的第四种可能的实现方式中,还提供了所述第一方面的第七种可能的实现方式,在所述第一方面的第七种可能的实现方式中,所述胖树拓扑网络具体为三级胖树网络,且在所述三级胖树网络中,各接入设备连接主机设备的数目相同;
当所述目标转发设备为核心设备时,所述下行路由表项具体为:目的地址项为x.pod.0.0/16,目的地址项对应的端口为连接相应的POD中第(ida-1)%apod+1个汇聚设备的端口,其中,pod为所述核心设备连接的各POD的顺序编号,掩码为正掩码,ida为所述核心设备的ida,%为求余运算符,apod为相应POD中汇聚设备的数目;
当所述目标转发设备为汇聚设备时,所述下行路由表项具体为:目的地址项为x.pod.switch.0/24,其中,pod、switch为所述汇聚设备连接的各接入设备的pod、switch,掩码为正掩码,目的地址项对应的端口为连接相应接入设备的端口;
当所述目标转发设备为汇聚设备时,所述上行路由表项具体为:对于c能整除h的情况,目的地址项为0.0.0.((h/c)*i+2)/8,目的地址项对应的端口为连接ida值为i的核心设备的端口;对于c不能整除h的情况,0.0.0.([h/c+1]*i+2)/8,目的地址项对应的端口为连接ida值为i的核心设备的端口;其中,c为核心设备数目,h为每个接入设备连接主机设备的数目,i为整数且i=1,…,c,[]为取整运算符,掩码为反掩码;
当所述目标转发设备为接入设备时,所述下行路由表项具体为:目的地址项为x.pod.switch.idb/32,其中,pod、switch、idb为所述接入设备连接的各主机设备的pod、switch、idb,掩码为正掩码,目的地址项对应的端口为连接相应主机设备的端口;
当所述目标转发设备为接入设备时,所述上行路由表项具体为:对于apod能整除h的情况,目的地址项为0.0.0.((h/apod)*i+2)/8,目的地址项对应的端口为所述接入设备连接其所在POD中第i个汇聚设备的端口;对于apod不能整除h的情况,0.0.0.([h/apod+1]*i+2)/8,目的地址项对应的端口为连接所述接入设备所在POD中第i个汇聚设备的端口;其中,apod为所述接入设备的POD中的汇聚设备数目,h为每个接入设备连接主机设备的数目,i为整数且i=1,…,apod,[]为取整运算符,掩码为反掩码。
在所述第一方面的第四种可能的实现方式中,还提供了所述第一方面的第八种可能的实现方式,在所述第一方面的第八种可能的实现方式中,所述胖树拓扑网络具体为三级胖树网络,且在所述三级胖树网络中,各接入设备连接主机设备的数目相同;
当所述目标转发设备为核心设备时,所述下行路由表项具体为:目的地址项为x.pod.0.0/16,目的地址项对应的端口为连接相应的POD中第(ida-1)%apod+1个汇聚设备的端口,其中,pod为所述核心设备连接的各POD的顺序编号,掩码为正掩码,ida为所述核心设备的ida,%为求余运算符,apod为相应POD中汇聚设备的数目;
当所述目标转发设备为汇聚设备时,所述下行路由表项具体为:目的地址项为x.pod.switch.0/24,其中,pod、switch为所述汇聚设备连接的各接入设备的pod、switch,掩码为正掩码,目的地址项对应的端口为连接相应接入设备的端口;
当所述目标转发设备为汇聚设备时,所述上行路由表项具体为:目的地址项为0.0.0.idb/8,目的地址项对应的端口为连接ida值为(idb-2)%c+1的核心设备的端口;其中,idb为每个接入设备所连接的主机设备的idb,c为核心设备数目,%为求余运算符,掩码为反掩码;
当所述目标转发设备为接入设备时,所述下行路由表项具体为:目的地址项为x.pod.switch.idb/32,其中,pod、switch、idb为所述接入设备连接的各主机设备的pod、switch、idb,掩码为正掩码,目的地址项对应的端口为连接相应主机设备的端口;
当所述目标转发设备为接入设备时,所述上行路由表项具体为:目的地址项为0.0.0.idb/8,目的地址项对应的端口为所述接入设备连接其所在POD中第(idb-2)%apod+1个汇聚设备的端口;其中,idb为每个接入设备连接的主机设备的idb,apod为所述接入设备的POD中的汇聚设备数目,%为求余运算符,掩码为反掩码。
在所述第一方面的第九种可能的实现方式中,对于所述目标转发设备为核心设备,所述下行相邻设备为汇聚设备的情况,生成所述目标转发设备到所述下行相邻设备的下行路由表项,具体为:对每个POD,生成所述核心设备到所述POD中的一个汇聚设备的下行路由表项。
在所述第一方面的第九种可能的实现方式中,还提供了所述第一方面的第十种可能的实现方式,在所述第一方面的第十种可能的实现方式中,当接收到所述转发设备发送的故障通知时,还包括:
根据所述故障通知,确定所述转发设备的设备类型,以及所述转发设备上与故障链路对应的端口;
如果所述转发设备为接入设备,且所述与故障链路对应的端口为所述接入设备的上行端口,则在所述接入设备的路由表中查找含有所述上行端口的上行路由表项,并将查找到的上行路由表项中的上行端口替换为其它上行端口;
如果所述转发设备为汇聚设备,且所述与故障链路对应的端口为所述汇聚设备的上行端口,则在所述汇聚设备的路由表中查找含有所述上行端口的上行路由表项,并将查找到的上行路由表项中的上行端口替换为其它上行端口;
如果所述转发设备为汇聚设备,且所述与故障链路对应的端口为所述汇聚设备的下行端口,则:对于所述汇聚设备连接的各接入设备,在其路由表中查找对应所述汇聚设备的上行路由表项,并将查找到的上行路由表项中的上行端口替换为其它上行端口;查找路由表中有对应所述汇聚设备的下行路由表项的核心设备,对于所述汇聚设备所在POD外的其他POD中的各汇聚设备,在其路由表中查找对应所述查找到的核心设备的上行路由表项,并将查找到的上行路由表项中的上行端口替换为其它上行端口;
如果所述转发设备为核心设备,且所述核心设备的下行路由表项中含有所述与故障链路对应的端口,则对于所述故障链路连接的POD之外的其它POD中的各汇聚设备,在其路由表中查找对应所述核心设备的上行路由表项,并将查找到的上行路由表项中的上行端口替换为其它上行端口。
在所述第一方面的第十一种可能的实现方式中,所述路由表具体为由主表和子表组成的二级表,主表具体为所述下行路由表项组成的下行表,子表具体为所述上行路由表项组成的上行表。
第二方面,提供了一种路由转发方法,应用于胖树拓扑网络,所述方法包括:
接收待转发的报文;
判断对所述报文进行上行转发还是下行转发;
如果进行上行转发,则根据所述上行路由表项对所述报文进行转发;
如果进行下行转发,则根据所述下行路由表项对所述报文进行转发。
在所述第二方面的第一种可能的实现方式中,所述判断对所述报文进行上行转发还是下行转发,如果进行上行转发,则根据所述上行路由表项对所述报文进行转发,如果进行下行转发,则根据所述下行路由表项对所述报文进行转发,具体为:
根据所述报文的目的地址在所述下行路由表项中进行匹配查询,如果查询到匹配的表项,则根据所述匹配的表项对所述报文进行转发;
如果没有查询到匹配的表项,则在所述上行路由表项中,根据所述报文的目的地址,查询与所述报文的目标主机设备对应的上行路由表项,并根据所述上行路由表项对所述报文进行转发。
在所述第二方面的第一种可能的实现方式中,还提供了所述第二方面的第二种可能的实现方式,在所述第二方面的第二种可能的实现方式中,所述根据所述报文的目的地址在所述下行路由表项中进行匹配查询,如果查询到匹配的表项,则根据所述匹配的表项对所述报文进行转发,具体为:
根据所述报文的目的地址在各下行路由表项的目的地址项中进行匹配查询,如果查询到匹配的目的地址项,则通过所述匹配的目的地址项对应的端口对所述报文进行转发;
所述如果没有查询到匹配的表项,则在所述上行路由表项中,根据所述报文的目的地址,查询与所述报文的目标主机设备对应的上行路由表项,并根据所述上行路由表项对所述报文进行转发,具体为:
如果没有查询到匹配的目的地址项,则在所述上行路由表项中,将各目的地址项与所述报文的目的地址的8位反掩码进行比较,查找大于所述报文的目的地址的8位反掩码且与所述报文的目的地址的8位反掩码相差最小的目的地址项,并通过查找到的目的地址项对应的端口对所述报文进行转发。
在所述第二方面的第一种可能的实现方式中,还提供了所述第二方面的第三种可能的实现方式,在所述第二方面的第三种可能的实现方式中,所述根据所述报文的目的地址在所述下行路由表项中进行匹配查询,如果查询到匹配的表项,则根据所述匹配的表项对所述报文进行转发,具体为:
根据所述报文的目的地址在各下行路由表项的目的地址项中进行匹配查询,如果查询到匹配的目的地址项,则通过所述匹配的目的地址项对应的端口对所述报文进行转发;
所述如果没有查询到匹配的表项,则在所述上行路由表项中,根据所述报文的目的地址,查询与所述报文的目标主机设备对应的上行路由表项,并根据所述上行路由表项对所述报文进行转发,具体为:
如果没有查询到匹配的目的地址项,则根据所述报文的目的地址在各上行路由表项的目的地址项中进行匹配查询,如果查询到匹配的目的地址项,则通过所述匹配的目的地址项对应的端口对所述报文进行转发。
第三方面,提供了一种建立路由表的装置,所述装置适用于胖树拓扑网络,所述装置包括:
获取单元,用于获取所述胖树拓扑网络中各设备的设备类型和各设备之间的连接关系;
确定单元,用于根据所述各设备的设备类型和各设备之间的连接关系,确定目标转发设备的上行相邻设备和下行相邻设备;
生成单元,用于生成所述目标转发设备到所述上行相邻设备的上行路由表项,以及所述目标转发设备到所述下行相邻设备的下行路由表项,所述上行路由表项和下行路由表项构成所述目标转发设备的路由表。
在所述第三方面的第一种可能的实现方式中,还包括编址单元,用于根据所述各设备的设备类型和各设备之间的连接关系,为各设备设置互联网协议IP地址;
所述生成单元,具体用于根据所述下行相邻设备的IP地址,生成所述目标转发设备到所述下行相邻设备的下行路由表项。
在所述第三方面或所述第三方面的第一种可能的实现方式中,还提供了所述第三方面的第二种可能的实现方式,在所述第三方面的第二种可能的实现方式中,所述胖树拓扑网络具体为二级胖树网络或三级胖树网络,且在所述胖树拓扑网络中,各接入设备连接主机设备的数目相同;
所述生成单元,具体用于:根据所述上行相邻设备的数目和每个接入设备连接主机设备的数目,将每个接入设备连接的各主机设备分组与连接各上行相邻设备的端口对应,生成所述目标转发设备到所述上行相邻设备的上行路由表项。
在所述第三方面或所述第三方面的第一种可能的实现方式中,还提供了所述第三方面的第三种可能的实现方式,在所述第三方面的第三种可能的实现方式中,所述胖树拓扑网络具体为二级胖树网络或三级胖树网络,且在所述胖树拓扑网络中,各接入设备连接主机设备的数目相同;
所述生成单元,具体用于:根据所述上行相邻设备的数目和每个接入设备连接主机设备的数目,将每个接入设备连接的各主机设备以轮询的方式与连接各上行相邻设备的端口对应,生成所述目标转发设备到所述上行相邻设备的上行路由表项。
在所述第三方面的第一种可能的实现方式中,还提供了所述第三方面的第四种可能的实现方式,在所述第三方面的第四种可能的实现方式中,所述胖树拓扑网络具体为二级胖树网络或三级胖树网络,所述二级胖树网络中的设备包括核心设备、接入设备和主机设备,所述三级胖树网络中的设备包括核心设备、汇聚设备、接入设备和主机设备;
所述编址单元,具体用于设置:
在所述三级胖树网络中:
第一核心设备的IP地址为x.0.0.ida,其中,x为预设整数,ida为所述第一核心设备的顺序编号,是从1开始的整数;
第一汇聚设备和第一接入设备的IP地址为x.pod.switch.1,其中,pod为各性能优化数据中心POD顺序编号,是从1开始的整数,switch为POD中所述第一汇聚设备和所述第一接入设备统一的顺序编号,所述POD中的接入设备顺序编号在前,汇聚设备顺序编号在后,是从1开始的整数;
第一主机设备的IP地址为x.pod.switch.idb,其中,switch为所述第一主机设备连接的接入设备的顺序编号,pod为所述第一主机设备连接的接入设备所在的POD的顺序编号,idb为所述第一主机设备的顺序编号,是从2开始的整数;
在所述二级胖树网络中:
第一核心设备的IP地址为x.0.0.ida,其中,x为预设整数,ida为所述第一核心设备的顺序编号,是从1开始的整数;
第一接入设备的IP地址为x.pod.1.1,其中,pod为各POD顺序编号,是从1开始的整数;
第一主机设备的IP地址为x.pod.1.idb,其中,pod为所述第一主机设备连接的接入设备所在的POD的顺序编号,idb为所述第一主机设备的顺序编号,是从2开始的整数;
其中,所述第一核心设备为所述二级胖树网络或三级胖树网络中核心设备中的任意核心设备,所述第一汇聚设备为所述三级胖树网络中汇聚设备中的任意汇聚设备,所述第一接入设备所述二级胖树网络或三级胖树网络中核心设备中的任意接入设备,所述第一主机设备为所述二级胖树网络或三级胖树网络中核心设备中的任意主机设备。
在所述第三方面的第五种可能的实现方式中,对于所述目标转发设备为核心设备,所述下行相邻设备为汇聚设备的情况,所述生成单元,具体用于:
对每个POD,生成所述核心设备到所述POD中的一个汇聚设备的下行路由表项。
在所述第三方面的第五种可能的实现方式中,还提供了所述第三方面的第六种可能的实现方式,在所述第三方面的第六种可能的实现方式中,还包括故障处理单元,用于:
当接收到所述转发设备发送的故障通知时,根据所述故障通知,确定所述转发设备的设备类型,以及所述转发设备上与故障链路对应的端口;
如果所述转发设备为接入设备,且所述与故障链路对应的端口为所述接入设备的上行端口,则在所述接入设备的路由表中查找含有所述上行端口的上行路由表项,并将查找到的上行路由表项中的上行端口替换为其它上行端口;
如果所述转发设备为汇聚设备,且所述与故障链路对应的端口为所述汇聚设备的上行端口,则在所述汇聚设备的路由表中查找含有所述上行端口的上行路由表项,并将查找到的上行路由表项中的上行端口替换为其它上行端口;
如果所述转发设备为汇聚设备,且所述与故障链路对应的端口为所述汇聚设备的下行端口,则:对于所述汇聚设备连接的各接入设备,在其路由表中查找对应所述汇聚设备的上行路由表项,并将查找到的上行路由表项中的上行端口替换为其它上行端口;查找路由表中有对应所述汇聚设备的下行路由表项的核心设备,对于所述汇聚设备所在POD外的其他POD中的各汇聚设备,在其路由表中查找对应所述查找到的核心设备的上行路由表项,并将查找到的上行路由表项中的上行端口替换为其它上行端口;
如果所述转发设备为核心设备,且所述核心设备的下行路由表项中含有所述与故障链路对应的端口,则对于所述故障链路连接的POD之外的其它POD中的各汇聚设备,在其路由表中查找对应所述核心设备的上行路由表项,并将查找到的上行路由表项中的上行端口替换为其它上行端口。
第四方面,提供了一种转发设备,所述转发设备适用于胖树拓扑网络,所述转发设备包括:
接收单元,用于接收待转发的报文;
判断单元,用于判断对所述报文进行上行转发还是下行转发;如果进行上行转发,则根据所述上行路由表项对所述报文进行转发;如果进行下行转发,则根据所述下行路由表项对所述报文进行转发。
在所述第四方面的第一种可能的实现方式中,所述判断单元,具体用于:
根据所述报文的目的地址在所述下行路由表项中进行匹配查询,如果查询到匹配的表项,则根据所述匹配的表项对所述报文进行转发;
如果没有查询到匹配的表项,则在所述上行路由表项中,根据所述报文的目的地址,查询与所述报文的目标主机设备对应的上行路由表项,并根据所述上行路由表项对所述报文进行转发。
在所述第四方面的第一种可能的实现方式中,还提供了所述第四方面的第二种可能的实现方式,在所述第四方面的第二种可能的实现方式中,所述判断单元,具体用于:
根据所述报文的目的地址在各下行路由表项的目的地址项中进行匹配查询,如果查询到匹配的目的地址项,则通过所述匹配的目的地址项对应的端口对所述报文进行转发;
如果没有查询到匹配的目的地址项,则在所述上行路由表项中,将各目的地址项与所述报文的目的地址的8位反掩码进行比较,查找大于所述报文的目的地址的8位反掩码且与所述报文的目的地址的8位反掩码相差最小的目的地址项,并通过查找到的目的地址项对应的端口对所述报文进行转发。
在所述第四方面的第一种可能的实现方式中,还提供了所述第四方面的第三种可能的实现方式,在所述第四方面的第三种可能的实现方式中,所述判断单元,具体用于:
根据所述报文的目的地址在各下行路由表项的目的地址项中进行匹配查询,如果查询到匹配的目的地址项,则通过所述匹配的目的地址项对应的端口对所述报文进行转发;
如果没有查询到匹配的目的地址项,则根据所述报文的目的地址在各上行路由表项的目的地址项中进行匹配查询,如果查询到匹配的目的地址项,则通过所述匹配的目的地址项对应的端口对所述报文进行转发。
本发明实施例提供的技术方案带来的有益效果是:
基于胖树拓扑网络的结构特点,根据各设备的设备类型和连接关系,针对目标转发设备的上行相邻设备和下行相邻设备,生成上行路由表项和下行路由表项,构成目标转发设备的路由表,从而,无需对网络中的所有转发设备都生成相应的表项,减少胖树拓扑网络中设备路由表表项的数目,缩短了网络的收敛时间。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是现有技术中二级胖树网络的拓扑结构示意图;
图2是现有技术中三级胖树网络的拓扑结构示意图;
图3是本发明实施例提供的建立路由表的方法流程图;
图4是本发明实施例提供的建立路由表的方法中设备IP地址和路由表的示意图之一;
图5是本发明实施例提供的建立路由表的方法中设备IP地址和路由表的示意图之二;
图6是本发明实施例提供的建立路由表的方法中设备IP地址和路由表的示意图之三;
图7是本发明实施例提供的建立路由表的方法中设备IP地址和路由表的示意图之四;
图8是本发明实施例提供的报文转发处理的流程图;
图9是本发明实施例提供的建立路由表的装置结构示意图;
图10是本发明实施例提供的转发设备结构示意图;
图11是本发明实施例提供的建立路由表的装置结构示意图;
图12是本发明实施例提供的转发设备结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
参见图3,本发明实施例提供了一种建立路由表的方法,应用于胖树拓扑网络,该方法的处理流程可以包括以下步骤:
301,获取胖树拓扑网络中各设备的设备类型和各设备之间的连接关系,各设备中包括转发设备和主机。
302,根据各设备的设备类型和各设备之间的连接关系,确定目标转发设备的上行相邻设备和下行相邻设备。
303,生成目标转发设备到上行相邻设备的上行路由表项,以及目标转发设备到下行相邻设备的下行路由表项,该上行路由表项和下行路由表项构成目标转发设备的路由表。
本发明实施例中,基于胖树拓扑网络的结构特点,根据各设备的设备类型和连接关系,针对目标转发设备的上行相邻设备和下行相邻设备,生成上行路由表项和下行路由表项,构成目标转发设备的路由表,从而,无需对网络中的所有转发设备都生成相应的表项,减少胖树拓扑网络中设备路由表表项的数目,缩短了网络的收敛时间。
本发明实施例提供了一种建立路由表的方法,应用于胖树拓扑网络,下面将对图3所示的处理流程进行详细阐述。下面以控制与转发分离的网络架构(即网络中包括控制器和转发设备,控制器负责对网络进行集中控制,为转发设备下发路由表,并向用户开放,而转发设备则负责对报文进行转发)为例进行说明,对于控制与转发分离的网络架构,该处理流程可以由控制器来执行。当然对于非控制与转发分离的网络架构,该处理流程也可以由目标转发设备自己来执行。具体内容如下:
301,获取胖树拓扑网络中各设备的设备类型和各设备之间的连接关系。除控制设备外,胖树拓扑网络中的设备类型可以包括转发设备和主机设备,转发设备又分为接入设备、汇聚设备和核心设备。
具体的,在设备上电之后,控制器可以进行拓扑收集,各转发设备可以向控制器上报自身的设备类型,控制器接收到上报信息后,可以进一步获取各转发设备之间相互连接的端口信息,及各转发设备与主机设备连接的端口信息,以得到各设备之间的连接关系,进一步,在控制器中还可以生成网络的拓扑视图。然后,控制器还可以进行拓扑校验,根据胖树拓扑网络的结构特点,判断当前的网络是否为胖树拓扑网络,是二级胖树网络还是三级胖树网络。
胖树拓扑网络可以为二级胖树网络或三级胖树网络,二级胖树网络中的设备包括核心设备、接入设备和主机设备,三级胖树网络中的设备包括核心设备、汇聚设备、接入设备和主机设备。
在确定网络中各设备的设备类型和各设备之间的连接关系后,控制器可以为网络中的各设备设置标识,具体可以是进行互联网协议(InternetProtocol,IP)地址的分配,即为设备编址。优选的,进行编址的规则可以如下(IP地址分配结果可以参照图4、图6):
在所述三级胖树网络中:
第一核心设备的IP地址为x.0.0.ida,其中,x为预设整数(x可以在0-255范围内取值,在图中的实例中x取值为10),ida为第一核心设备的顺序编号,是从1开始的整数。在胖树拓扑网络中,各核心设备之间是并列的关系,顺序可以任意排列,该顺序编号在设置后保持不变,该顺序编号优选为从1开始的连续整数序列。
第一汇聚设备和第一接入设备的IP地址为x.pod.switch.1,其中,pod为各POD顺序编号,是从1开始的整数,switch为POD中第一汇聚设备和第一接入设备统一的顺序编号,所述POD中的接入设备顺序编号在前,汇聚设备顺序编号在后,是从1开始的整数。在胖树拓扑网络中,各POD之间是并列的关系,顺序可以任意排列,顺序编号在设置后保持不变,该顺序编号优选为从1开始的连续整数序列。同一POD中各接入设备和各汇聚设备之间的顺序也可以任意排列,但优选采用上述的排列方式,顺序编号在设置后保持不变,该顺序编号优选为从1开始的连续整数序列。(在二级胖树网络中一个接入设备可以作为一个POD。)
第一主机设备的IP地址为x.pod.switch.idb,其中,switch为第一主机设备连接的接入设备的顺序编号,pod为该第一主机设备连接的接入设备所在的POD的顺序编号,idb为该第一主机设备的顺序编号,是从2开始的整数。在胖树拓扑网络中,同一接入设备连接的各主机设备之间是并列的关系,顺序可以任意排列,该顺序编号在设置后保持不变,该顺序编号优选为从2开始的连续整数序列。
在所述二级胖树网络中:
第一核心设备的IP地址为x.0.0.ida,其中,x为预设整数,ida为第一核心设备的顺序编号,是从1开始的整数。
第一接入设备的IP地址为x.pod.1.1,其中,pod为各POD顺序编号,是从1开始的整数。
第一主机设备的IP地址为x.pod.1.idb,其中,pod为第一主机设备连接的接入设备所在的POD的顺序编号,idb为第一主机设备的顺序编号,是从2开始的整数。
上述内容中,第一核心设备为二级胖树网络或三级胖树网络中核心设备中的任意核心设备,第一汇聚设备为三级胖树网络中汇聚设备中的任意汇聚设备,第一接入设备二级胖树网络或三级胖树网络中核心设备中的任意接入设备,第一主机设备为二级胖树网络或三级胖树网络中核心设备中的任意主机设备。
302,根据各设备的设备类型和各设备之间的连接关系,确定目标转发设备的上行相邻设备和下行相邻设备。
具体的,核心设备没有上行相邻设备,在二级胖树网络中其下行相邻设备为接入设备,在三级胖树网络中其下行相邻设备为汇聚设备;汇聚设备的上行相邻设备为核心设备,下行相邻设备为接入设备;接入设备的下行相邻设备为主机设备,在二级胖树网络中其上行相邻设备为核心设备,在三级胖树网络中其上行相邻设备为汇聚设备。
303,生成目标转发设备到上行相邻设备的上行路由表项,以及目标转发设备到下行相邻设备的下行路由表项,该上行路由表项和下行路由表项构成目标转发设备的路由表。该路由表可以是由主表和子表组成的二级表,主表可以是下行路由表项组成的下行表,子表可以是上行路由表项组成的上行表。
可见,生成的路由表中,只需要包含相邻设备对应的路由表项,而无需包含网络中其他非相邻设备对应的路由表项,这样,可以大幅度的缩减了路由表项的数目。
优选的,在三级胖树网络中,核心设备与每个POD中的所有汇聚设备连接,即该核心设备通过POD中的任意汇聚设备都可以连接到该POD,为了缩减核心设备的路由表项,在生成核心设备的下行路由表项时,可以对每个POD,只生成核心设备到该POD中的一个汇聚设备的下行路由表项。
具体的,下行路由表项和上行路由表项的生成方式,可以分以下几种情况进行说明:
(一)二级胖树网络(具体的路由表实例可以参见图4、图5)
一般的,数据中心网络所采用的二级胖树网络中,各接入设备连接主机设备的数目相同,所以,下面也基于此情况进行进一步说明。
对于下行路由表项,可以根据下行相邻设备的IP地址,生成目标转发设备到下行相邻设备的下行路由表项。即目的地址项根据下行相邻设备的IP地址生成(可以采用正掩码的形式),对应的端口项可以记录连接该下行相邻设备的端口的标识。
当目标转发设备为核心设备时,下行路由表项可以具体为:目的地址项为x.pod.0.0/16,其中,pod为该核心设备连接的各接入设备的pod(在二级胖树网络中,每个接入设备作为一个POD),掩码为正掩码,目的地址项对应的端口为连接相应接入设备的端口。
可见,此情况下,下行路由表项的数目,即为pod可取值的数目,即网络中接入设备的数目(在二级胖树网络中一个接入设备可以被看做是一个POD),如图4所示的网络,有4个接入设备,则其核心设备的路由表中有4个下行路由表项。
在路由表中可以对应目的地址项记录端口项,端口项中可以记录相应端口的标识,该标识可以是端口的物理地址,也可以是如图中所示的设置的顺序号。(图中端口顺序号的设置规则是,下行端口顺序在前,上行端口顺序在后,下行端口按照其连接设备的顺序排列,上行端口也按照其连接设备的顺序排列,且端口顺序号为从0开始的连续的整数序列。)那么,目的地址项x.pod.0.0/16对应的端口顺序号可以是pod-1,例如,如图4所示的10.1.0.0/16对应的端口顺序号为0。
当目标转发设备为接入设备时,下行路由表项可以具体为:目的地址项为x.pod.switch.idb/32,其中,pod、switch、idb为该接入设备连接的各主机设备的pod、switch、idb,掩码为正掩码,目的地址项对应的端口为连接相应主机设备的端口。
可见,此情况下,对于同一接入设备连接的主机设备,pod和switch的取值都是确定值,下行路由表项的数目,即为idb可取值的数目,即该接入设备连接主机设备的数目,图4所示的网络,10.1.1.1的接入设备连接有4个主机设备,则该接入设备的路由表中有4个下行路由表项。
在路由表中可以对应目的地址项记录端口项,端口项中可以记录相应端口的标识,该标识可以是端口的物理地址,也可以是如图中所示的设置的顺序号。依据上述的端口顺序号设置规则,目的地址项x.pod.switch.idb/32对应的端口顺序号可以是idb-2,例如,如图4所示的10.1.1.3/32对应的端口顺序号为1。
对于上行路由表项,由于在二级胖树网络中,只有接入设备具有上行路由表项,那么对于接入设备的上行路由表项的生成,可以采取以下的方法:
方法一,参见图4,根据上行相邻设备(核心设备)的数目和每个接入设备连接主机设备的数目,将每个接入设备连接的各主机设备分组与连接各上行相邻设备(核心设备)的端口对应,生成目标转发设备到上行相邻设备(核心设备)的上行路由表项。
具体的,可以将一个接入设备连接的所有主机设备按核心设备的数目分组,并将各分组分别与连接各核心设备的端口对应起来,设置与每个接入设备连接的主机设备数目相同数目的上行路由表项,上行路由表项中的每个目的地址项根据一个主机设备的IP地址生成(可以采用反掩码的形式),相应的端口项可以记录该主机设备所在分组对应的端口的标识。另外,也可以按照下面的方法生成上行路由表项:
对于c能整除h的情况,目的地址项为0.0.0.((h/c)*i+2)/8,目的地址项对应的端口为连接ida值为i的核心设备的端口;对于c不能整除h的情况,0.0.0.([h/c+1]*i+2)/8,目的地址项对应的端口为连接ida值为i的核心设备的端口;其中,c为核心设备数目,h为每个接入设备连接主机设备的数目,i为整数且i=1,…,c,[]为取整运算符,掩码为反掩码。
可见,此情况下,对于确定的接入设备,h和c的取值都是确定值,上行路由表项的数目,即为i可取值的数目,即网络中核心设备的数目,或者说对主机设备分组的数目,图4所示的网络,有2个核心设备,则该接入设备的路由表中有2个上行路由表项。
在路由表中可以对应目的地址项记录端口项,端口项中可以记录相应端口的标识,该标识可以是端口的物理地址,也可以是如图中所示的设置的顺序号。依据上述的端口顺序号设置规则,目的地址项0.0.0.((h/c)*i+2)/8对应的端口顺序号可以是h+i-1,例如,如图4所示的0.0.0.4/8对应的端口顺序号为4。目的地址项0.0.0.([h/c+1]*i+2)/8对应的端口顺序号可以是h+i-1。
基于此上行路由表项,可以将每个分组的主机设备与一个核心设备对应。
方法二,参见图5,根据上行相邻设备(核心设备)的数目和每个接入设备连接主机设备的数目,将每个接入设备连接的各主机设备以轮询的方式与连接各上行相邻设备(核心设备)的端口对应,生成所述目标转发设备到上行相邻设备(核心设备)的上行路由表项。其中,轮询的方式具体为,将各主机设备按顺序与不同的核心设备对应,以两个核心设备的情况为例,将每个接入设备连接的第一个主机设备与第一个核心设备对应,将每个接入设备连接的第二个主机设备与第二个核心设备对应,将每个接入设备连接的第三个主机设备与第一个核心设备对应,将每个接入设备连接的第四个主机设备与第二个核心设备对应。具体的,可以设置与每个接入设备连接的主机设备数目相同数目的上行路由表项,上行路由表项中的每个目的地址项根据一个主机设备的IP地址生成(可以采用反掩码的形式),相应的端口项可以记录该主机设备按轮询方式对应的端口的标识。基于此,上行路由表项可以具体为:
目的地址项为0.0.0.idb/8,目的地址项对应的端口为连接ida值为(idb-2)%c+1的核心设备的端口;其中,idb为每个接入设备连接的主机设备的idb,c为核心设备数目,%为求余运算符,掩码为反掩码。
可见,此情况下,对于确定的接入设备,上行路由表项的数目,即为idb可取值的数目,即每个接入设备连接主机设备的数目,图5所示的网络,每个接入设备连接有4个主机设备,则10.1.1.1的接入设备的路由表中有4个上行路由表项。
在路由表中可以对应目的地址项记录端口项,端口项中可以记录相应端口的标识,该标识可以是端口的物理地址,也可以是如图中所示的设置的顺序号。依据上述的端口顺序号设置规则,目的地址项0.0.0.idb/8对应的端口顺序号可以是(idb-2)%c+h,h为每个接入设备连接主机设备的数目,例如,如图5所示的0.0.0.2/8对应的端口顺序号为4。
(二)三级胖树网络(具体的路由表实例可以参见图6、图7)
一般的,数据中心网络所采用的三级胖树网络中,各接入设备连接主机设备的数目相同,所以,下面也基于此情况进行进一步说明。
对于下行路由表项,可以采用与二级胖树网络相同的方式,根据下行相邻设备的IP地址,生成目标转发设备到下行相邻设备的下行路由表项。即目的地址项根据下行相邻设备的IP地址生成(可以采用正掩码的形式),对应的端口项可以记录连接该下行相邻设备的端口的标识。
当目标转发设备为核心设备时,下行路由表项可以具体为:目的地址项为x.pod.0.0/16,目的地址项对应的端口为连接相应的POD中第(ida-1)%apod+1个汇聚设备的端口,其中,pod为该核心设备连接的各POD的顺序编号,掩码为正掩码,ida为该核心设备的ida,%为求余运算符,apod为相应POD中汇聚设备的数目。
可见,此情况下,下行路由表项的数目,即为pod可取值的数目,即网络中POD的数目,如图6所示的网络,有15个POD,则其核心设备的路由表中有15个下行路由表项。
在路由表中可以对应目的地址项记录端口项,端口项中可以记录相应端口的标识,该标识可以是端口的物理地址,也可以是如图中所示的设置的顺序号。前面已经提到,在生成核心设备的下行路由表项时,可以对每个POD,只生成核心设备到该POD中的一个汇聚设备的下行路由表项。这里具体的,将核心设备采用轮询的方式与每个POD中的一个汇聚设备相对应,以每个POD中有两个汇聚设备为例,第一个核心设备生成其到每个POD中第一个汇聚设备的下行路由表项,第二个核心设备生成其到每个POD中第二个汇聚设备的下行路由表项,第三个核心设备生成其到每个POD中第一个汇聚设备的下行路由表项,依此类推。那么,依据上述的端口顺序号设置规则,目的地址项x.pod.0.0/16对应的端口顺序号可以是a1+…+apod-1+(ida-1)apod,例如,如图6所示,ida为2的核心设备,10.1.0.0/16对应的端口顺序号为1。
当目标转发设备为汇聚设备时,下行路由表项可以具体为:目的地址项为x.pod.switch.0/24,其中,pod、switch为该汇聚设备连接的各接入设备的pod、switch,掩码为正掩码,目的地址项对应的端口为连接相应接入设备的端口。
可见,此情况下,对于同一汇聚设备连接的接入设备,pod和switch的取值都是确定值,下行路由表项的数目,即为连接的接入设备的switch可取值的数目,即该汇聚设备连接的接入设备的数目,图6所示的网络,10.1.7.1的汇聚设备连接有6个主机设备,则该接入设备的路由表中有6个下行路由表项。
在路由表中可以对应目的地址项记录端口项,端口项中可以记录相应端口的标识,该标识可以是端口的物理地址,也可以是如图中所示的设置的顺序号。依据上述的端口顺序号设置规则,目的地址项x.pod.switch.0/24对应的端口顺序号可以是switch-1,例如,如图6所示的10.1.1.0/24对应的端口顺序号为0。
当目标转发设备为接入设备时,下行路由表项可以具体为:目的地址项为x.pod.switch.idb/32,其中,pod、switch、idb为该接入设备连接的各主机设备的pod、switch、idb,掩码为正掩码,目的地址项对应的端口为连接相应主机设备的端口。
可见,此情况下,对于同一接入设备连接的主机设备,pod和switch的取值都是确定值,下行路由表项的数目,即为idb可取值的数目,即该接入设备连接主机设备的数目,图6所示的网络,10.1.1.1的接入设备连接有48个主机设备,则该接入设备的路由表中有48个下行路由表项。
在路由表中可以对应目的地址项记录端口项,端口项中可以记录相应端口的标识,该标识可以是端口的物理地址,也可以是如图中所示的设置的顺序号。依据上述的端口顺序号设置规则,目的地址项x.pod.switch.idb/32对应的端口顺序号可以是idb-2,例如,如图6所示的10.1.5.2/32对应的端口顺序号为0。
对于上行路由表项的生成,可以采取以下的方法:
方法三,参见图6,根据上行相邻设备的数目和该胖树网络中每个接入设备连接主机设备的数目,将每个接入设备连接的各主机设备分组与连接各上行相邻设备的端口对应,生成目标转发设备到上行相邻设备的上行路由表项。
具体的,可以将单个接入设备连接的所有主机设备按上行相邻设备的数目分组,并将各分组分别与连接各上行相邻设备的端口对应起来,设置与每个接入设备连接的主机设备数目相同数目的上行路由表项,上行路由表项中的每个目的地址项根据一个主机设备的IP地址生成(可以采用反掩码的形式),相应的端口项可以记录该主机设备所在分组对应的端口的标识。另外,也可以按照下面的方法生成上行路由表项:
当目标转发设备为汇聚设备时,上行路由表项可以具体为:对于c能整除h的情况,目的地址项为0.0.0.((h/c)*i+2)/8,目的地址项对应的端口为连接ida值为i的核心设备的端口;对于c不能整除h的情况,0.0.0.([h/c+1]*i+2)/8,目的地址项对应的端口为连接ida值为i的核心设备的端口;其中,c为核心设备数目,h为该胖树网络中每个接入设备连接主机设备的数目,i为整数且i=1,…,c,[]为取整运算符,掩码为反掩码。
可见,此情况下,对于确定的汇聚设备,h和c的取值都是确定值,上行路由表项的数目,即为i可取值的数目,即网络中核心设备的数目,或者说对主机设备分组的数目,图6所示的网络,有8个核心设备,则该接入设备的路由表中有8个上行路由表项。
在路由表中可以对应目的地址项记录端口项,端口项中可以记录相应端口的标识,该标识可以是端口的物理地址,也可以是如图中所示的设置的顺序号。依据上述的端口顺序号设置规则,目的地址项0.0.0.((h/c)*i+2)/8对应的端口顺序号可以是epod+i-1,epod为顺序编号为pod(该汇聚设备的pod)的POD中接入设备的数目,例如,如图6所示的0.0.0.8/8对应的端口顺序号为6。目的地址项0.0.0.([h/c+1]*i+2)/8对应的端口顺序号可以是epod+i-1。
基于此上行路由表项,可以将每个分组的主机设备与一个核心设备对应。
当目标转发设备为接入设备时,上行路由表项可以具体为:对于apod能整除h的情况,目的地址项为0.0.0.((h/apod)*i+2)/8,目的地址项对应的端口为该接入设备连接其所在POD中第i个汇聚设备的端口;对于apod不能整除h的情况,0.0.0.([h/apod+1]*i+2)/8,目的地址项对应的端口为连接该接入设备所在POD中第i个汇聚设备的端口;其中,apod为该接入设备的POD中的汇聚设备数目,h为该胖树网络中每个接入设备连接主机设备的数目,i为整数且i=1,…,apod,[]为取整运算符,掩码为反掩码。
可见,此情况下,对于确定的接入设备,h和apod的取值都是确定值,上行路由表项的数目,即为i可取值的数目,即该接入设备的POD中的汇聚设备的数目,或者说对主机设备分组的数目,图6所示的网络,第一个POD有4个汇聚设备,则10.1.5.1的接入设备的路由表中有4个上行路由表项。
在路由表中可以对应目的地址项记录端口项,端口项中可以记录相应端口的标识,该标识可以是端口的物理地址,也可以是如图中所示的设置的顺序号。依据上述的端口顺序号设置规则,目的地址项0.0.0.((h/apod)*i+2)/8对应的端口顺序号可以是h+i-1,例如,如图6所示的0.0.0.14/8对应的端口顺序号为48。目的地址项0.0.0.([h/apod+1]*i+2)/8对应的端口顺序号可以是h+i-1。
基于此上行路由表项,可以将每个分组的主机设备与一个汇聚设备对应。
方法四,参见图7,根据上行相邻设备的数目和该胖树网络中每个接入设备连接主机设备的数目,将每个接入设备连接的各主机设备以轮询的方式与连接各上行相邻设备的端口对应,生成目标转发设备到上行相邻设备的上行路由表项。轮询的方式在上面已经详细说明,在此不做累述。具体的,可以设置与每个接入设备连接的主机设备数目相同数目的上行路由表项,上行路由表项中的每个目的地址项根据一个主机设备的IP地址生成(可以采用反掩码的形式),相应的端口项可以记录该主机设备按轮询方式对应的端口的标识。
当目标转发设备为汇聚设备时,上行路由表项可以具体为:目的地址项为0.0.0.idb/8,目的地址项对应的端口为连接ida值为(idb-2)%c+1的核心设备的端口;其中,idb为每个接入设备所连接的主机设备的idb,c为核心设备数目,%为求余运算符,掩码为反掩码。
可见,此情况下,对于确定的汇聚设备,上行路由表项的数目,即为idb可取值的数目,即该胖树网络中每个接入设备连接主机设备的数目,图7所示的网络,每个接入设备连接有48个主机设备,则10.1.7.1的汇聚设备的路由表中有48个上行路由表项。
在路由表中可以对应目的地址项记录端口项,端口项中可以记录相应端口的标识,该标识可以是端口的物理地址,也可以是如图中所示的设置的顺序号。依据上述的端口顺序号设置规则,目的地址项0.0.0.idb/8对应的端口顺序号可以是(idb-2)%c+epod,epod为顺序编号为pod(该汇聚设备的pod)的POD中接入设备的数目,例如,如图7所示的0.0.0.2/8对应的端口顺序号为6。
当目标转发设备为接入设备时,上行路由表项可以具体为:目的地址项为0.0.0.idb/8,目的地址项对应的端口为该接入设备连接其所在POD中第(idb-2)%apod+1个汇聚设备的端口;其中,idb为每个接入设备连接的主机设备的idb,apod为该接入设备的POD中的汇聚设备数目,%为求余运算符,掩码为反掩码。
可见,此情况下,对于确定的接入设备,上行路由表项的数目,即为idb可取值的数目,即每个接入设备连接主机设备的数目,图7所示的网络,每个接入设备连接有48个主机设备,则10.1.5.1的接入设备的路由表中有48个上行路由表项。
在路由表中可以对应目的地址项记录端口项,端口项中可以记录相应端口的标识,该标识可以是端口的物理地址,也可以是如图中所示的设置的顺序号。依据上述的端口顺序号设置规则,目的地址项0.0.0.idb/8对应的端口顺序号可以是(idb-2)%apod+h,h为每个接入设备连接主机设备的数目,例如,如图7所示的0.0.0.2/8对应的端口顺序号为48。
如果上述路由表生成过程由控制器执行,那么在上述303生成路由表之后,控制器还可以执行将各转发设备的路由表下发给各转发设备的步骤。
基于上述的路由表建立方法,本发明实施例还提供了一种路由转发方法,适用于胖树拓扑网络,该方法的执行主体可以是转发设备,各转发设备使用上述方法建立的路由表,参见图8,该方法的处理流程可以包括如下的步骤(参见图4-7,其中的虚线为报文转发路线示例):
801,接收待转发的报文。
802,判断对该报文进行上行转发还是下行转发,如果进行下行转发,则执行803,如果进行上行转发,则执行804。
优选的,该判断过程可以具体为:根据报文的目的地址在下行路由表项中进行匹配查询(对于前述的二级表的情况,即为在主表中进行匹配查询),如果查询到匹配的表项,则对该报文进行下行转发,如果没有查询到匹配的表项,则对该报文进行上行转发。
具体的,该匹配查询的过程可以是,根据报文的目的地址在各下行路由表项的目的地址项中进行匹配查询,即根据报文的目的地址的相应的掩码在各目的地址项中查找相同的项。例如,在图4中,在10.0.0.1的核心设备的路由表中进行匹配查询,报文的目的地址为10.4.1.5,那么先获取该目的地址的16位正掩码,即10.4.0.0/16,再在路由表中查询是否有相同项。采用掩码的形式匹配查找,可以确定该目的地址对应的网段,并向该网段转发该报文。
803,根据下行路由表项(对于前述的二级表的情况,即根据主表)对该报文进行转发。根据上述查询到的匹配的表项对报文进行转发,即通过上述匹配的目的地址项对应的端口对所述报文进行转发。基于上面的例子,报文目的地址的16位正掩码为10.4.0.0/16,在该核心设备的路由表中查询到匹配的下行路由表项,得到对应的端口顺序号为3,这样,可以通过该端口对报文进行转发。
804,根据上行路由表项(对于前述的二级表的情况,即根据子表)对该报文进行转发。
具体的,可以在上行路由表项中,根据报文的目的地址,查询与该报文的目标主机设备对应的上行路由表项,并根据该上行路由表项对报文进行转发。报文的目的地址即该报文的目标主机设备的IP地址。
基于上述的方法一和方法三中的上行路由表项生成方法,在对报文进行上行转发时:在上行路由表项中,将各目的地址项与报文的目的地址的8位反掩码进行比较,查找大于报文的目的地址的8位反掩码且与所述报文的目的地址的8位反掩码相差最小的目的地址项(通过这种方法,可以根据上行路由表项查找到报文的目标主机设备所在的分组对应的端口),并通过查找到的目的地址项对应的端口对所述报文进行转发。
例如,在图4中,10.1.1.1的接入设备根据其上行路由表项进行报文转发时,报文的目的地址为10.4.1.3,其8位反掩码为0.0.0.3/8,与各目的地址项比较,根据上述规则查找到符合要求的目的地址项为0.0.0.4/8,并得到对应的端口顺序号为4,这样,就可以通过该端口对该报文进行转发。
基于上述的方法二和方法四中的上行路由表项生成方法,在对报文进行上行转发时:根据报文的目的地址在各上行路由表项的目的地址项中进行匹配查询,如果查询到匹配的目的地址项,则通过该匹配的目的地址项对应的端口对该报文进行转发。
例如,在图5中,10.1.1.1的接入设备根据其上行路由表项进行报文转发时,报文的目的地址为10.4.1.3,其8位反掩码为0.0.0.3/8,查询到数值与其相同的目的地址项0.0.0.3/8,并得到对应的端口顺序号为5,这样,就可以通过该端口对该报文进行转发。
基于上述的路由表建立方法,本发明实施例还提供了故障处理的方法,当控制器接收到转发设备发送的故障通知时,则控制器会根据如下的方法修改部分转发设备的路由表中部分路由表项的端口项的信息,以防止丢包现象的发生,该方法可以具体如下:
首先,控制器根据故障通知,确定转发设备的设备类型,以及该转发设备上与故障链路对应的端口。
转发设备在发现其连接的链路出现故障时,则会记录其连接该故障链路的端口的标识,然后向控制设备发送故障通知,在故障通知中可以携带该端口的标识,这样控制器就可以确定该转发设备上与故障链路对应的端口。另外,控制器还可以根据该故障通知确定该转发设备类型,例如,可以获取故障通知报文的源地址,也可以根据接收该故障通知的端口查找到对应的转发设备的标识(如IP地址),然后根据转发设备的IP地址,依据上述的编制规则,则可以确定其设备类型,而且还可以进一步确定其在网络中的位置(如所在的POD),以及确定与故障链路对应的端口是该转发设备上行端口还是下行端口。
然后,根据发送故障通知的转发设备的不同设备类型,分别进行如下的具体处理:
如果转发设备为接入设备,且与故障链路对应的端口为该接入设备的上行端口,则在该接入设备的路由表中查找含有该上行端口的上行路由表项,并将查找到的上行路由表项中的上行端口替换为其它上行端口。此处,将查找到的上行路由表项中的上行端口替换为其它上行端口,可以是将查找到的上行路由表项中的上行端口替换为其它上行端口中cost(开销)值最小的上行端口。端口的cost值一般由端口带宽、传输速率等参数决定。
例如,在图6中,10.1.1.1的接入设备向控制器发送故障通知,且出现故障的链路是其与10.1.7.1的汇聚设备之间的链路,相应的故障链路对应的端口的顺序号为48(这里以端口顺序号作为端口的标识,在实际应用中还可以采用端口的物理地址),这时,可以在端口48之外的上行端口(即端口49、端口50、端口51)中,选择cost值最小的端口,如端口50,并将路由表的端口项中的端口48替换为端口50。
如果转发设备为汇聚设备,且与故障链路对应的端口为该汇聚设备的上行端口,则在该汇聚设备的路由表中查找含有该上行端口的上行路由表项,并将查找到的上行路由表项中的上行端口替换为其它上行端口。此处,将查找到的上行路由表项中的上行端口替换为其它上行端口,可以是将查找到的上行路由表项中的上行端口替换为其它上行端口中cost值最小的上行端口。
例如,在图6中,10.1.7.1的汇聚设备向控制器发送故障通知,且出现故障的链路是其与10.0.0.1的核心设备之间的链路,相应的故障链路对应的端口的顺序号为6,这时,可以在端口6之外的上行端口(即端口7、端口8、……端口13)中,选择cost值最小的端口,如端口7,并将路由表的端口项中的端口6替换为端口7。
如果转发设备为汇聚设备,且与故障链路对应的端口为该汇聚设备的下行端口,则:对于该汇聚设备连接的各接入设备,在其路由表中查找对应该汇聚设备的上行路由表项,并将查找到的上行路由表项中的上行端口替换为其它上行端口;查找路由表中有对应该汇聚设备的下行路由表项的核心设备,对于该汇聚设备所在POD外的其他POD中的各汇聚设备,在其路由表中查找对应所述查找到的核心设备的上行路由表项,并将查找到的上行路由表项中的上行端口替换为其它上行端口。此处,将查找到的上行路由表项中的上行端口替换为其它上行端口,可以是将查找到的上行路由表项中的上行端口替换为其它上行端口中cost值最小的上行端口。
例如,在图6中,10.1.7.1的汇聚设备向控制器发送故障通知,且出现故障的链路是其与10.1.1.1的接入设备之间的链路,这时:对于该汇聚设备连接的各接入设备10.1.1.1、10.1.2.1、……10.1.6.1,这些接入设备连接该汇聚设备的端口的顺序号为48,可以在端口48之外的上行端口(即端口49、端口50、端口51)中,选择cost值最小的端口,如端口50,并将路由表的端口项中的端口48替换为端口50;获取10.1.7.1的16位正掩码10.1.0.0/16,查找路由表中有10.1.0.0/16项的核心设备,即10.0.0.1和10.0.0.5的核心设备,对于POD2-15中的各汇聚设备,这些汇聚设备连接10.0.0.1和10.0.0.5的核心设备的端口的顺序号分别为6和10,可以在端口6、端口10之外的上行端口(即端口7、端口8、端口9、端口11、端口12、端口13)中,选择cost值最小的两个端口,如端口8、端口11,并将路由表的端口项中的端口6替换为端口8,端口10替换为端口11。
如果转发设备为核心设备,且该核心设备的下行路由表项中含有与故障链路对应的端口(对于下行路由表项中不含有与故障链路对应的端口的情况,可以不做处理,因为这样的故障并不会影响报文的转发),则对于故障链路连接的POD之外的其它POD中的各汇聚设备,在其路由表中查找对应该核心设备的上行路由表项,并将查找到的上行路由表项中的上行端口替换为其它上行端口。此处,将查找到的上行路由表项中的上行端口替换为其它上行端口,可以是将查找到的上行路由表项中的上行端口替换为其它上行端口中cost值最小的上行端口。
例如,在图6中,10.0.0.1的核心设备向控制器发送故障通知,且出现故障的链路是其与10.1.7.1的汇聚设备之间的链路,相应的故障链路对应的端口的顺序号为0,且该核心设备的路由表中含有端口1,这时,对于POD2-15中的汇聚设备,这些汇聚设备连接10.0.0.1的核心设备的端口的顺序号分别为6,可以在端口6之外的上行端口(即端口7、端口8、……端口13)中,选择cost值最小的端口,如端口7,并将路由表的端口项中的端口6替换为端口7。
另外,如果该故障处理过程由控制器完成,在上述对路由表的修改过程结束后,控制器可以将修改后的路由表下发给相应的转发设备。
无论是链路故障还是设备故障,都可以按照以上方法处理,因为,链路故障时,链路两端的转发设备都会向控制器发送故障通知,转发设备故障时,其相邻的转发设备都会向控制器发送故障通知,这时,控制器只需要针对每个故障通知,按照上述的方法进行故障处理即可。对于转发设备故障的情况,在进行路由表修改时,无法找到可替换的端口,则可以将相应的表项设置为空。
在故障恢复后,当控制器接收到转发设备发送的与故障通知对应的故障恢复通知时,控制器可以将接收到此故障通知时进行修改的各路由表项恢复为修改前的数值。进一步的,还可以将进行恢复的路由表下发给相应的转发设备。对于转发设备故障恢复的情况,相当于重新为该转发设备生成路由表并下发。
具体的,转发设备在发现其连接的链路出现故障时,记录了其连接该故障链路的端口的标识,在该故障恢复后,该转发设备会向控制器发送故障恢复通知,故障恢复通知中也可以携带该端口的标识。对于控制器,可以对接收到故障通知后进行的故障处理进行记录,记录修改的路由表项在修改前的数值,在进行故障恢复处理时,可以根据这些记录将相应的路由表项恢复为修改前的数值;另外,控制器也可以在接收到故障恢复通知后,按照上述路由表的生成方法重新生成修改过的路由表项。
本发明实施例中,基于胖树拓扑网络的结构特点,根据各设备的设备类型和连接关系,针对目标转发设备的上行相邻设备和下行相邻设备,生成上行路由表项和下行路由表项,构成目标转发设备的路由表,从而,无需对网络中的所有转发设备都生成相应的表项,减少胖树拓扑网络中设备路由表表项的数目,缩短了网络的收敛时间。而且,基于上述路由表建立的方法,可以有效的实现各转发设备之间的负载均衡。
参见图9,基于相同的技术构思,本发明实施例还提供了一种建立路由表的装置900,应用于胖树拓扑网络,该装置可以由控制器来实现,该装置包括:
获取单元910,用于获取所述胖树拓扑网络中各设备的设备类型和各设备之间的连接关系;
确定单元920,用于根据所述各设备的设备类型和各设备之间的连接关系,确定目标转发设备的上行相邻设备和下行相邻设备;
生成单元930,用于生成所述目标转发设备到所述上行相邻设备的上行路由表项,以及所述目标转发设备到所述下行相邻设备的下行路由表项,所述上行路由表项和下行路由表项构成所述目标转发设备的路由表。
优选的,还包括编址单元,用于根据所述各设备的设备类型和各设备之间的连接关系,为各设备设置互联网协议IP地址;
所述生成单元930,具体用于根据所述下行相邻设备的IP地址,生成所述目标转发设备到所述下行相邻设备的下行路由表项。
优选的,所述胖树拓扑网络具体为二级胖树网络或三级胖树网络,且在所述胖树拓扑网络中,各接入设备连接主机设备的数目相同;
所述生成单元930,具体用于:根据所述上行相邻设备的数目和每个接入设备连接主机设备的数目,将每个接入设备连接的各主机设备分组与连接各上行相邻设备的端口对应,生成所述目标转发设备到所述上行相邻设备的上行路由表项。
优选的,所述胖树拓扑网络具体为二级胖树网络或三级胖树网络,且在所述胖树拓扑网络中,各接入设备连接主机设备的数目相同;
所述生成单元930,具体用于:根据所述上行相邻设备的数目和每个接入设备连接主机设备的数目,将每个接入设备连接的各主机设备以轮询的方式与连接各上行相邻设备的端口对应,生成所述目标转发设备到所述上行相邻设备的上行路由表项。
优选的,所述胖树拓扑网络具体为二级胖树网络或三级胖树网络,所述二级胖树网络中的设备包括核心设备、接入设备和主机设备,所述三级胖树网络中的设备包括核心设备、汇聚设备、接入设备和主机设备;
所述编址单元,具体用于设置:
在所述三级胖树网络中:
第一核心设备的IP地址为x.0.0.ida,其中,x为预设整数,ida为所述第一核心设备的顺序编号,是从1开始的整数;
第一汇聚设备和第一接入设备的IP地址为x.pod.switch.1,其中,pod为各性能优化数据中心POD顺序编号,是从1开始的整数,switch为POD中所述第一汇聚设备和所述第一接入设备统一的顺序编号,所述POD中的接入设备顺序编号在前,汇聚设备顺序编号在后,是从1开始的整数;
第一主机设备的IP地址为x.pod.switch.idb,其中,switch为所述第一主机设备连接的接入设备的顺序编号,pod为所述第一主机设备连接的接入设备所在的POD的顺序编号,idb为所述第一主机设备的顺序编号,是从2开始的整数;
在所述二级胖树网络中:
第一核心设备的IP地址为x.0.0.ida,其中,x为预设整数,ida为所述第一核心设备的顺序编号,是从1开始的整数;
第一接入设备的IP地址为x.pod.1.1,其中,pod为各POD顺序编号,是从1开始的整数;
第一主机设备的IP地址为x.pod.1.idb,其中,pod为所述第一主机设备连接的接入设备所在的POD的顺序编号,idb为所述第一主机设备的顺序编号,是从2开始的整数;
其中,所述第一核心设备为所述二级胖树网络或三级胖树网络中核心设备中的任意核心设备,所述第一汇聚设备为所述三级胖树网络中汇聚设备中的任意汇聚设备,所述第一接入设备所述二级胖树网络或三级胖树网络中核心设备中的任意接入设备,所述第一主机设备为所述二级胖树网络或三级胖树网络中核心设备中的任意主机设备。
优选的,对于所述目标转发设备为核心设备,所述下行相邻设备为汇聚设备的情况,所述生成单元930,具体用于:
对每个POD,生成所述核心设备到所述POD中的一个汇聚设备的下行路由表项。
优选的,还包括故障处理单元,用于:
当接收到所述转发设备发送的故障通知时,根据所述故障通知,确定所述转发设备的设备类型,以及所述转发设备上与故障链路对应的端口;
如果所述转发设备为接入设备,且所述与故障链路对应的端口为所述接入设备的上行端口,则在所述接入设备的路由表中查找含有所述上行端口的上行路由表项,并将查找到的上行路由表项中的上行端口替换为其它上行端口;
如果所述转发设备为汇聚设备,且所述与故障链路对应的端口为所述汇聚设备的上行端口,则在所述汇聚设备的路由表中查找含有所述上行端口的上行路由表项,并将查找到的上行路由表项中的上行端口替换为其它上行端口;
如果所述转发设备为汇聚设备,且所述与故障链路对应的端口为所述汇聚设备的下行端口,则:对于所述汇聚设备连接的各接入设备,在其路由表中查找对应所述汇聚设备的上行路由表项,并将查找到的上行路由表项中的上行端口替换为其它上行端口;查找路由表中有对应所述汇聚设备的下行路由表项的核心设备,对于所述汇聚设备所在POD外的其他POD中的各汇聚设备,在其路由表中查找对应所述查找到的核心设备的上行路由表项,并将查找到的上行路由表项中的上行端口替换为其它上行端口;
如果所述转发设备为核心设备,且所述核心设备的下行路由表项中含有所述与故障链路对应的端口,则对于所述故障链路连接的POD之外的其它POD中的各汇聚设备,在其路由表中查找对应所述核心设备的上行路由表项,并将查找到的上行路由表项中的上行端口替换为其它上行端口。
另外,本发明实施例还提供了一种转发设备1000,应用于胖树拓扑网络,参见图10,该转发设备1000包括:
接收单元1010,用于接收待转发的报文;
判断单元1020,用于判断对所述报文进行上行转发还是下行转发;如果进行上行转发,则根据所述上行路由表项对所述报文进行转发;如果进行下行转发,则根据所述下行路由表项对所述报文进行转发。
优选的,所述判断单元1020,具体用于:
根据所述报文的目的地址在所述下行路由表项中进行匹配查询,如果查询到匹配的表项,则根据所述匹配的表项对所述报文进行转发;
如果没有查询到匹配的表项,则在所述上行路由表项中,根据所述报文的目的地址,查询与所述报文的目标主机设备对应的上行路由表项,并根据该上行路由表项对所述报文进行转发。
优选的,所述判断单元1020,具体用于:
根据所述报文的目的地址在各下行路由表项的目的地址项中进行匹配查询,如果查询到匹配的目的地址项,则通过该匹配的目的地址项对应的端口对所述报文进行转发;
如果没有查询到匹配的目的地址项,则在所述上行路由表项中,将各目的地址项与所述报文的目的地址的8位反掩码进行比较,查找大于所述报文的目的地址的8位反掩码且与所述报文的目的地址的8位反掩码相差最小的目的地址项,并通过查找到的目的地址项对应的端口对所述报文进行转发。
优选的,所述判断单元1020,具体用于:
根据所述报文的目的地址在各下行路由表项的目的地址项中进行匹配查询,如果查询到匹配的目的地址项,则通过该匹配的目的地址项对应的端口对所述报文进行转发;
如果没有查询到匹配的目的地址项,则根据所述报文的目的地址在各上行路由表项的目的地址项中进行匹配查询,如果查询到匹配的目的地址项,则通过该匹配的目的地址项对应的端口对所述报文进行转发。
本发明实施例中,基于胖树拓扑网络的结构特点,根据各设备的设备类型和连接关系,针对目标转发设备的上行相邻设备和下行相邻设备,生成上行路由表项和下行路由表项,构成目标转发设备的路由表,从而,无需对网络中的所有转发设备都生成相应的表项,减少胖树拓扑网络中设备路由表表项的数目,缩短了网络的收敛时间。
参见图11,基于相同的技术构思,本发明实施例还提供了一种建立路由表的装置1100,应用于胖树拓扑网络,该装置可以包括处理器1101和存储器1102。
所述处理器1101,用于获取所述胖树拓扑网络中各设备的设备类型和各设备之间的连接关系;根据所述各设备的设备类型和各设备之间的连接关系,确定目标转发设备的上行相邻设备和下行相邻设备;生成所述目标转发设备到所述上行相邻设备的上行路由表项,以及所述目标转发设备到所述下行相邻设备的下行路由表项,所述上行路由表项和下行路由表项构成所述目标转发设备的路由表。处理器1101用于执行上述实施例中的建立路由表的方法,具体的执行过程可以参照上述实施例中的描述。
所述存储器1102,用于存储所述上行路由表项、所述下行路由表项和所述目标转发设备的路由表。
参见图12,基于相同的技术构思,本发明实施例还提供了一种转发设备1200,应用于胖树拓扑网络,该转发设备1200包括处理器1201和存储器1202。
所述处理器1201,用于接收待转发的报文;判断对所述报文进行上行转发还是下行转发;如果进行上行转发,则根据所述上行路由表项对所述报文进行转发;如果进行下行转发,则根据所述下行路由表项对所述报文进行转发。处理器1201用于执行上述实施例中的路由转发方法,具体的执行过程可以参照上述实施例中的描述。
所述存储器1202,用于存储上行路由表项和下行路由表项构成的路由表。
本发明实施例中,基于胖树拓扑网络的结构特点,根据各设备的设备类型和连接关系,针对目标转发设备的上行相邻设备和下行相邻设备,生成上行路由表项和下行路由表项,构成目标转发设备的路由表,从而,无需对网络中的所有转发设备都生成相应的表项,减少胖树拓扑网络中设备路由表表项的数目,缩短了网络的收敛时间。
需要说明的是:上述实施例提供的建立路由表的装置在建立路由表时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的建立路由表的装置和建立路由表的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质可以是下述介质中的至少一种:只读存储器(Read-OnlyMemory,简称为ROM)、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以示例性说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明及本发明带来的有益效果进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明权利要求的范围。
Claims (27)
1.一种建立路由表的方法,其特征在于,所述方法适用于胖树拓扑网络,所述方法包括:
获取所述胖树拓扑网络中各设备的设备类型和各设备之间的连接关系;
根据所述各设备的设备类型和各设备之间的连接关系,确定目标转发设备的上行相邻设备和下行相邻设备;
生成所述目标转发设备到所述上行相邻设备的上行路由表项,以及所述目标转发设备到所述下行相邻设备的下行路由表项,所述上行路由表项和下行路由表项构成所述目标转发设备的路由表。
2.根据权利要求1所述的方法,其特征在于,所述获取所述胖树拓扑网络中各设备的设备类型和各设备之间的连接关系之后,还包括:根据所述各设备的设备类型和各设备之间的连接关系,为各设备设置互联网协议IP地址;
所述生成所述目标转发设备到所述下行相邻设备的下行路由表项,具体为:根据所述下行相邻设备的IP地址,生成所述目标转发设备到所述下行相邻设备的下行路由表项。
3.根据权利要求1或2所述的方法,其特征在于,所述胖树拓扑网络具体为二级胖树网络或三级胖树网络,且在所述胖树拓扑网络中,各接入设备连接的主机设备的数目相同;
所述生成所述目标转发设备到所述上行相邻设备的上行路由表项,具体为:根据所述上行相邻设备的数目和每个接入设备连接主机设备的数目,将每个接入设备连接的各主机设备分组与连接各上行相邻设备的端口对应,生成所述目标转发设备到所述上行相邻设备的上行路由表项。
4.根据权利要求1或2所述的方法,其特征在于,所述胖树拓扑网络具体为二级胖树网络或三级胖树网络,且在所述胖树拓扑网络中,各接入设备连接主机设备的数目相同;
所述生成所述目标转发设备到所述上行相邻设备的上行路由表项,具体为:根据所述上行相邻设备的数目和每个接入设备连接主机设备的数目,将每个接入设备连接的各主机设备以轮询的方式与连接各上行相邻设备的端口对应,生成所述目标转发设备到所述上行相邻设备的上行路由表项。
5.根据权利要求2所述的方法,其特征在于,所述胖树拓扑网络具体为二级胖树网络或三级胖树网络,所述二级胖树网络中的设备包括核心设备、接入设备和主机设备,所述三级胖树网络中的设备包括核心设备、汇聚设备、接入设备和主机设备,其中,
在所述三级胖树网络中:
第一核心设备的IP地址为x.0.0.ida,其中,x为预设整数,ida为所述第一核心设备的顺序编号,是从1开始的整数;
第一汇聚设备和第一接入设备的IP地址为x.pod.switch.1,其中,pod为各性能优化数据中心POD顺序编号,是从1开始的整数,switch为POD中所述第一汇聚设备和所述第一接入设备统一的顺序编号,所述POD中的接入设备顺序编号在前,汇聚设备顺序编号在后,是从1开始的整数;
第一主机设备的IP地址为x.pod.switch.idb,其中,switch为所述第一主机设备连接的接入设备的顺序编号,pod为所述第一主机设备连接的接入设备所在的POD的顺序编号,idb为所述第一主机设备的顺序编号,是从2开始的整数;
在所述二级胖树网络中:
第一核心设备的IP地址为x.0.0.ida,其中,x为预设整数,ida为所述第一核心设备的顺序编号,是从1开始的整数;
第一接入设备的IP地址为x.pod.1.1,其中,pod为各POD顺序编号,是从1开始的整数;
第一主机设备的IP地址为x.pod.1.idb,其中,pod为所述第一主机设备连接的接入设备所在的POD的顺序编号,idb为所述第一主机设备的顺序编号,是从2开始的整数;
其中,所述第一核心设备为所述二级胖树网络或三级胖树网络中核心设备中的任意核心设备,所述第一汇聚设备为所述三级胖树网络中汇聚设备中的任意汇聚设备,所述第一接入设备所述二级胖树网络或三级胖树网络中核心设备中的任意接入设备,所述第一主机设备为所述二级胖树网络或三级胖树网络中核心设备中的任意主机设备。
6.根据权利要求5所述的方法,其特征在于,所述胖树拓扑网络具体为二级胖树网络,且在所述二级胖树网络中,各接入设备连接主机设备的数目相同;
当所述目标转发设备为核心设备时,所述下行路由表项具体为:目的地址项为x.pod.0.0/16,其中,pod为所述核心设备连接的各接入设备的pod,掩码为正掩码,目的地址项对应的端口为连接相应接入设备的端口;
当所述目标转发设备为接入设备时,所述下行路由表项具体为:目的地址项为x.pod.switch.idb/32,其中,pod、switch、idb为所述接入设备连接的各主机设备的pod、switch、idb,掩码为正掩码,目的地址项对应的端口为连接相应主机设备的端口;
当所述目标转发设备为接入设备时,所述上行路由表项具体为:对于c能整除h的情况,目的地址项为0.0.0.((h/c)*i+2)/8,目的地址项对应的端口为连接ida值为i的核心设备的端口;对于c不能整除h的情况,0.0.0.([h/c+1]*i+2)/8,目的地址项对应的端口为连接ida值为i的核心设备的端口;其中,c为核心设备数目,h为每个接入设备连接主机设备的数目,i为整数且i=1,…,c,[]为取整运算符,掩码为反掩码。
7.根据权利要求5所述的方法,其特征在于,所述胖树拓扑网络具体为二级胖树网络,且在所述二级胖树网络中,各接入设备连接主机设备的数目相同;
当所述目标转发设备为核心设备时,所述下行路由表项具体为:目的地址项为x.pod.0.0/16,其中,pod为所述核心设备连接的各接入设备的pod,掩码为正掩码,目的地址项对应的端口为连接相应接入设备的端口;
当所述目标转发设备为接入设备时,所述下行路由表项具体为:目的地址项为x.pod.switch.idb/32,其中,pod、switch、idb为所述接入设备连接的各主机设备的pod、switch、idb,掩码为正掩码,目的地址项对应的端口为连接相应主机设备的端口;
当所述目标转发设备为接入设备时,所述上行路由表项具体为:目的地址项为0.0.0.idb/8,目的地址项对应的端口为连接ida值为(idb-2)%c+1的核心设备的端口;其中,idb为每个接入设备连接的主机设备的idb,c为核心设备数目,%为求余运算符,掩码为反掩码。
8.根据权利要求5所述的方法,其特征在于,所述胖树拓扑网络具体为三级胖树网络,且在所述三级胖树网络中,各接入设备连接主机设备的数目相同;
当所述目标转发设备为核心设备时,所述下行路由表项具体为:目的地址项为x.pod.0.0/16,目的地址项对应的端口为连接相应的POD中第(ida-1)%apod+1个汇聚设备的端口,其中,pod为所述核心设备连接的各POD的顺序编号,掩码为正掩码,ida为所述核心设备的ida,%为求余运算符,apod为相应POD中汇聚设备的数目;
当所述目标转发设备为汇聚设备时,所述下行路由表项具体为:目的地址项为x.pod.switch.0/24,其中,pod、switch为所述汇聚设备连接的各接入设备的pod、switch,掩码为正掩码,目的地址项对应的端口为连接相应接入设备的端口;
当所述目标转发设备为汇聚设备时,所述上行路由表项具体为:对于c能整除h的情况,目的地址项为0.0.0.((h/c)*i+2)/8,目的地址项对应的端口为连接ida值为i的核心设备的端口;对于c不能整除h的情况,0.0.0.([h/c+1]*i+2)/8,目的地址项对应的端口为连接ida值为i的核心设备的端口;其中,c为核心设备数目,h为每个接入设备连接主机设备的数目,i为整数且i=1,…,c,[]为取整运算符,掩码为反掩码;
当所述目标转发设备为接入设备时,所述下行路由表项具体为:目的地址项为x.pod.switch.idb/32,其中,pod、switch、idb为所述接入设备连接的各主机设备的pod、switch、idb,掩码为正掩码,目的地址项对应的端口为连接相应主机设备的端口;
当所述目标转发设备为接入设备时,所述上行路由表项具体为:对于apod能整除h的情况,目的地址项为0.0.0.((h/apod)*i+2)/8,目的地址项对应的端口为所述接入设备连接其所在POD中第i个汇聚设备的端口;对于apod不能整除h的情况,0.0.0.([h/apod+1]*i+2)/8,目的地址项对应的端口为连接所述接入设备所在POD中第i个汇聚设备的端口;其中,apod为所述接入设备的POD中的汇聚设备数目,h为每个接入设备连接主机设备的数目,i为整数且i=1,…,apod,[]为取整运算符,掩码为反掩码。
9.根据权利要求5所述的方法,其特征在于,所述胖树拓扑网络具体为三级胖树网络,且在所述三级胖树网络中,各接入设备连接主机设备的数目相同;
当所述目标转发设备为核心设备时,所述下行路由表项具体为:目的地址项为x.pod.0.0/16,目的地址项对应的端口为连接相应的POD中第(ida-1)%apod+1个汇聚设备的端口,其中,pod为所述核心设备连接的各POD的顺序编号,掩码为正掩码,ida为所述核心设备的ida,%为求余运算符,apod为相应POD中汇聚设备的数目;
当所述目标转发设备为汇聚设备时,所述下行路由表项具体为:目的地址项为x.pod.switch.0/24,其中,pod、switch为所述汇聚设备连接的各接入设备的pod、switch,掩码为正掩码,目的地址项对应的端口为连接相应接入设备的端口;
当所述目标转发设备为汇聚设备时,所述上行路由表项具体为:目的地址项为0.0.0.idb/8,目的地址项对应的端口为连接ida值为(idb-2)%c+1的核心设备的端口;其中,idb为每个接入设备所连接的主机设备的idb,c为核心设备数目,%为求余运算符,掩码为反掩码;
当所述目标转发设备为接入设备时,所述下行路由表项具体为:目的地址项为x.pod.switch.idb/32,其中,pod、switch、idb为所述接入设备连接的各主机设备的pod、switch、idb,掩码为正掩码,目的地址项对应的端口为连接相应主机设备的端口;
当所述目标转发设备为接入设备时,所述上行路由表项具体为:目的地址项为0.0.0.idb/8,目的地址项对应的端口为所述接入设备连接其所在POD中第(idb-2)%apod+1个汇聚设备的端口;其中,idb为每个接入设备连接的主机设备的idb,apod为所述接入设备的POD中的汇聚设备数目,%为求余运算符,掩码为反掩码。
10.根据权利要求1所述的方法,其特征在于,对于所述目标转发设备为核心设备,所述下行相邻设备为汇聚设备的情况,生成所述目标转发设备到所述下行相邻设备的下行路由表项,具体为:对每个POD,生成所述核心设备到所述POD中的一个汇聚设备的下行路由表项。
11.根据权利要求10所述的方法,其特征在于,当接收到所述转发设备发送的故障通知时,还包括:
根据所述故障通知,确定所述转发设备的设备类型,以及所述转发设备上与故障链路对应的端口;
如果所述转发设备为接入设备,且所述与故障链路对应的端口为所述接入设备的上行端口,则在所述接入设备的路由表中查找含有所述上行端口的上行路由表项,并将查找到的上行路由表项中的上行端口替换为其它上行端口;
如果所述转发设备为汇聚设备,且所述与故障链路对应的端口为所述汇聚设备的上行端口,则在所述汇聚设备的路由表中查找含有所述上行端口的上行路由表项,并将查找到的上行路由表项中的上行端口替换为其它上行端口;
如果所述转发设备为汇聚设备,且所述与故障链路对应的端口为所述汇聚设备的下行端口,则:对于所述汇聚设备连接的各接入设备,在其路由表中查找对应所述汇聚设备的上行路由表项,并将查找到的上行路由表项中的上行端口替换为其它上行端口;查找路由表中有对应所述汇聚设备的下行路由表项的核心设备,对于所述汇聚设备所在POD外的其他POD中的各汇聚设备,在其路由表中查找对应所述查找到的核心设备的上行路由表项,并将查找到的上行路由表项中的上行端口替换为其它上行端口;
如果所述转发设备为核心设备,且所述核心设备的下行路由表项中含有所述与故障链路对应的端口,则对于所述故障链路连接的POD之外的其它POD中的各汇聚设备,在其路由表中查找对应所述核心设备的上行路由表项,并将查找到的上行路由表项中的上行端口替换为其它上行端口。
12.根据权利要求1所述的方法,其特征在于,所述路由表具体为由主表和子表组成的二级表,主表具体为所述下行路由表项组成的下行表,子表具体为所述上行路由表项组成的上行表。
13.一种路由转发方法,其特征在于,所述方法适用于胖树拓扑网络,所述方法包括:
获取所述胖树拓扑网络中各设备的设备类型和各设备之间的连接关系;
根据所述各设备的设备类型和各设备之间的连接关系,确定目标转发设备的上行相邻设备和下行相邻设备;
生成所述目标转发设备到所述上行相邻设备的上行路由表项,以及所述目标转发设备到所述下行相邻设备的下行路由表项,所述上行路由表项和下行路由表项构成所述目标转发设备的路由表;
接收待转发的报文;
判断对所述报文进行上行转发还是下行转发;
如果进行上行转发,则根据所述上行路由表项对所述报文进行转发;
如果进行下行转发,则根据所述下行路由表项对所述报文进行转发。
14.根据权利要求13所述的方法,其特征在于,所述判断对所述报文进行上行转发还是下行转发,如果进行上行转发,则根据所述上行路由表项对所述报文进行转发,如果进行下行转发,则根据所述下行路由表项对所述报文进行转发,具体为:
根据所述报文的目的地址在所述下行路由表项中进行匹配查询,如果查询到匹配的表项,则根据所述匹配的表项对所述报文进行转发;
如果没有查询到匹配的表项,则在所述上行路由表项中,根据所述报文的目的地址,查询与所述报文的目标主机设备对应的上行路由表项,并根据所述上行路由表项对所述报文进行转发。
15.根据权利要求14所述的方法,其特征在于,所述根据所述报文的目的地址在所述下行路由表项中进行匹配查询,如果查询到匹配的表项,则根据所述匹配的表项对所述报文进行转发,具体为:
根据所述报文的目的地址在各下行路由表项的目的地址项中进行匹配查询,如果查询到匹配的目的地址项,则通过所述匹配的目的地址项对应的端口对所述报文进行转发;
所述如果没有查询到匹配的表项,则在所述上行路由表项中,根据所述报文的目的地址,查询与所述报文的目标主机设备对应的上行路由表项,并根据所述上行路由表项对所述报文进行转发,具体为:
如果没有查询到匹配的目的地址项,则在所述上行路由表项中,将各目的地址项与所述报文的目的地址的8位反掩码进行比较,查找大于所述报文的目的地址的8位反掩码且与所述报文的目的地址的8位反掩码相差最小的目的地址项,并通过查找到的目的地址项对应的端口对所述报文进行转发。
16.根据权利要求14所述的方法,其特征在于,所述根据所述报文的目的地址在所述下行路由表项中进行匹配查询,如果查询到匹配的表项,则根据所述匹配的表项对所述报文进行转发,具体为:
根据所述报文的目的地址在各下行路由表项的目的地址项中进行匹配查询,如果查询到匹配的目的地址项,则通过所述匹配的目的地址项对应的端口对所述报文进行转发;
所述如果没有查询到匹配的表项,则在所述上行路由表项中,根据所述报文的目的地址,查询与所述报文的目标主机设备对应的上行路由表项,并根据所述上行路由表项对所述报文进行转发,具体为:
如果没有查询到匹配的目的地址项,则根据所述报文的目的地址在各上行路由表项的目的地址项中进行匹配查询,如果查询到匹配的目的地址项,则通过所述匹配的目的地址项对应的端口对所述报文进行转发。
17.一种建立路由表的装置,其特征在于,所述装置适用于胖树拓扑网络,所述装置包括:
获取单元,用于获取所述胖树拓扑网络中各设备的设备类型和各设备之间的连接关系;
确定单元,用于根据所述各设备的设备类型和各设备之间的连接关系,确定目标转发设备的上行相邻设备和下行相邻设备;
生成单元,用于生成所述目标转发设备到所述上行相邻设备的上行路由表项,以及所述目标转发设备到所述下行相邻设备的下行路由表项,所述上行路由表项和下行路由表项构成所述目标转发设备的路由表。
18.根据权利要求17所述的装置,其特征在于,还包括编址单元,用于根据所述各设备的设备类型和各设备之间的连接关系,为各设备设置互联网协议IP地址;
所述生成单元,具体用于根据所述下行相邻设备的IP地址,生成所述目标转发设备到所述下行相邻设备的下行路由表项。
19.根据权利要求17或18所述的装置,其特征在于,所述胖树拓扑网络具体为二级胖树网络或三级胖树网络,且在所述胖树拓扑网络中,各接入设备连接主机设备的数目相同;
所述生成单元,具体用于:根据所述上行相邻设备的数目和每个接入设备连接主机设备的数目,将每个接入设备连接的各主机设备分组与连接各上行相邻设备的端口对应,生成所述目标转发设备到所述上行相邻设备的上行路由表项。
20.根据权利要求17或18所述的装置,其特征在于,所述胖树拓扑网络具体为二级胖树网络或三级胖树网络,且在所述胖树拓扑网络中,各接入设备连接主机设备的数目相同;
所述生成单元,具体用于:根据所述上行相邻设备的数目和每个接入设备连接主机设备的数目,将每个接入设备连接的各主机设备以轮询的方式与连接各上行相邻设备的端口对应,生成所述目标转发设备到所述上行相邻设备的上行路由表项。
21.根据权利要求18所述的装置,其特征在于,所述胖树拓扑网络具体为二级胖树网络或三级胖树网络,所述二级胖树网络中的设备包括核心设备、接入设备和主机设备,所述三级胖树网络中的设备包括核心设备、汇聚设备、接入设备和主机设备;
所述编址单元,具体用于设置:
在所述三级胖树网络中:
第一核心设备的IP地址为x.0.0.ida,其中,x为预设整数,ida为所述第一核心设备的顺序编号,是从1开始的整数;
第一汇聚设备和第一接入设备的IP地址为x.pod.switch.1,其中,pod为各性能优化数据中心POD顺序编号,是从1开始的整数,switch为POD中所述第一汇聚设备和所述第一接入设备统一的顺序编号,所述POD中的接入设备顺序编号在前,汇聚设备顺序编号在后,是从1开始的整数;
第一主机设备的IP地址为x.pod.switch.idb,其中,switch为所述第一主机设备连接的接入设备的顺序编号,pod为所述第一主机设备连接的接入设备所在的POD的顺序编号,idb为所述第一主机设备的顺序编号,是从2开始的整数;
在所述二级胖树网络中:
第一核心设备的IP地址为x.0.0.ida,其中,x为预设整数,ida为所述第一核心设备的顺序编号,是从1开始的整数;
第一接入设备的IP地址为x.pod.1.1,其中,pod为各POD顺序编号,是从1开始的整数;
第一主机设备的IP地址为x.pod.1.idb,其中,pod为所述第一主机设备连接的接入设备所在的POD的顺序编号,idb为所述第一主机设备的顺序编号,是从2开始的整数;
其中,所述第一核心设备为所述二级胖树网络或三级胖树网络中核心设备中的任意核心设备,所述第一汇聚设备为所述三级胖树网络中汇聚设备中的任意汇聚设备,所述第一接入设备所述二级胖树网络或三级胖树网络中核心设备中的任意接入设备,所述第一主机设备为所述二级胖树网络或三级胖树网络中核心设备中的任意主机设备。
22.根据权利要求17所述的装置,其特征在于,对于所述目标转发设备为核心设备,所述下行相邻设备为汇聚设备的情况,所述生成单元,具体用于:
对每个POD,生成所述核心设备到所述POD中的一个汇聚设备的下行路由表项。
23.根据权利要求22所述的装置,其特征在于,还包括故障处理单元,用于:
当接收到所述转发设备发送的故障通知时,根据所述故障通知,确定所述转发设备的设备类型,以及所述转发设备上与故障链路对应的端口;
如果所述转发设备为接入设备,且所述与故障链路对应的端口为所述接入设备的上行端口,则在所述接入设备的路由表中查找含有所述上行端口的上行路由表项,并将查找到的上行路由表项中的上行端口替换为其它上行端口;
如果所述转发设备为汇聚设备,且所述与故障链路对应的端口为所述汇聚设备的上行端口,则在所述汇聚设备的路由表中查找含有所述上行端口的上行路由表项,并将查找到的上行路由表项中的上行端口替换为其它上行端口;
如果所述转发设备为汇聚设备,且所述与故障链路对应的端口为所述汇聚设备的下行端口,则:对于所述汇聚设备连接的各接入设备,在其路由表中查找对应所述汇聚设备的上行路由表项,并将查找到的上行路由表项中的上行端口替换为其它上行端口;查找路由表中有对应所述汇聚设备的下行路由表项的核心设备,对于所述汇聚设备所在POD外的其他POD中的各汇聚设备,在其路由表中查找对应所述查找到的核心设备的上行路由表项,并将查找到的上行路由表项中的上行端口替换为其它上行端口;
如果所述转发设备为核心设备,且所述核心设备的下行路由表项中含有所述与故障链路对应的端口,则对于所述故障链路连接的POD之外的其它POD中的各汇聚设备,在其路由表中查找对应所述核心设备的上行路由表项,并将查找到的上行路由表项中的上行端口替换为其它上行端口。
24.一种转发设备,其特征在于,所述转发设备适用于胖树拓扑网络,所述转发设备包括:
获取单元,用于获取所述胖树拓扑网络中各设备的设备类型和各设备之间的连接关系;
确定单元,用于根据所述各设备的设备类型和各设备之间的连接关系,确定目标转发设备的上行相邻设备和下行相邻设备;
生成单元,用于生成所述目标转发设备到所述上行相邻设备的上行路由表项,以及所述目标转发设备到所述下行相邻设备的下行路由表项,所述上行路由表项和下行路由表项构成所述目标转发设备的路由表;
接收单元,用于接收待转发的报文;
判断单元,用于判断对所述报文进行上行转发还是下行转发;如果进行上行转发,则根据所述上行路由表项对所述报文进行转发;如果进行下行转发,则根据所述下行路由表项对所述报文进行转发。
25.根据权利要求24所述的转发设备,其特征在于,所述判断单元,具体用于:
根据所述报文的目的地址在所述下行路由表项中进行匹配查询,如果查询到匹配的表项,则根据所述匹配的表项对所述报文进行转发;
如果没有查询到匹配的表项,则在所述上行路由表项中,根据所述报文的目的地址,查询与所述报文的目标主机设备对应的上行路由表项,并根据所述上行路由表项对所述报文进行转发。
26.根据权利要求25所述的转发设备,其特征在于,所述判断单元,具体用于:
根据所述报文的目的地址在各下行路由表项的目的地址项中进行匹配查询,如果查询到匹配的目的地址项,则通过所述匹配的目的地址项对应的端口对所述报文进行转发;
如果没有查询到匹配的目的地址项,则在所述上行路由表项中,将各目的地址项与所述报文的目的地址的8位反掩码进行比较,查找大于所述报文的目的地址的8位反掩码且与所述报文的目的地址的8位反掩码相差最小的目的地址项,并通过查找到的目的地址项对应的端口对所述报文进行转发。
27.根据权利要求25所述的转发设备,其特征在于,所述判断单元,具体用于:
根据所述报文的目的地址在各下行路由表项的目的地址项中进行匹配查询,如果查询到匹配的目的地址项,则通过所述匹配的目的地址项对应的端口对所述报文进行转发;
如果没有查询到匹配的目的地址项,则根据所述报文的目的地址在各上行路由表项的目的地址项中进行匹配查询,如果查询到匹配的目的地址项,则通过所述匹配的目的地址项对应的端口对所述报文进行转发。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210585501.1A CN103078798B (zh) | 2012-12-28 | 2012-12-28 | 一种建立路由表的方法和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210585501.1A CN103078798B (zh) | 2012-12-28 | 2012-12-28 | 一种建立路由表的方法和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103078798A CN103078798A (zh) | 2013-05-01 |
CN103078798B true CN103078798B (zh) | 2015-12-02 |
Family
ID=48155207
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210585501.1A Active CN103078798B (zh) | 2012-12-28 | 2012-12-28 | 一种建立路由表的方法和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103078798B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103298010B (zh) * | 2013-05-20 | 2016-03-09 | 华为技术有限公司 | 一种网络链路状况显示方法和装置 |
CN105337682B (zh) * | 2014-05-26 | 2018-10-12 | 联想(北京)有限公司 | 一种传输数据的方法及装置 |
CN105743789B (zh) * | 2014-12-08 | 2019-01-08 | 中国科学院声学研究所 | 一种树结构网络自治管理和节点加入方法 |
CN105610709B (zh) * | 2016-02-03 | 2018-09-11 | 西安电子科技大学 | 基于sdn的大流负载均衡***与方法 |
WO2017183100A1 (ja) * | 2016-04-19 | 2017-10-26 | 三菱電機株式会社 | 無線通信装置および無線通信方法 |
CN108377525B (zh) * | 2016-11-16 | 2020-09-04 | ***通信有限公司研究院 | 一种数据传输***、方法及装置 |
CN107147581B (zh) * | 2017-06-26 | 2020-09-08 | 杭州迪普科技股份有限公司 | 路由表项的维护方法和装置 |
CN108206782B (zh) * | 2017-11-22 | 2021-07-06 | 盛科网络(苏州)有限公司 | 报文转发方法、装置、芯片及服务器 |
CN111641560A (zh) * | 2019-03-01 | 2020-09-08 | 中兴通讯股份有限公司 | 网络逻辑分层方法、装置、网络设备及存储介质 |
CN111934921B (zh) * | 2020-07-29 | 2023-11-07 | 深信服科技股份有限公司 | 一种网络拓扑发现方法及装置、设备、存储介质 |
CN113391919B (zh) * | 2021-04-25 | 2023-06-06 | 中国空气动力研究与发展中心计算空气动力研究所 | 一种基于二维胖树网络的计算结点分配方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101083624A (zh) * | 2007-07-10 | 2007-12-05 | 北京航空航天大学 | 基于树形结构的路由方法 |
WO2010011221A1 (en) * | 2008-07-22 | 2010-01-28 | The Regents Of The University Of California | A scalable commodity data center network architecture |
CN101686188A (zh) * | 2008-09-27 | 2010-03-31 | 华为技术有限公司 | 层次化有序地址分组网络中建立路由表的方法、路由的方法及路由器 |
CN102164081A (zh) * | 2011-03-31 | 2011-08-24 | 华为技术有限公司 | 一种胖树拓扑的路由计算方法、节点设备和通信*** |
US8175107B1 (en) * | 2009-08-18 | 2012-05-08 | Hewlett-Packard Development Company, L.P. | Network routing based on MAC address subnetting |
-
2012
- 2012-12-28 CN CN201210585501.1A patent/CN103078798B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101083624A (zh) * | 2007-07-10 | 2007-12-05 | 北京航空航天大学 | 基于树形结构的路由方法 |
WO2010011221A1 (en) * | 2008-07-22 | 2010-01-28 | The Regents Of The University Of California | A scalable commodity data center network architecture |
CN101686188A (zh) * | 2008-09-27 | 2010-03-31 | 华为技术有限公司 | 层次化有序地址分组网络中建立路由表的方法、路由的方法及路由器 |
US8175107B1 (en) * | 2009-08-18 | 2012-05-08 | Hewlett-Packard Development Company, L.P. | Network routing based on MAC address subnetting |
CN102164081A (zh) * | 2011-03-31 | 2011-08-24 | 华为技术有限公司 | 一种胖树拓扑的路由计算方法、节点设备和通信*** |
Also Published As
Publication number | Publication date |
---|---|
CN103078798A (zh) | 2013-05-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103078798B (zh) | 一种建立路由表的方法和设备 | |
EP3082309B1 (en) | Sdn controller, data centre system and router connection method | |
CN100579072C (zh) | 一种在ip设备之间进行通信的方法和*** | |
CN105393511B (zh) | 一种交换机模式切换方法、设备及*** | |
CN103685009A (zh) | 数据包的处理方法、控制器及*** | |
CN105357046A (zh) | 一种用于软件定义网络sdn的网络信息探测的方法 | |
CN104283785A (zh) | 一种快速处理流表的方法和装置 | |
CN103166874A (zh) | 一种报文转发方法及设备 | |
US10911354B2 (en) | Packet processing method and system, and device | |
US9467374B2 (en) | Supporting multiple IEC-101/IEC-104 masters on an IEC-101/IEC-104 translation gateway | |
CN106209615B (zh) | 一种基于spfa算法计算转发路径的动态路由控制方法和*** | |
CN105791169A (zh) | 软件定义网络中交换机转发控制、转发方法及相关设备 | |
CN104980355A (zh) | 一种sdn环境下的源端可控组播数据传输方法及*** | |
CN105471747A (zh) | 一种智能路由器选路方法和装置 | |
CN108390821A (zh) | 一种openflow交换机实现双活的方法及*** | |
CN112187649A (zh) | 一种报文转发方法、报文处理方法及装置 | |
CN112653575A (zh) | 一种网络配置方法、控制器及流量引导*** | |
CN104247342A (zh) | 网络设备冗余化***、控制装置、网络设备冗余化方法及程序 | |
CN104980368A (zh) | 软件定义网络中的带宽保障方法及装置 | |
CN110855464A (zh) | 一种网络拓扑结构调整方法和装置 | |
CN105450447A (zh) | 一种网络***及网络运行方法 | |
CN107181681A (zh) | Sdn二层转发方法及*** | |
CN108989204B (zh) | 一种链路状态确定方法及设备 | |
US20150003291A1 (en) | Control apparatus, communication system, communication method, and program | |
JP5978384B2 (ja) | 情報を受信するための方法、情報を送信するための方法及びそれらの装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |