searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

Openstack Neutron OVS组网介绍3---东西向三层流量之DVR路由配置

2024-07-05 09:55:51
14
0

传统虚拟机间跨三层通信都需要由网络节点做集中式三层路由,这就会存在几个问题:
单点故障
网络节点出现故障,虚拟机间跨三层通信将无法进行。


性能瓶颈
跨三层通信流量都送给网络节点来处理,当网络规模越来越大时,网络节点的负载就会越来越大,最终会出现性能瓶颈。


发小流量
发小流量指的是处于同一个计算节点,不同网络的虚拟机,二者之间的三层流量依然要先经过网络节点做路由转发,这个数据路径明显拉长了,带来的就是更多的网络时延问题。
    面对上述的三个问题,Openstack开源社区提出了DVR(分布式虚拟路由器)的模型。在DVR模型中,每个节点上都部署一个L3 Agent,在本节点上就可以完成跨三层转发,而无需再转发到网络节点。

1. 配置

控制节点
修改配置文件:/etc/neutron/neutron.conf
    [DEFAULT]
    router_distributed = True
然后重启如下服务:
service neutron-server restart


网络节点
修改配置文件:/etc/neutron/plugins/ml2/openvswitch_agent.ini
    [agent]
    enable_distributed_routing = True
修改配置文件:/etc/neutron/l3_agent.ini
    [DEFAULT]
    agent_mode = dvr_snat
然后重启如下服务:
service neutron-openvswitch-agent restart
service neutron-l3-agent restart


计算节点
首先需要安装l3-agent。
修改配置文件:/etc/neutron/plugins/ml2/openvswitch_agent.ini
    [agent]
    enable_distributed_routing = True
修改配置文件:/etc/neutron/l3_agent.ini
    [DEFAULT]
    interface_driver = openvswitch
    agent_mode = dvr
然后重启如下服务:
service neutron-openvswitch-agent restart
service neutron-l3-agent restart
配置完后,就可用创建租户网络了。然后创建一个router,把网络子网连接到路由器上,这时在网络节点上可以看到路由器的命名空间,但是在计算节点上还看不见路由器的命名空间,要在该计算节点上启动一个虚拟机才能看见路由器的命名空间。此时网络节点上还看不见snat和fip命名空间,这个需要创建一个外部物理网络,并把外部网络连接到路由器上,这个时候就可以看见这两个命名空间了。

在DVR场景中,有三个网络实体,如下所示:
router namespace
负责执行东西向三层转发。
fip namespace
负责执行南北向流量(虚拟机分配有floating ip)
snat namespace
负责执行南北向流量(虚拟机没有分配floating ip)

 

0条评论
0 / 1000
黄****远
19文章数
0粉丝数
黄****远
19 文章 | 0 粉丝
原创

Openstack Neutron OVS组网介绍3---东西向三层流量之DVR路由配置

2024-07-05 09:55:51
14
0

传统虚拟机间跨三层通信都需要由网络节点做集中式三层路由,这就会存在几个问题:
单点故障
网络节点出现故障,虚拟机间跨三层通信将无法进行。


性能瓶颈
跨三层通信流量都送给网络节点来处理,当网络规模越来越大时,网络节点的负载就会越来越大,最终会出现性能瓶颈。


发小流量
发小流量指的是处于同一个计算节点,不同网络的虚拟机,二者之间的三层流量依然要先经过网络节点做路由转发,这个数据路径明显拉长了,带来的就是更多的网络时延问题。
    面对上述的三个问题,Openstack开源社区提出了DVR(分布式虚拟路由器)的模型。在DVR模型中,每个节点上都部署一个L3 Agent,在本节点上就可以完成跨三层转发,而无需再转发到网络节点。

1. 配置

控制节点
修改配置文件:/etc/neutron/neutron.conf
    [DEFAULT]
    router_distributed = True
然后重启如下服务:
service neutron-server restart


网络节点
修改配置文件:/etc/neutron/plugins/ml2/openvswitch_agent.ini
    [agent]
    enable_distributed_routing = True
修改配置文件:/etc/neutron/l3_agent.ini
    [DEFAULT]
    agent_mode = dvr_snat
然后重启如下服务:
service neutron-openvswitch-agent restart
service neutron-l3-agent restart


计算节点
首先需要安装l3-agent。
修改配置文件:/etc/neutron/plugins/ml2/openvswitch_agent.ini
    [agent]
    enable_distributed_routing = True
修改配置文件:/etc/neutron/l3_agent.ini
    [DEFAULT]
    interface_driver = openvswitch
    agent_mode = dvr
然后重启如下服务:
service neutron-openvswitch-agent restart
service neutron-l3-agent restart
配置完后,就可用创建租户网络了。然后创建一个router,把网络子网连接到路由器上,这时在网络节点上可以看到路由器的命名空间,但是在计算节点上还看不见路由器的命名空间,要在该计算节点上启动一个虚拟机才能看见路由器的命名空间。此时网络节点上还看不见snat和fip命名空间,这个需要创建一个外部物理网络,并把外部网络连接到路由器上,这个时候就可以看见这两个命名空间了。

在DVR场景中,有三个网络实体,如下所示:
router namespace
负责执行东西向三层转发。
fip namespace
负责执行南北向流量(虚拟机分配有floating ip)
snat namespace
负责执行南北向流量(虚拟机没有分配floating ip)

 

文章来自个人专栏
云网络
19 文章 | 1 订阅
0条评论
0 / 1000
请输入你的评论
0
0