CN104660506A - 一种数据包转发的方法、装置及系统 - Google Patents

一种数据包转发的方法、装置及系统 Download PDF

Info

Publication number
CN104660506A
CN104660506A CN201310596495.4A CN201310596495A CN104660506A CN 104660506 A CN104660506 A CN 104660506A CN 201310596495 A CN201310596495 A CN 201310596495A CN 104660506 A CN104660506 A CN 104660506A
Authority
CN
China
Prior art keywords
virtual machine
vrm
vswitch
controller
network interface
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.)
Granted
Application number
CN201310596495.4A
Other languages
English (en)
Other versions
CN104660506B (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201310596495.4A priority Critical patent/CN104660506B/zh
Priority to PCT/CN2014/078467 priority patent/WO2015074395A1/zh
Publication of CN104660506A publication Critical patent/CN104660506A/zh
Application granted granted Critical
Publication of CN104660506B publication Critical patent/CN104660506B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/70Virtual switches

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=控制器虚拟机的Seq number+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发送数据包。
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.根据权利要求12-15任一项所述的虚拟交换机,其特征在于,还包括:
删除单元,用于在所述创建单元建立了所述虚拟交换机与所述控制器虚拟机间的连接时,删除所述缺省转发表。
17.一种管理虚拟机,其特征在于,包括:
发送单元,用于向第一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用于向虚拟交换机发送数据包。
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中任一项所述的物理机。
CN201310596495.4A 2013-11-22 2013-11-22 一种数据包转发的方法、装置及系统 Active CN104660506B (zh)

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 true CN104660506A (zh) 2015-05-27
CN104660506B 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)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI657683B (zh) * 2017-11-21 2019-04-21 中華電信股份有限公司 移除交換器之已完成流程條目的方法及用於移除已完成流程條目的交換器系統
CN110945843A (zh) * 2017-07-19 2020-03-31 阿里巴巴集团控股有限公司 虚拟交换设备和方法

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108322391B (zh) * 2017-12-29 2020-08-25 中国银联股份有限公司 基于流表的数据传送方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101800730A (zh) * 2009-02-09 2010-08-11 国际商业机器公司 安全增强的虚拟机通信方法和虚拟机系统
CN102103518A (zh) * 2011-02-23 2011-06-22 运软网络科技(上海)有限公司 一种在虚拟化环境中管理资源的系统及其实现方法
CN102394825A (zh) * 2011-11-04 2012-03-28 华为技术有限公司 报文的处理方法及装置
CN102780608A (zh) * 2011-05-13 2012-11-14 国际商业机器公司 用于分布式虚拟交换机的私有虚拟局域网方法和系统
US20130064133A1 (en) * 2011-09-12 2013-03-14 Microsoft Corporation Unified Policy Management for Extensible Virtual Switches
CN103346981A (zh) * 2013-06-28 2013-10-09 华为技术有限公司 虚拟交换方法、相关装置和计算机系统
CN103401797A (zh) * 2013-07-24 2013-11-20 杭州华三通信技术有限公司 一种报文处理方法和设备

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8873398B2 (en) * 2011-05-23 2014-10-28 Telefonaktiebolaget L M Ericsson (Publ) Implementing EPC in a cloud computer with openflow data plane
CN103023827B (zh) * 2012-11-23 2017-04-19 杭州华三通信技术有限公司 一种虚拟化数据中心的数据转发方法及其实现设备

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101800730A (zh) * 2009-02-09 2010-08-11 国际商业机器公司 安全增强的虚拟机通信方法和虚拟机系统
CN102103518A (zh) * 2011-02-23 2011-06-22 运软网络科技(上海)有限公司 一种在虚拟化环境中管理资源的系统及其实现方法
CN102780608A (zh) * 2011-05-13 2012-11-14 国际商业机器公司 用于分布式虚拟交换机的私有虚拟局域网方法和系统
US20130064133A1 (en) * 2011-09-12 2013-03-14 Microsoft Corporation Unified Policy Management for Extensible Virtual Switches
CN102394825A (zh) * 2011-11-04 2012-03-28 华为技术有限公司 报文的处理方法及装置
CN103346981A (zh) * 2013-06-28 2013-10-09 华为技术有限公司 虚拟交换方法、相关装置和计算机系统
CN103401797A (zh) * 2013-07-24 2013-11-20 杭州华三通信技术有限公司 一种报文处理方法和设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
J.CHU: "Virtual Resource Management in cloud draft-junsheng-opsawg-virtual-resource-management-00.txt", 《IETF》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110945843A (zh) * 2017-07-19 2020-03-31 阿里巴巴集团控股有限公司 虚拟交换设备和方法
CN110945843B (zh) * 2017-07-19 2022-04-12 阿里巴巴集团控股有限公司 虚拟交换设备和方法
TWI657683B (zh) * 2017-11-21 2019-04-21 中華電信股份有限公司 移除交換器之已完成流程條目的方法及用於移除已完成流程條目的交換器系統

Also Published As

Publication number Publication date
CN104660506B (zh) 2018-12-25
WO2015074395A1 (zh) 2015-05-28

Similar Documents

Publication Publication Date Title
CN109981316B (zh) 应用服务器的切换方法及会话管理网元、终端设备
US10862823B2 (en) Method for service implementation in network function virtualization (NFV) system and communications unit
EP3166275A1 (en) Packet control method, switch and controller
US9385948B2 (en) Packet processing method, device and system
CN106470116B (zh) 一种网络故障检测与恢复方法及装置
CN109088820B (zh) 一种跨设备链路聚合方法、装置、计算装置和存储介质
EP3089435B1 (en) Service processing method and network device
CN106452873B (zh) 软件定义网络中的控制方法,控制设备和处理器
CN113411260A (zh) 一种IPv6网络中数据报文的发送方法及装置
CN102143138A (zh) 虚拟机实时迁移过程中vlan的配置方法及装置
CN108632931A (zh) 一种基于5g网络的数据传输方法、装置、设备及介质
CN103840976A (zh) 通信方法、光模块和网络设备
CN107770826A (zh) 一种网络切片选择方法及相关设备
CN104219144A (zh) 确定业务流的转发路径的方法、系统和网络管理系统
CN105207909A (zh) 一种发送信息的方法和网络装置
CN104660506A (zh) 一种数据包转发的方法、装置及系统
CN104869064A (zh) 一种流表更新方法及装置
CN107548038A (zh) 短信息处理方法及装置
CN117118886A (zh) 报文转发方法、头端设备、控制器、设备及存储介质
RU2693903C1 (ru) Способ, устройство и система обработки для расширенного порта
CN102246494A (zh) 从一个地址领域向不同地址领域中的客户端分配网络资源的系统和方法
CN106411677A (zh) 一种确定vpn数据通道的最优mtu的方法和装置
CN103067280B (zh) 报文处理方法和装置
CN105406989A (zh) 处理报文的方法、网卡及系统、更新信息的方法及主机
CN115942411A (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