CN104660506B - 一种数据包转发的方法、装置及*** - Google Patents
一种数据包转发的方法、装置及*** Download PDFInfo
- Publication number
- CN104660506B CN104660506B CN201310596495.4A CN201310596495A CN104660506B CN 104660506 B CN104660506 B CN 104660506B CN 201310596495 A CN201310596495 A CN 201310596495A CN 104660506 B CN104660506 B CN 104660506B
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- vrm
- vswitch
- controller
- data packet
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/70—Virtual switches
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例提供了一种数据包转发的方法、装置及***,涉及通信领域,用以在虚拟部署控制器时,保证数据包的正常转发。所述方法,包括:第一虚拟交换机Vswitch接收管理虚拟机VRM发送的数据包;在所述第一Vswitch没有建立与控制器虚拟机间的连接时,所述第一Vswitch根据缺省转发表,转发所述数据包;其中,所述缺省转发表中记录了通过第一端口的数据包的转发信息;所述第一端口是所述VRM关联的所述第一Vswitch的端口;所述控制器虚拟机是用于管理Vswitch,且确定Vswitch转发数据包时的转发规则的虚拟机。本发明适用于控制器虚拟部署的场景。
Description
技术领域
本发明涉及通信领域,尤其涉及一种数据包转发的方法、装置及***。
背景技术
在SDN(Software Defined Network,软件定义网络)中,其核心技术是OpenFlow,OpenFlow技术的思想是将原本完全由交换机/路由器控制的数据包转发过程转化为由OpenFlow交换机和控制器控制器分别完成的独立过程。即在OpenFlow交换机上实现数据的转发,在控制器上实现对数据的转发控制,从而将数据转发层和控制层分离。
在SDN场景下,虚拟机需要将数据包经过与其相连的Vswitch(Virtual Switch,虚拟交换机)发送至目的端口,Vswitch在接收到数据包之后,向控制器发送Packin消息来获取目的端口,控制器根据接收的Packin消息向Vswitch发送Packetout消息来告知Vswitch此数据包的目的端口。进而,Vswitch接收到控制器发送的Packetout消息之后,按照控制器指示的转发方式将数据包发送至目的端口,完成虚拟机对数据包的转发。
在上述数据包转发的过程中,若将控制器虚拟部署时,Vswitch在控制器虚拟部署的过程中,接收到VRM(Virtual Resource Management,管理虚拟机)发送的数据包时,由于控制器没有创建完成,Vswitch无法在控制器中获取转发数据包的流表,则Vswitch无法将接收到的数据包进行转发。所以,在现有技术中,控制器必须是物理部署,这样,Vswitch在接收到VRM发送的数据包之时,可以通过在控制器获取的转发流表转发数据包,保证数据包的正常转发。
发明内容
本发明的实施例提供了一种数据包转发的方法、装置及***,用于在虚拟部署控制器时,保证数据包的正常转发。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,本发明实施例提供了一种数据包转发的方法,包括:第一虚拟交换机Vswitch接收管理虚拟机VRM发送的数据包;在所述第一Vswitch没有建立与控制器虚拟机间的连接时,所述第一Vswitch根据缺省转发表,转发所述数据包;其中,所述缺省转发表中记录了通过第一端口的数据包的转发信息;所述第一端口是所述VRM关联的所述第一Vswitch的端口;所述控制器虚拟机是用于管理Vswitch,且确定Vswitch转发数据包时的转发规则的虚拟机。
在第一方面的第一种可能的实现方式中,在所述第一Vswitch接收所述VRM发送的所述数据包之前,还包括:所述第一Vswitch接收所述VRM发送的第一消息;其中,所述第一Vswitch与所述VRM连接;所述第一消息包括:所述VRM的标识信息与网卡序号;所述第一Vswitch根据获取的所述第一消息中的所述VRM的标识信息与网卡序号创建所述缺省转发表。
结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,在所述第一Vswitch根据获取的所述第一消息创建所述缺省转发表之后,还包括:所述第一Vswitch建立与所述控制器虚拟机间的连接。
结合第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,还包括:在所述第一Vswitch建立了与所述控制器虚拟机间的连接时,所述第一Vswitch根据转发流表转发所述数据包;其中,所述转发流表是所述第一Vswitch通过所述控制器虚拟机获取的,用于转发数据包的流表。
结合第一方面,或第一方面的第一至第三任一种可能的实现方式,在第一方面的第四种可能的实现方式中,还包括:在所述第一Vswitch建立了与所述控制器虚拟机间的连接时,所述第一Vswitch删除所述缺省转发表。
第二方面,本发明实施例提供了一种数据包转发的方法,包括:管理虚拟机VRM向第一Vswitch发送数据包。
在第二方面的第一种可能的实现方式中,在所述VRM向所述第一Vswitch发送数据包之前,还包括:所述VRM向所述第一Vswitch发送第一消息;其中,所述第一Vswitch与所述VRM连接;所述第一消息包括:所述VRM的标识信息与网卡序号。
结合第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,在所述VRM向所述第一Vswitch发送第一消息之后,还包括:所述VRM创建控制器虚拟机;所述VRM向所述控制器虚拟机发送第二消息;其中,所述第二消息包括:所述VRM的标识信息、所述VRM的网卡序号以及所述VRM的网卡属性,第一虚拟机的标识信息、所述第一虚拟机的网卡序号以及所述第一虚拟机的网卡属性;所述第一虚拟机是所述VRM已创建出所述控制器虚拟机之外的虚拟机。
第三方面,本发明实施例提供了一种数据包转发的方法,包括:控制器虚拟机接收管理虚拟机VRM发送的第二消息;其中,所述第二消息包括:所述VRM的标识信息、所述VRM的网卡序号以及所述VRM的网卡属性,第一虚拟机的标识信息、所述第一虚拟机的网卡序号以及所述第一虚拟机的网卡属性;所述第一虚拟机是所述VRM已创建出所述控制器虚拟机之外的虚拟机;所述控制器虚拟机根据获取的所述第二消息确定所述控制器虚拟机管理的虚拟交换机Vswitch。
在第三方面的第一种可能的实现方式中,在所述控制器虚拟机根据获取的所述第二消息确定所述控制器虚拟机管理的虚拟交换机Vswitch之后,还包括:在所述第一Vswitch是所述控制器虚拟机管理的Vswitch时,所述控制器虚拟机建立与所述第一Vswitch间的连接。
结合第三方面的第一种可能的实现方式,在第三方面的第四种可能的实现方式中,在所述控制器虚拟机建立与所述第一Vswitch间的连接之后,还包括:所述控制器虚拟机向所述第一Vswitch发送转发流表。
第四方面,本发明实施例提供了一种虚拟交换机,包括:接收单元,用于接收管理虚拟机VRM发送的数据包;转发单元,用于在虚拟交换机没有建立与控制器虚拟机间的连接时,根据缺省转发表,转发所述数据包;其中,所述缺省转发表中记录了通过第一端口的数据包的转发信息;所述第一端口是所述VRM关联的所述虚拟交换机的端口;所述控制器虚拟机是用于管理Vswitch,且确定Vswitch转发数据包时的转发规则的虚拟机。
在第四方面的第一种可能的实现方式中,所述接收单元,还用于接收所述VRM发送的第一消息;其中,所述虚拟交换机与所述VRM连接;所述第一消息包括:所述VRM的标识信息与网卡序号;创建单元,用于根据所述接收单元接收的所述第一消息中的所述VRM的标识信息与网卡序号创建所述缺省转发表。
结合第四方面的第一种可能的实现方式,在第四方面的第二种可能的实现方式中,所述创建单元,还用于建立与所述控制器虚拟机间的连接。
结合第四方面的第二种可能的实现方式,在第四方面的第三种可能的实现方式中,所述转发单元,还用于在所述创建单元建立了所述虚拟交换机与所述控制器虚拟机间的连接时,根据转发流表转发所述数据包;其中,所述转发流表是所述虚拟交换机通过所述控制器虚拟机获取的,用于转发数据包的流表。
结合第四方面,或第四方面的第一至第三任一种可能的实现方式中,还包括:删除单元,用于在所述创建单元建立了所述虚拟交换机与所述控制器虚拟机间的连接时,删除所述缺省转发表。
第五方面,本发明实施例提供了一种管理虚拟机,包括:发送单元,用于向第一Vswitch发送数据包。
在第五方面的第一种可能的实现方式中,所述发送单元,还用于向所述第一Vswitch发送第一消息;其中,所述第一Vswitch与所述VRM连接;所述第一消息包括:所述VRM的标识信息与网卡序号。
结合第五方面的第一种可能的实现方式,在第五方面的第二种可能的实现方式中,还包括:创建单元,用于创建控制器虚拟机;所述发送单元,还用于向所述控制器虚拟机发送第二消息;其中,所述第二消息包括:所述VRM的标识信息、所述VRM的网卡序号以及所述VRM的网卡属性,第一虚拟机的标识信息、所述第一虚拟机的网卡序号以及所述第一虚拟机的网卡属性;所述第一虚拟机是所述VRM已创建出所述控制器虚拟机之外的虚拟机。
第六方面,本发明实施例提供了一种控制器虚拟机,包括:接收单元,用于接收管理虚拟机VRM发送的第二消息;其中,所述第二消息包括:所述VRM的标识信息、所述VRM的网卡序号以及所述VRM的网卡属性,第一虚拟机的标识信息、所述第一虚拟机的网卡序号以及所述第一虚拟机的网卡属性;所述第一虚拟机是所述VRM已创建出所述控制器虚拟机之外的虚拟机;确定单元,用于根据所述接收单元获取的所述第二消息确定所述控制器虚拟机管理的虚拟交换机Vswitch。
在第六方面的第一种可能的实现方式中,还包括:创建单元,用于在所述确定单元确定所述第一Vswitch是所述控制器虚拟机管理的Vswitch时,建立与所述第一Vswitch间的连接。
结合第六方面的第一种可能的实现方式,在第六方面的第二种可能的实现方式中,还包括:发送单元,用于向所述第一Vswitch发送转发流表。
第七方面,本发明实施例提供了一种物理机,包括:硬件层以及运行在所述硬件层上的虚拟交换机;其中,所述虚拟交换机用于:接收管理虚拟机VRM发送的数据包;在所述虚拟交换机没有建立与控制器虚拟机间的连接时,根据缺省转发表,转发所述数据包;其中,所述缺省转发表中记录了通过第一端口的数据包的转发信息;所述第一端口是所述VRM关联的所述虚拟交换机的端口;所述控制器虚拟机是用于管理虚拟交换机,且确定所述虚拟交换机转发数据包时的转发规则的虚拟机。
在第七方面的第一种可能的实现方式中,所述虚拟交换机还用于:接收所述VRM发送的第一消息;其中,所述虚拟交换机与所述VRM连接;所述第一消息包括:所述VRM的标识信息与网卡序号;根据获取的所述第一消息中的所述VRM的标识信息与网卡序号创建所述缺省转发表。
结合第七方面的第一种可能的实现方式,在第七方面的第二种可能的实现方式中,所述虚拟交换机还用于:建立与所述控制器虚拟机间的连接。
结合第七方面的第二种可能的实现方式,在第七方面的第三种可能的实现方式中,所述虚拟交换机还用于:在建立了与所述控制器虚拟机间的连接时,根据转发流表转发所述数据包;其中,所述转发流表是所述第一Vswitch通过所述控制器虚拟机获取的,用于转发数据包的流表。
结合第七方面,或第七方面的第一至第三任一种可能的实现方式中,所述虚拟交换机还用于:在建立了与所述控制器虚拟机间的连接时,删除所述缺省转发表。
第八方面,本发明实施例提供了一种物理机,包括:硬件层以及运行在所述硬件层上的管理虚拟机VRM;其中,所述VRM用于向虚拟交换机发送数据包。
在第八方面的第一种可能的实现方式中,所述VRM还用于:向所述第一Vswitch发送第一消息;其中,所述第一Vswitch与所述VRM连接;所述第一消息包括:所述VRM的标识信息与网卡序号。
结合第八方面的第一种可能的实现方式,在第八方面的第二种可能的实现方式中,所述VRM还用于:创建控制器虚拟机;向所述控制器虚拟机发送第二消息;其中,所述第二消息包括:所述VRM的标识信息、所述VRM的网卡序号以及所述VRM的网卡属性,第一虚拟机的标识信息、所述第一虚拟机的网卡序号以及所述第一虚拟机的网卡属性;所述第一虚拟机是所述VRM已创建除所述控制器虚拟机之外的虚拟机。
第九方面,本发明实施例提供了一种物理机,包括:硬件层以及运行在所述硬件层上的控制器虚拟机;其中,所述控制器虚拟机用于:接收管理虚拟机VRM发送的第二消息;其中,所述第二消息包括:所述VRM的标识信息、所述VRM的网卡序号以及所述VRM的网卡属性,第一虚拟机的标识信息、所述第一虚拟机的网卡序号以及所述第一虚拟机的网卡属性;所述第一虚拟机是所述VRM已创建除控制器虚拟机之外的虚拟机;根据获取的所述第二消息确定所述控制器虚拟机管理的虚拟交换机Vswitch。
在第九方面的第一种可能的实现方式中,所述控制器虚拟机还用于:在所述第一Vswitch是所述控制器虚拟机管理的Vswitch时,建立与所述第一Vswitch间的连接。
结合第九方面的第一种可能的实现方式,在第九方面的第二种可能的实现方式中,所述控制器虚拟机还用于:向所述第一Vswitch发送转发流表。
第十方面,本发明实施例提供了一种数据包转发的***,包括:虚拟交换机、管理虚拟机VRM以及控制器虚拟机,其中,所述虚拟交换机为上述实施例所述的虚拟交换机;所述管理虚拟机为上述实施例所述的管理虚拟机;所述控制器虚拟机为上述实施例所述的控制器虚拟机。
第十一方面,本发明实施例提供了一种数据包转发的***,包括:第一物理机、第二物理机以及第三物理机,其中,所述第一物理机为上述实施例所述的物理机;所述第二物理机为上述实施例所述的物理机;所述第三物理机为上述实施例所述的物理机。
本发明实施例提供了一种数据包转发的方法、装置及***,第一虚拟交换机Vswitch接收到VRM发送的数据包后,在第一Vswitch没有建立与控制器虚拟机间的连接时,根据创建的缺省转发表将接收到的数据包进行转发,以使得VRM能够正常通讯,且能够创建控制器虚拟机,并向控制器虚拟机发送第二消息,此时,控制器虚拟机根据第二消息确定其管理的虚拟机,再与第一Vswitch建立连接,当控制器虚拟机与第一Vswitch建立连接成功之后,第一Vswitch在接收到VRM发送的数据包时,就可以向控制器虚拟机获取转发流表,从而根据转发流表转发数据包,完成在虚拟部署控制器时,保证数据包的正常转发。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种数据包转发的方法的流程示意图;
图2为本发明实施例提供的另一种数据包转发的方法的流程示意图;
图3为本发明实施例提供的另一种数据包转发的方法的流程示意图;
图4为本发明实施例提供的一种虚拟交换机的功能示意图;
图5为本发明实施例提供的另一种虚拟交换机的功能示意图;
图6为本发明实施例提供的一种管理虚拟机的功能示意图;
图7为本发明实施例提供的另一种管理虚拟机的功能示意图;
图8为本发明实施例提供的一种控制器虚拟机的功能示意图;
图9为本发明实施例提供的另一种控制器虚拟机的功能示意图;
图10为本发明实施例提供的一种物理机的结构示意图;
图11为本发明实施例提供的另一种物理机的结构示意图;
图12为本发明实施例提供的另一种物理机的结构示意图;
图13为本发明实施例提供的一种数据包转发的***的结构示意图;
图14为本发明实施例提供的另一种数据包转发的***的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了一种数据包转发的方法,如图1所示,包括:
101、第一虚拟交换机Vswitch接收管理虚拟机VRM发送的数据包。
具体的,第一Vswitch是与VRM关联的虚拟交换机,在VRM向目标虚拟机发送数据包时,需要经过与其关联的第一Vswitch才能将此数据包转发,因此,第一Vswitch接收VRM发送的数据包,并将此数据包能够转发至目标虚拟机。
102、在所述第一Vswitch没有建立与控制器虚拟机间的连接时,所述第一Vswitch根据缺省转发表,转发所述数据包。
其中,所述缺省转发表中记录了通过第一端口的数据包的转发信息;所述第一端口是所述VRM关联的所述第一Vswitch的端口;所述控制器虚拟机是用于管理Vswitch,且确定Vswitch转发数据包时的转发规则的虚拟机。
需要说明的是,缺省转发表中记录了通过第一端口的数据包的转发信息包括:第一端口InPort信息、优先级Priority、计数器Counters、转发行动Action、数据包超时时间Timeout以及第一Vswitch与控制器虚拟机间的会话标识ID。
其中,Priority用于指示第一Vswitch处理接收到的数据包的优先级别;Counters用于存储处理数据包的个数;Action用于指示第一Vswitch对接收到的数据包的处理方式。
具体的,在第一Vswitch接收到VRM发送的数据包时,第一Vswitch根据缺省转发表中记录的信息指示转发数据包,从而保证在第一Vswitch没有建立与控制器虚拟机间的连接时,VRM能够正常通讯。
示例性的,假设缺省转发表中记录的信息指示为:InPort=33,Priority=0;Counters=0;Action=Normal;Timeout=0;ID=0。则第一Vswitch在接收到VRM发送的数据包后,根据缺省转发表中记录的信息指示可以获知此时接收到数据包为第一端口号为33的数据包,对此数据包的处理优先级为最低,当前计数器处理数据包的个数为0,处理数据包超时时间为永不超时,且第一Vswitch与控制器虚拟机不关联,第一Vswitch将接收到的数据包正常转发,即将接收到的数据包转发至目标交换机的端口,进而通过目标交换机的端口将数据包转发至与目标交换机关联的虚拟机,从而保证在第一Vswitch没有建立与控制器虚拟机间的连接时,VRM能够正常通讯。
需要说明的是,缺省转发表中还可以记录除InPort信息、Priority信息、Counters信息、Action信息、Timeout信息以及第一Vswitch与控制器虚拟机间的会话标识ID信息之外的其他信息,本发明对此不作限制。
本发明实施例提供了一种数据包转发的方法,第一虚拟交换机Vswitch接收到VRM发送的数据包后,在第一Vswitch没有建立与控制器虚拟机间的连接时,根据创建的缺省转发表将接收到的数据包进行转发,以使得VRM能够正常通讯,且能够创建控制器虚拟机,并向控制器虚拟机发送第二消息,此时,控制器虚拟机根据第二消息确定其管理的虚拟机,再与第一Vswitch建立连接,当控制器虚拟机与第一Vswitch建立连接成功之后,第一Vswitch在接收到VRM发送的数据包时,就可以向控制器虚拟机获取转发流表,从而根据转发流表转发数据包,完成在虚拟部署控制器时,保证数据包的正常转发。
本发明实施例提供了一种数据包转发的方法,包括:
201、管理虚拟机VRM向第一Vswitch发送数据包。
具体的,若VRM向目标虚拟机发送数据包时,需要将数据包经过与VRM关联的Vswitch,即第一Vswitch,发送至与目标虚拟机关联的虚拟交换机的目标端口,以使得与目标虚拟机关联的虚拟交换机将接收到的数据包发送至该目标虚拟机,所以,VRM将数据包首先发送至第一Vswitch。
本发明实施例提供了一种数据包转发的方法,VRM向第一Vswitch发送数据包,以使得第一Vswitch可以根据创建的缺省转发表转发接收到的数据包,从而保证VRM能够正常通讯,之后,VRM创建控制器虚拟机,并向控制器虚拟机发送第二消息,此时,控制器虚拟机根据第二消息确定其管理的虚拟机,再与第一Vswitch建立连接,当控制器虚拟机与第一Vswitch建立连接成功之后,第一Vswitch在接收到VRM发送的数据包时,就可以向控制器虚拟机获取转发流表,从而根据转发流表转发数据包,完成在虚拟部署控制器时,保证数据包的正常转发。
本发明实施例提供了一种数据包转发的方法,如图2所示,包括:
301、控制器虚拟机接收管理虚拟机VRM发送的第二消息。
其中,所述第二消息包括:所述VRM的标识信息、所述VRM的网卡序号以及所述VRM的网卡属性,第一虚拟机的标识信息、所述第一虚拟机的网卡序号以及所述第一虚拟机的网卡属性;所述第一虚拟机是所述VRM已创建出所述控制器虚拟机之外的虚拟机。
具体的,在控制器虚拟机创建好之后,控制器虚拟机接收VRM以及VRM已创建的除控制器虚拟机之外的虚拟机发送的包括VRM的标识信息、VRM的网卡序号以及VRM的网卡属性,第一虚拟机的标识信息、第一虚拟机的网卡序号以及第一虚拟机的网卡属性信息的第二消息。
302、所述控制器虚拟机根据获取的所述第二消息确定所述控制器虚拟机管理的虚拟交换机Vswitch。
具体的,控制器虚拟机在获取到包括VRM的标识信息、VRM的网卡序号以及VRM的网卡属性,第一虚拟机的标识信息、第一虚拟机的网卡序号以及第一虚拟机的网卡属性信息的第二消息时,根据第二消息中包括的VRM的标识信息及VRM的网卡序号确定与VRM关联的第一Vswitch的端口号信息,根据VRM的网卡属性获取VRM的IP地址信息及MAC地址信息,根据第一虚拟机的标识信息及第一虚拟机的网卡序号确定与第一虚拟机关联的虚拟交换机的端口号信息,根据第一虚拟机的网卡属性获取第一虚拟机的IP地址信息及MAC地址信息,从而,控制器虚拟机根据确定的与VRM关联的第一Vswitch的端口号信息,VRM的IP地址信息及MAC地址信息,与第一虚拟机关联的虚拟交换机的端口号信息以及第一虚拟机的IP地址信息及MAC地址信息确定控制器虚拟机所管理的虚拟机,完成控制器虚拟机的部署。
本发明实施例提供了一种数据包转发的方法,在采用能够正常通讯的VRM创建控制器虚拟机后,控制器虚拟机接收VRM发送的第二消息,并根据第二消息确定其管理的虚拟交换机,再与第一Vswitch建立连接,当控制器虚拟机与第一Vswitch建立连接成功之后,第一Vswitch在接收到VRM发送的数据包时,就可以向控制器虚拟机获取转发流表,从而根据转发流表转发数据包,完成在虚拟部署控制器时,保证数据包的正常转发。
本发明实施例提供了一种数据包转发的方法,如图3所示,包括:
401、管理虚拟机VRM向第一虚拟交换机Vswitch发送第一消息,所述第一Vswitch接收所述VRM发送的所述第一消息。
其中,所述第一Vswitch与所述VRM连接;所述第一消息包括:所述VRM的标识信息与网卡序号。
402、所述第一Vswitch根据获取的所述第一消息中的所述VRM的标识信息与网卡序号创建所述缺省转发表。
具体的,第一Vswitch在获取到包括VRM的标识信息与VRM的网卡序号的第一消息时,根据获取的VRM的标识信息与VRM的网卡序号确定与VRM关联的第一Vswitch的端口号,设置其处理数据包的优先级,并设置其对数据包的转发行动,数据包超时时间以及与控制器虚拟机间的会话标识,即为创建了缺省转发表。
需要说明是,第一Vswitch在创建缺省转发表时,还可以创建除端口号信息,优先级信息,转发行动信息,数据包超时信息以及与控制器虚拟机间的会话标识信息之外的其他信息,本发明对此不作限制。
403、所述VRM向所述第一Vswitch发送数据包,所述第一Vswitch接收所述VRM发送的数据包。
具体的,可参考步骤101与步骤201,在此不再赘述。
需要说明的是,在所述第一Vswitch没有建立与所述控制器虚拟机间的连接时,执行步骤404-408,在所述第一Vswitch建立与所述控制器虚拟机间的连接时,执行步骤409-410。
404、在所述第一Vswitch没有建立与所述控制器虚拟机间的连接时,所述第一Vswitch根据缺省转发表,转发所述数据包。
其中,所述缺省转发表中记录了通过第一端口的数据包的转发信息;所述第一端口是所述VRM关联的所述第一Vswitch的端口;所述控制器虚拟机是用于管理Vswitch,且确定Vswitch转发数据包时的转发规则的虚拟机。
具体的,可参考步骤102,在此不再赘述。
405、所述VRM创建所述控制器虚拟机。
具体的,在VRM能够正常通讯之后,VRM创建控制器虚拟机,具体创建控制器虚拟机的过程为:VRM首先运行创建控制器虚拟机的安装软件,配置控制器虚拟机的相关信息,即配置控制器虚拟机的CPU(Centrol Processing Unit,中央处理器)信息、内存大小信息及网卡属性信息,然后根据配置好的控制器虚拟机的相关信息创建控制器虚拟机,之后打开创建好的控制器虚拟机,并进行登录,最后在创建好的控制器虚拟机上安装控制器虚拟机运行的软件包,从而完成VRM对控制器虚拟机的创建过程。
需要说明的是,VRM在配置控制器虚拟机的相关信息时,除包括CPU信息、内存大小信息及网卡属性信息之外,还可以包括创建控制器虚拟机时需要的其他信息,本发明对此不作限制。
需要说明的是,VRM还可以根据其他方法创建控制器虚拟机,本发明对此不作限制。
406、所述VRM向所述控制器虚拟机发送第二消息,所述控制器虚拟机接收所述VRM发送的第二消息。
其中,所述第二消息包括:所述VRM的标识信息、所述VRM的网卡序号以及所述VRM的网卡属性,第一虚拟机的标识信息、所述第一虚拟机的网卡序号以及所述第一虚拟机的网卡属性;所述第一虚拟机是所述VRM已创建出所述控制器虚拟机之外的虚拟机。
具体的,可参考步骤301,在此不再赘述。
407、所述控制器虚拟机根据获取的所述第二消息确定所述控制器虚拟机管理的虚拟交换机Vswitch。
具体的,可参考步骤302,在此不再赘述。
408、所述第一Vswitch建立与控制器虚拟机间的连接,所述控制器虚拟机建立与所述第一Vswitch间的连接。
具体的,第一Vswitch与控制器虚拟机是采用三次握手确认建立连接,在三次握手的数据发送与接收过程中,采用六种标识信息来完成数据的发送与接收,从而完成第一Vswitch与控制器虚拟机的连接。
其中,六种标识信息包括:SYN(Synchronous,建立联机)信息、ACK(Acknowledgement,确认)信息、PSH(Push,传送)信息、FIN(Finish,结束)信息、RST(Reset,重置)信息以及URG(Urgent,紧急)信息。
示例性的,第一Vswitch与控制器虚拟机建立连接时,第一Vswitch发送标识信息SYN=1,此时随机产生Seq number(Sequnce number,顺序号码)=1234567的数据包,并将此数据包发送至控制器虚拟机,此时,控制器虚拟机根据接收到的此数据包获知第一Vswitch请求建立联机,则控制器虚拟机发送Ack Number(Acknowledgement number,确认号码)=第一Vswitch的Seq number+1,SYN=1,此时随机产生Seqnumber=7654321的数据包,并将此数据包发送至第一Vswitch,第一Vswitch接收到此数据包后,确定Ack Number是否正确,若第一Vswitch确定Ack Number正确,则第一Vswitch发送Ack Number=控制器虚拟机的Seqnumber+1,Ack=1至控制器虚拟机,此时若控制器虚拟机确定Seq number与Ack的值正确,则第一Vswitch与控制器虚拟机建立连接成功。
进一步的,在所述第一Vswitch建立了与所述控制器虚拟机间的连接时,所述第一Vswitch删除所述缺省转发表。
具体的,在第一Vswitch建立了与控制器虚拟机间的连接时,第一Vswitch在接收到数据包时,向控制器虚拟机获取转发流表,从而根据转发流表转发数据包,而不需要根据缺省流表来转发数据包,所以第一Vswitch可以删除缺省流表。
需要说明的是,第一Vswitch也可以不删除缺省流表,这样并不影响第一Vswitch接收到数据包时,向控制器虚拟机获取转发流表,并根据转发流表转发数据包,本发明对此不做限制。
409、所述控制器虚拟机向所述第一Vswitch发送转发流表。
其中,所述转发流表是所述第一Vswitch通过所述控制器虚拟机获取的,用于转发数据包的流表。
具体的,控制器虚拟机在接收到第一Vswitch发送的数据包时,根据此数据包以及其管理的虚拟机创建与此数据包匹配的转发流表,并将此转发流表发送至第一Vswitch。
410、在所述第一Vswitch建立了与所述控制器虚拟机间的连接时,所述第一Vswitch根据转发流表转发所述数据包。
具体的,在第一Vswitch建立了与控制器虚拟机间的连接时,第一Vswitch接收到数据包时,将此数据包发送至控制器虚拟机,使得控制器虚拟机向第一Vswitch发送与此数据包匹配的转发流表,从而第一Vswitch根据此转发流表中的信息将此数据包进行转发。
本发明实施例提供了一种数据包转发的方法、装置及***,管理虚拟机VRM向第一虚拟交换机Vswitch发送第一消息后,第一Vswitch根据获取的第一消息创建缺省转发表,这样,在第一Vswitch没有建立与控制器虚拟机间的连接时,第一Vswitch在接收到VRM发送的数据包时,可以根据缺省流表来转发数据包,从而保证VRM能够正常通讯,在VRM正常通讯之后,创建控制器虚拟机,并向控制器虚拟机发送第二消息,此时,控制器虚拟机根据第二消息确定其管理的虚拟机,再与第一Vswitch建立连接,当控制器虚拟机与第一Vswitch建立连接成功之后,第一Vswitch在接收到VRM发送的数据包时,就可以向控制器虚拟机获取转发流表,从而根据转发流表转发数据包,完成在虚拟部署控制器时,保证数据包的正常转发。
如图4所示,其为本发明实施例提供了一种虚拟交换机的功能示意图,参考图4所示,该虚拟交换机包括:接收单元501及转发单元502。
所述接收单元501,用于接收管理虚拟机VRM发送的数据包。
具体的,若VRM向目标虚拟机发送数据包,需要经过与其关联的所述虚拟交换机才能将此数据包转发至目标虚拟机,因此,所述接收单元501,接收VRM发送的数据包,并将此数据包能够转发至目标虚拟机。
所述转发单元502,用于在虚拟交换机没有建立与控制器虚拟机间的连接时,根据缺省转发表,转发所述数据包。
其中,所述缺省转发表中记录了通过第一端口的数据包的转发信息;所述第一端口是所述VRM关联的所述虚拟交换机的端口;所述控制器虚拟机是用于管理Vswitch,且确定Vswitch转发数据包时的转发规则的虚拟机。
需要说明的是,缺省转发表中记录了通过第一端口的数据包的转发信息包括:第一端口InPort信息、优先级Priority、计数器Counters、转发行动Action、数据包超时时间Timeout以及第一Vswitch与控制器虚拟机间的会话标识ID。
其中,Priority用于指示所述虚拟交换机处理接收到的数据包的优先级别;Counters用于存储处理数据包的个数;Action用于指示第一Vswitch对接收到的数据包的处理方式。
具体的,所述转发单元502,在所述接收单元501接收到VRM发送的数据包时,根据缺省转发表中记录的信息指示将此数据包进行转发,从而保证在所述虚拟交换机没有建立与控制器虚拟机间的连接时,VRM能够正常通讯。
进一步的,所述虚拟交换机,如图5所示,还包括:创建单元503。
此时,所述接收单元501,还用于接收所述VRM发送的第一消息。
其中,所述虚拟交换机与所述VRM连接;所述第一消息包括:所述VRM的标识信息与网卡序号。
需要说明的是,所述接收单元501,在接收VRM发送的数据包之前,接收包括VRM的标识信息与网卡序号的第一消息,以使得所述转发单元502根据所述接收单元501接收的包括VRM的标识信息与网卡序号的第一消息将数据包进行转发。
所述创建单元503,用于根据所述接收单元501接收的所述第一消息中的所述VRM的标识信息与网卡序号创建所述缺省转发表。
具体的,所述创建单元503,在所述接收单元501接收到所述第一消息后,根据所述第一消息中的VRM的标识信息与VRM的网卡序号确定与VRM关联的所述虚拟交换机的端口号,设置其处理数据包的优先级,并设置其对数据包的转发行动,数据包超时时间以及与控制器虚拟机间的会话标识,即为创建缺省转发表。
需要说明是,所述创建单元503,在创建缺省转发表时,还可以创建除端口号信息,优先级信息,转发行动信息,数据包超时信息以及与控制器虚拟机间的会话标识信息之外的其他信息,本发明对此不作限制。
进一步的,所述创建单元503,还用于建立与所述控制器虚拟机间的连接。
进一步的,所述转发单元502,还用于在所述创建单元503建立了所述虚拟交换机与所述控制器虚拟机间的连接时,根据转发流表转发所述数据包。
其中,所述转发流表是所述虚拟交换机通过所述控制器虚拟机获取的,用于转发数据包的流表。
进一步的,所述虚拟交换机,如图6所示,还包括:删除单元504。
所述删除单元504,用于在所述创建单元503建立了所述虚拟交换机与所述控制器虚拟机间的连接时,删除所述缺省转发表。
本发明实施例提供了一种虚拟交换机,第一虚拟交换机Vswitch接收到VRM发送的数据包后,在第一Vswitch没有建立与控制器虚拟机间的连接时,根据创建的缺省转发表将接收到的数据包进行转发,以使得VRM能够正常通讯,且能够创建控制器虚拟机,并向控制器虚拟机发送第二消息,此时,控制器虚拟机根据第二消息确定其管理的虚拟机,再与第一Vswitch建立连接,当控制器虚拟机与第一Vswitch建立连接成功之后,第一Vswitch在接收到VRM发送的数据包时,就可以向控制器虚拟机获取转发流表,从而根据转发流表转发数据包,完成在虚拟部署控制器时,保证数据包的正常转发。
如图6所示,其为本发明实施例提供了一种管理虚拟机的功能示意图,参考图6所示,该管理虚拟机包括:发送单元701。
所述发送单元701,用于向第一Vswitch发送数据包。
具体的,若VRM向目标虚拟机发送数据包时,需要将数据包经过与VRM关联的第一Vswitch,发送至与目标虚拟机关联的虚拟交换机的目标端口,以使得与目标虚拟机关联的虚拟交换机将接收到的数据包发送至该目标虚拟机,所以,所述发送单元701将数据包首先发送至第一Vswitch。
进一步的,所述发送单元701,还用于向所述第一Vswitch发送第一消息。
其中,所述第一Vswitch与所述VRM连接;所述第一消息包括:所述VRM的标识信息与网卡序号。
需要说明的是,所述发送单元701,在向所述第一Vswitch发送数据包之前,需向所述第一Vswitch发送第一消息。
进一步的,所述管理虚拟机,如图7所示,还包括:创建单元702。
所述创建单元702,用于创建控制器虚拟机。
具体的,所述创建单元702,在所述VRM能够正常通讯之后,创建控制器虚拟机,具体创建控制器虚拟机的过程为:首先运行创建控制器虚拟机的安装软件,配置控制器虚拟机的相关信息,即配置控制器虚拟机的CPU(Centrol Processing Unit,中央处理器)信息、内存大小信息及网卡属性信息,然后根据配置好的控制器虚拟机的相关信息创建控制器虚拟机,之后打开创建好的控制器虚拟机,并进行登录,最后在创建好的控制器虚拟机上安装控制器虚拟机运行的软件包,从而完成所述创建单元702对控制器虚拟机的创建过程。
需要说明的是,所述创建单元702在配置控制器虚拟机的相关信息时,除包括CPU信息、内存大小信息及网卡属性信息之外,还可以包括创建控制器虚拟机时需要的其他信息,本发明对此不作限制。
需要说明的是,所述创建单元702,还可以根据其他方法创建控制器虚拟机,本发明对此不作限制。
进一步的,所述发送单元701,还用于向所述控制器虚拟机发送第二消息。
其中,所述第二消息包括:所述VRM的标识信息、所述VRM的网卡序号以及所述VRM的网卡属性,第一虚拟机的标识信息、所述第一虚拟机的网卡序号以及所述第一虚拟机的网卡属性;所述第一虚拟机是所述VRM已创建出所述控制器虚拟机之外的虚拟机。
本发明实施例提供了一种管理虚拟机,所述管理虚拟机向第一Vswitch发送数据包,以使得第一Vswitch可以根据创建的缺省转发表转发接收到的数据包,从而保证VRM能够正常通讯,之后,VRM创建控制器虚拟机,并向控制器虚拟机发送第二消息,此时,控制器虚拟机根据第二消息确定其管理的虚拟机,再与第一Vswitch建立连接,当控制器虚拟机与第一Vswitch建立连接成功之后,第一Vswitch在接收到VRM发送的数据包时,就可以向控制器虚拟机获取转发流表,从而根据转发流表转发数据包,完成在虚拟部署控制器时,保证数据包的正常转发。
如图8所示,其为本发明实施例提供了一种控制器虚拟机的功能示意图,参考图8所示,该控制器虚拟机包括:接收单元901及确定单元902。
所述接收单元901,用于接收管理虚拟机VRM发送的第二消息。
其中,所述第二消息包括:所述VRM的标识信息、所述VRM的网卡序号以及所述VRM的网卡属性,第一虚拟机的标识信息、所述第一虚拟机的网卡序号以及所述第一虚拟机的网卡属性;所述第一虚拟机是所述VRM已创建出所述控制器虚拟机之外的虚拟机。
具体的,所述接收单元901,在所述控制器虚拟机创建好之后,接收VRM以及VRM已创建的除控制器虚拟机之外的虚拟机发送的包括VRM的标识信息、VRM的网卡序号以及VRM的网卡属性,第一虚拟机的标识信息、第一虚拟机的网卡序号以及第一虚拟机的网卡属性信息的第二消息。
所述确定单元902,用于根据所述接收单元901获取的所述第二消息确定所述控制器虚拟机管理的虚拟交换机Vswitch。
具体的,所述确定单元902,根据所述接收单元901获取的第二消息中包括的VRM的标识信息及VRM的网卡序号,确定与VRM关联的第一Vswitch的端口号信息,根据VRM的网卡属性获取VRM的IP地址信息及MAC地址信息,根据第一虚拟机的标识信息及第一虚拟机的网卡序号确定与第一虚拟机关联的虚拟交换机的端口号信息,根据第一虚拟机的网卡属性获取第一虚拟机的IP地址信息及MAC地址信息,从而,根据确定的与VRM关联的第一Vswitch的端口号信息,VRM的IP地址信息及MAC地址信息,与第一虚拟机关联的虚拟交换机的端口号信息以及第一虚拟机的IP地址信息及MAC地址信息确定控制器虚拟机所管理的虚拟机,完成控制器虚拟机的部署。
进一步的,所述控制器虚拟机,如图9所示,还包括:创建单元903。
所述创建单元903,用于在所述确定单元902确定所述第一Vswitch是所述控制器虚拟机管理的Vswitch时,建立与所述第一Vswitch间的连接。
进一步的,所述控制器虚拟机,如图10所示,还包括:发送单元904。
所述发送单元904,用于向所述第一Vswitch发送转发流表。
其中,所述转发流表是所述第一Vswitch通过所述控制器虚拟机获取的,用于转发数据包的流表。
具体的,所述发送单元904,在所述接收单元901接收到第一Vswitch发送的数据包时,根据此数据包以及其管理的虚拟机创建与此数据包匹配的转发流表,并将此转发流表发送至第一Vswitch。
本发明实施例提供了一种控制器虚拟机,在采用能够正常通讯的VRM创建控制器虚拟机后,控制器虚拟机接收VRM发送的第二消息,并根据第二消息确定其管理的虚拟交换机,再与第一Vswitch建立连接,当控制器虚拟机与第一Vswitch建立连接成功之后,第一Vswitch在接收到VRM发送的数据包时,就可以向控制器虚拟机获取转发流表,从而根据转发流表转发数据包,完成在虚拟部署控制器时,保证数据包的正常转发。
如图10所示,其为本发明实施例提供了一种物理机的结构示意图,参考图10所示,该物理机包括:硬件层以及运行在所述硬件层上的虚拟交换机1101。
其中,所述虚拟交换机1101用于,接收管理虚拟机VRM发送的数据包。
所述虚拟交换机1101还用于,在所述虚拟交换机1101没有建立与控制器虚拟机间的连接时,根据缺省转发表,转发所述数据包。
其中,所述缺省转发表中记录了通过第一端口的数据包的转发信息;所述第一端口是所述VRM关联的所述虚拟交换机1101的端口;所述控制器虚拟机是用于管理虚拟交换机,且确定所述虚拟交换机转发数据包时的转发规则的虚拟机。
具体的,所述虚拟交换机1101,在接收到VRM发送的数据包时,根据缺省转发表中记录的信息指示将此数据包进行转发,从而保证在所述虚拟交换机1101没有建立与控制器虚拟机间的连接时,VRM能够正常通讯。
进一步的,所述虚拟交换机1101还用于接收所述VRM发送的第一消息。
其中,所述虚拟交换机与所述VRM连接;所述第一消息包括:所述VRM的标识信息与网卡序号。
进一步的,所述虚拟交换机1101还用于,根据获取的所述第一消息中的所述VRM的标识信息与网卡序号创建所述缺省转发表。
具体的,所述虚拟交换机1101在接收到所述第一消息后,根据所述第一消息中的VRM的标识信息与VRM的网卡序号确定与VRM关联的所述虚拟交换机1101的端口号,设置其处理数据包的优先级,并设置其对数据包的转发行动,数据包超时时间以及与控制器虚拟机间的会话标识,即为创建缺省转发表。
需要说明是,所述虚拟交换机1101,在创建缺省转发表时,还可以创建除端口号信息,优先级信息,转发行动信息,数据包超时信息以及与控制器虚拟机间的会话标识信息之外的其他信息,本发明对此不作限制。
进一步的,所述虚拟交换机1101还用于建立与所述控制器虚拟机间的连接。
进一步的,所述虚拟交换机1101还用于,在建立了与所述控制器虚拟机间的连接时,根据转发流表转发所述数据包。
其中,所述转发流表是所述第一Vswitch通过所述控制器虚拟机获取的,用于转发数据包的流表。
进一步的,所述虚拟交换机1101还用于,在建立了与所述控制器虚拟机间的连接时,删除所述缺省转发表。
本发明实施例提供了一种物理机,该物理机包括:硬件层以及运行在所述硬件层上的虚拟交换机,第一虚拟交换机Vswitch接收到VRM发送的数据包后,在第一Vswitch没有建立与控制器虚拟机间的连接时,根据创建的缺省转发表将接收到的数据包进行转发,以使得VRM能够正常通讯,且能够创建控制器虚拟机,并向控制器虚拟机发送第二消息,此时,控制器虚拟机根据第二消息确定其管理的虚拟机,再与第一Vswitch建立连接,当控制器虚拟机与第一Vswitch建立连接成功之后,第一Vswitch在接收到VRM发送的数据包时,就可以向控制器虚拟机获取转发流表,从而根据转发流表转发数据包,完成在虚拟部署控制器时,保证数据包的正常转发。
如图11所示,其为本发明实施例提供了另一种物理机的结构示意图,参考图11所示,该物理机包括:硬件层以及运行在所述硬件层上的管理虚拟机VRM1201。其中,
所述VRM1201用于向虚拟交换机发送数据包。
进一步的,所述VRM1201还用于向所述第一Vswitch发送第一消息。
其中,所述第一Vswitch与所述VRM1201连接;所述第一消息包括:所述VRM的标识信息与网卡序号。
进一步的,所述VRM1201还用于创建控制器虚拟机。
具体的,在VRM1201能够正常通讯之后,所述VRM1201创建控制器虚拟机,具体创建控制器虚拟机的过程为:首先运行创建控制器虚拟机的安装软件,配置控制器虚拟机的相关信息,即配置控制器虚拟机的CPU(Centrol Processing Unit,中央处理器)信息、内存大小信息及网卡属性信息,然后根据配置好的控制器虚拟机的相关信息创建控制器虚拟机,之后打开创建好的控制器虚拟机,并进行登录,最后在创建好的控制器虚拟机上安装控制器虚拟机运行的软件包,从而完成所述VRM1201对控制器虚拟机的创建过程。
需要说明的是,所述VRM1201在配置控制器虚拟机的相关信息时,除包括CPU信息、内存大小信息及网卡属性信息之外,还可以包括创建控制器虚拟机时需要的其他信息,本发明对此不作限制。
需要说明的是,所述VRM1201,还可以根据其他方法创建控制器虚拟机,本发明对此不作限制。
进一步的,所述VRM1201还用于向所述控制器虚拟机发送第二消息。
其中,所述第二消息包括:所述VRM1201的标识信息、所述VRM1201的网卡序号以及所述VRM1201的网卡属性,第一虚拟机的标识信息、所述第一虚拟机的网卡序号以及所述第一虚拟机的网卡属性;所述第一虚拟机是所述VRM1201已创建除所述控制器虚拟机之外的虚拟机。
本发明实施例提供了一种物理机,该物理机包括硬件层以及所述硬件层上运行的管理虚拟机VRM,VRM向第一Vswitch发送数据包,以使得第一Vswitch可以根据创建的缺省转发表转发接收到的数据包,从而保证VRM能够正常通讯,之后,VRM创建控制器虚拟机,并向控制器虚拟机发送第二消息,此时,控制器虚拟机根据第二消息确定其管理的虚拟机,再与第一Vswitch建立连接,当控制器虚拟机与第一Vswitch建立连接成功之后,第一Vswitch在接收到VRM发送的数据包时,就可以向控制器虚拟机获取转发流表,从而根据转发流表转发数据包,完成在虚拟部署控制器时,保证数据包的正常转发。
如图12所示,其为本发明实施例提供了另一种物理机的结构示意图,参考图12所示,该物理机包括:硬件层以及运行在所述硬件层上的控制器虚拟机1301;
其中,所述控制器虚拟机1301用于接收管理虚拟机VRM发送的第二消息。
其中,所述第二消息包括:所述VRM的标识信息、所述VRM的网卡序号以及所述VRM的网卡属性,第一虚拟机的标识信息、所述第一虚拟机的网卡序号以及所述第一虚拟机的网卡属性;所述第一虚拟机是所述VRM已创建除控制器虚拟机1301之外的虚拟机。
具体的,在所述控制器虚拟机1301创建好之后,所述控制器虚拟机1301,接收VRM以及VRM已创建的除控制器虚拟机1301之外的虚拟机发送的包括VRM的标识信息、VRM的网卡序号以及VRM的网卡属性,第一虚拟机的标识信息、第一虚拟机的网卡序号以及第一虚拟机的网卡属性信息的第二消息。
所述控制器虚拟机1301还用于根据获取的所述第二消息确定所述控制器虚拟机1301管理的虚拟交换机Vswitch。
具体的,所述控制器虚拟机1301,根据获取的第二消息中包括的VRM的标识信息及VRM的网卡序号,确定与VRM关联的第一Vswitch的端口号信息,根据VRM的网卡属性获取VRM的IP地址信息及MAC地址信息,根据第一虚拟机的标识信息及第一虚拟机的网卡序号确定与第一虚拟机关联的虚拟交换机的端口号信息,根据第一虚拟机的网卡属性获取第一虚拟机的IP地址信息及MAC地址信息,从而,根据确定的与VRM关联的第一Vswitch的端口号信息,VRM的IP地址信息及MAC地址信息,与第一虚拟机关联的虚拟交换机的端口号信息以及第一虚拟机的IP地址信息及MAC地址信息确定控制器虚拟机1301所管理的虚拟机,完成控制器虚拟机1301的部署。
进一步的,所述控制器虚拟机1301还用于,在所述第一Vswitch是所述控制器虚拟机1301管理的Vswitch时,建立与所述第一Vswitch间的连接。
进一步的,所述控制器虚拟机1301还用于,向所述第一Vswitch发送转发流表。
本发明实施例提供了一种物理机,该物理机包括:硬件层以及运行在所述硬件层上的控制器虚拟机,在采用能够正常通讯的VRM创建控制器虚拟机后,控制器虚拟机接收VRM发送的第二消息,并根据第二消息确定其管理的虚拟交换机,再与第一Vswitch建立连接,当控制器虚拟机与第一Vswitch建立连接成功之后,第一Vswitch在接收到VRM发送的数据包时,就可以向控制器虚拟机获取转发流表,从而根据转发流表转发数据包,完成在虚拟部署控制器时,保证数据包的正常转发。
本发明实施例提供了一种数据包转发的***,如图13所示,包括:虚拟交换机1401、管理虚拟机VRM1402以及控制器虚拟机1403。
其中,所述虚拟交换机1401为上述实施例所述的虚拟交换机。
所述管理虚拟机1402为上述实施例所述的管理虚拟机。
所述控制器虚拟机1403为上述实施例所述的控制器虚拟机。
本发明实施例提供了一种数据包转发的***,第一虚拟交换机Vswitch接收到VRM发送的数据包后,在第一Vswitch没有建立与控制器虚拟机间的连接时,根据创建的缺省转发表将接收到的数据包进行转发,以使得VRM能够正常通讯,且能够创建控制器虚拟机,并向控制器虚拟机发送第二消息,此时,控制器虚拟机根据第二消息确定其管理的虚拟机,再与第一Vswitch建立连接,当控制器虚拟机与第一Vswitch建立连接成功之后,第一Vswitch在接收到VRM发送的数据包时,就可以向控制器虚拟机获取转发流表,从而根据转发流表转发数据包,完成在虚拟部署控制器时,保证数据包的正常转发。
本发明实施例提供了另一种数据包转发的***,如图14所示,包括:第一物理机、第二物理机以及第三物理机,其中,
所述第一物理机1501为上述实施例所述的物理机。
所述第二物理机1502上述实施例所述的物理机。
所述第三物理机1503上述实施例所述的物理机。
需要说明的是,第一物理机1501、第二物理机1502以及第三物理机1503可以集成在同一个物理机上,也可以为不同的物理机;第一物理机1501与第二物理机1502可以集成在同一个物理机上,也可以为不同的物理机;第一物理机1501与第三物理机1503可以集成在同一个物理机上,也可以为不同的物理机;第二物理机1502与第三物理机1503可以集成在同一个物理机上,也可以为不同的物理机。
本发明实施例提供了一种数据包转发的***,第一虚拟交换机Vswitch接收到VRM发送的数据包后,在第一Vswitch没有建立与控制器虚拟机间的连接时,根据创建的缺省转发表将接收到的数据包进行转发,以使得VRM能够正常通讯,且能够创建控制器虚拟机,并向控制器虚拟机发送第二消息,此时,控制器虚拟机根据第二消息确定其管理的虚拟机,再与第一Vswitch建立连接,当控制器虚拟机与第一Vswitch建立连接成功之后,第一Vswitch在接收到VRM发送的数据包时,就可以向控制器虚拟机获取转发流表,从而根据转发流表转发数据包,完成在虚拟部署控制器时,保证数据包的正常转发。
在本申请所提供的几个实施例中,应该理解到,所揭露的***,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理包括,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (35)
1.一种数据包转发的方法,其特征在于,包括:
第一虚拟交换机Vswitch接收管理虚拟机VRM发送的数据包;
在所述第一Vswitch没有建立与控制器虚拟机间的连接时,所述第一Vswitch根据缺省转发表,转发所述数据包;其中,所述缺省转发表中记录了通过第一端口的数据包的转发信息;所述第一端口是所述VRM关联的所述第一Vswitch的端口;所述控制器虚拟机是用于管理Vswitch,且确定Vswitch转发数据包时的转发规则的虚拟机。
2.根据权利要求1所述的方法,其特征在于,在所述第一Vswitch接收所述VRM发送的所述数据包之前,还包括:
所述第一Vswitch接收所述VRM发送的第一消息;其中,所述第一Vswitch与所述VRM连接;所述第一消息包括:所述VRM的标识信息与网卡序号;
所述第一Vswitch根据获取的所述第一消息中的所述VRM的标识信息与网卡序号创建所述缺省转发表。
3.根据权利要求2所述的方法,其特征在于,
在所述第一Vswitch根据获取的所述第一消息创建所述缺省转发表之后,还包括:
所述第一Vswitch建立与所述控制器虚拟机间的连接。
4.根据权利要求3所述的方法,其特征在于,还包括:
在所述第一Vswitch建立了与所述控制器虚拟机间的连接时,所述第一Vswitch根据转发流表转发所述数据包;其中,所述转发流表是所述第一Vswitch通过所述控制器虚拟机获取的,用于转发数据包的流表。
5.根据权利要求1-4任一项所述的方法,其特征在于,还包括:
在所述第一Vswitch建立了与所述控制器虚拟机间的连接时,所述第一Vswitch删除所述缺省转发表。
6.一种数据包转发的方法,其特征在于,包括:
管理虚拟机VRM向第一Vswitch发送数据包,以使得在所述第一Vswitch没有建立与控制器虚拟机间的连接时,所述第一Vswitch根据缺省转发表,转发所述数据包;其中,所述缺省转发表中记录了通过第一端口的数据包的转发信息;所述第一端口是所述VRM关联的所述第一Vswitch的端口;所述控制器虚拟机是用于管理Vswitch,且确定Vswitch转发数据包时的转发规则的虚拟机。
7.根据权利要求6所述的方法,其特征在于,在所述VRM向所述第一Vswitch发送数据包之前,还包括:
所述VRM向所述第一Vswitch发送第一消息;其中,所述第一Vswitch与所述VRM连接;所述第一消息包括:所述VRM的标识信息与网卡序号。
8.根据权利要求7所述的方法,其特征在于,在所述VRM向所述第一Vswitch发送第一消息之后,还包括:
所述VRM创建控制器虚拟机;
所述VRM向所述控制器虚拟机发送第二消息;其中,所述第二消息包括:所述VRM的标识信息、所述VRM的网卡序号以及所述VRM的网卡属性,第一虚拟机的标识信息、所述第一虚拟机的网卡序号以及所述第一虚拟机的网卡属性;所述第一虚拟机是所述VRM已创建除所述控制器虚拟机之外的虚拟机。
9.一种数据包转发的方法,其特征在于,包括:
控制器虚拟机接收管理虚拟机VRM发送的第二消息;其中,所述第二消息包括:所述VRM的标识信息、所述VRM的网卡序号以及所述VRM的网卡属性,第一虚拟机的标识信息、所述第一虚拟机的网卡序号以及所述第一虚拟机的网卡属性;所述第一虚拟机是所述VRM已创建出所述控制器虚拟机之外的虚拟机;
所述控制器虚拟机根据获取的所述第二消息确定所述控制器虚拟机管理的虚拟交换机Vswitch。
10.根据权利要求9所述的方法,其特征在于,在所述控制器虚拟机根据获取的所述第二消息确定所述控制器虚拟机管理的虚拟交换机Vswitch之后,还包括:
在所述第一Vswitch是所述控制器虚拟机管理的Vswitch时,所述控制器虚拟机建立与所述第一Vswitch间的连接。
11.根据权利要求10所述的方法,其特征在于,在所述控制器虚拟机建立与所述第一Vswitch间的连接之后,还包括:
所述控制器虚拟机向所述第一Vswitch发送转发流表。
12.一种虚拟交换机,其特征在于,包括:
接收单元,用于接收管理虚拟机VRM发送的数据包;
转发单元,用于在虚拟交换机没有建立与控制器虚拟机间的连接时,根据缺省转发表,转发所述数据包;其中,所述缺省转发表中记录了通过第一端口的数据包的转发信息;所述第一端口是所述VRM关联的所述虚拟交换机的端口;所述控制器虚拟机是用于管理Vswitch,且确定Vswitch转发数据包时的转发规则的虚拟机。
13.根据权利要求12所述的虚拟交换机,其特征在于,还包括:
所述接收单元,还用于接收所述VRM发送的第一消息;其中,所述虚拟交换机与所述VRM连接;所述第一消息包括:所述VRM的标识信息与网卡序号;
创建单元,用于根据所述接收单元接收的所述第一消息中的所述VRM的标识信息与网卡序号创建所述缺省转发表。
14.根据权利要求13所述的虚拟交换机,其特征在于,
所述创建单元,还用于建立与所述控制器虚拟机间的连接。
15.根据权利要求14所述的虚拟交换机,其特征在于,
所述转发单元,还用于在所述创建单元建立了所述虚拟交换机与所述控制器虚拟机间的连接时,根据转发流表转发所述数据包;其中,所述转发流表是所述虚拟交换机通过所述控制器虚拟机获取的,用于转发数据包的流表。
16.根据权利要求13-15任一项所述的虚拟交换机,其特征在于,还包括:
删除单元,用于在所述创建单元建立了所述虚拟交换机与所述控制器虚拟机间的连接时,删除所述缺省转发表。
17.一种管理虚拟机,其特征在于,包括:
发送单元,用于向第一Vswitch发送数据包,以使得在所述第一Vswitch没有建立与控制器虚拟机间的连接时,所述第一Vswitch根据缺省转发表,转发所述数据包;其中,所述缺省转发表中记录了通过第一端口的数据包的转发信息;所述第一端口是管理虚拟机VRM关联的所述第一Vswitch的端口;所述控制器虚拟机是用于管理Vswitch,且确定Vswitch转发数据包时的转发规则的虚拟机。
18.根据权利要求17所述的管理虚拟机,其特征在于,
所述发送单元,还用于向所述第一Vswitch发送第一消息;其中,所述第一Vswitch与VRM连接;所述第一消息包括:所述VRM的标识信息与网卡序号。
19.根据权利要求18所述的管理虚拟机,其特征在于,还包括:
创建单元,用于创建控制器虚拟机;
所述发送单元,还用于向所述控制器虚拟机发送第二消息;其中,所述第二消息包括:所述VRM的标识信息、所述VRM的网卡序号以及所述VRM的网卡属性,第一虚拟机的标识信息、所述第一虚拟机的网卡序号以及所述第一虚拟机的网卡属性;所述第一虚拟机是所述VRM已创建出所述控制器虚拟机之外的虚拟机。
20.一种控制器虚拟机,其特征在于,包括:
接收单元,用于接收管理虚拟机VRM发送的第二消息;其中,所述第二消息包括:所述VRM的标识信息、所述VRM的网卡序号以及所述VRM的网卡属性,第一虚拟机的标识信息、所述第一虚拟机的网卡序号以及所述第一虚拟机的网卡属性;所述第一虚拟机是所述VRM已创建除所述控制器虚拟机之外的虚拟机;
确定单元,用于根据所述接收单元获取的所述第二消息确定所述控制器虚拟机管理的虚拟交换机Vswitch。
21.根据权利要求20所述的控制器虚拟机,其特征在于,还包括:
创建单元,用于在所述确定单元确定第一Vswitch是所述控制器虚拟机管理的Vswitch时,建立与所述第一Vswitch间的连接。
22.根据权利要求21所述的控制器虚拟机,其特征在于,还包括:
发送单元,用于向所述第一Vswitch发送转发流表。
23.一种物理机,其特征在于,包括:硬件层以及运行在所述硬件层上的虚拟交换机;其中,所述虚拟交换机用于:
接收管理虚拟机VRM发送的数据包;
在所述虚拟交换机没有建立与控制器虚拟机间的连接时,根据缺省转发表,转发所述数据包;其中,所述缺省转发表中记录了通过第一端口的数据包的转发信息;所述第一端口是所述VRM关联的所述虚拟交换机的端口;所述控制器虚拟机是用于管理虚拟交换机,且确定所述虚拟交换机转发数据包时的转发规则的虚拟机。
24.根据权利要求23所述的物理机,其特征在于,所述虚拟交换机还用于:
接收所述VRM发送的第一消息;其中,所述虚拟交换机与所述VRM连接;所述第一消息包括:所述VRM的标识信息与网卡序号;
根据获取的所述第一消息中的所述VRM的标识信息与网卡序号创建所述缺省转发表。
25.根据权利要求24所述的物理机,其特征在于,所述虚拟交换机还用于:
建立与所述控制器虚拟机间的连接。
26.根据权利要求25所述的物理机,其特征在于,所述虚拟交换机还用于:
在建立了与所述控制器虚拟机间的连接时,根据转发流表转发所述数据包;其中,所述转发流表是第一Vswitch通过所述控制器虚拟机获取的,用于转发数据包的流表。
27.根据权利要求23-26任一项所述的物理机,其特征在于,所述虚拟交换机还用于:
在建立了与所述控制器虚拟机间的连接时,删除所述缺省转发表。
28.一种物理机,其特征在于,包括:硬件层以及运行在所述硬件层上的管理虚拟机VRM;其中,所述VRM用于向虚拟交换机发送数据包,以使得在所述第一Vswitch没有建立与控制器虚拟机间的连接时,所述第一Vswitch根据缺省转发表,转发所述数据包;其中,所述缺省转发表中记录了通过第一端口的数据包的转发信息;所述第一端口是所述VRM关联的所述第一Vswitch的端口;所述控制器虚拟机是用于管理Vswitch,且确定Vswitch转发数据包时的转发规则的虚拟机。
29.根据权利要求28所述的物理机,其特征在于,所述VRM还用于:
向第一Vswitch发送第一消息;其中,所述第一Vswitch与所述VRM连接;所述第一消息包括:所述VRM的标识信息与网卡序号。
30.根据权利要求29所述的物理机,其特征在于:所述VRM还用于:
创建控制器虚拟机;
向所述控制器虚拟机发送第二消息;其中,所述第二消息包括:所述VRM的标识信息、所述VRM的网卡序号以及所述VRM的网卡属性,第一虚拟机的标识信息、所述第一虚拟机的网卡序号以及所述第一虚拟机的网卡属性;所述第一虚拟机是所述VRM已创建除所述控制器虚拟机之外的虚拟机。
31.一种物理机,其特征在于,包括:硬件层以及运行在所述硬件层上的控制器虚拟机;其中,所述控制器虚拟机用于:
接收管理虚拟机VRM发送的第二消息;其中,所述第二消息包括:所述VRM的标识信息、所述VRM的网卡序号以及所述VRM的网卡属性,第一虚拟机的标识信息、所述第一虚拟机的网卡序号以及所述第一虚拟机的网卡属性;所述第一虚拟机是所述VRM已创建除控制器虚拟机之外的虚拟机;
根据获取的所述第二消息确定所述控制器虚拟机管理的虚拟交换机Vswitch。
32.根据权利要求31所述的物理机,其特征在于,所述控制器虚拟机还用于:
在第一Vswitch是所述控制器虚拟机管理的Vswitch时,建立与所述第一Vswitch间的连接。
33.根据权利要求32所述的物理机,其特征在于,所述控制器虚拟机还用于:
向所述第一Vswitch发送转发流表。
34.一种数据包转发的***,其特征在于,包括:虚拟交换机、管理虚拟机VRM以及控制器虚拟机,其中,
所述虚拟交换机为权利要求12-16中任一项所述的虚拟交换机;
所述管理虚拟机为权利要求17-19中任一项所述的管理虚拟机;
所述控制器虚拟机为权利要求20-22中任一项所述的控制器虚拟机。
35.一种数据包转发的***,其特征在于,包括:第一物理机、第二物理机以及第三物理机,其中,
所述第一物理机为权利要求23-27中任一项所述的物理机;
所述第二物理机为权利要求28-30中任一项所述的物理机;
所述第三物理机为权利要求31-33中任一项所述的物理机。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310596495.4A CN104660506B (zh) | 2013-11-22 | 2013-11-22 | 一种数据包转发的方法、装置及*** |
PCT/CN2014/078467 WO2015074395A1 (zh) | 2013-11-22 | 2014-05-27 | 一种数据包转发的方法、装置及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310596495.4A CN104660506B (zh) | 2013-11-22 | 2013-11-22 | 一种数据包转发的方法、装置及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104660506A CN104660506A (zh) | 2015-05-27 |
CN104660506B true CN104660506B (zh) | 2018-12-25 |
Family
ID=53178880
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310596495.4A Active CN104660506B (zh) | 2013-11-22 | 2013-11-22 | 一种数据包转发的方法、装置及*** |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN104660506B (zh) |
WO (1) | WO2015074395A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190028409A1 (en) * | 2017-07-19 | 2019-01-24 | Alibaba Group Holding Limited | Virtual switch device and method |
TWI657683B (zh) * | 2017-11-21 | 2019-04-21 | 中華電信股份有限公司 | 移除交換器之已完成流程條目的方法及用於移除已完成流程條目的交換器系統 |
CN108322391B (zh) * | 2017-12-29 | 2020-08-25 | ***股份有限公司 | 基于流表的数据传送方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102394825A (zh) * | 2011-11-04 | 2012-03-28 | 华为技术有限公司 | 报文的处理方法及装置 |
CN102780608A (zh) * | 2011-05-13 | 2012-11-14 | 国际商业机器公司 | 用于分布式虚拟交换机的私有虚拟局域网方法和*** |
CN103346981A (zh) * | 2013-06-28 | 2013-10-09 | 华为技术有限公司 | 虚拟交换方法、相关装置和计算机*** |
CN103401797A (zh) * | 2013-07-24 | 2013-11-20 | 杭州华三通信技术有限公司 | 一种报文处理方法和设备 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101800730B (zh) * | 2009-02-09 | 2013-02-27 | 国际商业机器公司 | 安全增强的虚拟机通信方法和虚拟机*** |
CN102103518B (zh) * | 2011-02-23 | 2013-11-13 | 运软网络科技(上海)有限公司 | 一种在虚拟化环境中管理资源的***及其实现方法 |
US8873398B2 (en) * | 2011-05-23 | 2014-10-28 | Telefonaktiebolaget L M Ericsson (Publ) | Implementing EPC in a cloud computer with openflow data plane |
US8797914B2 (en) * | 2011-09-12 | 2014-08-05 | Microsoft Corporation | Unified policy management for extensible virtual switches |
CN103023827B (zh) * | 2012-11-23 | 2017-04-19 | 杭州华三通信技术有限公司 | 一种虚拟化数据中心的数据转发方法及其实现设备 |
-
2013
- 2013-11-22 CN CN201310596495.4A patent/CN104660506B/zh active Active
-
2014
- 2014-05-27 WO PCT/CN2014/078467 patent/WO2015074395A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102780608A (zh) * | 2011-05-13 | 2012-11-14 | 国际商业机器公司 | 用于分布式虚拟交换机的私有虚拟局域网方法和*** |
CN102394825A (zh) * | 2011-11-04 | 2012-03-28 | 华为技术有限公司 | 报文的处理方法及装置 |
CN103346981A (zh) * | 2013-06-28 | 2013-10-09 | 华为技术有限公司 | 虚拟交换方法、相关装置和计算机*** |
CN103401797A (zh) * | 2013-07-24 | 2013-11-20 | 杭州华三通信技术有限公司 | 一种报文处理方法和设备 |
Also Published As
Publication number | Publication date |
---|---|
WO2015074395A1 (zh) | 2015-05-28 |
CN104660506A (zh) | 2015-05-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104954281B (zh) | 通信方法、***、资源池管理***、交换机和控制装置 | |
CN102576343B (zh) | 计算机***和虚拟机迁移方法 | |
CN103812823B (zh) | 虚拟机热迁移时配置信息迁移的方法、设备及*** | |
CN106470116B (zh) | 一种网络故障检测与恢复方法及装置 | |
CN105634956B (zh) | 一种报文转发方法、装置和*** | |
CN102792646A (zh) | 通信***、控制装置、通信方法和程序 | |
EP3116177A1 (en) | Service implementation method for nfv system, and communications unit | |
CN103250390B (zh) | 用于提供基于对象的传输协议的方法和装置 | |
CN105791175B (zh) | 软件定义网络中控制传输资源的方法及设备 | |
CN106134141B (zh) | 一种更新网络服务描述器nsd的方法及装置 | |
CN104660507B (zh) | 数据流转发路由的控制方法及装置 | |
CN108881158A (zh) | 数据交互***和方法 | |
CN108718283A (zh) | 数据中心网络中集中式端网协调的tcp拥塞控制方法 | |
CN106487837B (zh) | 向网络中发送和从网络中获取目标数据的方法和装置 | |
CN104995882B (zh) | 报文处理方法及装置 | |
CN103677988B (zh) | 用于软件***的多进程通讯方法及*** | |
CN108600281A (zh) | 一种云存储***、媒体数据存储方法及*** | |
CN109088820A (zh) | 一种跨设备链路聚合方法、装置、计算装置和存储介质 | |
CN110351286A (zh) | 一种软件定义网络中链路洪泛攻击检测响应机制 | |
CN104954165B (zh) | 一种链路分析的方法、设备及*** | |
CN104660506B (zh) | 一种数据包转发的方法、装置及*** | |
CN104160735B (zh) | 发报文处理方法、转发器、报文处理设备、报文处理*** | |
CN102611574A (zh) | Vpn自动配置***及配置方法 | |
JP4791285B2 (ja) | ネットワーク装置およびフィルタリングプログラム | |
CN104869064A (zh) | 一种流表更新方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |