中文
注册

安装配置并验证Neutron

Neutron为其他服务组件提供网络连接功能,如Nova计算服务组件。同时,提供API给用户使用。支持多个网络供应商的设备和技术。

OpenStack网络方式比较多,当前以Provider网络方式为例进行说明。部署方式又分为LinuxBridge方式和OVS方式,实际部署时只需要选取两个部署当时中的一种即可。

创建Neutron数据库

在控制节点执行以下操作。

  1. 以root身份连接数据库。
    1
    mysql -u root -p
    
  2. 创建Neutron数据库。
    1
    CREATE DATABASE neutron;
    
  3. 授予适当访问权限,PASSWORD为用户为数据库设置的密码。
    1
    2
    3
    4
    GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'localhost' \
    IDENTIFIED BY '<PASSWORD>';
    GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'%' \
    IDENTIFIED BY '<PASSWORD>';
    

    <PASSWORD>为Neutron数据库的密码。

  4. 退出数据库。
    1
    exit
    

创建服务凭据

在控制节点执行以下操作。

  1. 使用admin用户登录openstack命令行。
    1
    source /etc/keystone/admin-openrc
    
  2. 创建Neutron用户。
    1
    openstack user create --domain default --password-prompt neutron
    
  3. 将admin角色添加到Neutron用户。
    1
    openstack role add --project service --user neutron admin
    
  4. 创建Neutron服务实体。
    1
    openstack service create --name neutron --description "OpenStack Networking" network
    
  5. 创建网络服务器API端点。
    1
    2
    3
    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(Provider-LinuxBridge-控制节点)

在Provider-LinuxBridge-控制节点执行以下操作。

  1. 安装组件。
    1
    yum -y install openstack-neutron openstack-neutron-ml2 openstack-neutron-linuxbridge ebtables
    
  2. 编辑配置文件/etc/neutron/neutron.conf。
    1. 配置数据库访问。
      1
      2
      [database]
      connection = mysql+pymysql://neutron:<PASSWORD>@controller/neutron
      
    2. 修改[DEFAULT]模块内容。
      1
      2
      3
      4
      5
      6
      7
      [DEFAULT]
      core_plugin = ml2
      service_plugins =
      transport_url = rabbit://openstack:<PASSWORD>@controller
      auth_strategy = keystone
      notify_nova_on_port_status_changes = true
      notify_nova_on_port_data_changes = true
      

      service_plugins为赋空值,<PASSWORD>为openstack用户名为rabbit的用户密码。

    3. 配置身份访问。
       1
       2
       3
       4
       5
       6
       7
       8
       9
      10
      [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 = <PASSWORD>
      
    4. 配置[nova]模块参数。

      配置文件中默认没有[nova]模块参数,需要新增。

      1
      2
      3
      4
      5
      6
      7
      8
      9
      [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 = <PASSWORD>
      
    5. 配置锁定路径。
      1
      2
      [oslo_concurrency]
      lock_path = /var/lib/neutron/tmp
      
  3. 编辑ML2插件/etc/neutron/plugins/ml2/ml2_conf.ini。
    1. 启用flat和vlan网络。

      默认是没有的,需要新建[ml2]、[ml2_type_flat]和[securitygroup]。

      1
      2
      3
      4
      5
      [ml2]
      type_drivers = flat,vlan
      tenant_network_types =
      mechanism_drivers = linuxbridge
      extension_drivers = port_security
      

      tenant_network_types为赋空值。

    2. 将Provider配置为flat网络。
      1
      2
      [ml2_type_flat]
      flat_networks = provider
      
    3. 将vlan配置为flat网络。
      1
      2
      [ml2_type_vlan]
      network_vlan_ranges = provider
      
    4. 启用ipset提高安全效率。
      1
      2
      [securitygroup]
      enable_ipset = true
      
  4. 配置Linux桥 代理 ,编辑“/etc/neutron/plugins/ml2/linuxbridge_agent.ini”文件。
    1. 将Provider虚拟网络映射到物理网络。
      1
      2
      [linux_bridge]
      physical_interface_mappings = provider:enp3s0
      

      此处的provider网络使用的是enp3s0网口,部署时根据实际情况调整。这里不是管理网络所用的物理网卡,是为业务网络准备的网卡。参考组网环境

    2. 禁用vxlan覆盖网络。
      1
      2
      [vxlan]
      enable_vxlan = false
      
    3. 启用安全组并配置Linux网桥iptables防火墙驱动程序,然后保存并退出。
      1
      2
      3
      [securitygroup]
      enable_security_group = true
      firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver
      
    4. 确保您的Linux操作系统内核支持网桥过滤器。

      在“/etc/sysctl.conf”中添加如下配置后,保存并退出:

      1
      2
      net.bridge.bridge-nf-call-iptables = 1
      net.bridge.bridge-nf-call-ip6tables = 1
      

    5. 运行以下命令,添加网桥过滤器:
      1
      2
      3
      modprobe br_netfilter
      sysctl -p
      sed -i '$amodprobe br_netfilter' /etc/rc.local
      
  5. 配置DHCP 代理

    编辑“/etc/neutron/dhcp_agent.ini”文件,新增如下配置后保存并退出。

    1
    2
    3
    4
    [DEFAULT]
    interface_driver = linuxbridge
    dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq
    enable_isolated_metadata = true
    
  6. 配置元数据 代理
    1
    vim /etc/neutron/metadata_agent.ini
    

    配置元数据主机和共享密钥。

    1
    2
    3
    [DEFAULT]
    nova_metadata_host = controller
    metadata_proxy_shared_secret = <PASSWORD>
    
  7. 配置Computer服务以使用Networking服务。
    1
    vim /etc/nova/nova.conf
    

    配置访问参数,启用元数据代理并配置密码。

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    [neutron]
    # ...
    url = http://controller:9696
    auth_url = http://controller:5000
    auth_type = password
    project_domain_name = default
    user_domain_name = default
    region_name = RegionOne
    project_name = service
    username = neutron
    password = <PASSWORD>
    service_metadata_proxy = true
    metadata_proxy_shared_secret = <PASSWORD>
    

    执行该操作前,请确保已经安装了Nova。

  8. 创建网络初始化。
    1
    ln -s /etc/neutron/plugins/ml2/ml2_conf.ini /etc/neutron/plugin.ini
    
  9. 填充数据库。
    1
    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
    
  10. 启动网络服务并配置为系统引导时启动。
    1
    2
    3
    systemctl enable openstack-neutron-server.service openstack-neutron-linuxbridge-agent.service openstack-neutron-dhcp-agent.service openstack-neutron-metadata-agent.service
    systemctl start openstack-neutron-server.service openstack-neutron-linuxbridge-agent.service openstack-neutron-dhcp-agent.service \
    openstack-neutron-metadata-agent.service
    

安装和配置Neutron(Provider-LinuxBridge-计算节点)

在Provider-LinuxBridge-计算节点执行以下操作。

  1. 安装组件。
    1
    yum -y install openstack-neutron-linuxbridge ebtables ipset
    
  2. 配置公共组件,编辑/etc/neutron/neutron.conf文件。
    1. 在该[database]部分中,注释掉所有connection选项(默认已注释),因为计算节点不直接访问数据库。
    2. 配置RabbitMQ 消息队列访问。
      1
      2
      [DEFAULT]
      transport_url = rabbit://openstack:<PASSWORD>@controller
      
    3. 配置身份访问服务。
       1
       2
       3
       4
       5
       6
       7
       8
       9
      10
      11
      12
      [DEFAULT]
      auth_strategy = keystone
      [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 = <PASSWORD>
      
    4. 配置锁定路径。
      1
      2
      [oslo_concurrency]
      lock_path = /var/lib/neutron/tmp
      
  3. 配置Linux桥代理,编辑“/etc/neutron/plugins/ml2/linuxbridge_agent.ini”文件,添加以下3项。
    1. 提供者虚拟网络映射到提供者物理网络接口。
      1
      2
      [linux_bridge]
      physical_interface_mappings = provider:enp3s0
      

      此处的provider网络使用的是enp3s0网口,部署时请根据实际情况调整。这里不是管理网络所用的物理网卡,是为业务网络准备的网卡。请参见组网环境

    2. 禁用vxlan覆盖网络。
      1
      2
      [vxlan]
      enable_vxlan = false
      
    3. 启用安全组并配置Linux网桥iptables防火墙驱动程序。
      1
      2
      3
      [securitygroup]
      enable_security_group = true
      firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver
      
  4. 确保您的Linux操作系统内核支持网桥过滤器。

    在“/etc/sysctl.conf”中添加:

    1
    2
    net.bridge.bridge-nf-call-iptables = 1
    net.bridge.bridge-nf-call-ip6tables = 1
    

    :

  5. 运行以下命令,添加网桥过滤器。
    1
    2
    3
    modprobe br_netfilter
    sysctl -p
    sed -i '$amodprobe br_netfilter' /etc/rc.local
    
  6. 启动Linux网桥代理并将其配置为在系统引导时启动。
    1
    2
    systemctl enable openstack-neutron-linuxbridge-agent.service
    systemctl start openstack-neutron-linuxbridge-agent.service
    

安装和配置Neutron(Provider-OVS-控制节点)

在Provider-OVS-控制节点执行下操作。

  1. 安装组件。
    1
    yum -y install openstack-neutron openstack-neutron-ml2 openstack-neutron-openvswitch-agent openstack-neutron-dhcp-agent openstack-neutron-metadata-agent ebtables
    
  2. 修改系统配置文件“/etc/sysctl.conf”。
    1. 添加如下内容:
      1
      2
      3
      net.ipv4.ip_forward=1
      net.ipv4.conf.all.rp_filter=0
      net.ipv4.conf.default.rp_filter=0
      
    2. 使配置生效。
      1
      sysctl -p
      
  3. 编辑配置文件/etc/neutron/neutron.conf。
    1. 配置数据库访问。
      1
      2
      [database]
      connection = mysql+pymysql://neutron:<PASSWORD>@controller/neutron
      
    2. 启用ML2插件,禁用其他插件。
      1
      2
      3
      4
      5
      6
      7
      [DEFAULT]
      core_plugin = ml2
      service_plugins =
      transport_url = rabbit://openstack:<PASSWORD>@controller
      auth_strategy = keystone
      notify_nova_on_port_status_changes = true
      notify_nova_on_port_data_changes = true
      
    3. 配置身份访问。
       1
       2
       3
       4
       5
       6
       7
       8
       9
      10
      [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 = <PASSWORD>
      
    4. 配置nova参数。

      默认是没有的,需要新建[nova]。

      1
      2
      3
      4
      5
      6
      7
      8
      9
      [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 = <PASSWORD>
      
    5. 配置锁定路径。
      1
      2
      [oslo_concurrency]
      lock_path = /var/lib/neutron/tmp
      
  4. 编辑ML2插件“/etc/neutron/plugins/ml2/ml2_conf.ini”。
    1. 启用flat和vlan网络。

      默认是没有的,需要新建 [ml2]、[ml2_type_flat]、[ml2_type_vlan]和[securitygroup]。

       1
       2
       3
       4
       5
       6
       7
       8
       9
      10
      11
      [ml2]
      type_drivers = flat,vlan
      tenant_network_types =
      mechanism_drivers = openvswitch
      extension_drivers = port_security
      [ml2_type_flat]
      flat_networks = provider
      [ml2_type_vlan]
      network_vlan_ranges = provider
      [securitygroup]
      enable_ipset = true
      
  5. 配置DHCP代理。

    编辑“/etc/neutron/dhcp_agent.ini”文件。

    1
    2
    3
    4
    5
    [DEFAULT]
    dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq
    enable_isolated_metadata = true
    interface_driver = openvswitch
    force_metadata = true
    
  6. 配置元数据代理。

    编辑“/etc/neutron/metadata_agent.ini”。

    配置元数据主机和共享密钥。

    1
    2
    3
    [DEFAULT]
    nova_metadata_host = controller
    metadata_proxy_shared_secret = <PASSWORD>
    

    <PASSWORD>为Neutron数据库的密码。

  7. 创建网络初始化。
    1
    ln -s /etc/neutron/plugins/ml2/ml2_conf.ini /etc/neutron/plugin.ini
    
  8. 填充数据库。
    1
    2
    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
    
  9. 启动网络服务并配置为系统引导时启动。
    1
    2
    3
    4
    5
    6
    systemctl enable openstack-neutron-server.service \
    openstack-neutron-openvswitch-agent.service openstack-neutron-dhcp-agent.service \
    openstack-neutron-metadata-agent.service
    systemctl start openstack-neutron-server.service \
    openstack-neutron-openvswitch-agent.service openstack-neutron-dhcp-agent.service \
    openstack-neutron-metadata-agent.service
    

安装和配置Neutron(Provider-OVS-计算节点)

在Provider-OVS-计算节点执行以下操作。

  1. 安装组件。
    1
    yum -y install openstack-neutron openstack-neutron-ml2 openstack-neutron-openvswitch-agent openstack-neutron-dhcp-agent openstack-neutron-metadata-agent ebtables ipset
    
  2. 修改系统配置文件 /etc/sysctl.conf。
    1. 添加如下内容:
      1
      2
      3
      net.ipv4.ip_forward=1
      net.ipv4.conf.all.rp_filter=0
      net.ipv4.conf.default.rp_filter=0
      
    2. 使配置生效 。
      1
      sysctl -p
      
  3. 配置公共组件,编辑/etc/neutron/neutron.conf文件。
    1. 配置RabbitMQ消息队列访问。
      1
      2
      [DEFAULT]
      transport_url = rabbit://openstack:<PASSWORD>@controller
      

      <PASSWORD>为RabbitMQ服务为openstack用户设置的密码。

    2. 配置身份访问服务。
       1
       2
       3
       4
       5
       6
       7
       8
       9
      10
      11
      12
      [DEFAULT]
      auth_strategy = keystone
      [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 = <PASSWORD>
      

      <PASSWORD>为Neutron数据库的密码。

    3. 配置锁定路径。
      1
      2
      [oslo_concurrency]
      lock_path = /var/lib/neutron/tmp
      
  4. 配置openstack agent,编辑文件“/etc/neutron/plugins/ml2/openvswitch_agent.ini”,新增[linux_openvswitch]、[vxlan]、[ovs]和[securitygroup]。
    1
    2
    3
    4
    5
    6
    7
    8
    9
    [linux_openvswitch]
    physical_interface_mappings = provider:enp3s0
    [vxlan]
    enable_vxlan = false
    [ovs]
    bridge_mappings = provider:br-provider
    [securitygroup]
    enable_security_group=true
    firewall_driver = iptables_hybrid
    
  5. 配置DHCP代理,编辑“/etc/neutron/dhcp_agent.ini”文件。
    1
    2
    3
    4
    [DEFAULT]
    interface_driver = openvswitch
    enable_isolated_metadata = true
    force_metadata = true
    
  6. 配置metadata代理,编辑“/etc/neutron/metadata_agent.ini”文件。
    1
    2
    3
    [DEFAULT]
    nova_metadata_host = controller
    metadata_proxy_shared_secret = <PASSWORD>
    

    <PASSWORD>为Neutron数据库的密码。

  7. 启动OVS代理并将其配置为在系统引导时启动。
    1
    2
    3
    4
    systemctl enable openstack-neutron-openvswitch-agent.service openstack-neutron-dhcp-agent.service \
    openstack-neutron-metadata-agent.service
    systemctl start openstack-neutron-openvswitch-agent.service openstack-neutron-dhcp-agent.service \
    openstack-neutron-metadata-agent.service
    
  8. 创建ovs provider。
    1
    2
    ovs-vsctl add-br br-provider
    ovs-vsctl add-port br-provider enp3s0
    

    openvswitch-agent如果拿不到root权限会导致openvswitch服务启动失败,需要升级sudo软件包。

    yum update sudo

验证Neutron

在控制节点执行以下操作。

  1. 列出成功启动的Neutron代理。
    1
    openstack network agent list
    

表1 Neutron常用命令

命令行

功能描述

openstack network create --share --external \

--provider-physical-network provider \

--provider-network-type flat enp3s0

创建共享虚拟网络

openstack subnet create --network provider \

--allocation-pool start=172.168.204.50,end=172.168.204.100 \

--dns-nameserver 8.8.8.8 --gateway 172.168.204.1 \

--subnet-range 172.168.204.0/24 subnet1

创建子网络

说明:

该命令中的参数意为:网络名称为subnet1,DHCP范围为172.168.204.50~172.168.204.100,DNS为8.8.8.8,网关为172.168.204.1,网络为172.168.204.0/24。

openstack network list

查看当前网络

openstack subnet list

查看子网络

openstack port list

查看网络端口

搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词