原生OpenStack Neutron 组件资源模型network讲解

版权声明:本文为博主原创文章,未经博主允许不得转载。原创不易,各位勉之。 https://blog.csdn.net/LL845876425/article/details/83999005

原生OpenStack Neutron 组件资源模型network讲解

network是neutron的二层资源模型,支持的网络类型有:Local、Flat、VLAN、VXLAN、GRE、Geneve等。
Local 只是一个主机内的网络内容,只会用于测试,不会用于生产环境。VXLAN、GRE、Geneve是隧道型网络,Flat和VLAN属于非隧道型网络。

Network是Neutron模型的一个“根”。Subnet需要属于它,Port也要属于它。Network中的字段subnets,它的数据类型是一个数组,表示一个Network可以包含多个Subnet。同时Subnet也有一个字段,network_id(string类型),指向它所属的Network。Port模型也有一个字段network_id(string类型),指向它所属的Network。
Neutron模型中的绝大多数字段都比较好理解,相对来说比较令人困惑的概念和字段有:运营商网络(Provider Network)、物理网络(对应provider:physical_network)、segments和vlan_transparent。

租户网络和运营商网络

由租户创建并且管理的网络,Neutron称之为租户网络。有很多网络不在Neutron管理范围内(Neutron称之为外部网络)。有时候,Neutron还需要创建一个网络来映射外部网络,这个网络,也称为运营商网络(Provider network)。
运营商网络和租户网络,从模型角度来说,都是Neutron的资源模型Network。两者的区别如下。

  • 管理的权限与角色不同。简单地说,租户创建的网络叫租户网络,而运营商管理员(Administrator)创建的网络,就是运营商网络。
  • 创建网络时,传入的参数不同。创建运营商网络时,需要传入provider:network_type、provider:physical_network、provider:segmentation_id三个参数,而创建租户网络时,没有办法传入这三个参数,它们是由Openstack在管理员配置的范围内自动分配的。

运营商网络的使用场景

Openstack是一个云环境,这句话反过来理解,如果遇到非云的服务,Openstack 即无法管理。
运营商网络的一般化使用场景:neutron创建了一个网络,并且这个网络知识为了要映射(匹配)另一个不在neutron管理范围内的网络。neutron创建的网络,也称作运营商网络。
说明,这里所说的映射/匹配,指的是网络类型和网络id必须相同。网络id的含义取决于网络类型,比如VLAN 类型就是VLAN ID,GRE网络类型就是GRE KEY。

运营商网络和租户网络的创建方法

权限和用途都不一样,在创建时,主要体现在传入的参数不同上。运营商网络因为要和另一个网络匹配,所以必须需要参数:
provider:network_type(用于匹配另一个网络的类型),provider:segmentation_id(用于匹配另一个网络segmentation id 或称为网络id),provider:physical_network。
使用该参数,再配合配置文件/etc/neutron/plugins/ml2/ml2_conf.ini
就可以对租户网络和运营商网络进行创建和管理。

相关命令

OpenStack 官网URL:

https://docs.openstack.org/python-openstackclient/pike/cli/command-objects/network.html
https://docs.openstack.org/mitaka/install-guide-ubuntu/launch-instance-networks-provider.html

https://docs.openstack.org/python-neutronclient/latest/cli/neutron-reference.html#net-create


小结:

network 是 neutron 的二层网络资源模型。通过这个模型,neutron对外提供二层网络的服务接口,租户可以通过这个服务创建并管理自己的网络,即称为租户网络。与之对应的有运营商网络。
运营商网络是对运营商的物理网络的一种虚拟扩展,从形式上来说,与租户网络的区别有:管理网络的角色权限、创建网络时所传递的参数。从管理范围上讲,运营商网络是为了对neutron无法管理的网络的一直映射。从场景上来说,运营商网络是为了对接neutron无法管理的网络(外部网络)。
运营商网络中的参数provider:physical_network的含义:
1)对于所有类型的网络而言,为方便人们阅读和理解。
2)对于非隧道型网络而言,该参数还决定选择哪一个br-ethx(背后是主机的物理网卡)

对于非隧道型网络,主机内的br-ethx必须提前创建好,并且br-ethx与哪个网口对接,也需要提前规划配置好,可以将配置到配置文件内。当前用户创建网络时,neutron会根据传入的物理网络名称选择对于的br-ethx,从而达到灵活选择br-ethx的目的。
对于隧道型网络(GRE、VXLAN)不需要选择HOST背后的网卡,只要有了目的ip,主机的ip协议栈就会找到合适的网卡将报文发送出去。

猜你喜欢

转载自blog.csdn.net/LL845876425/article/details/83999005