更新时间:2022-05-12 GMT+08:00
分享

安装配置并验证Neutron

OpenStack 网络方式比较多,当前采用的是Provider网络;部署方式又可以分为(1、LinuxBridge 2、OVS),实际部署时只需要选取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]模块参数。
      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

查看网络端口

分享:

    相关文档

    相关产品

close