CN111614541B - 公有云网络物理主机加入vpc的方法 - Google Patents
公有云网络物理主机加入vpc的方法 Download PDFInfo
- Publication number
- CN111614541B CN111614541B CN202010516160.7A CN202010516160A CN111614541B CN 111614541 B CN111614541 B CN 111614541B CN 202010516160 A CN202010516160 A CN 202010516160A CN 111614541 B CN111614541 B CN 111614541B
- Authority
- CN
- China
- Prior art keywords
- vxlan
- message
- mac
- arp
- multicast
- 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
- 238000000034 method Methods 0.000 title claims abstract description 37
- 238000013507 mapping Methods 0.000 claims abstract description 10
- 230000002068 genetic effect Effects 0.000 claims abstract description 4
- 101100328518 Caenorhabditis elegans cnt-1 gene Proteins 0.000 claims description 132
- 238000005538 encapsulation Methods 0.000 claims description 76
- 230000004044 response Effects 0.000 claims description 34
- 101150071927 AANAT gene Proteins 0.000 claims description 31
- 230000002457 bidirectional effect Effects 0.000 claims description 24
- 101100272391 Schizosaccharomyces pombe (strain 972 / ATCC 24843) bgs1 gene Proteins 0.000 claims description 21
- 230000006870 function Effects 0.000 claims description 19
- 238000006424 Flood reaction Methods 0.000 claims description 14
- 238000005516 engineering process Methods 0.000 claims description 7
- 238000012217 deletion Methods 0.000 claims description 6
- 230000037430 deletion Effects 0.000 claims description 6
- 238000004891 communication Methods 0.000 claims description 4
- 230000008569 process Effects 0.000 claims description 4
- 101100441252 Caenorhabditis elegans csp-2 gene Proteins 0.000 claims description 3
- 230000005540 biological transmission Effects 0.000 claims description 3
- 238000012544 monitoring process Methods 0.000 claims description 3
- 238000012545 processing Methods 0.000 claims description 3
- 230000009977 dual effect Effects 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 5
- 230000007547 defect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000001629 suppression Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4641—Virtual LANs, VLANs, e.g. virtual private networks [VPN]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/10—Packet switching elements characterised by the switching fabric construction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/20—Support for services
- H04L49/201—Multicast operation; Broadcast operation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/35—Switches specially adapted for specific applications
- H04L49/351—Switches specially adapted for specific applications for local area network [LAN], e.g. Ethernet switches
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及云计算和计算机网络领域,具体提供了一种公有云网络物理主机加入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内网地址实现二三层互通,实现虚机与物理主机的统一化管理,具有良好的推广价值。
Description
技术领域
本发明涉及云计算和计算机网络领域,具体提供一种公有云网络物理主机加入VPC的方法。
背景技术
Openstack作为当前开源Iaas云计算的一款主流产品,获得了业界的广泛关注和普遍欢迎,尤其是近年来Openstack开源社区及Openstack相关产品的商业化落地等方面都取得了突飞猛进的发展,但Openstack在作为公有云Iaas平台操作系统时,仍有许多待扩展的功能,比如支持物理主机加入VPC等。
Openstack作为公有云Iaas平台操作系统时,为保证网络L3流量的健壮性和性能,通常会开启其网络组件neutron中的dvr(distributed virtual routing)模式。在dvr模式下,虚拟路由器以分布式的形式存在于计算节点之上,同一个虚拟路由器会同时存在多个计算节点上,并且其网关的IP和mac地址均相同。
Neutron的dvr模式这个特征给基于neutron的很多网络方案设计带来了挑战,如物理主机加入VPC,由于L3流量的分布式路由,无集中控制点,对于物理主机来说,其三层网关不能直接复用计算节点上的虚拟路由器,因为计算节点上存在多个相同的虚拟路由器,直接复用会导致地址冲突,业务不可用。
业界为了解决物理主机与VPC内的虚机互通一般采用两种方法,一种方法是路由模式互通,即通过网关将物理主机和虚机网络关联起来,通过配置转发策略,实现路由层面互通,但这种方案的缺陷是物理主机无法与VPC内的虚机在同一个二层域内,从公有云产品的角度看,资源使用方式不统一,而且不利于业务迁移。
另一种方法是利用支持vxlan的硬件交换机和evpn的技术来实现虚机的vxlan网络与物理主机的大二层互通,通过OpenStack的vtep采用硬件来支持,物理主机的ToR(Topof Rack)交换机也需要支持vxlan和evpn,采用sdn控制器或者独立开发的控制平面管理工具来实现evpn的控制平面功能,这种方法的缺点是需要硬件来支持,缺乏灵活性,而且sdn控制器需要接管OpenStack的虚拟网络管理,其稳定性、健壮性和性能等都面临挑战。
发明内容
本发明是针对上述现有技术的不足,提供一种实用性强的公有云网络物理主机加入VPC的方法。
本发明解决其技术问题所采用的技术方案是:
公有云网络物理主机加入VPC的方法,物理主机通过vlan连接到ToR交换机上,物理主机的ToR支持vxlan和组播,扩展neutron的plugin和agent;
在neutron server中新增l2 gateway的plugin并扩展generic network switchplugin的功能,并配置物理主机所在ToR交换机的vlan与vxlan的vni映射,在openvswitchagent中新增l2 gateway的agent扩展,用户管理虚拟网桥和ovs流表。
进一步的,所述L2 gateway plugin用于监听物理主机创建、删除port的事件和虚机创建删除事件,监听到新的物理主机上线时或新的qrouter创建时,通过rpc消息通知L2gateway agent进行相关流表的下发,从而实现数据面的打通。
进一步的,所述L2 gateway agent为基于openvswitch agent的L2功能扩展,其有两个功能;
一个功能为维护双vxlan通道的linux bridge网桥的动态创建和删除,在一个新的VPC中加入物理主机时,需要给VPC中虚机所在的计算节点和该VPC的snat所在的网络节点创建一个br-multicast的linux bridge桥,并通过一对veth pair接口连接到br-tun的ovs桥上,创建一个vxlan的接口(需指定组播组,如239.0.0.100)并挂接到br-multicast桥上,该vxlan接口的vni复用VPC的vni,但udp端口号需要与ovs的vxlan端口不同,否则会有端口冲突;
另一个功能为给br-tun下发相关的流表。
进一步的,所述Generic network switch plugin主要是为L2 gateway plugin提供配置物理主机所在的ToR交换机的接口,该ToR交换机支持vxlan和组播,物理主机通过vlan接入ToR交换机,通过在ToR交换机上配置vlan与vxlan的映射,用于物理主机与虚机的vxlan网络互通。
进一步的,所述物理主机为单独区域部署,所述该单独区域中的ToR交换机支持vxlan组播,OpenStack计算节点和网络节点的vtep与物理主机的ToR交换机之间建立vxlan隧道,用于承载虚机与物理主机之间的vxlan流量。
进一步的,vxlan通道技术为ovs bridge和linux bridge的双vxlan通道技术,其中br-tun的ovs bridge隧道用于OpenStack计算节点与网络节点之间的vxlan流量封装,br-multicast的linux bridge隧道则用于计算节点和网络节点与物理主机所在的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所在的ToR交换机;
(5)ToR交换机收到arp应答后,解除vxlan封装,并封装成vlan的报文送达cps1;
(6)至此,双向的数据平面通道已打通,后续双向报文可以直接单播发送。
进一步的,若vm1所在子网网关为gw1,cps2所在子网网关为gw2,gw1和gw2位于VPC的虚机路由器qrouter上,vm1和cps2位于同VPC的不同同子网下,也分两种情况讨论:a、会话由vm1发起、b、会话由cps2发起。
进一步的,a、会话由vm1发起:
(1)vm1发送arp请求广播,请求获取vm1所在子网网关(gw1)的mac地址;
(2)arp广播请求经过br-int可达VPC的虚拟路由器qrouter;
(3)qrouter应答arp请求;
(4)vm1封装业务数据报文(如tcp的首包syn报文)并发送给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中的流表替换成该计算节点的dvr host mac(一般为物理网卡mac),br-multicast通过组播将该arp请求在组播组内泛洪;
(7)物理主机所在的ToR交换机收到该arp请求,解除vxlan封装,然后封装成vlan的arp包发送给cps2,需要注意的是;此时的arp请求报文中的源mac为vm1所在计算节点的dvr host mac,而不是网关gw2的mac;
(8)cps2用本地接口的mac地址单播应答arp请求,目的mac地址为gw2的mac;
(9)cps2的arp应答包到达ToR交换机,ToR交换机查找本地转发表,查找不到gw2的mac映射表,因此将该应答报文封装成vxlan后在组播组内泛洪;
(10)vm1的所在计算节点的br-multicast桥接收到arp应答的vxlan包后解除vxlan封装,并经过br-tun和br-int送达qrouter,其它节点收到该arp应答后无需处理;
(11)qrouter将业务报文从gw2发送出去,报文中的源IP为vm1的IP,目的IP为cps2的IP,源mac为gw2的mac,目的mac为cps2的mac;
(12)业务报文经过br-int和br-tun到达br-multicast,由br-multicast封装成vxlan并单播发送到cps2所在的ToR交换机;
(13)ToR交换机收到业务报文后,解除vxlan封装,并封装成vlan的报文发送给cps2;
(14)cps2封装反向业务报文并准备发送给vm1;
(15)cps2发送arp广播请求查询cps2所在子网的网关mac,即gw2的mac;
(16)arp请求达到cps2的ToR交换机,由交换机封装成vxlan报文,并在组播组内泛洪;
(17)VPC的snat所在的网络节点的br-multicast收到arp请求后,解除vxlan封装,并将arp请求报文经过br-tun和br-int送达qrouter,其它节点收到该arp请求后无需处理;
(18)VPC的snat所在的网络节点上的qrouter应答csp2的arp请求,应答报文经过br-int、br-tun送达br-multicast,与计算节点不同的是,L2gate agent会在VPC的snat所在的网络节点上下发高优先级的流表,对于从qrouter发往物理主机的arp应答报文不修改源mac地址为dvr host的mac,保持其源mac为网关mac直接送往br-multicast桥;
(19)br-multicast将该arp应答报文封装成vxlan并单播发送给cps2所在的ToR交换机,由ToR交换机解除vxlan封装,并封装成vlan发送给cps2;
(20)cps2将之前缓存的发往vm1的数据包发往vm1,报文中源IP为cps2的IP,目的IP为vm1的IP,源mac为cps2的mac,目的mac为gw2的mac;
(21)反向业务报文到达cps2的ToR交换机,交换机查找到gw2的mac对应的表项,将反向业务报文封装成vxlan报文并单播发送给VPC的snat所在的网络节点;
(22)VPC的snat所在的网络节点的br-multicast桥收到反向业务报文后,解除vxlan封装,并经过br-tun和br-int将报文送达qrouter;
(23)qrouter经过路由查询后准备将报文从gw1口送出去,发送之前,qrouter首先通过本地代答或者vxlan泛洪的方式获取vm1的mac地址,成功获取到vm1的mac地址后,将反向业务报文从gw1口发送出去,报文中源mac为gw1的mac,目的mac为vm1的mac;
(24)反向业务报文经过br-int到达br-tun,由br-tun封装成vxlan报文送达vm1所在的计算节点;
(25)vm1所在的计算节点的ovs收到反向业务报文后解除vxlan封装,并经过br-tun和br-int最终送达vm1;
(26)至此,位于不同子网的vm1和cps2之间的双向业务通道打通,后续双向报文照此流程发送。
进一步的,b、会话由cps2发起:
(1)cps2发送arp请求广播,请求获取cps2所在子网网关(gw2)的mac地址;
(2)arp请求到达cps2所在的ToR交换机,由交换机进行vxlan封装并在组播组内泛洪;
(3)VPC的snat所在的网络节点的br-multicast收到arp请求报文后解除vxlan封装,并经过br-tun和br-int,将报文送给qrouter;
(4)qrouter应答cps2的arp请求,arp应答报文经过br-int和br-tun到达br-multicast,与上述相同,从qrouter发往物理主机的arp应答报文无需修改源mac为dvrhost的mac,保持其源mac为网关mac即可;
(5)br-multicast将arp应答报文封装成vxlan并单播发送给物理主机所在的ToR交换机;
(6)物理主机的ToR交换机收到arp应答报文后,解除vxlan封装,重新封装成vlan报文,送达cps2;
(7)cps2获取到gw2的mac地址后,封装业务报文(如tcp的syn)发送出去,该报文中的源IP为cps2的IP,目的IP为vm1的IP,源mac为cps2的mac,目的mac为gw2的mac;
(8)ToR交换机收到业务报文后,根据报文的目的mac查找表项,封装成vxlan报文,并单播发送给VPC的snat所在的网络节点;
(9)VPC的snat所在的网络节点的br-multicast收到业务报文后解除vxlan封装,并经过br-tun和br-int发送给qrouter;
(10)qrouter查找路由表,决策该业务报文的出接口为gw1,qrouter从gw1口发送arp广播请求vm1的mac地址,当qrouter通过本地arp代答或者vxlan泛洪的方式获取vm1的mac地址后,将业务报文从gw1接口发送出去,报文的源mac为gw1的mac,目的mac为vm1的mac;
(11)业务报文经过br-int到达br-tun,由br-tun封装成vxlan,单播发送给vm1所在的计算节点;
(12)vm1所在的计算节点的ovs收到vxlan业务报文后,解除vxlan封装,将报文经过br-tun和br-int后送达vm1;
(13)vm1封装反向业务报文并准备发送给cps2;
(14)vm1发送arp广播请求查询cps2所在子网的网关mac,即gw2的mac;
(15)arp请求经过br-int到达本地qrouter,qrouter用gw1的mac地址应答vm1的arp请求;
(16)vm1将缓存的反向业务报文发送出去,报文经过br-int送达本地qrouter,报文中的源IP为vm1的IP,目的IP为cps2的IP,源mac为vm1的mac,目的mac为网关gw1的mac;
(17)本地qrouter收到反向业务报文后,查找本地路由表,找到出接口为gw2,首先从gw2发送arp广播请求查询cps2的mac地址;
(18)arp请求经过br-int和br-tun到达br-multicast桥,其中br-tun中的流表会修改arp请求报文中的源mac为本机的dvr host的mac(一般为本机网卡mac),br-multicast对该arp请求进行vxlan封装并在组播组中泛洪;
(19)cps2所在的ToR交换机收到arp请求的组播vxlan报文后,解除vxlan封装,并重新封装成vlan报文发送给cps2;
(20)cps2用本地接口mac地址应答该arp请求,应答报文的源mac为cps2的接口mac,目的mac为gw2的mac;
(21)arp应答报文到达cps2的ToR交换机,交换机查找本地表项,未查到gw2的mac对应的表现,于是将arp应答报文封装成vxlan并通过组播组泛洪;
(22)vm1所在的计算节点的br-multicast收到组播的vxlan的arp应答报文后,解除vxlan封装,并通过br-tun和br-int发送给本地qrouter;
(23)qrouter将之前缓存的反向业务报文从gw2口发送出去,报文中的源mac为gw2的mac,目的mac为cps2的mac;
(24)至此,位于不同子网的cps2和vm1之间的双向业务通道打通,后续双向报文照此流程发送。
本发明的公有云网络物理主机加入VPC的方法和现有技术相比,具有以下突出的有益效果:
1)物理主机与VPC内虚机可用VPC内网地址实现二三层互通,实现虚机与物理主机的统一化管理。
2)实现物理主机与虚机位于同一个二层广播域下,为用户业务提供了更多的灵活性。
3)无需evpn的控制平面支持,可基于neutron的plugin和agent扩展、vxlan组播技术,实现数据平面的自动学习。
4)虚机侧无需专门的vxlan硬件支持,仅物理主机所在的ToR交换机支持vxlan组播即可。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
附图1是公有云网络物理主机加入VPC的方法中物理主机加入VPC的基本架构图;
附图2是本发明中物理主机与OpenStack虚机互通的隧道封装示意图;
附图3是本发明中物理主机加入VPC虚拟网络内部结构图;
附图4是本发明中虚机与物理主机位于同子网下的通信流程图;
附图5是本发明中虚机与物理主机位于不同子网下的通信流程图。
具体实施方式
为了使本技术领域的人员更好的理解本发明的方案,下面结合具体的实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例都属于本发明保护的范围。
下面给出一个最佳实施例:
针对目前物理主机与VPC互通技术的诸多缺陷,本发明提出了一种公有云网络物理主机加入VPC的方法。请参照图1,图1是本发明中物理主机加入VPC的基本架构图。
如图1所示,该方法是物理主机通过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中物理主机的数据计算节点vxlan封装后单播发送给物理主机所在的ToR交换机,由ToR交换机解除vxlan封装并加上vlan封装发给目标物理主机,从物理主机发送给虚机的流量首包通过组播的方式发送给VPC的所有vtep,后续包则单播发送到目的虚机所在的计算节点的vtep,由vtep解封装后送达目的虚机;
对于三层流量,即虚机和物理主机位于同一个VPC的不同子网中,从虚机访问物理主机的流量通过本地dvr的虚拟路由器(qrouter)和本地计算节点的vtep单播发送到物理主机所在的ToR交换机,由ToR交换机解除vxlan封装并加上vlan封装发给目标物理主机,对于从物理主机发往虚机的数据包,启三层路由功能统一由VPC的snat所在的网络节点上的虚拟路由器负责,这里需要两个特殊步骤,一是关闭VPC所在计算节点上的网关的ARP对外应答而只保留VPC的snat所在的网络节点的网关ARP对外应答,二是在snat所在的网络节点上所有发往物理主机的ARP应答报文不允许将报文中的源mac地址改为dvr host的mac地址(neutron默认会将跨子网通信报文的源mac地址改为dvr host的mac地址),这样可以保证从物理主机发往虚机的跨子网流量会单播送达VPC的snat所在的网络节点,并有该网络节点上的虚拟路由(qrouter)进行转发,再通过本地vtep进行vxlan封装送达虚机所在计算节点的vtep上,由该vtep负责解封装并送达目标虚机。
L2 gateway plugin用于监听物理主机创建、删除port的事件和虚机创建删除等事件,监听到新的物理主机上线时或新的qrouter创建时,通过rpc(remote process call)消息通知L2 gateway agent进行相关流表的下发,从而实现数据面的打通。
L2 gateway agent是基于openvswitch agent的L2功能扩展,主要有两个基本功能,一个功能是维护双vxlan通道的linux bridge网桥的动态创建和删除,在一个新的VPC中加入物理主机时,需要给VPC中虚机所在的计算节点和该VPC的snat所在的网络节点创建一个br-multicast的linux bridge桥,并通过一对veth pair接口连接到br-tun的ovs桥上,创建一个vxlan的接口(需指定组播组,如239.0.0.100)并挂接到br-multicast桥上,该vxlan接口的vni复用VPC的vni,但udp端口号需要与ovs的vxlan端口不同,否则会有端口冲突,如ovs的vxlan端口号采用4792,linux bridge的vxlan端口号采用4789;L2 gatewayagent的另一个功能是给br-tun下发相关的流表,包括往br-multicast上引流的流表、计算节点的网关ARP应答抑制流表、网络节点上的抑制修改网关ARP应答报文中源mac地址的流表等等。
Generic network switch plugin主要是为L2 gateway plugin提供配置物理主机所在的ToR交换机的接口,该ToR交换机支持vxlan和组播,物理主机通过vlan接入ToR交换机,通过在ToR交换机上配置vlan与vxlan的映射,实现物理主机与虚机的vxlan网络互通,由于ToR无控制平面,其无法自动学习到VPC内虚机的信息,因此需要启用vxlan组播功能,对于发往未学习到的虚机流量,则在指定组播组内泛洪(如239.0.0.100)。
如图2所示,基于OpenStack的公有云网络中,一般物理主机为单独区域部署,该区域中的ToR交换机支持vxlan组播,OpenStack计算节点和网络节点的vtep与物理主机的ToR交换机之间建立vxlan隧道,用于承载虚机与物理主机之间的vxlan流量。
如图3所示,采用的是ovs bridge和linux bridge的双vxlan通道技术,其中br-tun的ovs bridge隧道用于OpenStack计算节点与网络节点之间的vxlan流量封装,br-multicast的linux bridge隧道则用于计算节点和网络节点与物理主机所在的ToR交换机之间的vxlan流量封装。由于内核实现中,vxlan采用udp的socket接收数据,因此ovs和linux的双通道vxlan需采用不同的udp端口号,建议linux bridge的vxlan采用4789,ovsbridge的vxlan采用4792,这是因为linux bridge的vxlan是与硬件ToR交换机交互,而有些硬件交换机的vxlan只支持4789端口,所以linux bridge的vxlan端口推荐使用4789,而ovs的vxlan端口可以任意配置。
如图4所示,vm1和cps1位于同VPC的同子网下,下面分两种情况讨论:
a、会话由vm1发起,
(1)vm1发送arp请求广播,请求获取cps1的mac地址;
(2)arp请求广播包经过br-int、br-tun到达br-multicast;
(3)br-multicast通过组播将该arp广播包在组播组(如239.0.0.100)内泛洪;
(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包头并在组播组(239.0.0.100)内泛洪;
(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)至此,双向的数据平面通道已打通,后续双向报文可以直接单播发送。
如图5所示,若vm1所在子网网关为gw1,cps2所在子网网关为gw2,gw1和gw2位于VPC的虚机路由器qrouter上,vm1和cps2位于同VPC的不同同子网下,也分两种情况讨论:a、会话由vm1发起、b、会话由cps2发起。
a、会话由vm1发起:
(1)vm1发送arp请求广播,请求获取vm1所在子网网关(gw1)的mac地址;
(2)arp广播请求经过br-int可达VPC的虚拟路由器qrouter;
(3)qrouter应答arp请求;
(4)vm1封装业务数据报文(如tcp的首包syn报文)并发送给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中的流表替换成该计算节点的dvr host mac(一般为物理网卡mac),br-multicast通过组播将该arp请求在组播组内泛洪;
(7)物理主机所在的ToR交换机收到该arp请求,解除vxlan封装,然后封装成vlan的arp包发送给cps2,需要注意的是;此时的arp请求报文中的源mac为vm1所在计算节点的dvr host mac,而不是网关gw2的mac;
(8)cps2用本地接口的mac地址单播应答arp请求,目的mac地址为gw2的mac;
(9)cps2的arp应答包到达ToR交换机,ToR交换机查找本地转发表,查找不到gw2的mac映射表,因此将该应答报文封装成vxlan后在组播组(239.0.0.100)内泛洪;
(10)vm1的所在计算节点的br-multicast桥接收到arp应答的vxlan包后解除vxlan封装,并经过br-tun和br-int送达qrouter,其它节点收到该arp应答后无需处理;
(11)qrouter将业务报文从gw2发送出去,报文中的源IP为vm1的IP,目的IP为cps2的IP,源mac为gw2的mac,目的mac为cps2的mac;
(12)业务报文经过br-int和br-tun到达br-multicast,由br-multicast封装成vxlan并单播发送到cps2所在的ToR交换机;
(13)ToR交换机收到业务报文后,解除vxlan封装,并封装成vlan的报文发送给cps2;
(14)cps2封装反向业务报文(如tcp的syn+ack)并准备发送给vm1(缓存未发送);
(15)cps2发送arp广播请求查询cps2所在子网的网关mac,即gw2的mac;
(16)arp请求达到cps2的ToR交换机,由交换机封装成vxlan报文,并在组播组(239.0.0.100)内泛洪;
(17)VPC的snat所在的网络节点的br-multicast收到arp请求后,解除vxlan封装,并将arp请求报文经过br-tun和br-int送达qrouter,其它节点收到该arp请求后无需处理;
(18)VPC的snat所在的网络节点上的qrouter应答csp2的arp请求,应答报文经过br-int、br-tun送达br-multicast,与计算节点不同的是,L2gate agent会在VPC的snat所在的网络节点上下发高优先级的流表,对于从qrouter发往物理主机的arp应答报文不修改源mac地址为dvr host的mac,保持其源mac为网关mac直接送往br-multicast桥;
(19)br-multicast将该arp应答报文封装成vxlan并单播发送给cps2所在的ToR交换机,由ToR交换机解除vxlan封装,并封装成vlan发送给cps2;
(20)cps2将之前缓存的发往vm1的数据包发往vm1,报文中源IP为cps2的IP,目的IP为vm1的IP,源mac为cps2的mac,目的mac为gw2的mac;
(21)反向业务报文到达cps2的ToR交换机,交换机查找到gw2的mac对应的表项,将反向业务报文封装成vxlan报文并单播发送给VPC的snat所在的网络节点;
(22)VPC的snat所在的网络节点的br-multicast桥收到反向业务报文后,解除vxlan封装,并经过br-tun和br-int将报文送达qrouter;
(23)qrouter经过路由查询后准备将报文从gw1口送出去,发送之前,qrouter首先通过本地代答或者vxlan泛洪的方式获取vm1的mac地址,成功获取到vm1的mac地址后,将反向业务报文从gw1口发送出去,报文中源mac为gw1的mac,目的mac为vm1的mac;
(24)反向业务报文经过br-int到达br-tun,由br-tun封装成vxlan报文送达vm1所在的计算节点;
(25)vm1所在的计算节点的ovs收到反向业务报文后解除vxlan封装,并经过br-tun和br-int最终送达vm1;
(26)至此,位于不同子网的vm1和cps2之间的双向业务通道打通,后续双向报文照此流程发送。
b、会话由cps2发起:
(1)cps2发送arp请求广播,请求获取cps2所在子网网关(gw2)的mac地址;
(2)arp请求到达cps2所在的ToR交换机,由交换机进行vxlan封装并在组播组(239.0.0.100)内泛洪;
(3)VPC的snat所在的网络节点的br-multicast收到arp请求报文后解除vxlan封装,并经过br-tun和br-int,将报文送给qrouter;
(4)qrouter应答cps2的arp请求,arp应答报文经过br-int和br-tun到达br-multicast,与上述相同,从qrouter发往物理主机的arp应答报文无需修改源mac为dvrhost的mac,保持其源mac为网关mac即可;
(5)br-multicast将arp应答报文封装成vxlan并单播发送给物理主机所在的ToR交换机;
(6)物理主机的ToR交换机收到arp应答报文后,解除vxlan封装,重新封装成vlan报文,送达cps2;
(7)cps2获取到gw2的mac地址后,封装业务报文(如tcp的syn)发送出去,该报文中的源IP为cps2的IP,目的IP为vm1的IP,源mac为cps2的mac,目的mac为gw2的mac;
(8)ToR交换机收到业务报文后,根据报文的目的mac(gw2的mac)查找表项,封装成vxlan报文,并单播发送给VPC的snat所在的网络节点;
(9)VPC的snat所在的网络节点的br-multicast收到业务报文后解除vxlan封装,并经过br-tun和br-int发送给qrouter;
(10)qrouter查找路由表,决策该业务报文的出接口为gw1,qrouter从gw1口发送arp广播请求vm1的mac地址,当qrouter通过本地arp代答或者vxlan泛洪的方式获取vm1的mac地址后,将业务报文从gw1接口发送出去,报文的源mac为gw1的mac,目的mac为vm1的mac;
(11)业务报文经过br-int到达br-tun,由br-tun封装成vxlan,单播发送给vm1所在的计算节点;
(12)vm1所在的计算节点的ovs收到vxlan业务报文后,解除vxlan封装,将报文经过br-tun和br-int后送达vm1;
(13)vm1封装反向业务报文(如tcp的syn+ack)并准备发送给cps2(缓存未发送);
(14)vm1发送arp广播请求查询cps2所在子网的网关mac,即gw2的mac;
(15)arp请求经过br-int到达本地qrouter,qrouter用gw1的mac地址应答vm1的arp请求;
(16)vm1将缓存的反向业务报文发送出去,报文经过br-int送达本地qrouter,报文中的源IP为vm1的IP,目的IP为cps2的IP,源mac为vm1的mac,目的mac为网关gw1的mac;
(17)本地qrouter收到反向业务报文后,查找本地路由表,找到出接口为gw2,首先从gw2发送arp广播请求查询cps2的mac地址;
(18)arp请求经过br-int和br-tun到达br-multicast桥,其中br-tun中的流表会修改arp请求报文中的源mac为本机的dvr host的mac(一般为本机网卡mac),br-multicast对该arp请求进行vxlan封装并在组播组(239.0.0.100)中泛洪;
(19)cps2所在的ToR交换机收到arp请求的组播vxlan报文后,解除vxlan封装,并重新封装成vlan报文发送给cps2;
(20)cps2用本地接口mac地址应答该arp请求,应答报文的源mac为cps2的接口mac,目的mac为gw2的mac;
(21)arp应答报文到达cps2的ToR交换机,交换机查找本地表项,未查到gw2的mac对应的表现,于是将arp应答报文封装成vxlan并通过组播组(239.0.0.100)泛洪;
(22)vm1所在的计算节点的br-multicast收到组播的vxlan的arp应答报文后,解除vxlan封装,并通过br-tun和br-int发送给本地qrouter;
(23)qrouter将之前缓存的反向业务报文从gw2口发送出去,报文中的源mac为gw2的mac,目的mac为cps2的mac;
(24)至此,位于不同子网的cps2和vm1之间的双向业务通道打通,后续双向报文照此流程发送。
上述具体的实施方式仅是本发明具体的个案,本发明的专利保护范围包括但不限于上述具体的实施方式,任何符合本发明的公有云网络物理主机加入VPC的方法权利要求书的且任何所述技术领域普通技术人员对其做出的适当变化或者替换,皆应落入本发明的专利保护范围。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
Claims (8)
1.公有云网络物理主机加入VPC的方法,其特征在于,该方法在物理主机通过vlan连接到ToR交换机上,物理主机的ToR支持vxlan和组播,扩展neutron的plugin和agent;
在neutron server中新增l2 gateway的plugin并扩展generic network switchplugin的功能,并配置物理主机所在ToR交换机的vlan与vxlan的vni映射,在openvswitchagent中新增l2 gateway的agent扩展,用户管理虚拟网桥和ovs流表;
所述L2 gateway plugin用于监听物理主机创建、删除port的事件和虚机创建删除事件,监听到新的物理主机上线时或新的qrouter创建时,通过rpc消息通知L2 gatewayagent进行相关流表的下发,从而实现数据面的打通;
所述L2 gateway agent为基于openvswitch agent的L2功能扩展,其有两个功能;
一个功能为维护双vxlan通道的linux bridge网桥的动态创建和删除,在一个新的VPC中加入物理主机时,需要给VPC中虚机所在的计算节点和该VPC的snat所在的网络节点创建一个br-multicast的linux bridge桥,并通过一对veth pair接口连接到br-tun的ovs桥上,创建一个vxlan的接口并挂接到br-multicast桥上,该vxlan接口的vni复用VPC的vni,但udp端口号需要与ovs的vxlan端口不同,否则会有端口冲突;
另一个功能为给br-tun下发相关的流表。
2.根据权利要求1所述的公有云网络物理主机加入VPC的方法,其特征在于,所述Generic network switch plugin主要是为L2gateway plugin提供配置物理主机所在的ToR交换机的接口,该ToR交换机支持vxlan和组播,物理主机通过vlan接入ToR交换机,通过在ToR交换机上配置vlan与vxlan的映射,用于物理主机与虚机的vxlan网络互通。
3.根据权利要求2所述的公有云网络物理主机加入VPC的方法,其特征在于,所述物理主机为单独区域部署,所述单独区域中的ToR交换机支持vxlan组播,OpenStack计算节点和网络节点的vtep与物理主机的ToR交换机之间建立vxlan隧道,用于承载虚机与物理主机之间的vxlan流量。
4.根据权利要求3所述的公有云网络物理主机加入VPC的方法,其特征在于,vxlan通道技术为ovs bridge和linux bridge的双vxlan通道技术,其中br-tun的ovs bridge隧道用于OpenStack计算节点与网络节点之间的vxlan流量封装,br-multicast的linux bridge隧道则用于计算节点和网络节点与物理主机所在的ToR交换机之间的vxlan流量封装,由于内核实现中,vxlan采用udp的socket接收数据,因此ovs和linux的双通道vxlan需采用不同的udp端口号。
5.根据权利要求4所述的公有云网络物理主机加入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)至此,双向的数据平面通道已打通,后续双向报文可以直接单播发送。
6.根据权利要求5所述的公有云网络物理主机加入VPC的方法,其特征在于,若vm1所在子网网关为gw1,cps2所在子网网关为gw2,gw1和gw2位于VPC的虚机路由器qrouter上,vm1和cps2位于同VPC的不同同子网下,也分两种情况讨论:a、会话由vm1发起、b、会话由cps2发起。
7.根据权利要求6所述的公有云网络物理主机加入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中的流表替换成该计算节点的dvr host mac,br-multicast通过组播将该arp请求在组播组内泛洪;
(7)物理主机所在的ToR交换机收到该arp请求,解除vxlan封装,然后封装成vlan的arp包发送给cps2,需要注意的是;此时的arp请求报文中的源mac为vm1所在计算节点的dvrhost mac,而不是网关gw2的mac;
(8)cps2用本地接口的mac地址单播应答arp请求,目的mac地址为gw2的mac;
(9)cps2的arp应答包到达ToR交换机,ToR交换机查找本地转发表,查找不到gw2的mac映射表,因此将该应答报文封装成vxlan后在组播组内泛洪;
(10)vm1的所在计算节点的br-multicast桥接收到arp应答的vxlan包后解除vxlan封装,并经过br-tun和br-int送达qrouter,其它节点收到该arp应答后无需处理;
(11)qrouter将业务报文从gw2发送出去,报文中的源IP为vm1的IP,目的IP为cps2的IP,源mac为gw2的mac,目的mac为cps2的mac;
(12)业务报文经过br-int和br-tun到达br-multicast,由br-multicast封装成vxlan并单播发送到cps2所在的ToR交换机;
(13)ToR交换机收到业务报文后,解除vxlan封装,并封装成vlan的报文发送给cps2;
(14)cps2封装反向业务报文并准备发送给vm1;
(15)cps2发送arp广播请求查询cps2所在子网的网关mac,即gw2的mac;
(16)arp请求达到cps2的ToR交换机,由交换机封装成vxlan报文,并在组播组内泛洪;
(17)VPC的snat所在的网络节点的br-multicast收到arp请求后,解除vxlan封装,并将arp请求报文经过br-tun和br-int送达qrouter,其它节点收到该arp请求后无需处理;
(18)VPC的snat所在的网络节点上的qrouter应答csp2的arp请求,应答报文经过br-int、br-tun送达br-multicast,与计算节点不同的是,L2 gate agent会在VPC的snat所在的网络节点上下发高优先级的流表,对于从qrouter发往物理主机的arp应答报文不修改源mac地址为dvr host的mac,保持其源mac为网关mac直接送往br-multicast桥;
(19)br-multicast将该arp应答报文封装成vxlan并单播发送给cps2所在的ToR交换机,由ToR交换机解除vxlan封装,并封装成vlan发送给cps2;
(20)cps2将之前缓存的发往vm1的数据包发往vm1,报文中源IP为cps2的IP,目的IP为vm1的IP,源mac为cps2的mac,目的mac为gw2的mac;
(21)反向业务报文到达cps2的ToR交换机,交换机查找到gw2的mac对应的表项,将反向业务报文封装成vxlan报文并单播发送给VPC的snat所在的网络节点;
(22)VPC的snat所在的网络节点的br-multicast桥收到反向业务报文后,解除vxlan封装,并经过br-tun和br-int将报文送达qrouter;
(23)qrouter经过路由查询后准备将报文从gw1口送出去,发送之前,qrouter首先通过本地代答或者vxlan泛洪的方式获取vm1的mac地址,成功获取到vm1的mac地址后,将反向业务报文从gw1口发送出去,报文中源mac为gw1的mac,目的mac为vm1的mac;
(24)反向业务报文经过br-int到达br-tun,由br-tun封装成vxlan报文送达vm1所在的计算节点;
(25)vm1所在的计算节点的ovs收到反向业务报文后解除vxlan封装,并经过br-tun和br-int最终送达vm1;
(26)至此,位于不同子网的vm1和cps2之间的双向业务通道打通,后续双向报文照此流程发送。
8.根据权利要求7所述的公有云网络物理主机加入VPC的方法,其特征在于,b、会话由cps2发起:
(1)cps2发送arp请求广播,请求获取cps2所在子网网关的mac地址;
(2)arp请求到达cps2所在的ToR交换机,由交换机进行vxlan封装并在组播组内泛洪;
(3)VPC的snat所在的网络节点的br-multicast收到arp请求报文后解除vxlan封装,并经过br-tun和br-int,将报文送给qrouter;
(4)与所述步骤(3)中的路径相同,方向相反,即qrouter应答cps2的arp请求,arp应答报文经过br-int和br-tun到达br-multicast;从qrouter发往物理主机的arp应答报文无需修改源mac为dvr host的mac,保持其源mac为网关mac即可;
(5)br-multicast将arp应答报文封装成vxlan并单播发送给物理主机所在的ToR交换机;
(6)物理主机的ToR交换机收到arp应答报文后,解除vxlan封装,重新封装成vlan报文,送达cps2;
(7)cps2获取到gw2的mac地址后,封装业务报文发送出去,该报文中的源IP为cps2的IP,目的IP为vm1的IP,源mac为cps2的mac,目的mac为gw2的mac;
(8)ToR交换机收到业务报文后,根据报文的目的mac查找表项,封装成vxlan报文,并单播发送给VPC的snat所在的网络节点;
(9)VPC的snat所在的网络节点的br-multicast收到业务报文后解除vxlan封装,并经过br-tun和br-int发送给qrouter;
(10)qrouter查找路由表,决策该业务报文的出接口为gw1,qrouter从gw1口发送arp广播请求vm1的mac地址,当qrouter通过本地arp代答或者vxlan泛洪的方式获取vm1的mac地址后,将业务报文从gw1接口发送出去,报文的源mac为gw1的mac,目的mac为vm1的mac;
(11)业务报文经过br-int到达br-tun,由br-tun封装成vxlan,单播发送给vm1所在的计算节点;
(12)vm1所在的计算节点的ovs收到vxlan业务报文后,解除vxlan封装,将报文经过br-tun和br-int后送达vm1;
(13)vm1封装反向业务报文并准备发送给cps2;
(14)vm1发送arp广播请求查询cps2所在子网的网关mac,即gw2的mac;
(15)arp请求经过br-int到达本地qrouter,qrouter用gw1的mac地址应答vm1的arp请求;
(16)vm1将缓存的反向业务报文发送出去,报文经过br-int送达本地qrouter,报文中的源IP为vm1的IP,目的IP为cps2的IP,源mac为vm1的mac,目的mac为网关gw1的mac;
(17)本地qrouter收到反向业务报文后,查找本地路由表,找到出接口为gw2,首先从gw2发送arp广播请求查询cps2的mac地址;
(18)arp请求经过br-int和br-tun到达br-multicast桥,其中br-tun中的流表会修改arp请求报文中的源mac为本机的dvrhost的mac,br-multicast对该arp请求进行vxlan封装并在组播组中泛洪;
(19)cps2所在的ToR交换机收到arp请求的组播vxlan报文后,解除vxlan封装,并重新封装成vlan报文发送给cps2;
(20)cps2用本地接口mac地址应答该arp请求,应答报文的源mac为cps2的接口mac,目的mac为gw2的mac;
(21)arp应答报文到达cps2的ToR交换机,交换机查找本地表项,未查到gw2的mac对应的表现,于是将arp应答报文封装成vxlan并通过组播组泛洪;
(22)vm1所在的计算节点的br-multicast收到组播的vxlan的arp应答报文后,解除vxlan封装,并通过br-tun和br-int发送给本地qrouter;
(23)qrouter将之前缓存的反向业务报文从gw2口发送出去,报文中的源mac为gw2的mac,目的mac为cps2的mac;
(24)至此,位于不同子网的cps2和vm1之间的双向业务通道打通,后续双向报文照此流程发送。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010516160.7A CN111614541B (zh) | 2020-06-09 | 2020-06-09 | 公有云网络物理主机加入vpc的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010516160.7A CN111614541B (zh) | 2020-06-09 | 2020-06-09 | 公有云网络物理主机加入vpc的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111614541A CN111614541A (zh) | 2020-09-01 |
CN111614541B true CN111614541B (zh) | 2022-02-18 |
Family
ID=72200737
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010516160.7A Active CN111614541B (zh) | 2020-06-09 | 2020-06-09 | 公有云网络物理主机加入vpc的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111614541B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113572634B (zh) * | 2021-06-22 | 2023-04-07 | 济南浪潮数据技术有限公司 | 一种实现云内网络与云外网络二层互通的方法及系统 |
CN113259219B (zh) * | 2021-07-05 | 2021-11-02 | 云宏信息科技股份有限公司 | 基于ovn环境的vpn构建方法、可读存储介质及云平台 |
CN113472598B (zh) * | 2021-08-31 | 2022-02-25 | 阿里云计算有限公司 | 云服务方法、电子设备和计算机可读存储介质 |
CN114124813B (zh) * | 2021-11-23 | 2023-08-25 | 浪潮云信息技术股份公司 | 一种openstack中基于流表的l3-agent实现方法 |
CN114785733B (zh) * | 2022-06-20 | 2022-08-26 | 中电云数智科技有限公司 | 一种实现跨vpc网络流量转发中会话溯源的方法 |
CN114915492B (zh) * | 2022-06-21 | 2024-03-05 | 杭州安恒信息技术股份有限公司 | 一种流量转发方法、装置、设备及介质 |
CN116055398A (zh) * | 2022-12-29 | 2023-05-02 | 天翼云科技有限公司 | 一种vxlan集群系统的转发方法和系统节点 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150263885A1 (en) * | 2014-03-14 | 2015-09-17 | Avni Networks Inc. | Method and apparatus for automatic enablement of network services for enterprises |
CN107800743B (zh) * | 2016-09-06 | 2020-11-24 | 中国电信股份有限公司 | 云桌面系统、云管理系统和相关设备 |
CN110838964B (zh) * | 2018-08-16 | 2022-08-09 | 上海仪电(集团)有限公司中央研究院 | 一种虚拟网络与物理网络的网络对接系统 |
CN109120494B (zh) * | 2018-08-28 | 2019-08-30 | 无锡华云数据技术服务有限公司 | 在云计算系统中接入物理机的方法 |
CN109639557B (zh) * | 2019-02-11 | 2021-11-26 | 北京百度网讯科技有限公司 | 用于网络通信的方法、装置和系统 |
CN109995759B (zh) * | 2019-03-04 | 2022-10-28 | 平安科技(深圳)有限公司 | 一种物理机接入vpc的方法及相关装置 |
CN110401588B (zh) * | 2019-07-15 | 2021-09-07 | 浪潮云信息技术股份公司 | 基于openstack的公有云平台中实现VPC对等连接方法及系统 |
CN110519075B (zh) * | 2019-07-24 | 2022-05-27 | 浪潮思科网络科技有限公司 | 基于sdn的物理主机与虚拟云主机的通信系统及方法 |
CN110768862B (zh) * | 2019-09-23 | 2021-03-09 | 烽火通信科技股份有限公司 | 一种云平台物理链路连通性检测装置、方法及系统 |
-
2020
- 2020-06-09 CN CN202010516160.7A patent/CN111614541B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN111614541A (zh) | 2020-09-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111614541B (zh) | 公有云网络物理主机加入vpc的方法 | |
CN109257265B (zh) | 一种泛洪抑制方法、vxlan网桥、网关及系统 | |
US10693678B2 (en) | Data center networks | |
CN108199963B (zh) | 报文转发方法和装置 | |
CN106936777B (zh) | 基于OpenFlow的云计算分布式网络实现方法、系统 | |
US9448821B2 (en) | Method and system for realizing virtual machine mobility | |
US9800496B2 (en) | Data center networks | |
US8948181B2 (en) | System and method for optimizing next-hop table space in a dual-homed network environment | |
US20200244485A1 (en) | Packet processing method, device, and system | |
CN102316030B (zh) | 一种实现数据中心二层互联的方法和装置 | |
CN107995083B (zh) | 实现L2VPN与VxLAN互通的方法、系统及设备 | |
CN108200225A (zh) | 不对称网络地址封装 | |
JP2013504960A (ja) | バーチャル・プライベート・ネットワークの実現方法及びシステム | |
CN102355417A (zh) | 一种数据中心二层互联方法和装置 | |
CN107094110B (zh) | 一种dhcp报文转发方法及装置 | |
TW201541262A (zh) | 以軟體定義網路(sdn)支援虛擬機器遷移之方法 | |
EP2584742B1 (en) | Method and switch for sending packet | |
CN112491984B (zh) | 基于虚拟网桥的容器编排引擎集群管理系统 | |
CN107040441B (zh) | 跨数据中心的数据传输方法、装置及系统 | |
CN108259302B (zh) | 一种集中式网关组网实现方法及装置 | |
WO2011147342A1 (zh) | 交换路由信息的方法、设备和系统 | |
WO2022017099A1 (zh) | 通信方法、cp设备及nat设备 | |
CN113660164A (zh) | 一种报文转发方法及网络设备 | |
CN111800327B (zh) | Vxlan网络的流量分担方法、设备 | |
CN117811875A (zh) | 一种家庭互通网络访问方法和装置 |
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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20220121 Address after: 250100 No. 1036 Tidal Road, Jinan High-tech Zone, Shandong Province, S01 Building, Tidal Science Park Applicant after: Inspur cloud Information Technology Co.,Ltd. Address before: Floor S06, Inspur Science Park, No. 1036, Inspur Road, hi tech Zone, Jinan City, Shandong Province Applicant before: SHANDONG HUIMAO ELECTRONIC PORT Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |