---
title: 安装Neutron
description: "Neutron为其他服务组件提供网络连接功能，如Nova计算服务组件；同时提供API给用户使用；支持多个网络供应商的设备和技术。请在控制节点和计算节点安装Neutron。在控制节点和计算节点场景安装Neutron的操作有所不同，操作过程中请仔细分辨。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengcpfs/ecosystemEnable/OpenStack/kunpengopenstacktrain_04_017.html
sourcePath: /source/zh/kunpengcpfs/ecosystemEnable/OpenStack/kunpengopenstacktrain_04_017.html
indexId: 3a8da088bebf2bb84d2706f12c8a3e23d8421f6385416b28713421fb1bafd2e382
---
# 安装Neutron

Neutron为其他服务组件提供网络连接功能，如Nova计算服务组件；同时提供API给用户使用；支持多个网络供应商的设备和技术。请在控制节点和计算节点安装Neutron。在控制节点和计算节点场景安装Neutron的操作有所不同，操作过程中请仔细分辨。

#### 在控制节点创建Neutron数据库

1. 创建Neutron数据库。

  a. 以root用户登录数据库。
    1 mysql -u root -p

  b. 在数据库中，创建Keystone数据库并授权。
    1 2 3 CREATE DATABASE neutron; GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'localhost' IDENTIFIED BY 'NEUTRON_DBPASS'; GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'%' IDENTIFIED BY 'NEUTRON_DBPASS';

    将NEUTRON_DBPASS替换为neutron数据库用户的密码，请根据实际情况进行设置。密码中请勿包含字符“#@$”，支持特殊字符“&=- _ . + ! * ()”

  c. 退出数据库。

```
exit
```


2. 创建Neutron服务凭据。

```
source
~
/.admin-openrc
openstack user create --domain default --password-prompt neutron
openstack role add --project service --user neutron admin
openstack service create --name neutron --description "OpenStack Networking" network
```


  密码中请勿包含字符“#@$”，支持特殊字符“&=- _ . + ! * ()”

3. 创建Neutron 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
```


#### 在控制节点安装和配置Neutron（以Self service-OVS为例）

1. 安装Neutron组件。

```
yum install openstack-neutron openstack-neutron-ml2 openstack-neutron-openvswitch openstack-neutron-metering-agent ebtables
```


2. 修改配置文件“/etc/neutron/neutron.conf”。

  a. 打开文件。

```
vi /etc/neutron/neutron.conf
```


  b. 按“i”进入编辑模式，添加如下内容。

```
#a . 配置数据库访问
[database]
connection = mysql+pymysql://neutron:
NEUTRON_DBPASS
@controller/neutron
#b. 启用ML2插件，禁用其他插件。
[DEFAULT]
core_plugin = ml2
service_plugins = router,metering,qos,placement,trunk,segments
transport_url = rabbit://openstack:
RABBIT_PASSWORD
@controller
auth_strategy = keystone
notify_nova_on_port_status_changes = true
notify_nova_on_port_data_changes = true
#c. 配置身份访问。
[keystone_authtoken]
www_authenticate_uri = http://controller:5000
auth_url = http://controller:5000
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = neutron
password =
NEUTRON_PASSWORD
#d. 配置[nova]模块参数。配置文件中默认没有[nova]模块参数，需要新增。
[nova]
auth_url = http://controller:5000
auth_type = password
project_domain_name = default
user_domain_name = default
region_name = RegionOne
project_name = service
username = nova
password =
NOVA_PASSWORD
#e. 配置锁定路径。
[oslo_concurrency]
lock_path = /var/lib/neutron/tmp
#f. 配置placement。配置文件中默认没有[placement]模块参数，需要新增。
[placement]
region_name = RegionOne
project_domain_name = Default
project_name = service
auth_type = password
user_domain_name = Default
auth_url = http://controller:5000/v3
username = placement
password =
PLACEMENT_PASSWORD
```


    username以及password字段请在安装Nova以后根据Nova信息配置。也可以在此处预定Nova的密码，在之后安装和配置Nova时，使用与此处一样的密码。 将NEUTRON_DBPASS替换为Neutron数据库密码，将NEUTRON_PASSWORD替换为Neutron用户密码，将PLACEMENT_PASSWORD替换为Placement用户密码，请根据实际情况进行设置。


  c. 按“Esc”键退出编辑模式，输入:wq!，按“Enter”键保存并退出文件。
3. 修改ML2插件“/etc/neutron/plugins/ml2/ml2_conf.ini”。

  a. 打开文件。

```
vi /etc/neutron/plugins/ml2/ml2_conf.ini
```


  b. 按“i”进入编辑模式，添加如下内容。

```
#启用Flat、VLAN和VXLAN网络。
#默认是没有的，需要新建 [ml2],[ml2_type_flat],[ml2_type_vlan],[ml2_type_vxlan]
[ml2]
type_drivers = flat,vlan,vxlan
tenant_network_types = flat,vlan,vxlan
mechanism_drivers = openvswitch
extension_drivers = port_security,qos
[ml2_type_flat]
flat_networks = provider
[ml2_type_vlan]
network_vlan_ranges = provider
[ml2_type_vxlan]
vni_ranges = 1:1000
```


  c. 按“Esc”键退出编辑模式，输入:wq!，按“Enter”键保存并退出文件。
4. 修改OVS配置文件“/etc/neutron/plugins/ml2/openvswitch_agent.ini”。

  a. 打开文件。

```
vi /etc/neutron/plugins/ml2/openvswitch_agent.ini
```


  b. 按“i”进入编辑模式，添加如下内容。

```
[securitygroup]
enable_ipset = true
enable_security_group = true
firewall_driver = openvswitch
[agent]
tunnel_types = vxlan
extensions  = qos
[ovs]
bridge_mappings = provider:br-ex
tunnel_bridge = br-tun
local_ip =
192.168.16.2
resource_provider_bandwidths = br-ex:10000000:10000000
```


    192.168.16.0子网用于OpenStack业务流量的通信。上述192.168.16.2为当前节点业务流量通信IP地址，请根据实际情况进行替换。

  c. 按“Esc”键退出编辑模式，输入:wq!，按“Enter”键保存并退出文件。
5. 修改dhcp配置文件“/etc/neutron/dhcp_agent.ini”。

  a. 打开文件。

```
vi /etc/neutron/dhcp_agent.ini
```


  b. 按“i”进入编辑模式，添加如下内容。

```
[DEFAULT]
dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq
enable_isolated_metadata = true
force_metadata = true
interface_driver = openvswitch
```


  c. 按“Esc”键退出编辑模式，输入:wq!，按“Enter”键保存并退出文件。
6. 修改l3 agent配置文件“/etc/neutron/l3_agent.ini”。

  a. 打开文件。

```
vi /etc/neutron/l3_agent.ini
```


  b. 按“i”进入编辑模式，添加如下内容。

```
[DEFAULT]
interface_driver = openvswitch
```


  c. 按“Esc”键退出编辑模式，输入:wq!，按“Enter”键保存并退出文件。
7. 修改MetaData agent配置文件“/etc/neutron/metadata_agent.ini”。

  a. 打开文件。

```
vi /etc/neutron/metadata_agent.ini
```


  b. 按“i”进入编辑模式，添加如下内容。

```
[DEFAULT]
nova_metadata_host =
192.168.14.2
metadata_proxy_shared_secret =
NEUTRON_PASSWORD
```


    192.168.14.2为当前节点的管理IP地址，请根据实际情况进行替换。 将NEUTRON_PASSWORD替换为Neutron用户密码，请根据实际情况进行设置。


  c. 按“Esc”键退出编辑模式，输入:wq!，按“Enter”键保存并退出文件。
8. 修改系统配置文件“/etc/sysctl.conf”。

  a. 编辑文件。

```
vi /etc/sysctl.conf
```


  b. 按“i”进入编辑模式，修改如下内容。

```
net.ipv4.ip_forward=1
net.ipv4.conf.all.rp_filter=0
net.ipv4.conf.default.rp_filter=0
```


  c. 按“Esc”键退出编辑模式，输入:wq!，按“Enter”键保存并退出文件。
  d. 使配置生效。

```
sysctl -p
```


9. 创建网络初始化。

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


10. 填充数据库。

```
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
```


11. 启动网络服务并配置为系统引导时启动。

```
systemctl enable neutron-server.service neutron-openvswitch-agent.service neutron-metadata-agent.service neutron-dhcp-agent.service neutron-l3-agent.service neutron-metering-agent.service
systemctl start neutron-server.service neutron-openvswitch-agent.service neutron-metadata-agent.service neutron-dhcp-agent.service neutron-l3-agent.service neutron-metering-agent.service
```


12. 添加OVS网桥。

```
ovs-vsctl add-br br-ex
```


13. 查看服务运行状态。

  a. 查看服务状态。

```
systemctl status neutron-openvswitch-agent
```


  b. 查看日志是否正常。

```
vi /var/log/neutron/openvswitch-agent.log
```


#### 在计算节点安装和配置Neutron（以Self service-OVS为例）

1. 安装Neutron组件。

```
yum install openstack-neutron openstack-neutron-ml2 openstack-neutron-openvswitch ebtables
```


2. 配置Neutron组件，修改“/etc/neutron/neutron.conf”文件。

  a. 打开文件。

```
vi /etc/neutron/neutron.conf
```


  b. 按“i”进入编辑模式，添加如下内容。

```
#a. 配置RabbitMQ 消息队列访问。
[DEFAULT]
transport_url = rabbit://openstack:
RABBIT_PASSWORD
@controller
auth_strategy = keystone
#b. 配置身份访问服务。
[keystone_authtoken]
www_authenticate_uri = http://controller:5000
auth_url = http://controller:5000
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = neutron
password =
NEUTRON_PASSWORD
#c.配置锁定路径
[oslo_concurrency]
lock_path = /var/lib/neutron/tmp
```


    RABBIT_PASSWORD为RabbitMQ中OpenStack账户的密码，请根据实际情况进行设置。 NEUTRON_PASSWORD为Neutron用户密码，请根据实际情况进行设置。

  c. 按“Esc”键退出编辑模式，输入:wq!，按“Enter”键保存并退出文件。
3. 配置元数据代理，修改“/etc/neutron/metadata_agent.ini”文件。

  a. 打开文件。

```
vi /etc/neutron/metadata_agent.ini
```


  b. 按“i”进入编辑模式，添加如下内容，配置元数据主机和共享密钥。

```
[DEFAULT]
nova_metadata_host = controller
metadata_proxy_shared_secret =
NEUTRON_PASSWORD
```


  c. 按“Esc”键退出编辑模式，输入:wq!，按“Enter”键保存并退出文件。
4. 修改dhcp配置文件“/etc/neutron/dhcp_agent.ini”。

  a. 打开文件。

```
vi /etc/neutron/dhcp_agent.ini
```


  b. 按“i”进入编辑模式，添加如下内容。

```
[DEFAULT]
enable_isolated_metadata = true
force_metadata = true
interface_driver = openvswitch
```


  c. 按“Esc”键退出编辑模式，输入:wq!，按“Enter”键保存并退出文件。
5. 配置l3 agent，修改“/etc/neutron/l3_agent.ini”文件。

  a. 打开“/etc/neutron/l3_agent.ini”文件。

```
vi /etc/neutron/l3_agent.ini
```


  b. 按“i”进入编辑模式，添加如下内容。

```
[DEFAULT]
interface_driver = openvswitch
```


  c. 按“Esc”键退出编辑模式，输入:wq!，按“Enter”键保存并退出文件。
6. 配置openvswitch agent，修改“/etc/neutron/plugins/ml2/openvswitch_agent.ini”文件。

  a. 打开文件。

```
vi /etc/neutron/plugins/ml2/openvswitch_agent.ini
```


  b. 按“i”进入编辑模式，添加如下内容。

```
[securitygroup]
enable_ipset = true
enable_security_group = true
firewall_driver = openvswitch
[agent]
tunnel_types = vxlan
extensions = qos
[ovs]
local_ip =
192.168.16.4
```


    192.168.16.0/24子网用于OpenStack业务流量的通信。上述192.168.16.4为当前节点业务面网络IP地址，用户可根据实际环境部署调整IP地址。


  c. 按“Esc”键退出编辑模式，输入:wq!，按“Enter”键保存并退出文件。
7. 修改系统配置文件“/etc/sysctl.conf”。

  a. 打开文件。

```
vi /etc/sysctl.conf
```


  b. 按“i”进入编辑模式，修改如下内容。

```
net.ipv4.ip_forward=1
net.ipv4.conf.all.rp_filter=0
net.ipv4.conf.default.rp_filter=0
```


  c. 按“Esc”键退出编辑模式，输入:wq!，按“Enter”键保存并退出文件。
  d. 使配置生效。

```
sysctl -p
```


8. 启动网络服务并配置为系统引导时启动。

```
systemctl enable neutron-openvswitch-agent.service neutron-metadata-agent.service neutron-dhcp-agent.service neutron-l3-agent.service
systemctl start neutron-openvswitch-agent.service neutron-metadata-agent.service neutron-dhcp-agent.service neutron-l3-agent.service
```


9. 查看服务运行状态。

```
systemctl status neutron-openvswitch-agent
```


#### 验证Neutron

安装Neutron完成后，在控制节点执行以下命令，验证Neutron。

```
source
~
/.admin-openrc
openstack network agent list
```
