公有云网络物理主机加入VPC的方法技术

技术编号:25486078 阅读:25 留言:0更新日期:2020-09-01 23:05
本发明专利技术涉及云计算和计算机网络领域,具体提供了一种公有云网络物理主机加入VPC的方法,该方法在物理主机通过vlan连接到ToR交换机上,物理主机的ToR支持vxlan和组播,扩展neutron的plugin和agent;在neutron server中新增l2 gateway的plugin并扩展generic network switch plugin的功能,并配置物理主机所在ToR交换机的vlan与vxlan的vni映射,在openvswitch agent中新增l2 gateway的agent扩展,用户管理虚拟网桥和ovs流表。与现有技术相比,本发明专利技术的物理主机与VPC内虚机可用VPC内网地址实现二三层互通,实现虚机与物理主机的统一化管理,具有良好的推广价值。

【技术实现步骤摘要】
公有云网络物理主机加入VPC的方法
本专利技术涉及云计算和计算机网络领域,具体提供一种公有云网络物理主机加入VPC的方法。
技术介绍
Openstack作为当前开源Iaas云计算的一款主流产品,获得了业界的广泛关注和普遍欢迎,尤其是近年来Openstack开源社区及Openstack相关产品的商业化落地等方面都取得了突飞猛进的发展,但Openstack在作为公有云Iaas平台操作系统时,仍有许多待扩展的功能,比如支持物理主机加入VPC等。Openstack作为公有云Iaas平台操作系统时,为保证网络L3流量的健壮性和性能,通常会开启其网络组件neutron中的dvr(distributedvirtualrouting)模式。在dvr模式下,虚拟路由器以分布式的形式存在于计算节点之上,同一个虚拟路由器会同时存在多个计算节点上,并且其网关的IP和mac地址均相同。Neutron的dvr模式这个特征给基于neutron的很多网络方案设计带来了挑战,如物理主机加入VPC,由于L3流量的分布式路由,无集中控制点,对于物理主机来说,其三层网关不能直接复用计算节点上的虚拟路由器,因为计算节点上存在多个相同的虚拟路由器,直接复用会导致地址冲突,业务不可用。业界为了解决物理主机与VPC内的虚机互通一般采用两种方法,一种方法是路由模式互通,即通过网关将物理主机和虚机网络关联起来,通过配置转发策略,实现路由层面互通,但这种方案的缺陷是物理主机无法与VPC内的虚机在同一个二层域内,从公有云产品的角度看,资源使用方式不统一,而且不利于业务迁移。另一种方法是利用支持vxlan的硬件交换机和evpn的技术来实现虚机的vxlan网络与物理主机的大二层互通,通过OpenStack的vtep采用硬件来支持,物理主机的ToR(TopofRack)交换机也需要支持vxlan和evpn,采用sdn控制器或者独立开发的控制平面管理工具来实现evpn的控制平面功能,这种方法的缺点是需要硬件来支持,缺乏灵活性,而且sdn控制器需要接管OpenStack的虚拟网络管理,其稳定性、健壮性和性能等都面临挑战。
技术实现思路
本专利技术是针对上述现有技术的不足,提供一种实用性强的公有云网络物理主机加入VPC的方法。本专利技术解决其技术问题所采用的技术方案是:公有云网络物理主机加入VPC的方法,物理主机通过vlan连接到ToR交换机上,物理主机的ToR支持vxlan和组播,扩展neutron的plugin和agent;在neutronserver中新增l2gateway的plugin并扩展genericnetworkswitchplugin的功能,并配置物理主机所在ToR交换机的vlan与vxlan的vni映射,在openvswitchagent中新增l2gateway的agent扩展,用户管理虚拟网桥和ovs流表。进一步的,所述L2gatewayplugin用于监听物理主机创建、删除port的事件和虚机创建删除事件,监听到新的物理主机上线时或新的qrouter创建时,通过rpc消息通知L2gatewayagent进行相关流表的下发,从而实现数据面的打通。进一步的,所述L2gatewayagent为基于openvswitchagent的L2功能扩展,其有两个功能;一个功能为维护双vxlan通道的linuxbridge网桥的动态创建和删除,在一个新的VPC中加入物理主机时,需要给VPC中虚机所在的计算节点和该VPC的snat所在的网络节点创建一个br-multicast的linuxbridge桥,并通过一对vethpair接口连接到br-tun的ovs桥上,创建一个vxlan的接口(需指定组播组,如239.0.0.100)并挂接到br-multicast桥上,该vxlan接口的vni复用VPC的vni,但udp端口号需要与ovs的vxlan端口不同,否则会有端口冲突;另一个功能为给br-tun下发相关的流表。进一步的,所述Genericnetworkswitchplugin主要是为L2gatewayplugin提供配置物理主机所在的ToR交换机的接口,该ToR交换机支持vxlan和组播,物理主机通过vlan接入ToR交换机,通过在ToR交换机上配置vlan与vxlan的映射,用于物理主机与虚机的vxlan网络互通。进一步的,所述物理主机为单独区域部署,所述该单独区域中的ToR交换机支持vxlan组播,OpenStack计算节点和网络节点的vtep与物理主机的ToR交换机之间建立vxlan隧道,用于承载虚机与物理主机之间的vxlan流量。进一步的,vxlan通道技术为ovsbridge和linuxbridge的双vxlan通道技术,其中br-tun的ovsbridge隧道用于OpenStack计算节点与网络节点之间的vxlan流量封装,br-multicast的linuxbridge隧道则用于计算节点和网络节点与物理主机所在的ToR交换机之间的vxlan流量封装。由于内核实现中,vxlan采用udp的socket接收数据,因此ovs和linux的双通道vxlan需采用不同的udp端口号。进一步的,vm1和cps1位于同VPC的同子网下,下面分两种情况讨论:a、会话由vm1发起,(1)vm1发送arp请求广播,请求获取cps1的mac地址;(2)arp请求广播包经过br-int、br-tun到达br-multicast;(3)br-multicast通过组播将该arp广播包在组播组内泛洪;(4)物理主机所在的ToR交换机收到arp请求,解除vxlan封装,然后封装成vlan的arp包发送给cps1;(5)cps1用本地接口的mac地址单播应答arp请求,目的mac地址为vm1的mac;(6)cps1的arp应答包到达ToR交换机,ToR交换机查找本地转发表,查到目的vm1的mac对应的表项,将arp应答包封装成vxlan报文并单播发送给vm1所在的计算节点;(7)vm1的所在计算节点的br-multicast桥接收到arp应答的vxlan包后解除vxlan封装,并经过br-tun和br-int送达vm1;(8)至此,双向的数据平面通道已经打通,后续双向报文可以直接单播发送;b、会话由cps1发起,(1)cps1发送arp请求广播,请求获取vm1的mac地址;(2)arp请求报文到达cps1的ToR交换机,交换机给改arp请求封装vxlan包头并在组播组内泛洪;(3)vm1所在的计算节点的br-multicast接收到arp请求后,解除vxlan封装,并经过br-tun和br-int,将arp请求送达vm1;(4)vm1应答arp请求,arp应答报文经过br-int、br-tun后到达br-multicast,由br-multicast进行vxlan封装并单播发送给cps1所在本文档来自技高网
...

【技术保护点】
1.公有云网络物理主机加入VPC的方法,其特征在于,该方法在物理主机通过vlan连接到ToR交换机上,物理主机的ToR支持vxlan和组播,扩展neutron的plugin和agent;/n在neutron server中新增l2 gateway的plugin并扩展generic network switchplugin的功能,并配置物理主机所在ToR交换机的vlan与vxlan的vni映射,在openvswitchagent中新增l2 gateway的agent扩展,用户管理虚拟网桥和ovs流表。/n

【技术特征摘要】
1.公有云网络物理主机加入VPC的方法,其特征在于,该方法在物理主机通过vlan连接到ToR交换机上,物理主机的ToR支持vxlan和组播,扩展neutron的plugin和agent;
在neutronserver中新增l2gateway的plugin并扩展genericnetworkswitchplugin的功能,并配置物理主机所在ToR交换机的vlan与vxlan的vni映射,在openvswitchagent中新增l2gateway的agent扩展,用户管理虚拟网桥和ovs流表。


2.根据权利要求1所述的公有云网络物理主机加入VPC的方法,其特征在于,所述L2gatewayplugin用于监听物理主机创建、删除port的事件和虚机创建删除事件,监听到新的物理主机上线时或新的qrouter创建时,通过rpc消息通知L2gatewayagent进行相关流表的下发,从而实现数据面的打通。


3.根据权利要求2所述的公有云网络物理主机加入VPC的方法,其特征在于,所述L2gatewayagent为基于openvswitchagent的L2功能扩展,其有两个功能;
一个功能为维护双vxlan通道的linuxbridge网桥的动态创建和删除,在一个新的VPC中加入物理主机时,需要给VPC中虚机所在的计算节点和该VPC的snat所在的网络节点创建一个br-multicast的linuxbridge桥,并通过一对vethpair接口连接到br-tun的ovs桥上,创建一个vxlan的接口(需指定组播组,如239.0.0.100)并挂接到br-multicast桥上,该vxlan接口的vni复用VPC的vni,但udp端口号需要与ovs的vxlan端口不同,否则会有端口冲突;
另一个功能为给br-tun下发相关的流表。


4.根据权利要求3所述的公有云网络物理主机加入VPC的方法,其特征在于,所述Genericnetworkswitchplugin主要是为L2gatewayplugin提供配置物理主机所在的ToR交换机的接口,该ToR交换机支持vxlan和组播,物理主机通过vlan接入ToR交换机,通过在ToR交换机上配置vlan与vxlan的映射,用于物理主机与虚机的vxlan网络互通。


5.根据权利要求4所述的公有云网络物理主机加入VPC的方法,其特征在于,所述物理主机为单独区域部署,所述该单独区域中的ToR交换机支持vxlan组播,OpenStack计算节点和网络节点的vtep与物理主机的ToR交换机之间建立vxlan隧道,用于承载虚机与物理主机之间的vxlan流量。


6.根据权利要求5所述的公有云网络物理主机加入VPC的方法,其特征在于,vxlan通道技术为ovsbridge和linuxbridge的双vxlan通道技术,其中br-tun的ovsbridge隧道用于OpenStack计算节点与网络节点之间的vxlan流量封装,br-multicast的linuxbridge隧道则用于计算节点和网络节点与物理主机所在的ToR交换机之间的vxlan流量封装。由于内核实现中,vxlan采用udp的socket接收数据,因此ovs和linux的双通道vxlan需采用不同的udp端口号。


7.根据权利要求6所述的公有云网络物理主机加入VPC的方法,其特征在于,vm1和cps1位于同VPC的同子网下,下面分两种情况讨论:
a、会话由vm1发起,
(1)vm1发送arp请求广播,请求获取cps1的mac地址;
(2)arp请求广播包经过br-int、br-tun到达br-multicast;
(3)br-multicast通过组播将该arp广播包在组播组内泛洪;
(4)物理主机所在的ToR交换机收到arp请求,解除vxlan封装,然后封装成vlan的arp包发送给cps1;
(5)cps1用本地接口的mac地址单播应答arp请求,目的mac地址为vm1的mac;
(6)cps1的arp应答包到达ToR交换机,ToR交换机查找本地转发表,查到目的vm1的mac对应的表项,将arp应答包封装成vxlan报文并单播发送给vm1所在的计算节点;
(7)vm1的所在计算节点的br-multicast桥接收到arp应答的vxlan包后解除vxlan封装,并经过br-tun和br-int送达vm1;
(8)至此,双向的数据平面通道已经打通,后续双向报文可以直接单播发送;
b、会话由cps1发起,
(1)cps1发送arp请求广播,请求获取vm1的mac地址;
(2)arp请求报文到达cps1的ToR交换机,交换机给改arp请求封装vxlan包头并在组播组内泛洪;
(3)vm1所在的计算节点的br-multicast接收到arp请求后,解除vxlan封装,并经过br-tun和br-int,将arp请求送达vm1;
(4)vm1应答arp请求,arp应答报文经过br-int、br-tun后到达br-multicast,由br-multicast进行vxlan封装并单播发送给cps1所在的ToR交换机;
(5)ToR交换机收到arp应答后,解除vxlan封装,并封装成vlan的报文送达cps1;
(6)至此,双向的数据平面通道已打通,后续双向报文可以直接单播发送。


8.根据权利要求7所述的公有云网络物理主机加入VPC的方法,其特征在于,若vm1所在子网网关为gw1,cps2所在子网网关为gw2,gw1和gw2位于VPC的虚机路由器qrouter上,vm1和cps2位于同VPC的不同同子网下,也分两种情况讨论:a、会话由vm1发起、b、会话由cps2发起。


9.根据权利要求8所述的公有云网络物理主机加入VPC的方法,其特征在于,a、会话由vm1发起:
(1)vm1发送arp请求广播,请求获取vm1所在子网网关的mac地址;
(2)arp广播请求经过br-int可达VPC的虚拟路由器qrouter;
(3)qrouter应答arp请求;
(4)vm1封装业务数据报文并发送给cps2,报文中源IP为vm1的IP,目的IP为cps2的IP,源mac为vm1的mac,目的mac为gw1的mac;
(5)业务数据报文到达qrouter的gw1口,经过路由查找后确定出接口为gw2;
(6)qrouter从gw2口发送arp请求广播报文,请求查找cps2的mac地址,该arp请求经过br-int和br-tun到达br-multicast,由于OpenStack采用dvr模式,因此从qrouter出来的包的源mac会被br-tun中的流表替换成该计算节点的dvrhostmac,br-multicast通过组播将该arp请求在组播组内泛洪;
(7)物理主机所在的ToR交换机收到该arp请求,解除vxlan封装,然后封装成vlan的arp包发送给cps2,需要注意的是;此时的arp请求报文中的源mac为vm1所在计算节点的dvrhostmac,而不是网关gw2的mac;
(8)cps2用本地接口的mac地址单播应答arp请求,目的mac地址为gw2的mac;
(9)cps2的arp应答包到达ToR交换机,ToR交换机查找本地转发表,查找不到gw2的mac映射表,因此将该应答报文封装成vxlan后在组播组内泛洪;
(10)vm1的所在计算节点的br-multicast桥接收到arp应答的vxlan包后解除vx...

【专利技术属性】
技术研发人员:胡章丰李彦君李亚洁任秋峥
申请(专利权)人:山东汇贸电子口岸有限公司
类型:发明
国别省市:山东;37

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1