讲清楚说明白openstack中vm流量走向之2——DVR模式

栏目: 编程工具 · 发布时间: 5年前

内容简介:上一篇文章已经介绍过,在集中式网络节点模式下,所有的计算节点只安装二层代理,所有三层流量无论是南北或东西走向都必须经过网络节点,尽管可以通过HA的方式保证网络节点的高可用,但是基于vrrp的HA方式同一时间点只有一个网络节点处于工作状态,这样在大规模场景下网络节点仍然会成为性能瓶颈,为此openstack社区从Juno版本开始推出的DVR模式来解决上述问题,需要说明的是:在Mitaka版本之前DVR与L3 HA功能不能同时启用,从Mitaka版本之后才支持DVR与L3 HA功能同时开启。vm南北流量分为fl

一、背景介绍

上一篇文章已经介绍过,在集中式网络节点模式下,所有的计算节点只安装二层代理,所有三层流量无论是南北或东西走向都必须经过网络节点,尽管可以通过HA的方式保证网络节点的高可用,但是基于vrrp的HA方式同一时间点只有一个网络节点处于工作状态,这样在大规模场景下网络节点仍然会成为性能瓶颈,为此openstack社区从Juno版本开始推出的DVR模式来解决上述问题,需要说明的是:在Mitaka版本之前DVR与L3 HA功能不能同时启用,从Mitaka版本之后才支持DVR与L3 HA功能同时开启。

二、DVR介绍

为了解决网络节点的流量瓶颈问题,DVR通过在计算节点部署L3 Agent,让不同subnet之间的东西流量和绑定floating ip的vm的南北流量直接通过计算节点访问外网,只有未绑定floating ip的vm的南北南北流量才需要通过网络节点SNAT访问外网,此时的集群架构如下图所示:

讲清楚说明白openstack中vm流量走向之2——DVR模式

不同于集中式网络节点中所有计算节点只走二层流量,DVR模式下,每个计算节点都可以走3层流量,以此来分摊网络节点的流量压力。

三、网络、计算节点的内部组件

1.网络节点

DVR模式下,网络节点内部组件此时如下图所示:

讲清楚说明白openstack中vm流量走向之2——DVR模式

可以看到,启用DVR模式后的网络节点多了一个SNAT Namespace空间。在在所有计算节点都开启DVR功能时,Router Namespace中的Metadata Agent只负责处理Project网络中的元数据,SNAT Namespace空间负责对只有fix ip的vm通过源地址转换的方式访问外网。如果所有的计算节点将DVR模式关闭,此时vm的流量和集中式网络节点一致,即所有的三层流量都需要经过网络节点的Router Namespace处理。

2.计算节点

当开启DVR功能后,此时计算节点内部组件如下图所示:

讲清楚说明白openstack中vm流量走向之2——DVR模式

启用DVR功能的计算节点因为部署了L3 Agent组建,所以拥有Distribute Router NameSpace,并且当创建vm时,还会自动生成fip名称空间,所有计算节点的Distribute Router NameSpace完全一致,名称空间接口的ip和mac地址也一样(初始化时所有计算节点的名称空间都是源自网络节点的副本),了解网络的都知道,同一时间同一网络中ip与mac地址要一致,否则交换通过反复mac地址学习到的arp表条目会有冲突,为了解决这一问题,DVR结构为每个运行L3 Agent的计算节点指定全局唯一的mac地址(dvr_host_mac)。

四、vm的东西流量分析

相同subnet下vm之间的流量走向与集中式网络节点类似,此处不在赘述,下面以不同subnet之间vm的vxlan流量走向为例进行说明,此时vm间流量走向如下图所示:

讲清楚说明白openstack中vm流量走向之2——DVR模式

1.位于compute1中的vm1向compute2中的vm2发出请求。此时源/目的ip为vm1/2的ip地址,源/目的mac地址为vm1与网关qr-1的mac地址。

2.报文经过linux bridge进行iptables安全检查,然后送往br-int。

3.进入br-int上的报文被打上内部vlan号并送往vm1的网关qr-1,qr-1接口上配置vm1的网关地址,经查表报文从qr-2口流出,qr-2接口设置vm2的网关地址。

4.从qr-2口出来的报文,此时源/目的ip为vm2网关(qr-2)的ip和vm2的ip地址,源/目的mac为qr-2口mac和vm2的mac地址,并将报文进入br-tun。

5.报文在br-tun交换机上将源mac地址(qr-2)换为全局唯一mac地址(dvr_host_mac),然后进行vxlan封装,离开compute1。

6.报文到达compute2后首先vxlan解封装,然后再将源mac地址(dvr_host_mac)换为vm2网关(qr-2)mac地址,送往br-int并在br-int交换机打上内部vlan号。

7.报文脱掉内部vlan号,进入linux bridge,进行安全策略检查。

8.最终数据报文达到vm2。

vm2数据报文返回的过程与数据报文到达vm2的过程一致,不再赘述。

五、vm的南北流量分析

vm南北流量分为floating ip和fix ip两种情况,对这两种情况分别进行说明:

1.fix ip访问外网

没有绑定floating ip的vm在访问外网时需要通过网络节点的SNAT Router NameSpace进行地址转换,其流量走向如下图所示:

讲清楚说明白openstack中vm流量走向之2——DVR模式

1.vm向外网发起请求,数据报文送往linux bridge。

2.进入linux bridge的数据报文经过iptables安全策略检查后将报文送往br-int,此时打上内部vlan号。

3.数据报文从br-int送往Router NameSpace的qr口,该接口配置了vm的网关地址,在Router NameSpace内对Snet NameSpace的sg口的mac地址进行解析,sg接口为vm所在子网的接口,该接口上的ip地址与vm在同一网段。然后将报文送往br-tun。

4.数据报文进入br-tun后脱掉内部vlan号,进行vxlan封装,打上vni号,离开conpute1.

5.数据报文进入Network节点,脱掉vni号,进行vxlan解封装,送往br-int交换机,进入br-int交换机后打上内部vlan号。

6.数据报文进入sg后,进行路由查表,将数据发往fg口,fg口上配置的是可被路由的公网ip。

7.数据报文在fg口上进行SNAT地址转换,转换后的源ip地址为fg口上配置的公网ip访问公网。

2.floati ip访问外网

启用DVR功能后每台计算节点主机都安装了L3 Agent,绑定了floating ip的vm不再需要绕行到网络节点,直接由计算节点主机访问呢公网,其流量走向如下图所示:

讲清楚说明白openstack中vm流量走向之2——DVR模式

1.vm向外网发起访问,由于vm是provider类型的私网地址,所以首先要去找vm地址所在的网关。

2.数据报文经过linux bridge和br-int后进入Distribute NameSpace的qr口,该接口配置的ip地址为vm的网关地址。

3.数据报文从qr口流出,进入rfp口,该接口上配置有2个ip地址,其中3为vm绑定的floating ip地址,在此处进行SNAT地址转换,外网流量访问vm时在此名称空间利用iptables做DNAT地址转换。

4.通过qrouter与fip内部通信的直连接口(4),接口地址由L3 Agent自行维护,ip为169.254.x.x/31格式,将数据包发往fip名称空间。

5.fip空间的直连接口fpr接收到数据包后,转发给外网网关fg口。

6.fip名称空间外网网关接口将数据包发到br-ex交换机最后通过物理网卡访问internet,外网访问vm的数据流向为该过程的逆方向,此处不再赘述。

3.注意事项

针对使用floating ip的数据包进出时需要注意的地方是:

1.fg接口上会额外配置一个外网ip地址,这也是为什么公有云场景下不会将vm外网ip直接设置成公网ip地址的原因,因为每个vm都需要一个额外的地址作为fg网关地址。

2.当外部网络访问vm时,请求的ip地址是qrouter名称空间中rfp接口上做SNAT的ip地址,但此时fg接口会响应rfp接口上外网ip的arp地址解析请求,所以通常认为fg接口是floating ip的arp代理接口。

六、网络节点HA

通过前文得知,开启DVR模式下的网络节点只是针对没有绑定floating ip的vm进行SNAT地址转换,并且qrouter名称空间只处理元数据,所以不同于传统L3 HA对Router NameSpace的高可用,DVR下的L3 HA是对SNAT NameSpace进行的高可用,仍采用vrrp实现,如下图所示:

讲清楚说明白openstack中vm流量走向之2——DVR模式

从部署结构来看,分别要对SNAT外网ip地址和子网接口ip地址做高可用,所以当使用keepalive时,此时架构如下图所示:

讲清楚说明白openstack中vm流量走向之2——DVR模式

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Advanced Web Metrics with Google Analytics, 2nd Edition

Advanced Web Metrics with Google Analytics, 2nd Edition

Brian Clifton / Sybex / 2010-3-15 / USD 39.99

Valuable tips and tricks for using the latest version of Google Analytics Packed with insider tips and tricks, this how-to guide is fully revised to cover the latest version of Google Analytics and sh......一起来看看 《Advanced Web Metrics with Google Analytics, 2nd Edition》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器