链路聚合系统、方法、装置、设备及介质与流程

文档序号:16630449发布日期:2019-01-16 06:31阅读:336来源:国知局
本发明涉及一种链路聚合系统、方法、装置、设备及介质。
背景技术
::软件定义网络(英文全称:softwaredefinednetworking,缩写:sdn),是一种较新的网络设计理念,其核心思想是将网络设备控制与数据平面分离,集中网络控制权,开放可编程接口。sdn控制器通过标准的南向接口,如知名的openflow协议,屏蔽了底层物理转发设备的差异,实现了资源的虚拟化,同时开放了灵活的北向接口,供上层业务按需进行网络配置并调用网络资源。交换机的链路聚合组(英文全称:linkaggregationgroup,缩写:lag)和多交换机链路聚合组(英文全称:multi-chassislinkaggregationgroup,缩写:mc-lag),是在数据中心中常用的用于扩大当条链路带宽,提高网络连接可靠性,简化数据中运维的技术。lag和mc-lag技术在传统的网络架构和sdn中均有广泛应用,其通过链路聚合可以将多个链路捆绑成为一个逻辑链路,捆绑后的链路带宽是每个独立链路的带宽总和。多个链路互为备份,当有一条链路断开,流量会自动在剩下链路间重新分配。mc-lag的交换机之间互相组成备份,当一台交换机宕机的时候,流量会切换到另一台交换机。通过逻辑抽象,减少了网络管理员需要管理的交换机台数,减少了配置管理工作量。图1a显示了传统网络中的mc-lag解决方案。服务器分别与两台交换机组成lag1和lag2,然后将lag1和lag2组成一个mc-lag。两个leaf交换机之间,预留mc-lagpeers的连线,用来交换机之间互相状态监控与信息交互。但是,传统设备厂商的mc-lag配置条目多,而且配置过程繁杂,非常容易出错,也无法很好兼容基于openflow协议的软件定义数据中心网络。在sdn网络中,现有的对于mc-lag解决方案如图1b所示。服务器分别与两台交换机组成lag1和lag2,然后将lag1和lag2组成一个mc-lag。在linux的7中网卡绑定模式(bondmode)中,bond0,bond2,bond3,bond4是需要交换机配置端口通道(portchannel)的端口,另外bond4是需要交换机支持lacp协议。现在传统网络中普遍利用的是服务器的linuxbondmode4,也就是使用802.3ab负载均衡模式,要求交换机也支持802.3ab模式,理论上服务器及交换机都支持此模式时,网卡带宽最高可以翻倍(如从1gbps翻到2gbps)。但是现有的mc-lag解决方案,都需要人工预先在交换机上配置端口通道(portchannel)才能支持,人工配置错误率高,且配置无法实时动态调节。技术实现要素:本申请的第一方面提供了一种链路聚合系统,该系统包括交换机、控制器和服务器,交换机和控制器建立通信连接,交换机和服务器建立通信连接,其中,交换机,用于接收来自服务器的数据包;生成数据包对应的数据转发信息,包括:数据包的包头信息和接收数据包的交换机的端口号,其中数据包的包头信息可以包括:源mac地址、源ip地址目的mac地址、目的ip地址和虚拟局域网vlanid等;将数据包对应的数据转发信息发送至控制器;控制器,用于存储交换机发送的多个数据包对应的数据转发信息;根据多个数据包对应的数据转发信息,确认交换机的至少两个交换机端口之间符合链路聚合条件;向交换机发送第一指示信息;交换机,用于根据第一指示信息配置逻辑端口;接收第一后续数据包,将第一后续数据包通过逻辑端口发出,其中,第一后续数据包的目的mac地址为源mac地址。其中,链路聚合条件包括:交换机的至少两个交换机端口对应的数据转发信息中的源mac地址、vlanid相同。这样,在网络中,简化了链路聚合的配置过程,实现了配置的自动化。本申请的第二方面提供了一种链路聚合系统,该系统包括多个交换机、控制器和服务器,多个交换机和控制器建立通信连接,多个交换机和服务器建立通信连接,其中,多个交换机,用于接收来自服务器的数据包,生成数据包对应的数据转发信息,其中,数据包对应的数据转发信息包括源mac地址、虚拟局域网vlanid、接收数据包的交换机的id和接收数据包的交换机的端口号;将数据包对应的数据转发信息发送至控制器;控制器,用于存储多个交换机发送的多个数据包对应的数据转发信息;根据多个数据包对应的数据转发信息,确认至少两个交换机端口符合链路聚合条件;以及建立源mac地址和符合链路聚合条件交换机端口所在的至少两个交换机的对应关系;多个交换机中的符合链路聚合条件的交换机端口所在的至少两个交换机的上一跳交换机,用于接收第二后续数据包,其中,第二后续数据包的目的mac地址为源mac地址;控制器,用于从符合链路聚合条件的交换机端口所在的至少两个交换机中选择一个交换机,并向符合链路聚合条件的交换机端口所在的至少两个交换机的共同的上一跳交换机发送第二指示信息,第二指示信息指示上一跳交换机将第二后续数据包发送至被选择的交换机。其中,链路聚合条件包括:至少两个交换机端口对应的数据转发信息中的源mac地址和vlanid相同且交换机的id不同。这样,在网络中,简化了多交换机链路聚合的配置过程,实现了配置的自动化。本申请的第三方面提供了一种链路聚合方法,包括:接收多条数据转发信息,其中,每条数据转发信息包括:源mac地址、虚拟局域网vlanid、接收数据包的交换机的id以及接收数据包的交换机的端口号;将多条数据转发信息存储在转发信息表中;根据转发信息表中的数据转发信息,确认至少两个交换机端口符合链路聚合条件;以及聚合符合链路聚合条件的至少两个交换机端口。该方法简化了链路聚合的配置过程,实现了配置的自动化。进一步地,链路聚合条件包括:至少两个交换机端口对应的数据转发信息中的源mac地址、vlanid以及交换机的id均相同。进一步地,聚合符合链路聚合条件的至少两个交换机端口包括:向符合链路聚合条件的至少两个交换机端口所在的交换机发送第一指示信息,第一指示信息用于指示符合链路聚合条件的至少两个交换机端口所在的交换机配置逻辑端口,以便符合链路聚合条件的至少两个交换机端口所在的交换机接收以源mac地址作为目的mac地址的第一后续数据包后,将第一后续数据包通过逻辑端口发出。进一步地,链路聚合条件包括:至少两个交换机端口对应的数据转发信息中的源mac地址和vlanid相同且交换机的id不同。这样,在网络中,通过控制器监控到同一个源ip地址或源mac地址的流量,从同一个交换机的不同端口流入时,将该交换机的这多个端口绑定为lag。通过sdn控制的全局流量流表监控,实现了对于linux服务器七种网卡绑定模式的自动化配置支持。实现配置、转发功能的全面sdn化,减少了运维配置出错的可能性。进一步地,聚合符合链路聚合条件的至少两个交换机端口包括:建立源mac地址和符合链路聚合条件的交换机端口所在的至少两个交换机的对应关系;当符合链路聚合条件的交换机端口所在的至少两个交换机的上一跳交换机接收以源mac地址作为目的mac地址的第二后续数据包后,从符合链路聚合条件的交换机端口所在的至少两个交换机中选择一个交换机,向符合链路聚合条件的交换机端口所在的至少两个交换机的共同的上一跳交换机发送第二指示信息,第二指示信息用于指示上一跳交换机将第二后续数据包发送至被选择的交换机。由此,当控制器监控到携带相同源ip地址或相同源mac地址的数据流流入不同交换机的端口时,将该不同交换机的端口绑定为一个mc-lag,实现了对于linux服务器七种网卡绑定模式的自动化配置支持。本申请的第四方面提供了一种链路聚合装置,该装置包括:接收单元,接收单元被配置为接收多条数据转发信息,其中,每条数据转发信息包括:源mac地址、虚拟局域网vlanid、接收数据包的交换机的id以及交换机的端口号;以及处理单元,处理单元被配置为将多条数据转发信息存储在转发信息表中;根据转发信息表中的数据转发信息,确认至少两个交换机端口符合链路聚合条件;以及聚合符合链路聚合条件的至少两个交换机端口。进一步地,链路聚合条件包括:至少两个交换机端口对应的数据转发信息中的源mac地址和vlanid相同且交换机的id不同。进一步地,处理单元进一步包括发送子单元,发送子单元被配置为:向符合链路聚合条件的至少两个交换机端口所在的交换机发送第一指示信息;第一指示信息用于指示符合链路聚合条件的至少两个交换机端口所在的交换机配置逻辑端口,以便符合链路聚合条件的至少两个交换机端口所在的交换机接收以源mac地址作为目的mac地址的第一后续数据包后,将第一后续数据包通过逻辑端口发出。进一步地,链路聚合条件包括:至少两个交换机端口对应的数据转发信息中的源mac地址和vlanid相同且交换机的id不同。进一步地,处理单元进一步包括发送子单元,发送子单元被配置为:建立源mac地址和符合链路聚合条件的交换机端口所在的至少两个交换机的对应关系;当符合链路聚合条件的交换机端口所在的至少两个交换机的上一跳交换机接收以源mac地址作为目的mac地址的第二后续数据包后,从符合链路聚合条件的交换机端口所在的至少两个交换机中选择一个交换机,向符合链路聚合条件的交换机端口所在的至少两个交换机的共同的上一跳交换机发送第二指示信息,第二指示信息用于指示上一跳交换机将第二后续数据包发送至被选择的交换机。本申请的第五方面提供了一种计算设备,该设备包括处理器、存储器,处理器与存储器建立通信连接;处理器,用于读取存储器中的程序,以执行前述第三方面或第三方面的任一实现方式提供的方法。本申请的第六方面提供了一种非易失性存储介质,该非易失性存储介质中存储了程序,该程序被计算设备运行时,计算设备执行前述第三方面或第三方面的任一实现方式提供的方法。本申请第七方面提供了一种计算机程序产品,该计算机程序产品包括程序代码,当该计算机程序产品被控制器执行时,该控制器执行前述第三方面或第三方面的任一实现方式提供的方法。该计算机程序产品可以为一个软件安装包,在需要使用前述第三方面或第三方面的任一实现方式提供的方法的情况下,可以下载该计算机程序产品至该控制器并在该控制器上运行该计算机程序产品。本发明通过sdn控制的全局流量流表监控,实现了对于linux服务器7种网卡绑定模式的自动化配置支持。实现配置、转发功能的全面sdn化,减少了运维配置出错的可能性。相比传统的人工配置来说,降低了错误率,并且实现了实时动态调节。在sdn网络中,现有的对于mc-lag的故障解决方案如图2所示,两个leaf交换机之间,预留一定带宽的连接,用于做故障发生时的流量迁移。从spine1交换机送下来的流量,在leaf1交换机处理时,会将两个leaf交换机之间的连接和leaf1与服务器之间的lag1放在同一个支持快速故障切换(fastfailover)的组表(grouptable)中,交换机之间的连接作为lag1的备份,当lag1发生故障时,流量会从leaf交换机之间的连接,从leaf1迁移到leaf2,通过lag2送给服务器。从前述现有的mc-lag内容可以看出,不论是传统网络中的mc-lag解决方案,还是现有的sdnmc-lag解决方案,交换机之间都需要预留一定量的带宽,来让交换机之间做状态确认或者流量的迁移。而两个交换机之间的连线,实际上浪费了交换机的上下行带宽。在数据中心中,leaf交换机的带宽是非常重要的资源,特别是在上下无阻塞网络中,如果两个交换机之间,需要为了mc-lag的特性去连接备份链路,这无疑是对上下行带宽的一种浪费。另外在这种方案中,还会存在一种情况,当应该送出到lag1的流量所需要的带宽超过了两个交换机之间的备份连接带宽,这时会造成因为带宽不足引起流量的拥塞,从而导致丢包。为了解决上述问题,本申请的第八方面提供了一种系统,该系统包括控制器、服务器、第一交换机和第二交换机,第一交换机与控制器和服务器建立通信连接,第二交换机与控制器和服务器建立通信连接,第一交换机和第二交换机形成多交换机链路聚合组,其中,控制器,用于将第一交换机用于接收来自上一跳交换机的数据包的输入端口配置为第一交换机与服务器之间的通信连接的备份出口;第一交换机,用于接收来自上一跳交换机的且目的地为服务器的数据包;当第一通信连接发生故障时,向控制器发送故障信息,并将数据包通过备份出口发回上一跳交换机;上一跳交换机,用于接收第一交换机送回的数据包,向控制器发送流表请求;控制器,用于收到流表请求后,向上一跳交换机发送流表;上一跳交换机,用于根据流表,将数据包发送到第二交换机;以及第二交换机,用于通过第二交换机与服务器之间的通信连接,将数据包发送到服务器。本申请的第九方面提供了一种链路故障处理方法,包括:将第一交换机用于接收来自上一跳交换机的数据包的输入端口配置为第一交换机与服务器之间的通信连接的备份出口;当接收到第一交换机转发来自上一跳交换机的目的地为服务器的数据包时发来的通信连接发生故障的信息时,指示第一交换机将数据包通过备份出口发回上一跳交换机;收到上一跳交换机在收到第一交换机送回的数据包后发来的流表请求后,向上一跳交换机发送流表,以指示上一跳交换机将数据包发送到第二交换机,以通过第二交换机与服务器之间的通信连接,将数据包发送到服务器。本申请的第十方面提供了一种链路故障处理装置,该装置包括:配置单元,被配置为将第一交换机用于接收来自上一跳交换机的数据包的输入端口配置为第一交换机与服务器之间的通信连接的备份出口;以及处理单元,被配置为当接收到第一交换机转发来自上一跳交换机的目的地为服务器的数据包时发来的通信连接发生故障的信息时,指示第一交换机将数据包通过备份出口发回上一跳交换机;收到上一跳交换机在收到第一交换机送回的数据包后发来的流表请求后,向上一跳交换机发送流表,以指示上一跳交换机将数据包发送到第二交换机,以通过第二交换机与服务器之间的通信连接,将数据包发送到服务器。本申请的第十一方面提供了一种计算设备,该设备包括处理器、存储器,处理器与存储器建立通信连接;处理器,用于读取存储器中的程序,以执行前述第九方面或第九方面的任一实现方式提供的链路故障处理方法。本申请的第十二方面提供了一种非易失性存储介质,该非易失性存储介质中存储了程序,该程序被计算设备运行时,计算设备执行前述第九方面或第九方面的任一实现方式提供的链路故障处理方法。本申请第十三方面提供了一种计算机程序产品,该计算机程序产品包括程序代码,当该计算机程序产品被控制器执行时,该控制器执行前述第九方面或第九方面的任一实现方式提供的链路故障处理方法。该计算机程序产品可以为一个软件安装包,在需要使用前述第九方面或第九方面的任一实现方式提供的方法的情况下,可以下载该计算机程序产品至该控制器并在该控制器上运行该计算机程序产品。对于多交换机链路聚合组的故障处理,本发明不再需要交换机之间采用备用连线来保证系统的高可用性,从而提高了系统的上下行带宽;简化了系统布线的复杂,节约了端口。另一方面,增加了交换机吞吐能力,避免了交换机之间预留端口带宽不够时,造成流量迁移过程中的流量拥塞和丢包的问题。附图说明图1a是传统mc-lag解决方案的示意图。图1b是sdn网络中mc-lag解决方案的示意图。图2是发生故障时传统sdn网络中mc-lag解决方案的示意图。图3是根据本发明的实施例的链路聚合方法的概况流程图。图4是根据本发明的实施例的单交换机的链路聚合方法的详细流程示意图。图5a是根据本发明的实施例的lag的自动化配置系统的示意图。图5b是根据本发明的实施例的接收数据包的交换机向控制器发送的上送报文的示意图之一。图6是图5a所示的配置的控制器中的转发信息表的示意图。图7是根据本发明的实施例的多交换机的链路聚合方法的流程示意图。图8a是根据本发明的实施例的mc-lag的自动化配置系统的示意图。图8b是根据本发明的实施例的接收数据包的交换机向控制器发送的上送报文的示意图之二。图9是图8b所示的配置的控制器中的转发信息表的示意图。图10是根据本发明的实施例的链路聚合故障监控和链路切换方法的流程示意图。图11是根据本发明的实施例的链路聚合故障监控和链路切换系统的示意图。具体实施方式下面结合具体实施例和附图对本发明做进一步说明。贯穿本说明书,一个数据流包括一系列包头相同的数据包。贯穿本说明书,交换机(包括leaf交换机,spine交换机)可以为物理交换机或虚拟交换机。交换机为物理交换机情况下,交换机端口为物理端口,交换机为虚拟交换机的情况下,交换机端口为虚拟端口。本发明提出了一种在软件定义数据中心网络(英文全称:softwaredefineddatacenternetwork,缩写:sddcn)中实现lag和mc-lag的方法。通过sdn控制器监控各个sdn交换机的状态来代替传统mc-lag解决方案中的mc-lagpeers的功能。通过控制器的流行为监测功能,自动配置相同交换机的端口组成lag,不同交换机之间的端口组成mc-lag。在本发明中,当控制器监控到携带相同源mac地址的数据流流入一个交换机的多个端口时,将该交换机的这多个端口绑定为一个lag。或者,当控制器监控到携带相同源mac地址的数据流流入不同交换机的端口时,将这些不同交换机的端口绑定为一个mc-lag。下面结合附图3-11对本发明的链路聚合方法的实施例进行具体说明。图3示出了根据本发明的实施例的链路聚合方法的流程图。如图3所示,根据本发明的一个实施例,交换机的链路聚合方法包括以下步骤:步骤s301,接收多条数据转发信息,其中,每条所述数据转发信息包括:源mac地址、虚拟局域网vlanid、接收所述数据包的交换机的id以及所述接收所述数据包的交换机的端口号;步骤s302,将所述多条数据转发信息存储在预先配置的转发信息表中;步骤s303,根据所述转发信息表中的数据转发信息,确认至少两个交换机端口符合链路聚合条件;以及步骤s304,聚合所述符合链路聚合条件的所述至少两个交换机端口。下面,结合图4、图5a和图5b详细说明根据本发明的实施例的同一交换机内的不同端口的链路聚合方法。图4展示了根据本发明的实施例的单交换机的链路聚合方法的详细流程图。图5a展示根据本发明的实施例的lag的自动化配置系统的示意图,在图5a所示的系统包括控制器40、服务器30、交换机leaf110和leaf220,其中交换机10包括两个端口101和102。如图4所示,根据本发明的一个实施例,单交换机中的链路聚合包括以下步骤:步骤s401,交换机10通过端口接收来自服务器的数据包,图5a所示,从服务器30的端口向第一交换机(即leaf1)10的端口101送出数据包。随后,步骤s402,第一交换机10收到数据包后,将数据包中的包头信息、接收所述数据包的交换机的id以及所述接收所述数据包的交换机的端口号等组成的数据转发信息以例如上送报文(packetinmessage)的形式送到控制器40,上送报文如图5b所示。其中,每个数据包对应一条数据转发信息(在下文中同样)。其中,包头信息包括:源mac地址、源ip地址和虚拟局域网vlanid等,在本发明中,包头信息包括dmac,smac,vlan,dip,sip等32位ip包头信息中的任一一种或几种。随后,步骤s403,控制器40接收到交换机10上送的数据转发信息后,将数据转发信息记录到控制器的数据库中预先配置的转发信息表中并保存,转发信息表如图6所示。随后,步骤s404,判断记录的该数据转发信息是否是第一条数据转发记录。由于该数据转发信息是第一条数据转发记录,即步骤s404处为是,那么控制器40控制下发流表(match:vlan_id=10,dst_mac=6637.ab7c.0002;action:output_port=spine1port)到交换机10,交换机根据该流表进行转发,随后返回步骤s401,交换机10等待接收下个数据包。如图5a,随后,服务器从端口向第一交换机的第二端口(即图5a中的leaf110的端口102)送出数据包。随后,重复步骤s402-s404的步骤,第一交换机10收到数据包后,将数据包的包头信息、接收所述数据包的交换机的id以及所述接收所述数据包的交换机的端口号等组成的数据转发信息以例如上送报文的形式送到控制器40,上送报文如图5b所示。控制器40接收到交换机上送的转发信息后,在转发信息表中添加一条数据转发信息记录,如图6所示。此时,该转发信息记录是第二条转发记录,那么,进入步骤s405,控制器40根据转发信息表中的交换机数据通路id(switchdpid)、输入端口号(inputport)虚拟局域网vlanid和源mac地址(src_mac),判断第一交换机的端口101和102接收的数据包携带相同源mac地址,且属于同一子网,确认第一交换机10的端口101和102之间符合链路聚合条件,即,端口101和端口102可以形成lag,也即聚合端口101和端口102。随后,进入步骤s406,控制器通过下发配置策略到第一交换机10(leaf1),将端口101和端口102配置为同一个端口通道,即,在交换机侧把端口101和102配置为一个逻辑端口。随后,控制器控制下发流表(match:vlan_id=10,dst_mac=6637.ab7c.0002;action:output_port=spine1port)到第一交换机10,第一交换机10根据该流表,转发数据包。这样,在网络中,通过控制器监控到携带相同mac地址的流量,从相同交换机的不同端口流入时,将相同交换机的不同端口自动的绑定为lag。此处以两个端口举例来进行相应的说明,但是,本领域技术人员应当意识到,交换机的链路聚合端口不仅限于两个端口,只要是同一交换机下,并且收发的数据包来源于同一服务器,这样的多个端口,均可以依照上述方法配置为同一逻辑端口,以形成lag。lag形成后,第一交换机10接收到要转发到服务器30的后续数据包时,该后续数据包的目的mac地址为前述源mac地址,即可将所述后续数据包通过前面配置的逻辑端口发出(步骤s407-s408),由于该逻辑端口对应端口101和端口102,发往该逻辑端口的每个数据包会根据一定的方法通过端口101或端口102发往服务器30。因此,将端口101和服务器30之间的链路,端口102和服务器30之间的链路进行了聚合,聚合出的链路带宽更大。这样,通过sdn控制的全局流量流表监控,实现了对于linux服务器七种网卡绑定模式的自动化配置支持。实现配置、转发功能的全面sdn化,相比于传统的人工配置,减少了配置出错的可能性。下面,结合图7-9对本发明的多交换机的链路聚合方法的实施例进行说明。根据本发明的另一个实施例,实施链路聚合的交换机有多个。图7展示了根据本发明的实施例的多交换机的链路聚合方法的流程图。图8a展示根据本发明的实施例的mc-lag的自动化配置系统的示意图,在图8a所示的系统中,包括控制器40、服务器30以及第一交换机leaf110和第二交换机leaf220,其中每个交换机包括两个端口,即leaf1包括端口101和102,leaf2包括端口201和202。根据本发明的一个实施例,如图8a所示,以两个交换机为例阐释本发明的思想,但本领域技术人员应当意识到,这并不是对数量的限制,该方法可应用于三个或更多交换机。首先,对第一交换机10(即leaf1)进行单交换机的链路聚合,如图7中s701-s704所示,其与图4中的步骤s401-s404基本相同,此处省略描述。随后,步骤s705,判断该交换机的不同物理端口之间是否符合链路聚合条件,假定第一交换机10的端口101和102符合链路聚合条件,能够形成lag,即,步骤s705中为是,则进入步骤s706,控制器通过下发配置策略到leaf1,将端口101和102配置为同一个端口通道,即,在交换机侧把端口101和102配置为一个逻辑端口。至此,第一交换机10的第一lag(即图8a中的lag1)配置完成。当然,此处以两个端口101和102举例来进行相应的说明,但是,本领域技术人员应当意识到,这并不是对数量的限制。如图8a,lag1配置完成后,重复步骤s701,服务器从端口向第二交换机20(即leaf2)的第一端口201送出数据包。重复步骤s702-s704的步骤,交换机20收到数据包后,将数据包的包头信息(例如,可以包括dmac,smac,vlan,dip,sip等中的任一一种或几种)、接收所述数据包的交换机的id以及所述接收所述数据包的交换机的端口号等组成的数据转发信息以例如上送报文的形式送到控制器40,上送报文如图8b所示。控制器40接收到交换机20上送的数据转发信息后,在转发信息表中添加一条数据转发信息记录,如图9所示。此时,该数据转发信息记录是第三条转发记录,即,步骤s704处为否,此时,进入步骤s705,这个时候,控制器根据转发信息表中的交换机数据通路id(switchdpid)、输入端口号(inputport)和源地址信息(src_mac),判断是否在同一个交换机下,以及是否可以形成lag。在该实例中,作为第二交换机20的第一端口201,没有其他端口可以与之形成lag,即步骤s705中判断为否,则进入步骤s706。步骤s706,同样基于图9所示的转发信息表中的信息,判断第二交换机20的第一端口201与之前收发数据的端口或者逻辑端口是否符合链路聚合条件,能否形成mc-lag。如果不能,则返回步骤s701,交换机等待接收下个数据包。如图9,控制器根据转发信息表中的switchdpid、inputport和src_mac信息,可以判断在不同交换机下,第二交换机20的第一端口201与第一交换机10的lag1的逻辑端口能够形成一组mc-lag,即步骤s706中为是。此时,进入步骤s709,控制器将leaf2的第一端口201和leaf1的lag1的逻辑端口配置为同一个端口通道,从而使leaf2的第一端口201和leaf1的lag1的逻辑端口形成一个mc-lag。随后,可选择地,还可以包括步骤s710和s711,在步骤s710中,控制器控制下发流表到第二交换机20,在步骤s711中,第二交换机20根据流表的流规则,进行转发。mc-lag形成后,服务器30与交换机leaf1和leaf2的对应关系旋即建立,当上一跳交换机spine1收到需要转发给服务器30的后续数据包时,控制器40可以根据当前网络负载状况,从该mac-lag中的交换机(即leaf1和leaf2)中选择一个,例如leaf1,并向spine1发送流表,指示spine1将收到的后续数据包发送至选择的交换机leaf1,并由leaf1通过lag1转发给服务器30;或者,控制器40可以选择leaf2,并向spine1发送流表,指示spine1将收到的后续数据包发送至选择的交换机leaf2,并由leaf2通过端口201转发给服务器30,从而实现数据流的均衡分配。随后,重复步骤s701,服务器从端口向第二交换机20的第二端口202送出数据包。随后重复步骤s702-s705,此时,第二交换机leaf2的端口201和202在同一交换机下,并且接收的数据包来源于同一服务器,符合链路聚合条件,可以形成lag。即,步骤s705中为是。随后,进入步骤s707,控制器通过下发配置策略到leaf2,将leaf2的端口201和202配置为同一个端口通道,即,在第二交换机侧把leaf2的第一端口201和第二端口202配置为一个逻辑端口,即leaf2的端口201和202形成第二lag(即图8a中的lag2)。随后,步骤s708,判断该第二lag逻辑端口与其他lag的逻辑端口或者端口能否形成mc-lag,控制器根据转发信息表中的信息,可以判断在不同交换机下,leaf2的lag2与leaf1的lag1能够组成一组mc-lag,即步骤s708中为是。此时,控制器将leaf2的lag2的逻辑端口和leaf1的lag1的逻辑端口配置为同一个端口通道,从而使leaf2的逻辑端口和leaf1的逻辑端口成为同一个逻辑端口(步骤s709)。同时,需要注意的是,s705-s709的步骤顺序并不受限制,而是可以以不同的顺序进行。例如对于本实施例来说,第二交换机20(leaf2)的第二端口202可以先与第一端口201配置为一个逻辑端口,形成lag2,随后再将lag2与第一交换机的lag1形成一组mc-lag;同样,也可以先将第二交换机20(leaf2)的第二端口202与lag1配置形成一条mc-lag,随后再将leaf2的第二端口202与第一端口201配置为一个逻辑端口形成lag2,再将整个lag1与lag2形成mc-lag。随后,可选择地,还可以包括步骤s710和s711,在步骤s710中,控制器控制下发流表到相应的第二交换机20,在步骤s711中,第二交换机20根据流表的流规则,进行转发。mc-lag形成后,同样,服务器30与交换机leaf1和leaf2的对应关系旋即建立,当上一跳交换机spine1收到需要转发给服务器30的后续数据包时,控制器40可以根据当前网络负载状况从该mac-lag中的交换机(即leaf1和leaf2)中选择一个,例如leaf1,并向spine1发送流表,指示spine1将收到的后续数据包发送至被选择的leaf1,并由leaf1通过lag1转发给服务器30。由此,通过控制器监控到携带相同mac地址的流量,从不同的交换机的不同端口,或相同交换机的不同端口流入流出时,将相同交换机的不同端口自动绑定为lag,将不同交换机的逻辑端口或者端口自动绑定成为mc-lag,省去了人工配置,减少出错可能性。此处以两个交换机leaf1和leaf2,每个交换机具有两个端口举例来进行相应的说明,但是,本领域技术人员应当意识到,这只是举例说明,而不是对具体数量或类型的限制。根据本发明的另一个实施例,还提供了一种链路聚合装置,包括:接收单元,接收单元被配置为执行图4所示的方法中对应步骤s402控制器侧执行的接收步骤;以及处理单元,处理单元被配置为执行图4所示的方法中控制器侧执行的步骤s403到s406。根据本发明的另一个实施例,还提供了另一种链路聚合装置,包括:接收单元,接收单元被配置为执行图7所示的方法中控制器侧执行的步骤s702;以及处理单元,处理单元被配置为执行图7所示的方法中控制器侧执行的步骤s703到s710。根据本发明的另一个实施例,还提供了一种计算设备,包括处理器和存储器,处理器和存储器建立通信连接,所述处理器,用于读取存储器中的程序,以执行图4所示的方法中控制器侧执行的步骤,包括步骤s403-s406。sdn控制器可以通过该计算设备实现。根据本发明的另一个实施例,还提供了另一种计算设备,包括处理器和存储器,处理器和存储器建立通信连接,所述处理器,用于读取存储器中的程序,以执行图7所示的方法中控制器侧执行的步骤,包括步骤s702-s710。sdn控制器可以通过该计算设备实现。根据本发明的另一个实施例,还提供了一种非易失性存储介质,所述非易失性存储介质中存储了程序,该程序被计算设备运行时,所述计算设备执行4中所示的方法中控制器侧执行的步骤,包括步骤s403-s406。sdn控制器可以通过该计算设备实现。根据本发明的另一个实施例,还提供了另一种非易失性存储介质,所述非易失性存储介质中存储了程序,该程序被计算设备运行时,所述计算设备执行图7所示的方法中控制器侧执行的步骤,包括步骤s702-s710。sdn控制器可以通过该计算设备实现。下面,结合图10-11对本发明的链路故障处理的实施例进行说明。图10展示了根据本发明的实施例的链路故障处理方法的流程图。图11展示了根据本发明的实施例的链路故障处理系统的示意图。根据本发明的一个实施例,如图10-11所示,以两层交换机为例阐释本发明的思想,本领域技术人员应当意识到,在多层交换机的结构中,也可以将本发明应用其中。在图11所示的系统中,包括两层交换机、服务器以及控制器,其中,交换机10、20和50分别与控制器40建立通信连接,交换机10和20分别与服务器30建立通信连接并形成mc-lag。首先,在步骤s1101中,控制器将第一交换机leaf110的用于接收来自上一跳交换机spine150的数据包的输入端口配置为第一交换机10与服务器30之间的第一lag(即,图11中的lag1)的备份出口。随后,在步骤s1102中,第一交换机10收到来自上一跳交换机spine150的目的地为所述服务器30的数据包;正常情况下,即步骤s1103中判断为否,数据包将从上一跳交换机spine150通过leaf110而后从lag1送到服务器。但是,在所述第一lag(即图11中的lag1)的所有连接都故障的情况下,即步骤s1103中判断为是,则进入步骤s1104,第一交换机leaf1向控制器40发送故障信息,上报lag1故障,并将接收的数据包通过预配的备份出口发回上一跳交换机50;上一跳交换机spine150收到第一交换机leaf110送回的数据包后,在步骤s1105中,由于spine150没有相应的转发规则,此时,上一跳交换机spine1向所述控制器40发送流表请求以请求流表;随后,在步骤s1106中,控制器40收到流表请求后,根据当前网络的线路状态,向上一跳交换机spine150发送流表;随后,在步骤s1107中,上一跳交换机spine1根据控制器发送的流表,将数据包发送到第二交换机leaf220;随后,在步骤s1108中,第二交换机leaf220通过第二交换机20与服务器30之间的第二lag(即图11中的lag2),将收到的数据包送到服务器30。以上以第一交换机10与第二交换机20分别与服务器之间形成lag为例而进行说明,但是,本领域技术人员应当意识到,这既不是对交换机数量的限制,也不是对交换机与服务器之间的通信连接的限制。在其他实施例中,第一交换机10可以与服务器之间不形成lag,而是只通过一个端口通信,在该端口故障时,同样可以采用上述方法进行处理。同样,交换机leaf220也可以与服务器,之间不形成lag,而是只通过一个端口通信转发数据包。根据本发明的另一个实施例,还提供了一种链路故障处理装置,包括:配置单元,配置单元被配置为执行图10中的步骤s1101;以及处理单元,处理单元被配置为接收交换机发来的信息,以及执行图10中的步骤s1106。根据本发明的另一个实施例,还提供了一种计算设备,包括处理器和存储器,处理器和存储器建立通信连接,所述处理器,用于读取存储器中的程序,以执行图10中的步骤s1101和s1106。sdn控制器可以通过该计算设备实现。根据本发明的另一个实施例,还提供了一种非易失性存储介质,所述非易失性存储介质中存储了程序,该程序被计算设备运行时,所述计算设备执行图10中的步骤s1101和s1106。sdn控制器可以通过该计算设备实现。通过本发明的实施例,对于输出到mc-lag某端口的流量,将交换机的输入端口作为备用输出端口,使得该流量无法从交换机送出时,回送给上一跳交换机,上一跳交换机收到该流量之后,将该流量转发到别的mc-lag的端口。相比于现有的解决方案,本方法不再需要两个leaf交换机之间有连接来作为快速故障切换的备用连接,节约了端口,增加了交换机吞吐能力,从而避免了leaf交换机之间预留端口带宽不够,造成流量迁移过程中的流量拥塞和丢包。上面结合附图对本发明的实施例做了详细说明,但本发明技术方案的使用不仅仅局限于sdn网络,也不仅仅局限于本专利实施例中提及的各种应用,任何网络都可以参考本发明技术方案轻易地实施,以达到本文中提及的各种有益效果。在本领域普通技术人员所具备的知识范围内,在不脱离本发明宗旨的前提下做出的各种变化,均应归属于本发明专利涵盖范围。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1