一、前言

openstack当下已成为各大公有云厂商的首选,作者也在一个公有云厂商做外协(对,就是那个出折叠屏手机的厂商),他家的网络设备默认是做白名单(deny any),只允许指定放通的流量经过,生产环境中出于网络安全的因素也不允许permit any any,本文就详细说明他家的openstack公有云场放通哪些网络平面及为什么要放通这些平面。我们假设每个服务器有4张网卡,管理和业务流量分开,eth0/eth1走管理流量,eth4/eth5走业务流量进行说明。

二、openstack的构成

openstack是一个云操作系统,大体可分为:控制节点,计算节点、网络节点、存储结点,生产环境中为了避免网络节点成为瓶颈都会开启dvr功能(即东西走向的流量不会再经过网络节点,南北走向的流量也只当vm在没有fip的情况下才会走网络节点),上述架构可以简化为下图所示:
openstack公有云需要放通的网络平面

三、vm的创建过程

要了解放通vlan的准则,首先要了解一个vm在openstack中是如何生成的,每一个vm称为一个实例,每一个实例好比一台电脑,一个电脑要能正常工作,除了有计算资源外还需要有操作系统、网络、硬盘,这些功能在openstack中对应的通过nova、glance、neutron和cinder组建实现。下图是简化后的vm创建流程,详细流程可以参考作者其他博文。简化后虚拟机的创建流程为:
openstack公有云需要放通的网络平面

  1. 客户端通过keystone认证后,发起vm创建请求;
  2. nova-api接收到请求后,通过scheduler组件选择一个承载vm的宿主机;
  3. nova-compute组件提供vm所需要的计算功能,同时向glance、neutron、cinder组件的api发起请求,请求镜像、网络和存储资源。至此,一个电脑所需的组件就已经具备齐全;
  4. nova-conpute通过libvert联系提供hypervisor的计算节点主机(kvm、xen,vmware等)。

四、放通vlan说明

1.管理节点
管理节点使用eth0/eth1作为管理接口,生产场景中操作系统由pxe进行安装,安装后的主机通过管理平面进行通信,同时nova-conpute需要通过各组件的api请求资源,并对后端存储进行管理,所以需要放通的vlan为:
==eth0/eth1==
pvid:

  • pxe #安装操作系统;

vlan:

  • om #主机间管理平面通信,如nova-conpute向其他组件api发起请求;
  • api #此处的api是external-api,是用于第三方产品调用管理节点,如监控等;
  • storage #管理节点管理后端存储;
  • vtep #他家的产品中需要创建2个管理虚拟机对物理主机和虚拟机进行管理,所以还需要放通vtep平面。
端口 放通vlan
eth0/eth1 pvid:pxe vlan:om/api/vtep/storage

2.计算节点
计算节点在上图中表示为hypervisor,是实际提供计算能力的主机,eth0/eth1作为管理口,eth4/eth5作为业务口,放通的vlan为:
==eth0/eth1==
pvid:

  • pxe #安装操作系统;

vlan:

  • om #主机间管理平面通信;
  • storage #vm实际存储在后端存储中,需要计算节点能够访问存储节点。

==eth4/eth5==
vlan:

  • vtep #计算节点之间建立的vxlan隧道,用于不同宿主机上vm间的通信;
  • fip #为计算节点内部的vm提供dnat功能,可以让用户通过internet访问(eip转换成fip)。
端口 放通vlan
eth0/eth1 pvid:pxe vlan:om/storage
eth4/eth5 vlan:vtep/fip

3.存储节点
存储节点使用eth0/eth1作为管理业务口,放通的vlan为:
==eth0/eth1==
pvid:

  • om #安装操作系统及管理流量,此处没有为pxe单独划分一个vlan,pxe使用的是om平面的vlan;

vlan:

  • storage #存储节点的业务平面。
端口 放通vlan
eth0/eth1 pvid:om vlan:storage

以上就是openstack公有云场景下需要放通的网络平面。