1、概述
OpenStack Networking(中子)允许您创建并附加由其他OpenStack服务管理的接口设备到网络。可以实现插件以适应不同的网络设备和软件,为OpenStack架构和部署提供灵活性。
它包括以下组件:
-
中子服务器
- 接受并将API请求路由到相应的OpenStack Networking插件以进行操作。 OpenStack网络插件和代理
-
插拔端口,创建网络或子网,并提供IP寻址。这些插件和代理根据特定云中使用的供应商和技术而有所不同。OpenStack网络随附有Cisco虚拟和物理交换机的插件和代理,NEC OpenFlow产品,Open vSwitch,Linux桥接器和VMware NSX产品。
通用代理是L3(第3层),DHCP(动态主机IP寻址)和插件代理。
消息队列
- 大多数OpenStack网络安装用于在中子服务器和各种代理之间路由信息。还充当数据库来存储特定插件的网络状态。
OpenStack Networking主要与OpenStack Compute进行交互,为其实例提供网络和连接。
2、Networking (neutron) 概念
OpenStack Networking(中子)管理虚拟网络基础架构(VNI)的所有网络方面以及OpenStack环境中物理网络基础设施(PNI)的接入层方面。OpenStack Networking使项目能够创建高级虚拟网络拓扑,其中可能包括 防火墙,负载均衡器和 虚拟专用网(VPN)等服务。
网络提供网络,子网和路由器作为对象抽象。每个抽象都具有模拟其物理对象的功能:网络包含子网,路由器在不同的子网和网络之间路由流量。
任何给定的网络设置至少有一个外部网络。与其他网络不同,外部网络不仅仅是一个虚拟定义的网络。相反,它代表了在OpenStack安装之外可访问的物理外部网络的视图。外部网络上的IP地址可以由外部网络上的任何人访问。
除了外部网络,任何网络设置都有一个或多个内部网络。这些软件定义的网络直接连接到虚拟机。只有任何给定内部网络上的虚拟机,或通过接口连接到类似路由器的子网上的虚拟机才能直接访问连接到该网络的虚拟机。
为了外部网络访问虚拟机,反之亦然,需要网络之间的路由器。每个路由器都有一个连接到外部网络的网关和连接到内部网络的一个或多个接口。像物理路由器一样,子网可以访问连接到同一路由器的其他子网上的机器,机器可以通过路由器的网关访问外部网络。
此外,您可以将外部网络上的IP地址分配给内部网络上的端口。无论何时连接到子网,该连接都称为端口。您可以将外部网络IP地址与端口关联到VM。这样,外部网络上的实体可以访问虚拟机。
网络还支持安全组。安全组使管理员可以按组定义防火墙规则。VM可以属于一个或多个安全组,并且Networking将这些安全组中的规则应用于阻止或解除该虚拟机的端口,端口范围或流量类型。
网络使用的每个插件都有自己的概念。对于运行VNI和OpenStack环境并不重要,理解这些概念可以帮助您设置网络。所有网络安装使用核心插件和安全组插件(或只是No-Op安全组插件)。此外,还提供了防火墙即服务(FWaaS)和负载均衡器即服务(LBaaS)插件。
以下部分:安装和配置控制器节点
3、配置环境
3.1、创建一个数据库(,服务凭证和API端点)
3.1.1、登录数据库
# mysql -u root -p
3.1.2、创建neutron
数据库
CREATE DATABASE neutron;
3.1.3、授予对neutron
数据库的适当访问权限
MariaDB [(none)]> grant all privileges on neutron .* to 'neutron'@'localhost' identified by 'daemon'; Query OK, 0 rows affected (0.01 sec) MariaDB [(none)]> grant all privileges on neutron .* to 'neutron'@'%' identified by 'daemon'; Query OK, 0 rows affected (0.00 sec)
3.2、读取admin
凭据以访问仅管理CLI命令
# source admin-openrc
3.3、创建服务凭据
3.3.1、创建neutron
用户
# openstack user create --domain default --password-prompt neutron User Password: Repeat User Password: +---------------------+----------------------------------+ | Field | Value | +---------------------+----------------------------------+ | domain_id | default | | enabled | True | | id | 5375cffc7abb4ee08c62b613986b846f | | name | neutron | | password_expires_at | None | +---------------------+----------------------------------+
3.3.2、将admin
角色添加到neutron
用户
# openstack role add --project service --user neutron admin
3.3.3、创建neutron
服务实体
# openstack service create --name neutron \ > --description "OpenStack Networking" network +-------------+----------------------------------+ | Field | Value | +-------------+----------------------------------+ | description | OpenStack Networking | | enabled | True | | id | f92d0832631e400abea499183729efa5 | | name | neutron | | type | network | +-------------+----------------------------------+
3.4、创建网络服务API端点
# openstack endpoint create --region RegionOne \ > network public http://controller:9696 +--------------+----------------------------------+ | Field | Value | +--------------+----------------------------------+ | enabled | True | | id