openstack的provider模式和self-service模式的理解

openstack的provider模式和self-service模式的理解


最近在做ovn的研究,涉及到与neutron结合时候,遇到了两种网络模式,一种是provider模式,一种是self-service模式。起初有些混乱,研究和学习之后,发现其实就是我们项目里所说的Vxlan版本和vlan版本。。。

网络对此解释比较少,在此把学习过程中的理解写出来。
1、看图说话
首先看下openstack官网的图,第一张是provider模式,第二张是self-service模式。

在这里插入图片描述

在这里插入图片描述

看过两张图,可以发现,self-service模式主要是在控制节点(其实也就是之前版本的网络节点,新的版本是把网络节点和控制节点部署在一起了),多了一个 L3 agent。顾名思义,也就是self-service有三层的服务。
2、上正餐
provider network又称为运营商网络,self-service network又称为租户网络。

对于neutron而言,这种网络类型是“没有”三层路由功能的,或者说没有自主的路由功能,他需要借助外部的网络,才能完成不同网络之间的路由。也就是说他的路由器或者三层网络服务是由openstack 之外的力量提供,因此被称为provider。

在ml2的配置文件中,我们可见一斑

/etc/neutron/plugins/ml2/ml2_conf.ini
#下面是把租户的网络配置成vlan模式
[ml2]
mechanism_drivers = ovn
type_drivers = local,flat,vlan,vxlan
tenant_network_types = vlan
extension_drivers = port_security
overlay_ip_version = 4
#下面是我们就需要配置vlan的信息,在这里我们需要提供我们的provider的名称,这个名字你可以随便起,但是必须和计算节点上的physical_interface_mappings一一对应。
[ml2_type_vlan]
network_vlan_ranges = **provider-name**:1001:2000
#假如计算节点上的网络服务使用的linuxbridge(对于ovs也一样)
修改/etc/neutron/plugins/ml2/linuxbridge_agent.ini
[linux_bridge]
physical_interface_mappings = **provider-name**:eth0  #看到没,这里就是把provider映射到具体的物理网卡了,也就是创建的租户的vlan网络就从计算节点的eth0出去,而后进入eth0背后的网络设备,在那里进行路由和交换。

3、餐后甜点
说完了provider network之后,就很容易理解self-service网络了。
self-service就是neutron不依赖外部的网络和三层路由,租户自己通过ovs或者Linux bridge创建虚拟的路由来进行交换。self-service也不需要配置provider。配置如下:

/etc/neutron/plugins/ml2/ml2_conf.ini
#下面是把租户的网络配置成vxlan模式
[ml2]
mechanism_drivers = ovn
type_drivers = local,flat,vlan,vxlan
tenant_network_types = vxlan
extension_drivers = port_security
overlay_ip_version = 4
[ml2_type_vxlan]
vni_ranges = 1:1000

4、网络逻辑
下面是我自己简单画的两种类型的网络走向,第一个是provider类型,第二个是self-service类型。
可以看到provider是借助外部去完成路由,而self-service是借助网络节点或者说控制节点的虚拟路由器去完成的路由。
在这里插入图片描述

在这里插入图片描述
参考:
https://docs.openstack.org/install-guide/overview.html#networking

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章