如何安装,配置和使用Neutron的各个组件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何安装,配置和使用Neutron的各个组件相关的知识,希望对你有一定的参考价值。

安装指令取决于发行版本,更具体来讲,取决于您选择的包管理实用程序。在许多情况下,必须声明存储库。所以,举例而言,如果您使用的是 Zypper,那么您要用 zypper ar 向 libzypp 公开:

# zypper ar -f http://download.opensuse.org/repositories/Cloud:/OpenStack:/Grizzly/SLE_11_SP3/Cloud:OpenStack:Grizzly.repo

出于演示之目的,以下是 Ubuntu、Red Hat (Red Had Enterprise Linux、CentOS、Fedora)和 openSUSE 的主要命令:

Ubuntu:安装 neutron-server 和访问该 API 的客户端: $sudo apt-get install neutron-server python-neutronclient
安装插件:

$sudo apt-get install neutron-plugin-<plugin-name>
例如:

$sudo apt-get install neutron-plugin-openvswitch-agent Red Hat:类似于 Ubuntu,您必须同时安装 Neutron 服务器和插件 — 例如: $sudo yum install openstack-neutron$sudo yum install openstack-neutron-openvswitch openSUSE:使用以下命令: $sudo zypper install openstack-neutron$sudo zypper install openstack-neutron-openvswitch-agent
配置

大部分插件都需要一个数据库。OpenStack Networking 的 Fedora 包包含服务器设置实用程序脚本,负责数据库的完整安装和配置:

$sudo neutron-server-setup --plugin openvswitch
但也可以手动配置这些数据库。例如,在 Ubuntu 上,您可使用以下命令安装数据库:

$sudo apt-get install mysql-server python-mysqldb python-sqlalchemy
如果已经为其他 OpenStack 服务安装了一个数据库,那么您只需要创建一个 Neutron 数据库:

$ mysql -u <user> -p <pass> -e "create database neutron"
必须在插件的配置文件中指定该数据库。为此,在 /etc/neutron/plugins/plugin-name 中找到插件配置文件(例如 /etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini),然后设置连接字符串:

sql_connection = mysql://<user>:<password>@localhost/neutron?charset=utf8
使用场景

一个典型的 OpenStack Networking 设置可能很复杂,包含多达 4 个不同的物理网络。使用一个管理网络在 OpenStack 组件之间执行内部通信。一个数据网络处理实例之间的数据通信。API 网络向租户公开了所有 OpenStack API。此外,通常需要一个外部网络来授予访问 VM 的 Internet 的权限。

在这些物理网络之上,可通过许多方式配置租户需要的虚拟网络。最简单的场景是单个平面网络。也可以有多个平面网络、每个租户的私有网络,并提供商和每租户路由器的组合来管理网络之间的流量。
参考技术A 可以开发一个不包含任何特定于网络的功能的、可弹性扩展的工作负载管理系统。当然,计算节点需要在彼此之间建立连接,并能访问外部世界,但它也可以利用现
有的网络基础架构来分配 IP
地址和在节点之间传输数据。在多租户环境中,这样一种方法的最大问题是,已有的网络管理系统无法高效、安全地在用户之间隔离流量 —
这同时也是构建公共和私有云的组织面临的一个巨大问题。

OpenStack 解决此问题的一种方式是,构建一个详尽的网络管理堆栈,用它来处理所有网络相关请求。此方法面临的挑战是,每个实现都可能拥有一组独特的需求,包括与其他各种各样的工具和软件的集成。

OpenStack 因此采取了创建抽象层的方法,这个抽象层被称为 OpenStack
Networking,可容纳大量处理与其他网络服务的集成的插件。它为云租户提供了一个应用编程接口
(API),租户可使用它配置灵活的策略和构建复杂的网络拓扑结构 — 例如用它来支持多级 Web 应用程序。

OpenStack Networking 支持使用第三方编写插件来引入高级网络功能,比如 L2-in-L3 隧道和端到端服务质量支持。它们还可以创建网络服务,比如负载平衡、虚拟专用网或插入 OpenStack 租户网络中的防火墙。

在过去,OpenStack 的网络组件位于 OpenStack Nova (Compute) 项目中。其中大部分组件被拆分为一个包含
Folsom 版的单独项目。这个新项目最初称为 Quantum,但后来重命名为 Neutron,以避免与公司 Quantum
Corporation 的任何商标混淆。所以,如果看到 OpenStack Networking 参考资料中同时出现了名称
Nova、Quantum 和 Neutron,不要感到奇怪。

OpenStack---M版---双节点搭建---Neutron安装和配置

↓↓↓↓↓↓↓↓视频已上线B站↓↓↓↓↓↓↓↓

》》》》》》传送门

1.创建网络服务数据库

2.获得 admin 凭证来获取只有管理员能执行的命令的访问权限

3.创建服务证书,neutron用户

4.创建网络服务API端点:

5.Controller节点安装并配置网络服务组件

6.网络服务初始化

7.同步数据库

8.Controller节点重启计算API服务

9.启动网络服务并设置开机启动

10.Compute节点安装并配置neutron服务

11.compute节点重启服务并设置开机自启

12.验证(Controller节点)

1.创建网络服务数据库

#mysql -uroot -p000000
>create database neutron;
> grant all privileges on neutron.* to 'neutron'@'localhost' identified by '000000';
> grant all privileges on neutron.* to 'neutron'@'%' identified by '000000';

技术图片

2.获得 admin 凭证来获取只有管理员能执行的命令的访问权限

#. /root/admin-openrc

3.创建服务证书,neutron用户

#openstack user create --domain default --password 000000 neutron
#openstack role add --project service --user neutron admin
#openstack service create --name neutron --description "OpenStack Networking" network

技术图片

4.创建网络服务API端点:

#openstack endpoint create --region RegionOne network public http://controller:9696
#openstack endpoint create --region RegionOne network internal http://controller:9696
#openstack endpoint create --region RegionOne network admin http://controller:9696

技术图片
技术图片

5.Controller节点安装并配置网络服务组件

#yum -y install openstack-neutron openstack-neutron-ml2 openstack-neutron-linuxbridge ebtables

1.编辑配置文件 /etc/neutron/neutron.conf

#vi /etc/neutron/neutron.conf

在 [database] 部分,配置数据库访问:
connection = mysql+pymysql://neutron:000000@controller/neutron

在``[DEFAULT]``部分,添加如下内容
core_plugin = ml2
service_plugins = router
allow_overlapping_ips = True
rpc_backend = rabbit
auth_strategy = keystone
notify_nova_on_port_status_changes = True
notify_nova_on_port_data_changes = True

在[oslo_messaging_rabbit]部分,配置 “RabbitMQ” 消息队列的连接:
rabbit_host = controller
rabbit_userid = openstack
rabbit_password = 000000

在[keystone_authtoken]部分,配置认证服务访问
auth_uri = http://controller:5000
auth_url = http://controller:35357
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = neutron
password = 000000

在[nova]部分,配置网络服务来通知计算节点的网络拓扑变化:
auth_url = http://controller:35357
auth_type = password
project_domain_name = default
user_domain_name = default
region_name = RegionOne
project_name = service
username = nova
password = 000000

在 [oslo_concurrency] 部分,配置锁路径:
lock_path = /var/lib/neutron/tmp

技术图片
技术图片
技术图片
技术图片
技术图片
技术图片

2.编辑/etc/neutron/plugins/ml2/ml2_conf.ini文件,配置启用flat,VLAN,GRE,LOCAL以及VXLAN网络:

#vi /etc/neutron/plugins/ml2/ml2_conf.ini
在[ml2]下添加
type_drivers = flat,vlan,vxlan,gre,local
tenant_network_types = vxlan
mechanism_drivers = linuxbridge,l2population
extension_drivers = port_security

在 [ml2_type_flat] 部分,配置公共虚拟网络为flat网络
flat_networks = provider

在 [ml2_type_vxlan] 部分,为私有网络配置VXLAN网络识别的网络范围:
vni_ranges = 1:1000

在 [securitygroup] 部分,启用 ipset 增加安全组规则的高效性:
enable_ipset = True

技术图片
技术图片
技术图片
技术图片

3.配置linuxbridge代理,编辑文件/etc/neutron/plugins/ml2/linuxbridge_agent.ini

#vi /etc/neutron/plugins/ml2/linuxbridge_agent.ini

在 [linux_bridge] 部分,将公共虚拟网络和公共物理网络接口对应起来:
physical_interface_mappings = provider:eth1 
#注意,此处的eth1为基础环境配置中的200的网段 也就是  192.168.200.0/24

在 [vxlan] 部分,启用VXLAN覆盖网络,配置覆盖网络的物理网络接口的IP地址,启用layer-2 population:
enable_vxlan = True
local_ip = 192.168.100.10   #这里的IP地址是controller的管理网络
l2_population = True

在  [securitygroup] 部分,启用安全组并配置 Linuxbridge iptables firewall driver:
enable_security_group = True
firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver

技术图片
技术图片
技术图片

4.配置layer-3代理,编辑文件/etc/neutron/l3_agent.ini

#vi /etc/neutron/l3_agent.ini

在[DEFAULT]下添加
interface_driver = neutron.agent.linux.interface.BridgeInterfaceDriver
external_network_bridge =

技术图片

5.配置DHCP代理编辑/etc/neutron/dhcp_agent.ini文件

#vi /etc/neutron/dhcp_agent.ini

在[DEFAULT]下添加
interface_driver = neutron.agent.linux.interface.BridgeInterfaceDriver
dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq
enable_isolated_metadata = True

技术图片

6.编辑/etc/neutron/metadata_agent.ini文件

#vi /etc/neutron/metadata_agent.ini
在``[DEFAULT]`` 部分,配置元数据主机以及共享密码:
nova_metadata_ip = controller
metadata_proxy_shared_secret = 000000

技术图片

7.编辑/etc/nova/nova.conf文件

#vi /etc/nova/nova.conf
在``[neutron]``部分,配置访问参数,启用元数据代理并设置密码:
url = http://controller:9696
auth_url = http://controller:35357
auth_type = password
project_domain_name = default
user_domain_name = default
region_name = RegionOne
project_name = service
username = neutron
password = 000000
service_metadata_proxy = True
metadata_proxy_shared_secret = 000000

技术图片

6.网络服务初始化

# ln -s /etc/neutron/plugins/ml2/ml2_conf.ini /etc/neutron/plugin.ini

技术图片

7.同步数据库

# su -s /bin/sh -c "neutron-db-manage --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head" neutron

技术图片
技术图片

8.Controller节点重启计算API服务

# systemctl restart openstack-nova-api.service

9.启动网络服务并设置开机启动

systemctl start neutron-server.service neutron-linuxbridge-agent.service neutron-dhcp-agent.service neutron-metadata-agent.service neutron-l3-agent.service

systemctl enable neutron-server.service neutron-linuxbridge-agent.service neutron-dhcp-agent.service neutron-metadata-agent.service neutron-l3-agent.service

10.Compute节点安装并配置neutron服务

# yum -y install openstack-neutron-linuxbridge ebtables ipset

1.编辑/etc/neutron/neutron.conf 文件

#vi /etc/neutron/neutron.conf

在 “[DEFAULT]” 下添加
rpc_backend = rabbit
auth_strategy = keystone

在[oslo_messaging_rabbit]下添加
rabbit_host = controller
rabbit_userid = openstack
rabbit_password = 000000

在[keystone_authtoken]下添加
auth_uri = http://controller:5000
auth_url = http://controller:35357
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = neutron
password = 000000

在 [oslo_concurrency] 部分,配置锁路径:
lock_path = /var/lib/neutron/tmp

技术图片
技术图片
技术图片
技术图片

2.编辑/etc/neutron/plugins/ml2/linuxbridge_agent.ini文件

#vi /etc/neutron/plugins/ml2/linuxbridge_agent.ini

在 [linux_bridge] 部分,将公共虚拟网络和公共物理网络接口对应起来
physical_interface_mappings = provider:eth1

在 [vxlan] 部分,启用VXLAN覆盖网络,配置覆盖网络的物理网络接口的IP地址,启用layer-2 population:
enable_vxlan = True
local_ip = 192.168.100.20
l2_population = True

在  [securitygroup] 部分,启用安全组并配置 Linuxbridge iptables firewall driver:
enable_security_group = True
firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver

技术图片
技术图片
技术图片

3.编辑/etc/nova/nova.conf文件并完成下面的操作

#vi /etc/nova/nova.conf
在[neutron]部分添加

url = http://controller:9696
auth_url = http://controller:35357
auth_type = password
project_domain_name = default
user_domain_name = default
region_name = RegionOne
project_name = service
username = neutron
password = 000000

技术图片

11.compute节点重启服务并设置开机自启

# systemctl restart openstack-nova-compute.service neutron-linuxbridge-agent.service
# systemctl enable neutron-linuxbridge-agent.service

12.验证(Controller节点)

#. /root/admin-openrc
#neutron ext-list
#neutron agent-list

技术图片
技术图片

以上是关于如何安装,配置和使用Neutron的各个组件的主要内容,如果未能解决你的问题,请参考以下文章

如何安装,配置和使用Neutron的各个组件

如何安装,配置和使用Neutron的各个组件

Openstack Neutron架构概览

Openstack 实战讲解之-----08-计算节点neutron配置

OpenStack stein安装network option1

OpenStack---M版---双节点搭建---Neutron安装和配置