等价多路径表处理方法、装置及网络设备制造方法及图纸

技术编号:8657573 阅读:192 留言:0更新日期:2013-05-02 01:29
本发明专利技术提供一种等价多路径表处理方法、装置及网络设备。方法包括:确定ECMP表对应的下一跳中有下一跳被剔出,其中,ECMP表所包含的表项的总数大于ECMP表对应的下一跳的总数,ECMP表中的每个表项均填充有ECMP表对应的下一跳的索引;按照预设的填充策略,用ECMP表对应的下一跳中未被剔出的下一跳的索引,更新ECMP表中填充有被剔出的下一跳的索引的表项。采用本发明专利技术技术方案可以解决链路故障导致TCP传输路径变化的问题,提高CDN网络的可靠性。

【技术实现步骤摘要】

本专利技术涉及通信技术,尤其涉及一种等价多路径表处理方法、装置及网络设备
技术介绍
图1为现有内容分发网络(Content Delivery Network,简称为CDN)的一种拓扑结构示意图。如图1所示,⑶N中一些性能较好的服务器组成Linux虚拟服务器(LinuxVirtual Server,简称为LVS)集群,整个LVS集群对外以一个公网网际协议(InternetProtocol,简称为IP)地址呈现,LVS集群中的每个服务器都有自己的实际IP地址,LVS集群中的服务器可称为LVS服务器。对于图1所示的网络拓扑,通过路由协议的运算,可以得到LVS集群中每个LVS服务器都会构成一条到达LVS集群的公网IP地址的路径,所以在交换机上到达LVS集群的公网IP地址的路由是一条等价多路径(Equal-Cost MultipathRouting,简称为ECMP)路由。⑶N和LVS的工作原理为:当用户需要浏览某网站时,可以通过所使用的终端设备通过域名系统(Domain Name System,简称为DNS)服务器,将传输控制协议(TransmissionControl Protocol,简称为TCP)请求报文转发至⑶N节点KDN节点将TCP请求报文转发至CDN网络中的交换机,交换机根据TCP请求报文自身相关的特征,例如TCP请求报文的IP地址等,通过哈希(hash)运算从ECMP路由中选择一条路径进行转发,即TCP请求报文到达LVS集群中的某一 LVS服务器,该LVS服务器通过网络地址转换(Network AddressTranslation,简称为NAT)和⑶N网络中各服务器的实际负载情况,将TCP请求报文转发给CDN网络中可以处理该TCP请求报文的服务器,称为目标服务器;目标服务器在接收到TCP请求报文后,进行相关处理,将回应报文发送给对应的LVS服务器,由LVS服务器进行NAT,之后发送给用户的终端设备。在上述过程中,交换机通过哈希运算从ECMP路由中选择转发路径的方法比较简单,通常为采用循环冗余校验(Cyclical Redundancy Check,简称为CRC)来计算哈希值,然后将哈希值和ECMP表中存储的下一跳的索引的个数进行取模运算,得出数据流的实际出口 ;其中,ECMP表中存储的下一跳的索引的个数也就是ECMP路由对应的下一跳的个数。但是,由于服务器和交换机存在故障的可能,服务器可能宕机,服务器和交换机之间的物理链路可能损坏,所以当其中一条链路发生故障时,交换机需要将该条链路对应的下一跳剔出,即将ECMP表该条链路对应的下一跳的索引删除,这样ECMP表所存储的下一跳的索引的个数就会减少,交换机需要基于减少后的下一跳的索引的个数重新为各条数据流选择转发路径。其中,重新选择的转发路径可能与之前选择并使用的转发路径不同,这样对于那些通过未发生故障的链路进行传输的数据流,交换机会将该数据流转发给不同于之前的另一 LVS服务器,由于LVS服务器之间无法同步NAT信息,接收到该数据流的另一 LVS服务器会将该数据流视为一条新的TCP连接,但由于该数据流并非TCP请求报文,故会将该数据流丢弃,造成用户的连接中断,业务中断,降低了 CDN网络的可靠性。
技术实现思路
本专利技术提供一种等价多路径表处理方法、装置及网络设备,用以解决链路故障导致TCP传输路径变化的问题,提高CDN网络的可靠性。第一方面提供一种等价多路径ECMP表处理方法,包括:确定ECMP表对应的下一跳中有下一跳被剔出,其中,所述ECMP表所包含的表项的总数大于所述ECMP表对应的下一跳的总数,所述ECMP表中的每个表项均填充有所述ECMP表对应的下一跳的索引;按照预设的填充策略,用所述ECMP表对应的下一跳中未被剔出的下一跳的索引,更新所述ECMP表中填充有 所述被剔出的下一跳的索引的表项。第二方面提供一种等价多路径ECMP表处理装置,包括:第一确定模块,用于确定ECMP表对应的下一跳中有下一跳被剔出,其中,所述ECMP表所包含的表项的总数大于所述ECMP表对应的下一跳的总数,所述ECMP表中的每个表项均填充有所述ECMP表对应的下一跳的索引;第一更新模块,用于按照预设的填充策略,用所述ECMP表对应的下一跳中未被剔出的下一跳的索引,更新所述ECMP表中填充有所述被剔出的下一跳的索引的表项。第三方面提供一种网络设备,包括第二方面提供的任一等价多路径ECMP表处理>J-U ρ α装直。本专利技术提供的等价多路径表处理方法、装置及网络设备,通过对ECMP表进行扩展,使得ECMP表包含的表项的总数大于ECMP表对应的下一跳的总数,然后将ECMP表中的每个表项都填充上ECMP表对应的下一跳的索引,这样当确定ECMP表对应的下一跳中有下一跳被剔出时,例如可能是由于链路故障导致该链路对应的下一跳被剔出,则可以按照预设的填充策略,用ECMP表对应的下一跳中剩余的未被剔出的下一跳的索引更新ECMP表中填充有所述被剔出的下一跳的索引的各表项,从而,即使ECMP表对应的下一跳的总数减少了,但ECMP表包含的填充有下一跳索引的表项的总数不变进而保持ECMP表所存储的有效下一跳的索引总数不变,这样对于那些通过未发生故障的链路进行传输的数据流,在通过哈希运算从ECMP路由中重新为其选择的转发路径与之前的转发路径相同,这些数据流不会发生中断,提高了⑶N网络的可靠性。附图说明图1为现有⑶N的一种拓扑结构示意图;图2为本专利技术实施例提供的一种ECMP表处理方法的流程图;图3-图7为本专利技术实施例提供的以循环填充策略对ECMP表进行处理过程中LPM路由表、ECMP表以及下一跳表的各种状态不意图;图8-图12为本专利技术实施例提供的以链路间负载均衡的权重比例对ECMP表进行处理过程中ECMP表的各种状态示意图;图13为本专利技术实施例提供的一种ECMP表处理装置的结构示意图;图14为本专利技术实施例提供的另一种ECMP表处理装置的结构示意图。具体实施方式图2为本专利技术实施例提供的一种ECMP表处理方法的流程图。如图2所示,本实施例的方法包括:步骤201、确定ECMP表对应的下一跳中有下一跳被剔出。在本实施例中,所述ECMP表所包含的表项的总数大于所述ECMP表对应的下一跳的总数,所述ECMP表中的每个表项均填充有所述ECMP表对应的下一跳的索引。具体的,在本实施例中,ECMP表处理装置在为ECMP路由创建ECMP表时,不是按照当前ECMP表对应的实际下一跳的个数申请ECMP表资源,而是申请了比实际下一跳所需的更多的资源,例如可以按照硬件允许最大值创建ECMP表。这里所述的资源主要是指ECMP表所包含的表项。其中,ECMP表对应的每个下一跳对应一条链路,也对应一个实际的转发出口。ECMP表用于存储ECMP表对应的下一跳的索引。在此说明,本实施例的ECMP表所包含的表项的总数大于ECMP表对应的下一跳的总数,但不限于此,对于ECMP表所包含的表项的总数等于ECMP表对应的下一跳的总数的情况同样适用于本专利技术。创建ECMP表之后,ECMP表处理装置对ECMP表进行初始化,即在ECMP表的每个表项中填充ECMP路由对应的下一跳的索引。其中,由于ECMP表所包含的表项的总数大于ECMP表对应的下一本文档来自技高网
...

【技术保护点】
一种等价多路径ECMP表处理方法,其特征在于,包括:确定ECMP表对应的下一跳中有下一跳被剔出,其中,所述ECMP表所包含的表项的总数大于所述ECMP表对应的下一跳的总数,所述ECMP表中的每个表项均填充有所述ECMP表对应的下一跳的索引;按照预设的填充策略,用所述ECMP表对应的下一跳中未被剔出的下一跳的索引,更新所述ECMP表中填充有所述被剔出的下一跳的索引的表项。

【技术特征摘要】
1.一种等价多路径ECMP表处理方法,其特征在于,包括: 确定ECMP表对应的下一跳中有下一跳被剔出,其中,所述ECMP表所包含的表项的总数大于所述ECMP表对应的下一跳的总数,所述ECMP表中的每个表项均填充有所述ECMP表对应的下一跳的索引; 按照预设的填充策略,用所述ECMP表对应的下一跳中未被剔出的下一跳的索引,更新所述ECMP表中填充有所述被剔出的下一跳的索引的表项。2.根据权利要求1所述的ECMP表处理方法,其特征在于,所述按照预设的填充策略,用所述ECMP表对应的下一跳中未被剔出的下一跳的索引,更新所述ECMP表中填充有所述被剔出的下一跳的索引的表项包括: 将所述ECMP表中填充有所述被剔出的下一跳的索引的表项标记为无效; 按照所述填充策略,在所述ECMP表中被标记为无效的表项中,重新填充所述ECMP表对应的下一跳中未被剔出的下一跳的索引,并取消所述标记。3.根据权利要求1所述的ECMP表处理方法,其特征在于,还包括: 确定所述ECMP表对应的下一跳中新增下一跳; 根据所述ECMP表所包含的表项的总数和新增下一跳之后所述ECMP表对应的下一跳的总数,确定在新增下一跳后每个下一跳的索引在所述ECMP表中被重复填充的第二次数; 根据所述第二次数和第一次数,获得填充次数之差;所述第一次数是根据所述ECMP表所包含的表项的总数和新增下一 跳之前所述ECMP表对应的下一跳的总数,确定出的在新增下一跳前每个下一跳的索引在所述ECMP表中被重复填充的次数; 按照所述填充策略对应的选择策略,从所述ECMP表中选择所述填充次数之差个表项,并用所述新增的下一跳的索引更新所选择的表项。4.根据权利要求3所述的ECMP表处理方法,其特征在于,所述按照所述填充策略对应的选择策略,从所述ECMP表中选择所述填充次数之差个表项,并用所述新增的下一跳的索引更新所选择的表项包括: 按照所述选择策略,从所述ECMP表中选择所述填充次数之差个表项,并将所选择的表项标记为无效; 将所述新增的下一跳的索引填充到所述ECMP表中被标记为无效的表项中,并取消所述标记。5.根据权利要求1-4任一项所述的ECMP表处理方法,其特征在于,所述确定ECMP表对应的下一跳中有下一跳被剔出之前,包括: 创建所述ECMP表; 按照所述填充策略,在所述ECMP表的每个表项中,填充所述ECMP表对应的下一跳的索引。6.根据权利要求5所述的ECMP表处理方法,其特征在于,所述按照所述填充策略,在所述ECMP表的每个表项中,填充所述ECMP表对应的下一跳的索引包括:按照循环填充的策略,将所述ECMP表对应的每个下一跳的索引循环填充到所述ECMP表的表项中; 则所述按照预设的填充策略,用所述ECMP表对应的下一跳中未被剔出的下一跳的索弓I,更新所述ECMP表中填充有所述被剔出的下一跳的索引的表项包括: 按照循环填充的策略,用所述ECMP表对应的下一跳中未被剔出的下一跳的索引,更新所述ECMP表中填充有所述被剔出的下一跳的索引的表项; 或者, 所述按照所述填充策略,在所述ECMP表的每个表项中,填充所述ECMP表对应的下一跳的索引包括: 按照下一跳对应的链路间负载均衡的权重比例,确定所述ECMP表对应的每个下一跳的索引在所述ECMP表中的第一填充次数,根据所述第一填充次数将所述ECMP表对应的每个下一跳的索引填充到所述ECMP表的表项中; 则所述按照预设的填充策略,用所述ECMP表对应的下一跳中未被剔出的下一跳的索弓I,更新所述ECMP表中填充有所述被剔出的下一跳的索引的表项包括: 按照下一跳对应的链路间负载均衡的权重比例,确定所述ECMP表对应的下一跳中未被剔出的下一跳的索引,在所述ECMP表中填充有所述被剔出的下一跳的索引的表项中的第二填充次数,根据所述第二填充次数,用所述ECMP表对应的下一跳中未被剔出的下一跳的索引更新所述ECMP表中填充有所述被剔出的下一跳的索引的表项; 或者, 所述按照所述填充策略,在所述ECMP表的每个表项中,填充所述ECMP表对应的下一跳的索引包括: 按照下一跳对应链路的可用负载能力,确定所述ECMP表对应的每个下一跳的索引在所述ECMP表中的第三填充次数,根据所述第三填充次数将所述ECMP表对应的每个下一跳的索引填充到所述ECMP表的表项中; 则所述按照预设的填充 策略,用所述ECMP表对应的下一跳中未被剔出的下一跳的索弓I,更新所述ECMP表中填充有所述被剔出的下一跳的索引的表项包括: 按照下一跳对应链路的可用负载能力,确定所述ECMP表对应的下一跳中未被剔出的下一跳的索引,在所述ECMP表中填充有所述被剔出的下一跳的索引的表项中的第四填充次数,根据所述第四填充次数,用所述ECMP表对应的下一跳中未被剔出的下一跳的索引更新所述ECMP表中填充有所述被剔出的下一跳的索引的表项。7.根据权利要求3或4所述的ECMP表处理方法,其特征在于, 如果所述填充策略为循环填充的策略,则所述按照所述填充策略对应的选择策略,从所述ECMP表中选择所述填充次数之差个表项包括:按照循环选择的策略,从所述ECMP表中选择所述填充次数之差个表项; 如果所述填充策略为按照下一跳对应的链路间负载均衡的权重比例的填充策略,则所述按照所述填充策略对应的选择策略,从所述ECMP表中选择所述填充次数之差个表项包括:按照下一跳对应的链路间负载均衡的权重比例,确定所述ECMP表对应的每个下一跳的索引...

【专利技术属性】
技术研发人员:欧阳熙羽谢鑫淼
申请(专利权)人:福建星网锐捷网络有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1