openstackdvr模式

分布式虚拟路由 Neutron Distributed Virtual Routing(DVR)

前言

​ 为了降低网络节点的负载,同时提高可扩展性,OpenStack 自 Juno 版本开始正式引入了分布式路由(Distributed Virtual Router,DVR)特性(用户可以选择使用与否),来让计算节点自己处理原先的大量东西向流量和非 SNAT 南北流量(有 floating IP 的 vm 跟外面的通信)。

传统(Legacy) router 和DVR router

Legacy router

在这里插入图片描述
在Legacy模式下,南北向流量以及不同网络下的东西向流量都要经过网络节点的qrouter,这意味着网络节点将要承受很大的流量和处理负担。

DVR router

在这里插入图片描述

在这里插入图片描述
在DVR模式下,计算节点会新起两个namespace:qrouter-ns和fip-ns,绑定浮动ip的南北向流量以及不同网络下的东西向流量将仅在发起通信虚机所在的计算节点上处理,网络节点会新起一个namespace:snat-ns,未绑定浮动ip的南北向流量仍然要经过网络节点。

DVR配置

控制节点

vi  /etc/neutron/neutron.conf
[DEFAULT]
router_distributed = True
vi /etc/neutron/plugins/ml2/ml2_conf.ini 
[ml2]
mechanism_drivers=openvswitch,l2population

重启neutron-server

systemctl restart neutron-server

网络节点

vi /etc/neutron/plugins/ml2/openvswitch_agent.ini 
[agent]
enable_distributed_routing = True
arp_responder  = True
l2_population = True
vi /etc/neutron/l3_agent.ini 
[DEFAULT]
agent_mode = dvr_snat

重启neutron-openvswitch-agent和neutron-l3-agent

systemctl restart neutron-openvswitch-agent
systemctl restart neutron-l3-agent

计算节点

vi /etc/neutron/plugins/ml2/openvswitch_agent.ini 
[agent]
enable_distributed_routing = True
arp_responder  = True
l2_population = True
bridge_mappings=extnet:br-ex
vi /etc/neutron/l3_agent.ini 
[DEFAULT]
interface_driver = openvswitch
agent_mode = dvr

添加br-ex网桥

ovs-vsctl add-br br-ex
ovs-vsctl add-port br-ex ens192(该网卡应能出外网)

修改配置文件

vi /etc/sysconfig/network-scripts/ifcfg-ens256
DEVICE=ens256
NAME=ens256
DEVICETYPE=ovs
TYPE=OVSPort
OVS_BRIDGE=br-ex
ONBOOT=yes
BOOTPROTO=none
vi /etc/sysconfig/network-scripts/ifcfg-br-ex
ONBOOT=yes
PEERDNS=no
NM_CONTROLLED=no
NOZEROCONF=yes
DEVICE=br-ex
NAME=br-ex
DEVICETYPE=ovs
OVSBOOTPROTO=dhcp
TYPE=OVSBridge
OVS_EXTRA="set bridge br-ex fail_mode=standalone"

重启neutron-openvswitch-agent和neutron-l3-agent

systemctl restart neutron-openvswitch-agent
systemctl restart neutron-l3-agent

Network Agent 分布

查看network agent,可以看到计算节点上也会起openvswitch-agent和l3-agent服务。

[root@controller ~(keystone_admin)]# openstack network agent list
+--------------------------------------+--------------------+----------+-------------------+-------+-------+---------------------------+
| ID                                   | Agent Type         | Host     | Availability Zone | Alive | State | Binary                    |
+--------------------------------------+--------------------+----------+-------------------+-------+-------+---------------------------+
| 25784f72-1ebc-4521-936c-ba24c9705395 | Open vSwitch agent | compute1 | nova              | :-)   | UP    | neutron-openvswitch-agent |
| 4ebe6b3c-ffa2-4bd3-b0fd-7cbcf092b5ce | L3 agent           | compute1 | nova              | :-)   | UP    | neutron-l3-agent          |
| 53a6535b-2444-472b-bd95-f3d2ab3e05ab | L3 agent           | compute2 | nova              | :-)   | UP    | neutron-l3-agent          |
| 7079e62a-0e64-47c5-8c48-b04def4abcb9 | Open vSwitch agent | compute2 | nova              | :-)   | UP    | neutron-openvswitch-agent |
| 7e9bea3d-d705-4f02-a272-dd0173cf9ba2 | L3 agent           | network  | nova              | :-)   | UP    | neutron-l3-agent          |
| cad6f5f1-d34a-43c9-bd54-0fd22643e1e8 | Metadata agent     | network  | None              | :-)   | UP    | neutron-metadata-agent    |
| cc0a3672-7f9f-4bff-91a4-25e093555fbd | DHCP agent         | network  | nova              | :-)   | UP    | neutron-dhcp-agent        |
| d4abf92f-edc4-471b-8202-a63dea1f0384 | Open vSwitch agent | network  | nova              | :-)   | UP    | neutron-openvswitch-agent |
+--------------------------------------+--------------------+----------+-------------------+-------+-------+---------------------------+

DVR对2、3层的影响

对3层的影响

计算节点

计算节点会创建两个namespace:qrouter-ns和fip-ns:

[root@compute1 ~]# ip netns list
qrouter-9bfbb054-e777-4c16-9f96-09a16a303576 (id: 0)
fip-b56e71c1-ee9e-4299-b16d-c66951caba21 (id: 1)
qrouter-ns

查看qrouter内部端口,其中:qr口绑定子网网关,rfp口与fip-ns里的fpr口是一对veth pair,用来做router-ns和fip-ns的通信。

[root@compute1 ~]# ip netns exec qrouter-9bfbb054-e777-4c16-9f96-09a16a303576 ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: rfp-9bfbb054-e@if3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether fe:0b:b5:bb:00:16 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 169.254.109.46/31 scope global rfp-9bfbb054-e
       valid_lft forever preferred_lft forever
    inet6 fe80::fc0b:b5ff:febb:16/64 scope link 
       valid_lft forever preferred_lft forever
33: qr-d0f511a4-f5: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue state UNKNOWN group default qlen 1000
    link/ether fa:16:3e:60:4c:53 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.2/24 brd 192.168.1.255 scope global qr-d0f511a4-f5
       valid_lft forever preferred_lft forever
    inet6 fe80::f816:3eff:fe60:4c53/64 scope link 
       valid_lft forever preferred_lft forever
34: qr-f4b7a3f9-eb: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值