技术领域
[0001] 本
申请涉及通信技术领域,特别涉及一种基于开放流协议的链路汇聚控制协议(Link Aggregation Control Protocol,LACP)环路检测方法和装置。
背景技术
[0002] 随着
数据中心业务日益增加,用户需求不断提高,数据中心的规模和功能日趋复杂,管理难度也越来越高。在这一背景下,整合数据中心、降低数据中心的管理成本,充分挖掘现有资源能
力以适应更高的业务需求,成为企业数据中心的重要任务。对数据中心资源进行虚拟化,成为目前数据中心整合的重要趋势。
[0003] 虚拟化技术通过对物理资源和提供的服务进行抽象化,让资源使用者和系统管理者不关心对象的物理特征和服务边界的细节,从而降低资源使用和管理的复杂度,提高使用效率。因而,对数据中心的虚拟化能够提高数据中心的资源利用率,如
中央处理器(CPU)利用率、存储容量等,降低系统的能耗,并减少系统的设计、运行、管理、维护成本,从而实现整合的目标。
[0004] 数据中心的虚拟化技术主要包括3方面内容:网络虚拟化、存储虚拟化和
服务器虚拟化,最主要的是服务器虚拟化。通过专用的虚拟化
软件,如VMware管理,一台物理服务器能虚拟出多台
虚拟机(VM),每个VM独立运行,互不影响,都有自己的
操作系统和应用程序和虚拟的
硬件环境,包括虚拟CPU、内存、存储设备、IO设备、虚拟边缘端口汇聚(Virtual Edge Port Aggregator,VEPA)交换机等。
[0005] 边缘虚拟桥接技术(Edge Virtual Bridging,EVB)技术分为交换机EVB技术和服务器EVB技术。服务器EVB技术应用于数据中心服务器,在其上的VEPA交换机中实现,用于简化虚拟服务器的流量转发实现,对虚拟服务器的网络交换、流量管理和策略下发进行集中控制,并能在虚拟迁移时实现网络管理和策略的自动迁移。
[0006] 支持EVB的VEPA交换机分为虚拟边缘交换机(Virtual Ethernet Bridge,VEB)和VEPA。在服务器上采用纯软件方式实现的VEB实现方式简单,且技术兼容性好,但也面临着诸如占用CPU资源导致虚拟机性能下降,存在虚拟机流量监管、虚拟机的网络策略实施以及管理可扩展性等问题。
[0007] VEPA将虚拟机产生的网络流量全部交由与服务器相连的物理交换机进行处理,即使同一台服务器上的虚拟机间流量,也将在物理交换机上查表处理后,再回到目的虚拟机上。VEPA方式不仅借助物理交换机解决了虚拟机间流量转发,同时还实现了对虚拟机流量的监管,并且将虚拟机接入层网络纳入到传统服务器接入网络管理体系中。
[0008] 开放流(OpenFlow)是斯坦福大学发起的一种网络技术,它使传统的二层和三层交换机具备了细粒度流转发能力,即传统的基于MAC的网包转发,基于IP的路由转发,被拓展到了基于多域网包包头描述的流转发。同时,传统的控制层面从转发设备中剥离出来,所有转发行为的决策从交换机自身迁移到了某个集中
控制器上。
[0009] 每个OpenFlow交换机都有一张流表,进行包查找和转发。交换机可以通过OpenFlow协议经一个安全通道连接到外部OpenFlow控制器,
对流表进行查询和管理。
[0010] 流表包括包头域(header fileds),匹配包头多个域;活动计数器(counters)域、0个或多个执行行动(actions)域。对每一个包进行查找,如果匹配则执行相关策略,否则通过安全通道将包转发到OpenFlow控制器,OpenFlow控制器来决策相关行为。流表项可以将包转发到一个或者多个
接口。
[0011] 参见图1,图1为基于OpenFlow协议的VEPA组网示意图。图1中服务器虚拟3个虚拟机VM和一个VEPA交换机,VEPA交换机具有OpenFlow功能,其中,端口1和端口2为VEPA交换机的两个上行端口,端口3和端口4为边缘交换机的两个下行端口,且端口1和端口2同端口3和端口4进行聚合。
[0012] 若OpenFlow控制器下发流表错误或VEPA交换机出现故障,端口3和端口4之间可能出现环路,将导致流量无法正常转发,上下行流量转发混乱,导致交换机及服务器端异常,甚至于网络瘫痪。
发明内容
[0013] 有鉴于此,本申请提供一种基于开放流协议的LACP环路检测方法和装置,能够保证VPEA交换机和边缘交换机之间流量的正常转发。
[0014] 为解决上述技术问题,本发明的技术方案是这样实现的:
[0015] 一种基于开放流OpenFlow协议的链路汇聚控制协议LACP环路检测方法,该方法应用于包含OpenFlow控制器、服务器和边缘交换机的组网中的服务器上,所述服务器虚拟多个虚拟机VM和一个虚拟边缘端口汇聚VEPA交换机,VEPA交换机的上行端口同所述边缘交换机的下行端口进行聚合,形成聚合组,包括:
[0016] 该VEPA交换机通过所述聚合组中的各上行端口向边缘交换机周期发送链路汇聚控制协议数据单元LACPDU报文;
[0017] 该VEPA交换机通过所述聚合组中的任一上行端口接收到所述边缘交换机发送的LACPDU报文时,若确定接收的LACPDU报文为本VEPA交换机通过所述聚合组中的上行端口发送的LACPDU报文,保留该聚合组中的上行端口中的一个端口正常工作,关闭其他上行端口。
[0018] 一种装置,该装置可应用于服务器虚拟的虚拟边缘端口汇聚VEPA交换机上,该服务器还虚拟多个虚拟机VM,该服务器为还包含开放流OpenFlow控制器、和边缘交换机的组网中的服务器,所述VEPA交换机的上行端口同所述边缘交换机的下行端口进行聚合,形成聚合组,该装置包括:收发单元和处理单元;
[0019] 所述收发单元,用于通过所述聚合组中的各上行端口向边缘交换机周期发送链路汇聚控制协议数据单元LACPDU报文;通过所述聚合组中的上行端口接收所述边缘交换机发送的LACPDU报文;
[0020] 所述处理单元,用于当所述收发单元接通过所述聚合组中的任一上行端口接收到所述边缘交换机发送的LACPDU报文时,若确定接收的LACPDU报文为本VEPA交换机通过所述聚合组中的上行端口发送的LACPDU报文,保留该聚合组中的上行端口中的一个端口正常工作,关闭其他上行端口。
[0021] 综上所述,本申请通过VEPA交换机通过该聚合组中的各上行端口向所述边缘交换机周期发送LACPDU报文用于进行环路检测,当通过聚合组中的任一上行端口接收到本端发送的用于环路检测的LACPDU报文时,确定VPEA交换机和所述边缘交换机之间出现了环路,保留该聚合组中的一个上行端口正常工作,关闭其他上行端口,能够保证VPEA交换机和边缘交换机之间流量的正常转发。
附图说明
[0022] 图1为基于OpenFlow协议的VEPA组网示意图;
[0023] 图2为本发明具体
实施例中基于OpenFlow协议的LACP环路检测方法流程示意图;
[0024] 图3为本发明具体实施例中确定接收的LACP报文是否为VEPA交换机发送的LACP扩展报文的方法流程示意图;
[0025] 图4为本发明具体实施例中应用于上述技术的装置的结构示意图。
具体实施方式
[0026] 为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明所述方案作进一步地详细说明。
[0027] 本发明实施例中提出一种基于OpenFlow协议的LACP环路检测方法,该方法应用于包含OpenFlow控制器、服务器和边缘交换机的组网中的服务器上,所述服务器虚拟多个虚拟机VM和一个虚拟边缘端口汇聚VEPA交换机,VEPA交换机的上行端口同所述边缘交换机的下行端口进行聚合,形成聚合组。
[0028] VEPA交换机将需要聚合的上行端口加入一个聚合组,边缘交换机将需要聚合的下行端口加入一个聚合组,VEPA交换机和边缘交换机通过加入聚合的上行端口和下行端口发送LACP报文进行聚合。具体实现聚合的过程同现有实现,这里不再详细描述。
[0029] VEPA交换机向所述边缘交换机周期发送链路汇聚控制协议数据单元(Link Aggregation Control Protocol Data Unit,LACPDU)报文进行环路检测,当通过聚合组中的任一上行端口接收到本端发送的用于环路检测的LACPDU报文时,确定VPEA交换机和所述边缘交换机之间出现了环路,保留该聚合组中的一个上行端口正常工作,关闭其他上行端口。通过该方法能够保证VPEA交换机和边缘交换机之间流量的正常转发。
[0030] 参见图2,图2为本发明具体实施例中基于OpenFlow协议的LACP环路检测方法流程示意图。具体步骤为:
[0031] 步骤201,该VEPA交换机通过所述聚合组中的各上行端口向边缘交换机周期发送LACPDU报文。
[0032] 本步骤中发送LACPDU报文的周期可以根据实际应用情况具体设置。
[0033] 步骤202,该VEPA交换机通过所述聚合组中的任一上行端口接收到所述边缘交换机发送的LACPDU报文时,若确定接收的LACPDU报文为本VEPA交换机通过所述聚合组中的上行端口发送的用于环路检测的LACPDU报文,保留该聚合组中的上行端口中的一个端口正常工作,关闭其他上行端口。
[0034] 如果在设备和链路正常的情况下,LACPDU报文会在接收端终结掉,不会再向发送端返回该LACPDU报文。因此本发明具体实施例中通过确定VEPA交换机是否接收到边缘交换机返回本端发送的LACPDU报文,如果是,则说明VEPA交换机和边缘交换机之间出现了环路,为了防止环路引起的流量无法正常转发、网络瘫痪等问题,保留聚合组中的一个上行端口正常工作,关闭其他上行端口。
[0035] 若确定接收的LACPDU报文不为本VEPA交换机通过所述聚合组中的上行端口发送的LACPDU报文,根据该接收的LACPDU报文的内容对该LACPDU进行处理。具体处理同现有实现,这里不再一一举例。
[0036] 对于任何能够确定VPEA交换机接收的LACP报文为本VEPA交换机发送出的LACPDU报文的方法,都可实现本发明具体实施例中提出的环路检测。下面本发明详细给出一种确定方法。
[0037] 由于VPEA交换机的上行端口和边缘交换机的下行端口进行聚合,在聚合完成后,需要周期发送LACPDU报文进行聚合链路的信息的通告,因此为了节省资源,本发明具体实施例中可以通过VPEA边缘交换机和边缘交换之间周期发送的用于通告链路聚合信息的LACP报文的扩展LACPDU报文实现。
[0038] 参见图3,图3为本发明具体实施例中确定接收的LACP报文是否为VEPA交换机发送的LACP扩展报文的方法流程示意图。具体步骤为:
[0039] 步骤301,该VEPA交换机通过所述聚合组中的各上行端口向边缘交换机周期发送通告链路聚合信息的LACP报文的扩展LACPDU报文,且该LACPDU报文的扩展TLV字段携带MD5值。
[0040] 本步骤中的MD5值通过本VEPA交换机的系统ID、源MAC地址和所述聚合组的聚合组ID进行MD5计算得到的信息
摘要值。
[0041] MD5
算法通过其不可逆的字符串变换算法,可以产生位移的信息摘要值,且不可破解。
[0042] 步骤302,该VEPA交换机通过所述聚合组中的任一上行端口接收到LACP报文,且该LACP报文携带MD5值。
[0043] 如果未携带MD5值,即LACPDU报文未增加携带MD5值的TLV,这样的报文默认为不是本VPEA交换机发送的LACPDU报文,则根据接收的LACPDU报文的内容进行正常处理。
[0044] 步骤303,该VEPA交换机根据本VEPA交换机的系统ID、源MAC地址和所述聚合组的聚合组ID通过MD5计算获得MD5值,若获得的MD5值与所述LACPDU报文携带的MD5值相同,保留该聚合组中的上行端口中的一个端口正常工作,关闭其他上行端口。
[0045] 如果该LACPDU报文的扩展TLV携带了MD5值,该VEPA交换机确定携带的MD5值同本地进行计算的MD5值是否相同,如果相同,则确定该接收的LACPDU报文为本VPEA交换机发送的LACPDU报文,确定本VPEA交换机同边缘交换机之间出现了环路,进行相应的处理;如果不相同,该VEPA交换机根据该LACPDU报文的内容进行处理。
[0046] 当引起环路故障的原因排除后,该聚合组中的上行端口继续正常收发LACP报文。
[0047] 本发明具体实施例中基于同样的发明构思,还提出一种装置,该装置可应用于服务器虚拟的虚拟边缘端口汇聚VEPA交换机上,该服务器还虚拟多个虚拟机VM,该服务器为还包含OpenFlow控制器、和边缘交换机的组网中的服务器,所述VEPA交换机的上行端口同所述边缘交换机的下行端口进行聚合,形成聚合组,参见图4,图4为本发明具体实施例中应用于上述技术的装置的结构示意图。该装置包括:收发单元401和处理单元402。
[0048] 收发单元401,用于通过所述聚合组中的各上行端口向边缘交换机周期发送LACPDU报文;通过所述聚合组中的上行端口接收所述边缘交换机发送的LACPDU报文。
[0049] 处理单元402,用于当收发单元401接通过所述聚合组中的任一上行端口接收到所述边缘交换机发送的LACPDU报文时,若确定接收的LACPDU报文为本VEPA交换机通过所述聚合组中的上行端口发送的LACPDU报文,保留该聚合组中的上行端口中的一个端口正常工作,关闭其他上行端口。
[0050] 较佳地,
[0051] 述处理单元402,进一步用于当接收单元401通过所述聚合组中任一上行端口接收到所述边缘交换机发送的LACPDU报文时,若确定接收的LACPDU报文不为本VEPA交换机通过所述聚合组中的上行端口发送的LACPDU报文,根据该接收的LACPDU报文的内容对该LACPDU进行处理。
[0052] 较佳地,
[0053] 收发单元401,周期发送的LACPDU报文携带信息摘要算法第五版MD5值,所述MD5值为根据本VEPA交换机的系统ID、源MAC地址和所述聚合组的聚合组ID通过MD5计算得到的信息摘要值。
[0054] 处理单元402,用于根据本VEPA交换机的系统ID、源MAC地址和所述聚合组的聚合组ID通过MD5计算获得MD5值,若获得的MD5值与所述LACPDU报文携带的MD5值相同,则确定接收的LACPDU报文为本VEPA交换机通过所述聚合组中的上行端口发送的LACPDU报文。
[0055] 较佳地,
[0056] 收发单元401发送的LACPDU报文为本VEPA交换机向所述边缘交换机发送聚合链路的相关信息的LACPDU报文的扩展LACPDU报文,所述MD5值携带在所述扩展LACPDU报文的扩展TLV中。
[0057] 上述实施例的单元可以集成于一体,也可以分离部署;可以合并为一个单元,也可以进一步拆分成多个子单元。
[0058] 综上所述,本发明具体实施例中VEPA交换机通过该聚合组中的各上行端口向所述边缘交换机周期发送LACPDU报文用于进行环路检测,当通过聚合组中的任一上行端口接收到本端发送的用于环路检测的LACPDU报文时,确定VPEA交换机和所述边缘交换机之间出现了环路,保留该聚合组中的一个上行端口正常工作,关闭其他上行端口,能够保证VPEA交换机和边缘交换机之间流量的正常转发。
[0059] 本发明具体实施例中还给出了通过交互聚合链路的相关信息的LACP报文的扩展报文携带字段来实现环路检测,能够节省资源,保证网络环境的正常运行。
[0060] 以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何
修改、等同替换、改进等,均应包含在本发明的保护范围之内。