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

openstack的provider模式和self-service模式的理解
1、看图说话
2、上正餐
3、餐后甜点
4、网络逻辑

近期在学习ovn,涉及到与neutron结合时候,了解到在openstack中存在两种网络方案,一种是provider模式,一种是self-service模式。起初有些混乱,学习和了解之后,才知道其实就是我们经常所说的Vxlan版本和vlan版本。。。
网上对此解释不太多,在此把学习过程中的理解写出来。

1、看图说话
首先看下openstack官网的图,第一张是provider模式,第二张是self-service模式。

在这里插入图片描述
在这里插入图片描述

看过两张图,可以发现,self-service模式主要是在控制节点(其实也就是之前版本的网络节点,新的版本是把网络节点和控制节点部署在一起了),多了一个 L3 agent。顾名思义,也就是self-service的三层路由服务由openstack提供,而provider的三层服务是由物理交换机提供。

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是借助网络节点或者说控制节点的虚拟路由器去完成的路由。

在这里插入图片描述
在这里插入图片描述

发表回复