CN112671583B - 环形网络的拓扑修剪方法、装置和虚拟交换机 - Google Patents

环形网络的拓扑修剪方法、装置和虚拟交换机 Download PDF

Info

Publication number
CN112671583B
CN112671583B CN202011563198.6A CN202011563198A CN112671583B CN 112671583 B CN112671583 B CN 112671583B CN 202011563198 A CN202011563198 A CN 202011563198A CN 112671583 B CN112671583 B CN 112671583B
Authority
CN
China
Prior art keywords
port
mac address
virtual switch
ring network
access control
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
Application number
CN202011563198.6A
Other languages
English (en)
Other versions
CN112671583A (zh
Inventor
陈海林
王力
王泽�
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Huayao Technology Co ltd
Original Assignee
Beijing Huayao Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Huayao Technology Co ltd filed Critical Beijing Huayao Technology Co ltd
Priority to CN202011563198.6A priority Critical patent/CN112671583B/zh
Publication of CN112671583A publication Critical patent/CN112671583A/zh
Application granted granted Critical
Publication of CN112671583B publication Critical patent/CN112671583B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Small-Scale Networks (AREA)

Abstract

本发明实施例提供一种环形网络的拓扑修剪方法、装置和虚拟交换机。该方法应用于环形网络中包括的目标虚拟交换机,环形网络由端口按设定方式连接的多个虚拟机和多个虚拟交换机构成,目标虚拟交换机是多个虚拟交换机中的任一个,目标虚拟交换机包括第一端口,该方法包括:通过第一端口接收到第一虚拟机的第二端口发送的第一BPDU报文,第一BPDU报文中包括第二端口的MAC地址;若第一端口的MAC地址为空,则设置第一端口的MAC地址为第二端口的MAC地址;基于设置好的第一端口的MAC地址,通过执行生成树协议,以完成环形网络的拓扑修剪,从而解决网络风暴。

Description

环形网络的拓扑修剪方法、装置和虚拟交换机
技术领域
本发明涉及通信技术领域,尤其涉及一种环形网络的拓扑修剪方法、装置和虚拟交换机。
背景技术
如今网络技术的发达,使数据传输变得更加的快捷,极大的方便了用户对数据的获取。网络技术的发达得益于虚拟网络的成熟应用,虚拟网络可以灵活的布置网络拓扑。但是由于某些网络拓扑结构布局不周,形成环形网络,使得数据一直在闭环网络中传输,造成网络风暴,消耗虚拟交换机资源,甚至导致网络瘫痪。
目前生成树(Spanning Tree Protocol,简称STP)协议有助于解决环形网络,其运行机理是通过广播节点信息发现网络中的环路,并有选择的对某个端口进行阻塞,最终将环形网络结构修剪成无环路的树形网络结构,从而防止报文在环形网络中不断循环,使得虚拟交换机由于重复接收大量相同的报文造成处理能力下降。
在开源虚拟交换机(Open VSwitch,简称OVS)与虚拟机构成的环形网络中,OVS通过利用vhost-user模式与虚拟机进行数据传输,从而提高数据传输的速度。但在OVS利用vhost-user模式与虚拟机进行数据传输的过程中,STP协议无法对环形网络进行修剪,从而无法解决网络风暴的问题。
发明内容
本发明实施例提供一种环形网络的拓扑修剪方法、装置、虚拟交换机,能够解决网络风暴的问题。
第一方面,本发明实施例提供一种环形网络的拓扑修剪方法,应用于环形网络中包括的目标虚拟交换机,所述环形网络由端口按设定方式连接的多个虚拟机和多个虚拟交换机构成,所述目标虚拟交换机是所述多个虚拟交换机中的任一个,所述目标虚拟交换机包括第一端口,该方法包括:
通过所述第一端口接收到第一虚拟机的第二端口发送的第一桥协议数据单元报文,所述第一桥协议数据单元报文中包括所述第二端口的媒体访问控制地址;
若所述第一端口的媒体访问控制地址为空,则设置所述第一端口的媒体访问控制地址为所述第二端口的媒体访问控制地址;
基于设置好的所述第一端口的媒体访问控制地址,通过执行生成树协议,以完成所述环形网络的拓扑修剪。
第二方面,本发明实施例提供一种环形网络的拓扑修剪装置,位于环形网络中包括的目标虚拟交换机中,所述环形网络由端口按设定方式连接的多个虚拟机和多个虚拟交换机构成,所述目标虚拟交换机是所述多个虚拟交换机中的任一个,所述目标虚拟交换机包括第一端口,该装置包括:
接收模块,用于通过所述第一端口接收到第一虚拟机的第二端口发送的第一桥协议数据单元报文,所述第一桥协议数据单元报文中包括所述第二端口的媒体访问控制地址;
配置模块,用于若所述第一端口的媒体访问控制地址为空,则设置所述第一端口的媒体访问控制地址为所述第二端口的媒体访问控制地址;
修剪模块,用于基于设置好的所述第一端口的媒体访问控制地址,通过执行生成树协议,以完成所述环形网络的拓扑修剪。
第三方面,本发明实施例提供一种虚拟交换机,位于环形网络中,所述环形网络由端口按设定方式连接的多个虚拟机和多个虚拟交换机构成,所述虚拟交换机是所述多个虚拟交换机中的任一个,
所述虚拟交换机包括:第一端口、处理器、存储器,其中,所述存储器上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行:
通过所述第一端口接收到第一虚拟机的第二端口发送的第一桥协议数据单元报文,所述第一桥协议数据单元报文中包括所述第二端口的媒体访问控制地址;
若所述第一端口的媒体访问控制地址为空,则设置所述第一端口的媒体访问控制地址为所述第二端口的媒体访问控制地址;
基于设置好的所述第一端口的媒体访问控制地址,通过执行生成树协议,以完成所述环形网络的拓扑修剪。
第四方面,本发明实施例提供了一种非暂时性机器可读存储介质,非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被虚拟交换机的处理器执行时,使处理器至少可以实现如第一方面所述的环形网络的拓扑修剪方法。
在本发明实施例提供的一种环形网络的拓扑修剪方法,应用于环形网络中包括的目标虚拟交换机,环形网络由端口按设定方式连接的多个虚拟机和多个虚拟交换机构成,目标虚拟交换机是多个虚拟交换机中的任一个,目标虚拟交换机包括第一端口。
假设环形网络中包括:目标虚拟交换机、第一虚拟机,其中,目标虚拟交换机的第一端口与第一虚拟机的第二端口相连,该方法包括:通过第一端口接收到第一虚拟机的第二端口发送的第一桥协议数据单元(Bridge Protocol Data Unit,简称BPDU)报文,第一BPDU报文中包括第二端口的媒体访问控制(Media Access Control,简称MAC)地址,若第一端口的MAC地址为空,则设置第一端口的MAC地址为第二端口的MAC地址,从而基于设置好的第一端口的MAC地址,通过执行STP协议,以完成所述环形网络的拓扑修剪。本方案通过对MAC地址为空的目标虚拟交换机的端口进行设置,从而保证环形网络中的各个虚拟交换机都能正常转发BPDU报文,以便各个虚拟交换机通过执行STP协议对环形网络进行修剪,避免网络风暴。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种环形网络的场景示意图;
图2为本发明实施例提供的另一种环形网络的场景示意图;
图3为本发明实施例提供的一种环形网络的拓扑修剪方法的流程图;
图4为本发明实施例提供的一种端口MAC地址学习结果的示意图;
图5为本发明实施例提供的一种STP协议执行过程的示意图;
图6为本发明实施例提供的一种环形网络的拓扑修剪方法的流程图;
图7为本发明实施例提供的一种环形网络的拓扑修剪装置的结构示意图;
图8为与图7所示实施例提供的环形网络的拓扑修剪装置对应的虚拟交换机的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式。
取决于语境,如在此所使用的词语“如果”、“若”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。
另外,下述各方法实施例中的步骤时序仅为一种举例,而非严格限定。
在介绍本发明实施例提供的环形网络的拓扑修剪方法之前,首先介绍一下某些虚拟交换机在执行STP协议,修剪环形网络出现的问题:有些情况下,为了获取更快的数据传输速度,OVS会结合数据平面开发套件(Data Plane Development Kit,简称DPDK)与虚拟机进行数据传输,并且在数据传输的过程中会控制OVS开启vhost-user模式。假设多个OVS与多个虚拟机形成了环形网络,如果不对环形网络进行拓扑的修剪,会导致网络风暴。目前,通过控制多个OVS执行STP协议,可以将环形网络修剪成为一个树形结构的网络。但是OVS在执行STP协议时,需要转发相应的BPDU报文,来确定最终的拓扑结构,由于OVS开启vhost-user模式时,OVS与虚拟机相连的端口的MAC地址为空,也就无法转发相应的BPDU报文,导致STP协议无法正常修剪环形网络,无法解决网络风暴的问题。
为了解决上述问题,本发明提供了一种环形网络的拓扑修剪方法,通过将MAC地址为空的虚拟交换机的端口的MAC地址设置为与之相连的虚拟机的端口的MAC地址,从而保证BPDU报文的正常转发,以便环形网络中的多个虚拟交换机能够正常执行STP协议,以便完成环形网络的拓扑修剪。
该方法应用于开启vhost-user模式的虚拟交换机,或者由于其他原因与虚拟机相连的端口的MAC地址为空的虚拟交换机,在此不做限定。
下面结合以下一些实施例对本文提供的环形网络的拓扑修剪方法的执行过程进行说明。
图1为本发明实施例提供的一种环形网络的场景示意图,如图1所示,该环形网络由端口按设定方式连接的多个虚拟机和多个虚拟交换机构成,具体地,该环形网络中包括虚拟机a、虚拟机b、虚拟交换机c、虚拟交换机d、虚拟交换机e、虚拟交换机f。
在创建上述环形网络的过程中,为每个虚拟机以及每个虚拟交换机创建两个端口,用于与相邻的两个设备连接。具体地,如图1中所示,假设为虚拟机a添加端口a1和端口a2,为虚拟机b添加端口b1和端口b2,为虚拟交换机c添加端口c1和端口c2,为虚拟交换机d添加端口d1和端口d2,为虚拟交换机e添加端口e1和端口e2,为虚拟交换机f添加端口f1和端口f2。
其中,端口a1与端口d1相连,端口a2与端口c1相连,端口c2与端口b1相连,端口b2与端口f1相连,端口f2与端口e2相连,端口e1与端口d2相连。
由此可见,上述“端口按设定方式连接”是指能够逐个依次连接虚拟机和虚拟交换机的端口,以构成环形形状的网络。
假设该环形网络中与虚拟机相连的虚拟交换机均开启了vhost-user模式,在创建上述各个端口的过程中,会为每个虚拟机的端口配置好MAC地址,而针对虚拟交换机的端口来说,与虚拟机相连的端口的MAC地址为空,不与虚拟机相连的端口被配置好MAC地址。基于此,如图1中所示,上述端口的MAC地址的创建结果如下:
端口a1的MAC地址为fe:e1:fb:9a:98:10,端口a2的MAC地址为fe:e1:fb:9a:98:11;端口b1的MAC地址为fe:e1:fb:9a:98:12,端口b2的MAC地址为fe:e1:fb:9a:98:13;端口c1和端口c2的MAC地址为空;端口d1的MAC地址为空,端口d2的MAC地址为fe:e1:fb:9a:98:14;端口e1的MAC地址为fe:e1:fb:9a:98:15,端口e2的MAC地址为fe:e1:fb:9a:98:16;端口f1的MAC地址为空,端口f2的MAC地址为fe:e1:fb:9a:98:17。
如上文所述,图1中创建的各个虚拟机用于实现与虚拟交换机的通信。为实现该通信功能,可选地,图2为本发明实施例提供的另一种环形网络的场景示意图,如图2所示,可以通过在虚拟机中创建网桥的形式来实现。具体地,如图2中所示,可以在虚拟机a中创建网桥A,并为网桥A添加端口a1和端口a2这两个端口,同样地,可以在虚拟机b中创建网桥B,并为网桥B添加端口b1和端口b2这两个端口。
结合图1中所示例的环形网络,下面具体说明环形网络的拓扑修剪方法的执行过程。
图3为本发明实施例提供的一种环形网络的拓扑修剪方法的流程图,如图3所示,该环形网络的拓扑修剪方法可以包括如下步骤:
301、目标虚拟交换机通过第一端口接收到第一虚拟机的第二端口发送的第一BPDU报文。
302、若第一端口的MAC地址为空,则目标虚拟交换机设置第一端口的MAC地址为第二端口的MAC地址。
303、目标虚拟交换机基于设置好的第一端口的MAC地址,通过执行生成树协议,以完成环形网络的拓扑修剪。
本实施例提供的拓扑修剪方法可以由环形网络中包括的目标虚拟交换机执行,目标虚拟交换机是环形网络中包含的多个虚拟交换机中的任一个,目标虚拟交换机包括第一端口。可选地,环形网络中的多个虚拟交换机可以是能够实现网络交换功能的任一种虚拟交换机,可以是OVS或者其他可以支持数据快速传输的虚拟交换机。在vhost-user模式下,会设置有与虚拟交换机通信的虚拟机,虚拟机可以运行在QEMU进程中,虚拟机内部署有与虚拟交换机通信所需的相关运行环境和功能组件。
实际上,对环形网络进行拓扑修剪,主要是通过STP协议来实现的。为此,需配置环形网络中的所有虚拟交换机、虚拟机都支持STP协议。
可以理解的是,在STP协议的执行过程中,环形网络中包含的各个设备(包括各个虚拟交换机、虚拟机)需要基于各端口的MAC地址等信息完成根桥、根端口等的选定过程,因此,需要保证各个设备的各端口具有明确的MAC地址。而如图1中所示,在创建环形网络后,有些虚拟交换机的有些端口并未具有MAC地址,通过本实施例提供的方案即可以让这些没有MAC地址的端口学习到合适的MAC地址。
本实施例中,假设目标虚拟交换机的第一端口的MAC地址为空,需要学习出第一端口的MAC地址。
为便于理解,结合图1所示环形网络来示例性说明,假设目标虚拟交换机为图1中示意的虚拟交换机d,第一端口为虚拟交换机d的端口d1。
在环形网络中开始执行STP协议时,环形网络中的任一设备会通过其端口将包含自身信息的BPDU报文传输至连接的下一个设备。其中,自身信息包括但不限于:协议标识、MAC地址、端口标识、桥标识,等等。
基于此,在图1中,虚拟交换机d可以通过端口d1接收到虚拟机a通过端口a1发送的BPDU报文,也可以通过端口d2接收到虚拟交换机e通过端口e1发送的BPDU报文。
虚拟交换机d的端口d2由于与虚拟交换机e相连,预先配置有MAC地址,因此,虚拟交换机d对通过端口d2接收到的BPDU报文按照执行STP协议的正常处理过程进行处理即可。
虚拟交换机d的端口d1由于与虚拟机a相连,其MAC地址为空,因此,虚拟交换机d在通过端口d1接收到虚拟机a通过端口a1发送的BPDU报文后,确定端口d1的MAC地址为空,则学习该BPDU报文中携带的端口a1的MAC地址为自身端口d1的MAC地址。这样,如图4中所示,端口d1的MAC地址最终设置为端口a1的MAC地址。
可以理解的是,虚拟交换机d在将端口d1的MAC地址设置为端口a1的MAC地址后,继续正常的执行STP协议,比如包括将从虚拟机a接收的BPDU报文通过端口d2转发至虚拟交换机e等步骤。
上文中以目标虚拟交换机为图1中示例的虚拟交换机d,第一端口为d1端口为例介绍了d1端口的MAC地址的学习过程。可以理解的是,其他MAC地址被初始设置为空的虚拟交换机的端口的MAC地址学习过程与之相似。
举例来说,假设目标虚拟交换机为图1中示意的虚拟交换机c,虚拟交换机c具有两个MAC地址为空的端口:端口c1和端口c2。虚拟交换机c可以通过端口c1接收虚拟机a通过端口a2发送的BPDU报文,也可以通过端口c2接收虚拟机b通过端口b1发送的BPDU报文。当虚拟交换机c通过端口c1接收到虚拟机a通过端口a2发送的BPDU报文(为区别,称为第一BPDU报文)时,确定端口c1的MAC地址为空,则解析第一BPDU报文中的源MAC地址,即端口a2的MAC地址,并将自身的端口c1的MAC地址设置为端口a2的MAC地址。同理,当虚拟交换机c通过端口c2接收到虚拟机b通过端口b1发送的BPDU报文(为区别,称为第二BPDU报文)时,确定端口c2的MAC地址为空,则解析第二BPDU报文中的源MAC地址,即端口b1的MAC地址,并将自身的端口c2的MAC地址设置为端口b1的MAC地址。设置结果如图4中所示。
针对图1中示意的虚拟交换机c、虚拟交换机d和虚拟交换机f都执行MAC地址学习过程,便可以使得各自的MAC地址为空的端口都可以学习到MAC地址。基于各个虚拟交换机的端口MAC地址的学习结果,继续在环形网络中执行STP协议,这样最终可以确定出需要被阻塞的端口,以完成环形网络的拓扑修剪任务。
综上,假设目标虚拟交换机具有的两个端口分别称为第一端口和第三端口,那么针对该目标虚拟交换机来说,在其执行STP协议的过程中,可以执行如下步骤:
通过第一端口接收到第一虚拟机的第二端口发送的第一BPDU报文,第一BPDU报文中包括第二端口的MAC地址;若第一端口的MAC地址为空,则设置第一端口的MAC地址为第二端口的MAC地址;以及,
通过第三端口接收到第二虚拟机的第四端口发送的第二BPDU报文,第二BPDU报文中包括第四端口的MAC地址;若第三端口的MAC地址为空,则设置第三端口的MAC地址为第四端口的MAC地址;
基于设置好的第一端口的MAC地址和第三端口的MAC地址,通过执行STP协议,以完成环形网络的拓扑修剪。
综上,按照上述设置目标虚拟交换机端口的MAC地址的方式,对环形网络中的多个虚拟交换机的端口进行MAC地址的设置,以便环形网络中的所有虚拟交换机均能顺利执行STP协议,从而对环形网络进行拓扑修剪,避免网络风暴。
下面,简单介绍下STP协议的执行过程:
图5为本发明实施例提供的一种STP协议执行过程的示意图。为便于描述,结合图5来示例性说明STP协议的执行过程,如图5所示,环形网络有三个交换设备构成,分别为,交换设备A、交换设备B和交换设备C。其中,交换设备A接入该环形网络的端口为端口A1和端口A2;交换设备B接入该环形网络的端口为端口B1和端口B2;交换设备C接入该环形网络的端口为端口C1和端口C2。
图5中示意的交换设备可以包括前述实施例中的虚拟交换机、虚拟机。首先,各个交换设备会生成以自己为根桥的BPDU,根路径开销为0,指定桥ID为自身设备ID,指定端口为自身某端口。之后,各个交换设备将自身生成的BPDU发送出去,同时也会接收到其他交换设备发送的BPDU。通过不断对比接收到的BPDU以及自己的BPDU中所携带的多种信息,以便最终确定出根桥、根端口、指定端口以及非指定端口。
其中,BPDU中会包含交换设备对应的桥标识(称为桥ID),桥ID由设定的桥优先级和MAC地址来确定。可以将桥ID最小的交换设备确定为根桥。当预先设置图5中所有交换设备具有相同的桥优先级时,可以确定MAC地址最小的交换设备为根桥。在图5中,假设交换设备A为根桥。
之后,分别计算其他交换设备的各端口到根桥的路径开销,确定最小路径开销所对应的端口为根端口。其中,每一个虚拟设备中均有一个根端口。
可选地,以交换设备B为例,确定根端口的过程可以实现为:
确定端口B1和端口B2到根桥(交换设备A)的路径开销是否相同,其中,路径开销与端口到根桥的路径上的链路带宽有关,链路带宽越大,路径开销越小;
若端口B1和端口B2到交换设备A的路径开销不相同,则将交换设备B中到交换设备A的路径开销小的端口确定为虚拟交换机d的根端口;
若端口B1和端口B2到交换设备A的路径开销相同,则确定与端口B1和端口B2各自相连的交换设备的标识是否相同,即确定交换设备A和交换设备C的标识是否相同;
若端口B1和端口B2各自相连的虚拟设备的标识不同,则将与最小标识的交换设备相连的端口确定为交换设备B的根端口;
若端口B1和端口B2各自相连的交换设备的标识相同,则确定端口B1和端口B2的对端端口的MAC地址是否相同,即确定端口A1和端口C2的MAC地址是否相同;
若端口B1和端口B2的对端端口的MAC地址不同,则将与对端端口的MAC地址最小的端口确定为交换设备B的根端口。
进一步假设交换设备B的根端口为端口A1。按照上述方式确定出交换设备C的根端口为端口C1。
然后在剩余的端口中确定出指定端口。其中,与根端口相连的端口为指定端口,且根桥的端口均为指定端口。因此,端口A1和端口A2也为指定端口。
由于需要将环形网络修剪成树形结构的网络,因此,需要在剩余的两个端口中,即端口B2和端口C2确定出最后一个指定端口,从而对非指定端口进行阻塞。
可选地,上述确定最后一个指定端口的过程可以实现为:
确定端口B2和端口C2到根桥(交换设备A)的路径开销是否相同;
若端口B2和端口C2到交换设备A的路径开销不相同,则将到交换设备A的路径开销小的端口确定为指定端口;
若端口B2和端口C2到交换设备A的路径开销相同,则确定端口B2和端口C2各自所在交换设备的标识是否相同,即确定交换设备B和交换设备C的标识是否相同;
若端口B2和端口C2各自所在交换设备的标识不同,则将所在交换设备标识最小的端口确定为指定端口;
若端口B2和端口C2各自所在交换设备的标识相同,则确定端口B2和端口C2各自的MAC地址是否相同;
若端口B2和端口C2各自的MAC地址不同,则将MAC地址最小的端口确定为指定端口。
进一步假设最后一个指定端口为B2,则将端口C2确定为非指定端口,从而对端口C2进行阻塞,以便将环形网络修剪为树形结构的网络,避免了网络风暴。
图6为本发明实施例提供的一种环形网络的拓扑修剪方法的流程图,如图6所示,该方法可以包括如下步骤:
601、响应于初始化操作,目标虚拟交换机将自身的第一端口的状态设为第一状态。
602、目标虚拟交换机通过第一端口接收到第一虚拟机的第二端口发送的第一桥协议数据单元报文,第一桥协议数据单元报文中包括第二端口的媒体访问控制地址。
603、目标虚拟交换机检测到第一端口的状态为第一状态时,确定第一端口的MAC地址为空,设置第一端口的媒体访问控制地址为第二端口的媒体访问控制地址,将第一端口的状态设为第二状态。
604、目标虚拟交换机基于设置好的第一端口的媒体访问控制地址,通过执行生成树协议,以完成环形网络的拓扑修剪。
可选地,概括来说,上述初始化操作是指创建环形网络并完成初始配置的操作,比如包括创建各虚拟机和虚拟交换机及其各自对应的端口,建立端口之间的连接,以及为端口进行MAC地址的配置。
如前文所述,针对虚拟交换机来说,有些端口会被初始化设置有特定的MAC地址,但是有些端口的MAC地址却设置为空,即无MAC地址。当某虚拟交换机的某端口的MAC地址为空时,此时,该虚拟交换机将该端口的状态设置为预设的第一状态,用于表明该端口还处于未设置好MAC地址的状态。
实际应用中,第一状态的表示方式可以自定义,比如可以设为特定的标识值,比如01,也可以设置为特定的字符串,比如learning。
本实施例中,假设目标虚拟交换机的第一端口因为MAC地址为空而设为第一状态,当启动执行STP协议后,假设目标虚拟交换机通过第一端口接收到第一虚拟机通过第二端口发送的BPDU报文,此时,目标虚拟交换机查看第一端口的状态以确定该第一端口处于MAC地址为空的第一状态,则解析该BPDU报文中携带的第二端口的MAC地址,并将第一端口的MAC地址设置为该第二端口的MAC地址,以完成第一端口的MAC地址的学习,由于此时已经学习到了MAC地址,所以目标虚拟交换机将第一端口的状态更新为第二状态,以表明第一端口已经设有MAC地址。
同理,第二状态的表示方式可以自定义,比如可以设为特定的标识值,比如02,也可以设置为特定的字符串,比如receiving。
环形网络中的各个虚拟交换机都基于上述过程完成自身端口的MAC地址的学习。从而,基于已经学习到的端口MAC地址,环形网络中的各虚拟交换机以及虚拟机通过执行STP协议以完成拓扑修剪处理,阻塞某端口。
值得说明的是,若目标虚拟交换机的任一端口被删除,则目标虚拟交换机可以将该任一端口的状态设为第三状态,比如标记为removing,表明该端口被删除,不可用。
图7为本发明实施例提供的一种环形网络的拓扑修剪装置的结构示意图,该装置位于环形网络中包括的目标虚拟交换机中,所述环形网络由端口按设定方式连接的多个虚拟机和多个虚拟交换机构成,所述目标虚拟交换机是所述多个虚拟交换机中的任一个,所述目标虚拟交换机包括第一端口;如图7所示,该装置包括:接收模块11、配置模块12、修剪模块13。
接收模块11,用于通过所述第一端口接收到第一虚拟机的第二端口发送的第一桥协议数据单元报文,所述第一桥协议数据单元报文中包括所述第二端口的媒体访问控制地址。
配置模块12,用于若所述第一端口的媒体访问控制地址为空,则设置所述第一端口的媒体访问控制地址为所述第二端口的媒体访问控制地址。
修剪模块13,用于基于设置好的所述第一端口的媒体访问控制地址,通过执行生成树协议,以完成所述环形网络的拓扑修剪。
可选地,所述目标虚拟交换机还包括第三端口,所述接收模块11,还用于通过所述第三端口接收到第二虚拟机的第四端口发送的第二桥协议数据单元报文,所述第二桥协议数据单元报文中包括所述第四端口的媒体访问控制地址。
所述配置模块12,还用于若所述第三端口的媒体访问控制地址为空,则设置所述第三端口的媒体访问控制地址为所述第四端口的媒体访问控制地址。
所述修剪模块13,还用于基于设置好的所述第一端口的媒体访问控制地址和所述第三端口的媒体访问控制地址,通过执行生成树协议,以完成所述环形网络的拓扑修剪。
可选地,所述目标虚拟交换机还包括第三端口,所述第三端口连接另一虚拟交换机,所述第三端口被配置有媒体访问控制地址。
可选地,所述多个虚拟机中均创建有网桥,所述网桥被配置有具有媒体访问控制地址的两个端口。
可选地,上述装置还包括:设置模块和确定模块。
所述设置模块,用于响应于初始化操作,将所述第一端口的状态设为第一状态。
所述确定模块,用于检测到所述第一端口的状态为所述第一状态时,确定所述第一端口的媒体访问控制地址为空。
可选地,所述设置模块还用于设置所述第一端口的媒体访问控制地址为所述第二端口的媒体访问控制地址后,将所述第一端口的状态设为第二状态。
可选地,所述设置模块还用于若所述目标虚拟交换机的任一端口被删除,则将所述任一端口的状态设为第三状态。
图7所示装置可以执行前述图1至图6所示实施例中提供的环形网络的拓扑修剪方法,详细的执行过程和技术效果参见前述实施例中的描述,在此不再赘述。
在一个可能的设计中,上述图7所示环形网络的拓扑修剪装置的结构可实现为一虚拟交换机。该虚拟交换机位于环形网络中,所述环形网络由端口按设定方式连接的多个虚拟机和多个虚拟交换机构成,所述虚拟交换机是所述多个虚拟交换机中的任一个,如图8所示,该虚拟交换机可以包括:处理器21、存储器22、第一端口23。其中,存储器22上存储有可执行代码,当可执行代码被处理器21执行时,使处理器21执行:
通过所述第一端口接收到第一虚拟机的第二端口发送的第一桥协议数据单元报文,所述第一桥协议数据单元报文中包括所述第二端口的媒体访问控制地址;
若所述第一端口的媒体访问控制地址为空,则设置所述第一端口的媒体访问控制地址为所述第二端口的媒体访问控制地址;
基于设置好的所述第一端口的媒体访问控制地址,通过执行生成树协议,以完成所述环形网络的拓扑修剪。
可选地,上述虚拟交换机还包括第三端口,所述处理器21还用于:
通过所述第三端口接收到第二虚拟机的第四端口发送的第二桥协议数据单元报文,所述第二桥协议数据单元报文中包括所述第四端口的媒体访问控制地址;
若所述第三端口的媒体访问控制地址为空,则设置所述第三端口的媒体访问控制地址为所述第四端口的媒体访问控制地址;
基于设置好的所述第一端口的媒体访问控制地址和所述第三端口的媒体访问控制地址,通过执行生成树协议,以完成所述环形网络的拓扑修剪。
另外,本发明实施例提供了一种非暂时性机器可读存储介质,非暂时性机器可读存储介质上存储有可执行代码,当可执行代码被虚拟交换机的处理器执行时,使处理器至少可以实现如前述图1至图6所示实施例中提供的环形网络的拓扑修剪方法。
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助加必需的通用硬件平台的方式来实现,当然也可以通过硬件和软件结合的方式来实现。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以计算机产品的形式体现出来,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (11)

1.一种环形网络的拓扑修剪方法,其特征在于,应用于环形网络中包括的目标虚拟交换机,所述环形网络由端口按设定方式连接的多个虚拟机和多个虚拟交换机构成,所述目标虚拟交换机是所述多个虚拟交换机中的任一个,所述目标虚拟交换机包括第一端口;
所述方法包括:
通过所述第一端口接收到第一虚拟机的第二端口发送的第一桥协议数据单元报文,所述第一桥协议数据单元报文中包括所述第二端口的媒体访问控制地址;
若所述第一端口的媒体访问控制地址为空,则设置所述第一端口的媒体访问控制地址为所述第二端口的媒体访问控制地址;
基于设置好的所述第一端口的媒体访问控制地址,通过执行生成树协议,以完成所述环形网络的拓扑修剪。
2.根据权利要求1所述的方法,其特征在于,所述目标虚拟交换机还包括第三端口,所述方法还包括:
通过所述第三端口接收到第二虚拟机的第四端口发送的第二桥协议数据单元报文,所述第二桥协议数据单元报文中包括所述第四端口的媒体访问控制地址;
若所述第三端口的媒体访问控制地址为空,则设置所述第三端口的媒体访问控制地址为所述第四端口的媒体访问控制地址;
所述基于设置好的所述第一端口的媒体访问控制地址,通过执行生成树协议,以完成所述环形网络的拓扑修剪,包括:
基于设置好的所述第一端口的媒体访问控制地址和所述第三端口的媒体访问控制地址,通过执行生成树协议,以完成所述环形网络的拓扑修剪。
3.根据权利要求1所述的方法,其特征在于,所述目标虚拟交换机还包括第三端口,所述第三端口连接另一虚拟交换机,所述第三端口被配置有媒体访问控制地址。
4.根据权利要求1或2所述的方法,其特征在于,所述多个虚拟机中均创建有网桥,所述网桥被配置有具有媒体访问控制地址的两个端口。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
响应于初始化操作,将所述第一端口的状态设为第一状态;
检测到所述第一端口的状态为所述第一状态时,确定所述第一端口的媒体访问控制地址为空。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
设置所述第一端口的媒体访问控制地址为所述第二端口的媒体访问控制地址后,将所述第一端口的状态设为第二状态。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述目标虚拟交换机的任一端口被删除,则将所述任一端口的状态设为第三状态。
8.一种环形网络的拓扑修剪装置,其特征在于,位于环形网络中包括的目标虚拟交换机中,所述环形网络由端口按设定方式连接的多个虚拟机和多个虚拟交换机构成,所述目标虚拟交换机是所述多个虚拟交换机中的任一个,所述目标虚拟交换机包括第一端口;
所述装置包括:
接收模块,用于通过所述第一端口接收到第一虚拟机的第二端口发送的第一桥协议数据单元报文,所述第一桥协议数据单元报文中包括所述第二端口的媒体访问控制地址;
配置模块,用于若所述第一端口的媒体访问控制地址为空,则设置所述第一端口的媒体访问控制地址为所述第二端口的媒体访问控制地址;
修剪模块,用于基于设置好的所述第一端口的媒体访问控制地址,通过执行生成树协议,以完成所述环形网络的拓扑修剪。
9.根据权利要求8所述的装置,其特征在于,所述目标虚拟交换机还包括第三端口,
所述接收模块还用于:通过所述第三端口接收到第二虚拟机的第四端口发送的第二桥协议数据单元报文,所述第二桥协议数据单元报文中包括所述第四端口的媒体访问控制地址;
所述配置模块还用于:若所述第三端口的媒体访问控制地址为空,则设置所述第三端口的媒体访问控制地址为所述第四端口的媒体访问控制地址;
所述修剪模块具体用于:基于设置好的所述第一端口的媒体访问控制地址和所述第三端口的媒体访问控制地址,通过执行生成树协议,以完成所述环形网络的拓扑修剪。
10.一种虚拟交换机,其特征在于,位于环形网络中,所述环形网络由端口按设定方式连接的多个虚拟机和多个虚拟交换机构成,所述虚拟交换机是所述多个虚拟交换机中的任一个;
所述虚拟交换机包括:第一端口、处理器、存储器,其中,所述存储器上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行:
通过所述第一端口接收到第一虚拟机的第二端口发送的第一桥协议数据单元报文,所述第一桥协议数据单元报文中包括所述第二端口的媒体访问控制地址;
若所述第一端口的媒体访问控制地址为空,则设置所述第一端口的媒体访问控制地址为所述第二端口的媒体访问控制地址;
基于设置好的所述第一端口的媒体访问控制地址,通过执行生成树协议,以完成所述环形网络的拓扑修剪。
11.根据权利要求10所述的虚拟交换机,其特征在于,所述虚拟交换机还包括第三端口,所述处理器还用于:
通过所述第三端口接收到第二虚拟机的第四端口发送的第二桥协议数据单元报文,所述第二桥协议数据单元报文中包括所述第四端口的媒体访问控制地址;
若所述第三端口的媒体访问控制地址为空,则设置所述第三端口的媒体访问控制地址为所述第四端口的媒体访问控制地址;
基于设置好的所述第一端口的媒体访问控制地址和所述第三端口的媒体访问控制地址,通过执行生成树协议,以完成所述环形网络的拓扑修剪。
CN202011563198.6A 2020-12-25 2020-12-25 环形网络的拓扑修剪方法、装置和虚拟交换机 Active CN112671583B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011563198.6A CN112671583B (zh) 2020-12-25 2020-12-25 环形网络的拓扑修剪方法、装置和虚拟交换机

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011563198.6A CN112671583B (zh) 2020-12-25 2020-12-25 环形网络的拓扑修剪方法、装置和虚拟交换机

Publications (2)

Publication Number Publication Date
CN112671583A CN112671583A (zh) 2021-04-16
CN112671583B true CN112671583B (zh) 2023-04-14

Family

ID=75409182

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011563198.6A Active CN112671583B (zh) 2020-12-25 2020-12-25 环形网络的拓扑修剪方法、装置和虚拟交换机

Country Status (1)

Country Link
CN (1) CN112671583B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103685079A (zh) * 2014-01-02 2014-03-26 武汉迈威实达软件有限公司 自适应的以太网单环网算法
CN110266575A (zh) * 2019-05-10 2019-09-20 贵州电网有限责任公司 一种电力专用工业以太网交换机环网快速收敛方法、系统和存储介质
JP2019201416A (ja) * 2019-07-10 2019-11-21 Necプラットフォームズ株式会社 通信装置、通信装置の制御方法、及び、プログラム

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI254527B (en) * 2003-02-19 2006-05-01 Nec Corp Network system, spanning tree configuration method and spanning tree configuration node

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103685079A (zh) * 2014-01-02 2014-03-26 武汉迈威实达软件有限公司 自适应的以太网单环网算法
CN110266575A (zh) * 2019-05-10 2019-09-20 贵州电网有限责任公司 一种电力专用工业以太网交换机环网快速收敛方法、系统和存储介质
JP2019201416A (ja) * 2019-07-10 2019-11-21 Necプラットフォームズ株式会社 通信装置、通信装置の制御方法、及び、プログラム

Also Published As

Publication number Publication date
CN112671583A (zh) 2021-04-16

Similar Documents

Publication Publication Date Title
CN111654493B (zh) Openstack中拦截指定流量的方法、系统、存储介质及电子设备
US20150350023A1 (en) Data center network architecture
EP2774329B1 (en) Data center network architecture
US9337931B2 (en) Control and provisioning in a data center network with at least one central controller
US9819572B2 (en) Multiple ring identification and configuration protocol
EP3316555B1 (en) Mac address synchronization method, device and system
US20130108264A1 (en) Hierarchy of control in a data center network
EP1309129A2 (en) Method and apparatus for automatic load-balancing on multisegment devices
US7720001B2 (en) Dynamic connectivity determination
US12008382B2 (en) Automatic formation of a virtual chassis using zero touch provisioning
US20200228448A1 (en) Packet processing method and apparatus
US20190199622A1 (en) Data packet forwarding unit in a data transmission network
US20150036546A1 (en) Multiple ring identification and configuration protocol
CN110086676B (zh) 一种分布式路由器的配置方法及相关设备
CN112671583B (zh) 环形网络的拓扑修剪方法、装置和虚拟交换机
CN110830598B (zh) Bgp会话建立、发送接口地址和别名的方法及网络设备
CN113395334B (zh) 服务功能链在线更新方法、系统及设备
CN111327543A (zh) 报文转发方法及装置、存储介质、电子装置
CN111464436B (zh) 一种解决rstp协议单端口环路的方法
EP4075739B1 (en) Service chain forwarding control methods and devices
US10270655B2 (en) Method for running a computer network and computer network
CN108111419B (zh) 一种路径选择的方法及装置
CN112732226B (zh) 一种sdn网络编程方法、装置以及可读计算机存储介质
CN114124780B (zh) 路由发布方法、装置、电子设备及存储介质
US11252073B1 (en) Fast, reliable, and extensible active-standby multi-vendor link redundancy

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant