一种发送VxLAN报文的方法及装置与流程

文档序号:17817453发布日期:2019-06-05 21:55
一种发送VxLAN报文的方法及装置与流程
本发明涉及通信
技术领域
,具体涉及一种发送VxLAN报文的方法及装置。
背景技术
:目前的云数据中心中往往通过ovs(OpenvSwitch)软件交换机处理VxLAN报文,SDN(NetworkDefinedSoftware,软件定义网络)控制器可以对ovs软件交换机进行灵活配置。现有的利用SDN控制器对ovs软件交换机的VxLAN配置方案中,当VM(VirtualMachine,虚拟机)1向同租户的VM2发送报文时,VM1的报文先在ovs软件交换机1的VxLAN端口进行VxLAN报文封装,然后直接发往Uplink口,VxLAN报文经过网络到达ovs软件交换机2的Uplink口后进行VxLAN报文的解封装,然后再发送给VxLAN端口进行流表匹配后再转发给VM2,如图1所示。从上述可以看出,每一个ovs软件交换机上都需要单独创建一个VxLAN端口,VxLAN报文需要先到达ovs软件交换机的VxLAN端口进行流表匹配,然后再从Uplink口进行转发,这种绕行VxLAN端口的方式增加了VxLAN报文在ovs软件交换机内部的处理时延,效率较低。技术实现要素:本发明实施例提供一种发送VxLAN报文的方法及装置,用以解决现有技术中的传输效率较低的缺陷。为了实现上述目的,本发明实施例采用以下技术手段:第一方面,本发明实施例提供一种发送VxLAN报文的方法,包括:接收第一主机的第一软件交换机发送的包括第一初始地址信息的源VxLAN报文,所述源VxLAN报文是第一虚拟机发送至所述第一软件交换机的;根据所述第一初始地址信息确定至少一个目标主机,所述至少一个目标主机包括的虚拟机与所述第一虚拟机属于同一租户;根据所述第一初始地址信息确定所述第一软件交换机中用于与其他主机交互的第一目标端口的标识;根据所述第一初始地址信息确定第一目标地址信息;将第一流表发送至所述第一软件交换机,所述第一流表包括第一封装规则、所述第一目标端口的标识及所述至少一个目标主机的标识,以使得所述第一软件交换机采用所述第一目标地址信息对所述源VxLAN报文进行封装,并将封装后的VxLAN报文通过所述第一目标端口发送至所述至少一个目标主机。第二方面,本发明实施例提供一种发送VxLAN报文的装置,包括:接收单元,用于接收第一主机的第一软件交换机发送的包括第一初始地址信息的源VxLAN报文,所述源VxLAN报文是第一虚拟机发送至所述第一软件交换机的;确定单元,用于根据所述第一初始地址信息确定至少一个目标主机,所述至少一个目标主机包括的虚拟机与所述第一虚拟机属于同一租户;所述确定单元还用于,根据所述第一初始地址信息确定所述第一软件交换机中用于与其他主机交互的第一目标端口的标识;所述确定单元还用于,根据所述第一初始地址信息确定第一目标地址信息;发送单元,用于将第一流表发送至所述第一软件交换机,所述第一流表包括第一封装规则、所述第一目标端口的标识及所述至少一个目标主机的标识,以使得所述第一软件交换机采用所述第一目标地址信息对所述源VxLAN报文进行封装,并将封装后的VxLAN报文通过所述第一目标端口发送至所述至少一个目标主机。本发明实施例中,提出一种发送VxLAN报文的方法,包括:接收第一主机的第一软件交换机发送的包括第一初始地址信息的源VxLAN报文,所述源VxLAN报文是第一虚拟机发送至所述第一软件交换机的;根据所述第一初始地址信息确定至少一个目标主机,所述至少一个目标主机包括的虚拟机与所述第一虚拟机属于同一租户;根据所述第一初始地址信息确定所述第一软件交换机中用于与其他主机交互的第一目标端口的标识;根据所述第一初始地址信息确定第一目标地址信息;用于将第一流表发送至所述第一软件交换机,所述第一流表包括第一封装规则、所述第一目标端口的标识及所述至少一个目标主机的标识,以使得所述第一软件交换机采用所述第一目标地址信息对所述源VxLAN报文进行封装,并将封装后的VxLAN报文通过所述第一目标端口发送至所述至少一个目标主机。在该方案中,第一软件交换机接收到第一虚拟机发送的源VxLAN报文后,会将源VxLAN报文发送至方法的执行主体,如SDN控制器,触发SDN控制器确定第一软件交换机中用于与其他主机交互的第一目标端口,这样,第一软件交换机可以通过第一目标端口成功将VxLAN报文发送至其他主机,与其他主机进行交互,该方案由于没有建立VxLAN端口,因此,可以避免绕行VxLAN端口,提高发送效率。附图说明图1为现有技术中发送VxLAN报文的方法示意图;图2A为本发明实施例提供的发送VxLAN报文的方法流程图;图2B为本发明实施例提供的发送VxLAN报文的方法流程图;图2C为本发明实施例提供的发送VxLAN报文的方法示意图;图3为本发明实施例提供的发送VxLAN报文的装置示意图。具体实施方式为使本领域的技术人员更好地理解本发明的技术方案,下面结合附图对本发明提供的发送VxLAN报文的方法及装置进行详细描述。在下文中将参考附图更充分地描述示例实施例,但是所述示例实施例可以以不同形式来体现且不应当被解释为限于本文阐述的实施例。反之,提供这些实施例的目的在于使本公开透彻和完整,并将使本领域技术人员充分理解本公开的范围。如本文所使用的,术语“和/或”包括一个或多个相关列举条目的任何和所有组合。本文所使用的术语仅用于描述特定实施例,且不意欲限制本公开。如本文所使用的,单数形式“一个”和“该”也意欲包括复数形式,除非上下文另外清楚指出。还将理解的是,当本说明书中使用术语“包括”和/或“由……制成”时,指定存在所述特征、整体、步骤、操作、元件和/或组件,但不排除存在或添加一个或多个其他特征、整体、步骤、操作、元件、组件和/或其群组。本文所述实施例可借助本公开的理想示意图而参考平面图和/或截面图进行描述。因此,可根据制造技术和/或容限来修改示例图示。因此,实施例不限于附图中所示的实施例,而是包括基于制造工艺而形成的配置的修改。因此,附图中例示的区具有示意性属性,并且图中所示区的形状例示了元件的区的具体形状,但并不旨在是限制性的。除非另外限定,否则本文所用的所有术语(包括技术和科学术语)的含义与本领域普通技术人员通常理解的含义相同。还将理解,诸如那些在常用字典中限定的那些术语应当被解释为具有与其在相关技术以及本公开的背景下的含义一致的含义,且将不解释为具有理想化或过度形式上的含义,除非本文明确如此限定。参阅图2所示,本发明的实施例中,提供一种发送VxLAN报文的方法20,包括:步骤200:接收第一主机的第一软件交换机发送的包括第一初始地址信息的源VxLAN报文,所述源VxLAN报文是第一虚拟机发送至所述第一软件交换机的;步骤210:根据所述第一初始地址信息确定至少一个目标主机,所述至少一个目标主机包括的虚拟机与所述第一虚拟机属于同一租户;步骤220:根据所述第一初始地址信息确定所述第一软件交换机中用于与其他主机交互的第一目标端口的标识;步骤230:根据所述第一初始地址信息确定第一目标地址信息;步骤240:将第一流表发送至所述第一软件交换机,所述第一流表包括第一封装规则、所述第一目标端口的标识及所述至少一个目标主机的标识,以使得所述第一软件交换机采用所述第一目标地址信息对所述源VxLAN报文进行封装,并将封装后的VxLAN报文通过所述第一目标端口发送至所述至少一个目标主机。以方法20的执行主体为SDN控制器为例对方法20进行举例说明。步骤1:VM1将包括第一初始地址信息的源VxLAN报文发送至主机1中的ovs软件交换机1;步骤2:ovs软件交换机1将接收到的源VxLAN报文发送至SDN控制器;步骤3:SDN控制器根据所述第一初始地址信息确定出五个目标主机:主机2、主机3、主机4、主机5和主机6,其中,主机2、主机3、主机4、主机5和主机6包括的VM与VM1属于同一租户;步骤4:SDN控制器根据所述第一初始地址信息确定出与主机2、主机3、主机4、主机5和主机6进行交互的端口的标识,如编号3,编号3为端口3的标识;步骤5:SDN控制器根据所述第一初始地址信息确定第一目标地址信息;步骤6:SDN控制器将第一流表发送至所述ovs软件交换机1,所述第一流表包括第一封装规则、编号3、主机2的标识、主机3的标识、主机4的标识、主机5的标识、主机6的标识,所述第一封装规则是指采用所述第一目标地址信息对所述源VxLAN报文进行封装;步骤7:ovs软件交换机1采用第一目标地址信息对所述源VxLAN报文进行封装,并将封装后的VxLAN报文通过端口3分别发送至主机2、主机3、主机4、主机5和主机6。本发明实施例中,所述第一初始地址信息包括第一源IP(InternetProtocol,互联网协议)地址、第一源MAC(MediaAccessControl,媒体访问控制)地址、第一目的IP地址和第一目的MAC地址;所述第一源IP地址为所述第一虚拟机的IP地址、所述第一源MAC地址为所述第一虚拟机的MAC地址、所述第一目的IP地址为第二虚拟机的IP地址、所述第一目的MAC地址为广播包的MAC地址。需要说明的是,方法20中描述的方案,第一虚拟机要将源VxLAN报文发送至第二虚拟机,因此,所述第一目的IP地址为第二虚拟机的IP地址,若第一虚拟机要将源VxLAN报文发送至第三虚拟机,因此,所述第一目的IP地址为第三虚拟机的IP地址,同理,若要发送至其他虚拟机,则所述第一目的IP地址为其他虚拟机的IP地址。例如,源VxLAN报文是VM1发送至VM2的,则所述第一源IP地址为VM1的IP地址、所述第一源MAC地址为VM1的MAC地址、所述第一目的IP地址为VM2的IP地址、所述第一目的MAC地址为广播包的MAC地址。本发明实施例中,广播包的MAC地址可以为FF-FF-FF-FF-FF-FF,当然,上述只是广播包的MAC地址的一种形式,还可以为其他形式,在此不再进行详述。本发明实施例中,根据所述第一初始地址信息确定至少一个目标主机,包括:根据所述第一初始地址信息中包括的第一虚拟机的MAC地址确定所述第一虚拟机的VNI(VXLANNetworkIdentifier,VXLAN的网络标识);将具有所述VNI虚拟机所属的主机作为所述至少一个目标主机。表1ovsIDVM的MAC地址VM端口标识VNI目的主机IP地址1mac-vm131000ip-host12mac-vm231000ip-host23mac-vm332000ip-host34mac-vm442000ip-host45mac-vm521000ip-host56mac-vm621000ip-host67mac-vm722000ip-host78mac-vm843000ip-host89mac-vm931000ip-host910mac-vm1021000ip-host10例如,mac-vm1表示VM1的MAC地址,从表1中可以看出,mac-vm1对应的VNI为1000,而VNI为1000对应的虚拟机所属的主机还包括主机2、主机5、主机6、主机9、主机10,则确定出的至少一个目标主机为主机2、主机5、主机6、主机9、主机10。本发明实施例中,可选地,根据所述第一初始地址信息确定所述第一软件交换机中用于与其他主机交互的第一目标端口的标识,包括:根据所述第一虚拟机的MAC地址确定所述第一主机的IP地址;根据所述第一主机的IP地址确定所述第一目标端口的标识。例如,下面表2中有主机的IP地址和对应的主机端口的映射关系,则在确定出第一主机的IP地址后,根据表2,可以确定出主机端口。表2ovsID主机IP地址主机的mac地址主机端口VNI1ip-host1mac-host1210002ip-host2mac-host221000需要说明的是,上面给出了表1和表2,两张表可以合成一张表,但是在两张情况下,根据所述第一主机的IP地址确定所述第一目标端口的标识的原理是相同的。本发明实施例中,所述第一目标地址信息包括第二源IP地址、第二源MAC地址、第二目的IP地址和第二目的MAC地址;所述第二源IP地址为所述第一主机的IP地址,所述第二目的IP地址为所述至少一个目标主机分别对应的IP地址,所述第二源MAC地址为所述第一主机的MAC地址,所述第二目的MAC地址为所述至少一个目标主机分别对应的MAC地址。这样,第一软件交换机接收到第一流表后,可以根据第一流表将源VxLAN报文封装,并将封装后的VxLAN报文发送至目标主机。例如,第一软件交换机要将VxLAN报文发送至目标主机,如主机6时,第一软件交换机采用第一目标地址信息对源VxLAN报文进行封装,并将封装好的VxLAN报文从第一目标端口的标识对应的第一目标端口中发送至主机6。例如,封装好的VxLAN报文外层的源IP地址为主机1的IP地址,目的IP地址为主机6的IP地址,源MAC地址为主机1的MAC地址,目的MAC地址为主机6的MAC地址,第一软件交换机将封装好的VxLAN报文从端口3发送至主机6。又例如,要将报文发送至主机5,则封装好的VxLAN报文外层的源IP地址为主机1的IP地址,目的IP地址为主机5的IP地址,源MAC地址为主机1的MAC地址,目的MAC地址为主机5的MAC地址,第一软件交换机将封装好的VxLAN报文从端口3发送至主机5。前面描述的是,SDN控制器与第一软件交换机交互的过程,本发明实施例中,第一软件交换机将封装后的报文发送至目标主机后,由于目标主机中也没有流表,并不知道要从哪个端口发送至哪些虚拟机,因此,SDN控制器还要进一步与目标主机进行交互,具体为与目标主机中的软件交换机进行交互。因此,本发明实施例中,进一步的,还包括步骤250-270,如图2B所示:步骤250:接收第二软件交换机发送的封装后的VxLAN报文,所述第二软件交换机为所述至少一个目标主机包括的软件交换机;步骤260:根据所述第二软件交换机所属的目标主机的IP地址确定至少一个目标虚拟机及与所述至少一个目标虚拟机分别对应的第二目标端口;步骤270:将第二流表发送至所述第二软件交换机,所述第二流表包括所述第二目标端口的标识、所述至少一个目标虚拟机的标识,使得所述第二软件交换机通过与所述至少一个目标虚拟机分别对应的第二目标端口,将所述封装后的VxLAN报文发送至所述至少一个目标虚拟机。从图2B中可以看出,ovs1接收到VM1发送的VxLAN报文后,并没有通过VxLAN端口转发,也可以将VxLAN报文发送至主机2,主机2在接收到VxLAN报文后,也并没有通过VxLAN端口转发,也可以将VxLAN报文发送至VM2,因此,降低了VxLAN报文在内部传输所耗费的时间,提高了传输效率。本发明实施例中,所述封装后的报文包括第三源IP地址、第三目的IP地址、第三源MAC地址和第三目的MAC地址,其中,所述第三源IP地址为所述第一主机的IP地址、所述第三目的IP地址为所述第二软件交换机所属目标主机对应的IP地址、所述第三源MAC地址为所述第一主机的MAC地址、所述第三目的MAC地址为所述第二软件交换机所属目标主机对应的MAC地址。本发明实施例中,之前确定出的目标主机有多个的话,每一个目标主机的软件交换机都要执行步骤250-270,执行原理是一样的,只不过封装后的VxLAN报文的所述第三目的IP地址、所述第三目的MAC地址不同,如目标主机为主机2的话,所述第三目的IP地址为主机2对应的IP地址、所述第三目的MAC地址为主机2对应的MAC地址;目标主机为主机4的话,所述第三目的IP地址为主机4对应的IP地址、所述第三目的MAC地址为主机4对应的MAC地址。例如,第二软件交换机所属的目标主机为主机4,SDN确定出VMa、VMb、VMc、VMd作为目标虚拟机,且确定出第二软件交换机与VMa、VMb、VMc、VMd交互的端口分别为端口1、端口2、端口3、端口4,SDN控制器将包括上述信息的第二流表发送至第二软件交换机,第二软件交换机接收到第二流表后,将解封装后的VxLAN报文通过端口1发送至VMa、将解封装后的VxLAN报文通过端口2发送至VMb、将解封装后的VxLAN报文通过端口3发送至VMc、将解封装后的VxLAN报文通过端口4发送至VMd。本发明实施例中,可选地,根据所述第二软件交换机所属的目标主机的IP地址确定至少一个目标虚拟机及与所述至少一个目标虚拟机分别对应的第二目标端口,包括:根据所述第二软件交换机所属目标主机的IP地址确定所述所属目标主机的VNI;将对应的VNI与所述所属目标主机的VNI相同的虚拟机,作为所述至少一个目标虚拟机;将所述第二软件交换机上与所述至少一个目标虚拟机对应的端口,作为与所述至少一个目标虚拟机分别对应的第二目标端口。前面描述的是,第一虚拟机如何将VxLAN报文成功发送至第二虚拟机的过程,在实际应用中,第二虚拟机在接收到VxLAN报文之后,还要给第一虚拟机发送响应报文。因此,本发明实施例中,进一步的,还包括如下过程:接收第三软件交换机发送的包括第二初始地址信息的源响应报文,所述第三软件交换机为所述至少一个目标主机包括的软件交换机,所述初始响应报文是成功解析所述VxLAN报文的第二虚拟机发送至所述第三软件交换机的;根据所述第二初始地址信息确定所述第三软件交换机中用于与其他主机交互的第三目标端口的标识;根据所述第二初始地址信息确定第二目标地址信息;将第三流表发送至所述第三软件交换机,所述第三流表包括第二封装规则、所述第三目标端口的标识,以使得所述第三软件交换机采用所述第二目标地址信息对所述源响应报文进行封装,并将封装后的响应报文通过所述第三目标端口发送至所述第一软件交换机。本发明实施例中,可选地,所述第二初始地址信息包括的第四源IP地址、第四源MAC地址、第四目的IP地址和第四目的MAC地址;所述第四源IP地址为所述第二虚拟机的IP地址、所述第四源MAC地址为所述第二虚拟机的MAC地址、所述第四目的IP地址为所述第一虚拟机的第二IP地址、所述第四目的MAC地址为所述第一虚拟机的MAC地址。例如,VM2要向VM1发送响应消息,第四源IP地址为VM2的IP地址、所述第四源MAC地址为VM2的MAC地址、所述第四目的IP地址为VM1的第二IP地址、所述第四目的MAC地址为VM1的MAC地址。其中,所述第二目标地址信息包括第五源IP地址、第五源MAC地址、第五目的IP地址和第五目的MAC地址;所述第五源IP地址为所述第三软件交换机所属主机的IP地址,所述第五目的IP地址为所述第一主机的IP地址,所述第五源MAC地址为所述第三软件交换机所属主机的MAC地址,所述第五目的MAC地址为所述第一主机的MAC地址。本发明实施例中,进一步的,还包括:接收所述第一软件交换机发送的封装响应报文;根据所述第一软件交换机所属的第一主机的IP地址确定的第四目标端口;将第四流表发送至所述第一软件交换机,使得所述第一软件交换机通过所述第四目标端口,将所述响应报文发送至所述第一虚拟机,所述第四流表包括所述第四目标端口的标识。参阅图3所示,本发明实施例中,提出一种发送VxLAN报文的装置30,包括:接收单元300,用于接收第一主机的第一软件交换机发送的包括第一初始地址信息的源VxLAN报文,所述源VxLAN报文是第一虚拟机发送至所述第一软件交换机的;确定单元310,用于根据所述第一初始地址信息确定至少一个目标主机,所述至少一个目标主机包括的虚拟机与所述第一虚拟机属于同一租户;所述确定单元310还用于,根据所述第一初始地址信息确定所述第一软件交换机中用于与其他主机交互的第一目标端口的标识;所述确定单元310还用于,根据所述第一初始地址信息确定第一目标地址信息;发送单元320,用于将第一流表发送至所述第一软件交换机,所述第一流表包括第一封装规则、所述第一目标端口的标识及所述至少一个目标主机的标识,以使得所述第一软件交换机采用所述第一目标地址信息对所述源VxLAN报文进行封装,并将封装后的VxLAN报文通过所述第一目标端口发送至所述至少一个目标主机。本发明实施例中,所述第一初始地址信息包括第一源IP(InternetProtocol,互联网协议)地址、第一源MAC(MediaAccessControl,媒体访问控制)地址、第一目的IP地址和第一目的MAC地址;所述第一源IP地址为所述第一虚拟机的IP地址、所述第一源MAC地址为所述第一虚拟机的MAC地址、所述第一目的IP地址为第二虚拟机的IP地址、所述第一目的MAC地址为广播包的MAC地址。需要说明的是,装置30中描述的方案,第一虚拟机要将源VxLAN报文发送至第二虚拟机,因此,所述第一目的IP地址为第二虚拟机的IP地址,若第一虚拟机要将源VxLAN报文发送至第三虚拟机,因此,所述第一目的IP地址为第三虚拟机的IP地址,同理,若要发送至其他虚拟机,则所述第一目的IP地址为其他虚拟机的IP地址。例如,源VxLAN报文是VM1发送至VM2的,则所述第一源IP地址为VM1的IP地址、所述第一源MAC地址为VM1的MAC地址、所述第一目的IP地址为VM2的IP地址、所述第一目的MAC地址为广播包的MAC地址。本发明实施例中,广播包的MAC地址可以为FF-FF-FF-FF-FF-FF,当然,上述只是广播包的MAC地址的一种形式,还可以为其他形式,在此不再进行详述。可选地,所述确定单元310具体用于:根据所述第一初始地址信息中包括的第一虚拟机的MAC地址确定所述第一虚拟机的VNI;将具有所述VNI虚拟机所属的主机作为所述至少一个目标主机。例如,mac-vm1表示VM1的MAC地址,从表1中可以看出,mac-vm1对应的VNI为1000,而VNI为1000对应的虚拟机所属的主机还包括主机2、主机5、主机6、主机9、主机10,则确定出的至少一个目标主机为主机2、主机5、主机6、主机9、主机10。本发明实施例中,可选地,确定单元310具体用于:根据所述第一虚拟机的MAC地址确定所述第一主机的IP地址;根据所述第一主机的IP地址确定所述第一目标端口的标识。例如,下面表2中有主机的IP地址和对应的主机端口的映射关系,则在确定出第一主机的IP地址后,根据表2,可以确定出主机端口。需要说明的是,上面给出了表1和表2,两张表可以合成一张表,但是在两张情况下,根据所述第一主机的IP地址确定所述第一目标端口的标识的原理是相同的。本发明实施例中,所述第一目标地址信息包括第二源IP地址、第二源MAC地址、第二目的IP地址和第二目的MAC地址;所述第二源IP地址为所述第一主机的IP地址,所述第二目的IP地址为所述至少一个目标主机分别对应的IP地址,所述第二源MAC地址为所述第一主机的MAC地址,所述第二目的MAC地址为所述至少一个目标主机分别对应的MAC地址。这样,第一软件交换机接收到第一流表后,可以根据第一流表将源VxLAN报文封装,并将封装后的VxLAN报文发送至目标主机。例如,第一软件交换机要将VxLAN报文发送至目标主机,如主机6时,第一软件交换机采用第一目标地址信息对源VxLAN报文进行封装,并将封装好的VxLAN报文从第一目标端口的标识对应的第一目标端口中发送至主机6。例如,封装好的VxLAN报文外层的源IP地址为主机1的IP地址,目的IP地址为主机6的IP地址,源MAC地址为主机1的MAC地址,目的MAC地址为主机6的MAC地址,第一软件交换机将封装好的VxLAN报文从端口3发送至主机6。又例如,要将报文发送至主机5,则封装好的VxLAN报文外层的源IP地址为主机1的IP地址,目的IP地址为主机5的IP地址,源MAC地址为主机1的MAC地址,目的MAC地址为主机5的MAC地址,第一软件交换机将封装好的VxLAN报文从端口3发送至主机5。前面描述的是,SDN控制器与第一软件交换机交互的过程,本发明实施例中,第一软件交换机将封装后的报文发送至目标主机后,由于目标主机中也没有流表,并不知道要从哪个端口发送至哪些虚拟机,因此,SDN控制器还要进一步与目标主机进行交互,具体为与目标主机中的软件交换机进行交互。因此,本发明实施例中,进一步的,所述接收单元300还用于,接收第二软件交换机发送的封装后的VxLAN报文,所述第二软件交换机为所述至少一个目标主机包括的软件交换机;所述确定单元310还用于,根据所述第二软件交换机所属的目标主机的IP地址确定至少一个目标虚拟机及与所述至少一个目标虚拟机分别对应的第二目标端口;所述发送单元320还用于,将第二流表发送至所述第二软件交换机,所述第二流表包括所述第二目标端口的标识、所述至少一个目标虚拟机的标识,使得所述第二软件交换机通过与所述至少一个目标虚拟机分别对应的第二目标端口,将所述封装后的VxLAN报文发送至所述至少一个目标虚拟机。从图2B中可以看出,ovs1接收到VM1发送的VxLAN报文后,并没有通过VxLAN端口转发,也可以将VxLAN报文发送至主机2,主机2在接收到VxLAN报文后,也并没有通过VxLAN端口转发,也可以将VxLAN报文发送至VM2,因此,降低了VxLAN报文在内部传输所耗费的时间,提高了传输效率。本发明实施例中,所述封装后的报文包括第三源IP地址、第三目的IP地址、第三源MAC地址和第三目的MAC地址,其中,所述第三源IP地址为所述第一主机的IP地址、所述第三目的IP地址为所述第二软件交换机所属目标主机对应的IP地址、所述第三源MAC地址为所述第一主机的MAC地址、所述第三目的MAC地址为所述第二软件交换机所属目标主机对应的MAC地址。本发明实施例中,之前确定出的目标主机有多个的话,每一个目标主机的软件交换机都要执行上述过程,执行原理是一样的,只不过封装后的VxLAN报文的所述第三目的IP地址、所述第三目的MAC地址不同,如目标主机为主机2的话,所述第三目的IP地址为主机2对应的IP地址、所述第三目的MAC地址为主机2对应的MAC地址;目标主机为主机4的话,所述第三目的IP地址为主机4对应的IP地址、所述第三目的MAC地址为主机4对应的MAC地址。例如,第二软件交换机所属的目标主机为主机4,SDN确定出VMa、VMb、VMc、VMd作为目标虚拟机,且确定出第二软件交换机与VMa、VMb、VMc、VMd交互的端口分别为端口1、端口2、端口3、端口4,SDN控制器将包括上述信息的第二流表发送至第二软件交换机,第二软件交换机接收到第二流表后,将解封装后的VxLAN报文通过端口1发送至VMa、将解封装后的VxLAN报文通过端口2发送至VMb、将解封装后的VxLAN报文通过端口3发送至VMc、将解封装后的VxLAN报文通过端口4发送至VMd。本发明实施例中,可选地,确定单元310根据所述第二软件交换机所属的目标主机的IP地址确定至少一个目标虚拟机及与所述至少一个目标虚拟机分别对应的第二目标端口,包括:根据所述第二软件交换机所属目标主机的IP地址确定所述所属目标主机的VNI;将对应的VNI与所述所属目标主机的VNI相同的虚拟机,作为所述至少一个目标虚拟机;将所述第二软件交换机上与所述至少一个目标虚拟机对应的端口,作为与所述至少一个目标虚拟机分别对应的第二目标端口。前面描述的是,第一虚拟机如何将VxLAN报文成功发送至第二虚拟机的过程,在实际应用中,第二虚拟机在接收到VxLAN报文之后,还要给第一虚拟机发送响应报文。进一步的,所述接收单元300还用于:接收第三软件交换机发送的包括第二初始地址信息的源响应报文,所述第三软件交换机为所述至少一个目标主机包括的软件交换机,所述初始响应报文是成功解析所述VxLAN报文的第二虚拟机发送至所述第三软件交换机的;所述确定单元310还用于,根据所述第二初始地址信息确定所述第三软件交换机中用于与其他主机交互的第三目标端口的标识;所述确定单元310还用于,根据所述第二初始地址信息确定第二目标地址信息;所述发送单元320还用于,将第三流表发送至所述第三软件交换机,所述第三流表包括第二封装规则、所述第三目标端口的标识,以使得所述第三软件交换机采用所述第二目标地址信息对所述源响应报文进行封装,并将封装后的响应报文通过所述第三目标端口发送至所述第一软件交换机。本发明实施例中,可选地,所述第二初始地址信息包括的第四源IP地址、第四源MAC地址、第四目的IP地址和第四目的MAC地址;所述第四源IP地址为所述第二虚拟机的IP地址、所述第四源MAC地址为所述第二虚拟机的MAC地址、所述第四目的IP地址为所述第一虚拟机的第二IP地址、所述第四目的MAC地址为所述第一虚拟机的MAC地址。例如,VM2要向VM1发送响应消息,第四源IP地址为VM2的IP地址、所述第四源MAC地址为VM2的MAC地址、所述第四目的IP地址为VM1的第二IP地址、所述第四目的MAC地址为VM1的MAC地址。其中,所述第二目标地址信息包括第五源IP地址、第五源MAC地址、第五目的IP地址和第五目的MAC地址;所述第五源IP地址为所述第三软件交换机所属主机的IP地址,所述第五目的IP地址为所述第一主机的IP地址,所述第五源MAC地址为所述第三软件交换机所属主机的MAC地址,所述第五目的MAC地址为所述第一主机的MAC地址。进一步的,所述接收单元300还用于,接收所述第一软件交换机发送的封装响应报文;所述确定单元310还用于,根据所述第一软件交换机所属的第一主机的IP地址确定的第四目标端口;所述发送单元320还用于,将第四流表发送至所述第一软件交换机,使得所述第一软件交换机通过所述第四目标端口,将所述响应报文发送至所述第一虚拟机,所述第四流表包括所述第四目标端口的标识。本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。本文已经公开了示例实施例,并且虽然采用了具体术语,但它们仅用于并仅应当被解释为一般说明性含义,并且不用于限制的目的。在一些实例中,对本领域技术人员显而易见的是,除非另外明确指出,否则可单独使用与特定实施例相结合描述的特征、特性和/或元素,或可与其他实施例相结合描述的特征、特性和/或元件组合使用。因此,本领域技术人员将理解,在不脱离由所附的权利要求阐明的本公开的范围的情况下,可进行各种形式和细节上的改变。当前第1页1 2 3 
再多了解一些
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1