作者:Sammy Liu

第一部分 路由策略及路由表

第二部分 路由配置

第三部分

2. Neutron 的传统和 DVR Router

2.1 传统(Legacy) Router

微信截图_Neutron HApt3_1

2.2 DVR 对 L3 Agent 的影响

通过使用 DVR,三层的转发(L3 Forwarding)和 NAT 功能都会被分布到计算节点上,这意味着计算节点也有了网络节点的功能。但是,DVR 依然不能消除集中式的 Virtual Router,这是为了节省宝贵的 IPV4 公网地址,所有依然将 SNAT 放在网络节点上提供。这样,计算和网络节点就看起来如下:

微信截图_Neutron HApt3_2

网络节点:提供 南-北 SNAT,即在不使用浮动 IP 时,虚机访问外网的网络得经过网络节点。也就是说,网络节点依然必须走传统的 HA 解决方法,比如 VRRP 和 PeaceMaker。但可惜的是,Juno 版本不支持同时使用 HA 和 DVR。

    • 计算节点:提供 南-北 DNAT, 即外网访问虚机的网络流量得经过计算节点;以及 东-西 转发,即虚机之间的网络经过计算节点。因为所有计算节点的参与,这部分的网络处理负载也就自然地被均衡了。

2.3 DVR 对 L2 Agent 的影响

DVR 对 L2 Agent 的影响主要有:

    • DVR 新创建安的各个 network namespace 需要被 plug 到 OVS bridge
    • OVS flows 需要更新来支持 DVR

 

 

3. 安装和功能分析

 

3.1 安装和配置

Juno 版本中 DVR 的要求如下:

  • 使用 ML2 plugin
  • 使用 L2pop mechanism driver
  • 使用 Openvswitch mechanism driver, 安装 OVS agent 在所有的计算节点上
  • 所有的计算节点连接外网
  • Juno 中只支持 Tunnel 虚拟网络模式 (VXLAN or GRE)。 Kilo 版本中会增加 VLAN 模式的支持。

3.1.1 安装

使用两个计算节点。在每个计算节点上安装并配置 L3 Agent:

(1)修改系统配置

0628wechat1

(2)安装 neutron-l3-agent: apt-get install neutron-l3-agent

(3)增加一块访问外网的网卡 eth3

(4)创建 OVS bridge:ovs-vsctl add-br br-ex

(5)增加新的网卡到该 bridge 上:ovs-vsctl add-port br-ex eth3

(6)配置 L3 Agent

0628wechat2

(7)配置 Metadata Agent

 

3.1.2 配置 DVR

 

0628wechat3

 

注意还需要配置使用 l2_population。

对普通用户来说,neutron 会根据管理员在控制节点上的配置项 router_distributed 的值,来决定是创建普通 Router 还是 DVR Router;对管理员来说,还可以使用 –distributed {True,False} 参数来指定是否创建 DVR 模式的 router。

经过以上配置后的 neutron agent如下。可以看到,除了网络节点外,所有的计算介绍上也部署了 L3 Agent 和 Metadata Agent。

0628wechat4

下一期:

DVR Router 流程

本文转载自:http://geek.csdn.net/news/detail/76034