用于消除虚拟网络环路引发的风险的方法和装置与流程

文档序号:14993411发布日期:2018-07-20 22:58阅读:333来源:国知局
本发明涉及网络技术,特别涉及用于消除虚拟网络内环路引发的风险的方法、实施该方法的装置以及包含实施该方法的计算机程序的计算机可读存储介质。
背景技术
::在交换机网络中,连接环路是必须要避免的。网络中一旦存在环路,则极易造成广播风暴,进而导致整个网络的瘫痪。在传统网络中,网络交换机可以通过开启生成树协议(stp)的方式来检测环路,并且在发现环路后对相关连接端口进行状态修改,从而阻止环路的出现。然而在基于软件定义网络的云环境中,软件交换机或虚拟交换机的所有数据的转发功能都通过openflow流表来实现。在这种情况下,为保证业务数据的转发,stp功能处于禁止状态。但是如果openflow流表转发策略存在漏洞或者发生人为操作失误,则可能导致转发环路的形成,从而影响云平台的数据转发,造成业务中断。有鉴于此,迫切需要一种用于检测基于软件定义网络的云环境中的虚拟网络环路的方法和装置,从而能够克服现有技术的各种缺点。技术实现要素:本发明的一个目的是提供一种用于消除虚拟网络内环路引发的风险的方法和装置,其能够准确检测到虚拟网络环路并消除环路引发的各种风险。按照本发明一个方面的用于消除虚拟网络内环路引发的风险的方法包含下列步骤:经多个虚拟交换机中的其中一个向所述虚拟网络发送探测数据包;如果根据对虚拟交换机端口的检测结果确定存在环路,则生成相应的风险消除策略;以及将所述风险消除策略写入虚拟交换机内。优选地,在上述方法中,利用代理节点对虚拟交换机的端口进行检测并经代理节点将所述风险消除策略写入虚拟交换机内。优选地,在上述方法中,所述探测数据包为arp请求包,其包含虚拟局域网标签并且不包含云环境中的所有网络节点的ip地址。优选地,在上述方法中,所述探测数据包由流量生成器生成,如果下列情况同时满足,则确定存在环路:探测数据包通过流量生成器与虚拟交换机之间的连接端口发出;探测数据包通过与流量生成器连接的虚拟交换机上的隧道端口发出;探测数据包在其它虚拟交换机上的隧道端口接收到;以及探测包在虚拟交换机与物理交换机连接的端口中接收到。优选地,在上述方法中,所述风险消除策略包括:如果虚拟交换机从物理交换机接收到与发送探测数据包的虚拟交换机相关联的网桥协议数据单元包,则将其丢弃。优选地,在上述方法中,所述风险消除策略包括:如果虚拟交换机从其上的隧道端口上接收到与发送探测数据包的虚拟交换机相关联的广播包,则将其丢弃。优选地,在上述方法中,所述风险消除策略以openflow流表中的功能项表示。按照本发明另一个方面的用于消除虚拟网络内环路引发的风险的装置包含:流量生成器,其配置为生成经多个虚拟交换机的其中一个向所述虚拟网络发送探测数据包;以及策略生成器,其配置为如果根据对虚拟交换机端口的检测结果确定存在环路,则生成相应的风险消除策略并将所述风险消除策略写入虚拟交换机内。优选地,在上述装置中,对虚拟交换机端口的检测和将所述风险消除策略写入虚拟交换机内的操作由代理节点完成。优选地,在上述装置中,所述流量生成器位于云环境的其中一个物理节点内。优选地,在上述装置中,所述装置集成在软件定义网络控制器中。按照本发明另一个方面的用于消除虚拟网络内环路引发的风险的装置包含存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序以执行如上所述的方法。本发明的还有一个目的是提供一种计算机可读存储介质,其上存储计算机程序,该程序被处理器执行时实现如上所述的方法。附图说明本发明的上述和/或其它方面和优点将通过以下结合附图的各个方面的描述变得更加清晰和更容易理解,附图中相同或相似的单元采用相同的标号表示。附图包括:图1a和1b为云环境下虚拟网络环路的存在对虚拟交换机外部的物理链路影响的示意图。图2为云环境下虚拟网络环路的存在对虚拟网络自身影响的示意图。图3为按照本发明一个实施例的用于消除虚拟网络内环路引发的风险的装置的示意图。图4为按照本发明另一个实施例的用于消除虚拟网络内环路引发的风险的方法。图5为按照本发明另一个实施例的用于消除虚拟网络内环路引发的风险的装置的框图。具体实施方式下面参照其中图示了本发明示意性实施例的附图更为全面地说明本发明。但本发明可以按不同形式来实现,而不应解读为仅限于本文给出的各实施例。给出的上述各实施例旨在使本文的披露全面完整,以将本发明的保护范围更为全面地传达给本领域技术人员。在本说明书中,诸如“包含”和“包括”之类的用语表示除了具有在说明书和权利要求书中有直接和明确表述的单元和步骤以外,本发明的技术方案也不排除具有未被直接或明确表述的其它单元和步骤的情形。图1a和1b为云环境下虚拟网络环路的存在对虚拟交换机外部的物理链路影响的示意图。示例性地,图中以一个物理交换机与两个虚拟交换机组网为例。参见图1a,物理交换机100将经trunk类型的中继端口向虚拟交换机210和220发送基于stp协议的网桥协议数据单元(bpdu)检测报文。如图1b所示,当检测到环路存在时,物理交换机100将与虚拟交换机210和/或220相连的一些端口设置为阻塞状态以阻止环路的形成(例如图中物理交换机100与虚拟交换机220相连的trunk端口被设置为阻塞状态),但是这造成了网络的故障。图2为云环境下虚拟网络环路的存在对虚拟网络自身影响的示意图。示例性地,图中以包含三个虚拟交换机的虚拟网络为例。参见图2,由于虚拟网络中不同虚拟交换机210-230之间都通过隧道方式通信连接从而形成环路,因此一旦在虚拟网络中形成广播风暴,则将导致网络瘫痪。图3为按照本发明一个实施例的用于消除虚拟网络内环路引发的风险的装置的示意图。示例性地,图中以一个物理交换机和三个虚拟交换机组网的情形为例。如图3所示,用于检测虚拟网络环路的装置30包括流量生成器310和策略生成器320。可选地,装置30可集成在软件定义网络控制器中。流量生成器310可部署在云平台的某个物理节点内,并且与虚拟交换机(例如虚拟交换机210)连接。流量生成器310将生成探测数据包并经虚拟交换机210向虚拟网络发送。在本实施例中,优选地,探测数据包为arp请求包,但是采用其它的广播报文也是可行的。更好地,为了确保能够准确地检测到环路,本实施例的arp请求包具有下列特征:(1)arp请求包包含虚拟局域网(vlan)的标签,并且vlan的标签从0-4095递增。这样就能避免虚拟网络中可能存在的vlan隔离。(2)为了确保云平台中所有的网络节点不对arp请求包作出回复,必须要规避云平台中所有的ip地址。为此,流量生成器310在生成arp请求包时,将访问云平台数据库50以获取所有网络节点的ip地址信息,然后根据该地址信息进行规避。在本实施例中,在向虚拟网络发送arp请求包之后,利用代理节点410-430对各自关联的虚拟交换机210-230的端口进行检测。代理节点410-430将定期或不定期地向策略生成器320返回检测结果。在本实施例中,优选地,策略生成器320经选取虚拟网络中的主要端口进行检测分析。具体而言,策略生成器320将判断下列条件(1)-(4)是否成立:条件(1):探测数据包通过流量生成器与虚拟交换机之间的连接端口发出。条件(2):探测数据包通过与流量生成器连接的虚拟交换机上的隧道端口发出。条件(3):探测数据包在其它虚拟交换机上的隧道端口接收到。条件(4):探测包在虚拟交换机与物理交换机连接的端口中接收到。如果上述条件全部成立,则策略生成器320即确定虚拟网络内存在环路。在确定存在环路之后,策略生成器320将生成相应的风险消除策略(例如以openflow流表的形式)并下发至代理节点410-430,由后者将风险消除策略写入各自关联的虚拟交换机210-230中。在本实施例中,优选地,风险消除策略包括:如果虚拟交换机从物理交换机100接收到与发送探测数据包的虚拟交换机相关联的网桥协议数据单元包,则将其丢弃;和/或如果虚拟交换机从其上的隧道端口上接收到与发送探测数据包的虚拟交换机相关联的广播包,则将其丢弃。在本实施例中,风险消除策略可以openflow流表中的功能项表示。例如,对于当虚拟交换机接收到物理交换机发出的bpdu包时将其丢弃的策略,可在openflow流表中表示如下:table=0,priority=2048,dl_type=0x010bactions=drop又如,对于当虚拟交换机上的隧道端口接收到相应的广播包时将其丢弃的策略,可在openflow流表中表示如下:table=110,priority=512,dl_dst=01:00:00:00:00:00/01:00:00:00:00:00,in_port=3(隧道端口号),actions=drop在本实施例中,优选地,策略生成器320将openflow流表以全量下发的方式发送,也就是说,向虚拟网络中的所有虚拟交换机下发新生成的openflow流表。图4为按照本发明另一个实施例的用于消除虚拟网络内环路引发的风险的方法。示例性地,这里利用图3所示的装置来实现本实施例的方法。但是需要指出的是,本实施例的方法不局限于特定结构的装置。参见图4,在步骤s410,流量生成器310根据从云平台数据库50获取的网络数据生成相应的探测数据包并通过与虚拟交换机210的连接端口向虚拟网络发送。随后,在步骤s420,装置30通知代理节点410-430开始检测各自关联的虚拟交换机210-230的端口。接着进入步骤s430,装置30从代理节点410-430接收对端口的检测结果。随后进入步骤s440,策略生成器320根据代理节点反馈的检测结果判断虚拟网络中是否存在环路。如果存在,则进入步骤s450,否则,退出方法流程。在步骤s440中,优选地,策略生成器320可采用上面所述的方式来判断环路的存在。在步骤s450,策略生成器320生成相应的openflow流表并下发至各个代理节点410-430。随后进入步骤s460,代理节点410-430将接收到openflow流表写入各自关联的虚拟交换机210-230中。图5为按照本发明另一个实施例的用于消除虚拟网络内环路引发的风险的装置的框图。图5所示的装置50包含存储器50、处理器520以及存储在存储器50上并可在处理器520上运行的计算机程序530,其中,计算机程序530通过在处理器520上运行以可执行如上借助图1-3所述实施例的方法。按照本发明的一个方面,提供一种计算机可读存储介质,其上存储计算机程序,该程序被处理器执行时实现借助图4所述实施例的方法。提供本文中提出的实施例和示例,以便最好地说明按照本技术及其特定应用的实施例,并且由此使本领域的技术人员能够实施和使用本发明。但是,本领域的技术人员将会知道,仅为了便于说明和举例而提供以上描述和示例。所提出的描述不是意在涵盖本发明的各个方面或者将本发明局限于所公开的精确形式。鉴于以上所述,本公开的范围通过以下权利要求书来确定。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1