controller节点安装和配置neutron服务

Neutron是OpenStack核心项目之一,提供云计算环境下的虚拟网络功能服务。

其设计目标是实现“网络即服务(Networking as a Service)”。为了达到这一目标,在设计上遵循了基于SDN(Software-Defined Networking)实现网络虚拟化的原则,在实现上充分利用了Linux系统上的各种网络相关的技术。Neutron网络允许用户创建和管理网络对象,如网络(Net)、子网(Subnet)、端口(Port),这些对象可以被其他OpenStack服务所利用。插件架构模式增强了OpenStack架构和部署的柔韧性,可以适应不同的网络设备和软件。

Neutron为整个OpenStack环境提供网络支持,包括二层交换,三层路由,负载均衡,防火墙和* 等。

Neutron提供了一个灵活的框架,通过配置,无论是开源还是商业软件都可以被用来实现这些功能。

neutron服务需要在controller和compute节点进行安装配置,以下将在controller节点进行neutron服务的安装配置:

neutron网络服务的两种网络类型概述

您可以使用选项1和2表示的两种体系结构之一部署网络服务:

  • 选项1:Provider networks

    选项1部署了最简单的架构,该架构只支持将实例附加到提供程序(外部)网络。没有自助服务(专用)网络、路由器或浮动IP 地址。只有管理员或其他特权用户才能管理提供程序网络。

    选项1网络配置链接https://docs.openstack.org/neutron/queens/install/controller-install-option1-rdo.html

  • 选项2:Self-service networks

    选项2使用支持将实例附加到自助服务网络的第3层服务来扩展选项1。演示或其他没有权限的用户可以管理自助服务网络,包括提供自助服务和提供商网络之间连接的路由器。此外,浮动IP地址通过使用来自外部网络(如Internet)的自助网络提供到实例的连接。

    选项2网络配置链接:https://docs.openstack.org/neutron/queens/install/controller-install-option2-rdo.html

  • 自助服务网络简介

    自助服务网络通常使用覆盖网络。覆盖网络协议,如VXLAN,包括额外的报头,增加开销,减少有效负载或用户数据的可用空间。在不了解虚拟网络基础设施的情况下,实例尝试使用默认的以太网最大传输单元(MTU)1500字节发送数据包。网络服务通过DHCP自动向实例提供正确的MTU值。但是,有些云映像不使用DHCP或忽略DHCP MTU选项,需要使用元数据或脚本进行配置。

创建数据库

  1. 使用数据库访问客户端作为根用户连接到数据库服务器

    mysql -u root -p

  2. 创建neutron数据库

    MariaDB [(none)] CREATE DATABASE neutron;

  3. 授予neutron数据库适当访问权限

    MariaDB [(none)]> GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'localhost' \
      IDENTIFIED BY '123456';
    
    MariaDB [(none)]> GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'%' \
      IDENTIFIED BY '123456';
  4. 退出数据库访问客户端

    exit

获取管理员凭据并创建服务凭据

  1. 获取管理员凭据

    . admin-openrc

  2. 创建服务凭据

    (1)创建neutron用户
    openstack user create --domain default --password-prompt neutron

    (2)将管理员角色添加到用户
    openstack role add --project service --user neutron admin

    (3)创建neutron服务实体

    openstack service create --name neutron \
      --description "OpenStack Networking" network

创建网络服务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

安装和配置组件

  1. 安装软件包

    yum install openstack-neutron openstack-neutron-ml2 \
      openstack-neutron-linuxbridge ebtables
  2. 配置服务器组件

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

    vi /etc/neutron/neutron.conf
    
    [database]
    connection = mysql+pymysql://neutron:123456@controller/neutron
    
    [DEFAULT]
    transport_url = rabbit://openstack:123456@controller
    core_plugin = ml2
    service_plugins = router
    allow_overlapping_ips = true
    auth_strategy = keystone
    notify_nova_on_port_status_changes = true
    notify_nova_on_port_data_changes = true
    
    [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 = 123456
    
    [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 = 123456
    
    [oslo_concurrency]
    lock_path = /var/lib/neutron/tmp

    (2)可以使用以下命令查看生效的配置
    grep '^[a-z]' /etc/keystone/keystone.conf

  3. 配置模块化第二层(ml2)插件

    ml2插件使用linux桥接机制为实例够建第二层(桥接和交换)虚拟网络基础设施

    vi /etc/neutron/plugins/ml2/ml2_conf.ini
    
    [ml2]
    type_drivers = flat,vlan,vxlan
    tenant_network_types = vxlan
    mechanism_drivers = linuxbridge,l2population
    extension_drivers = port_security
    
    [ml2_type_flat]
    flat_networks = provider
    
    [ml2_type_vxlan]
    vni_ranges = 1:1000
    
    [securitygroup]
    enable_ipset = true

    警告:配置ml2插件后,删除type_drivers的值可能导致数据库不一致。

  4. 配置linux桥代理

    linux桥接代理为为实例构建第二层(桥接和交换)虚拟网络基础设施,并处理安全组。

    vi /etc/neutron/plugins/ml2/linuxbridge_agent.ini
    
    [linux_bridge]
    physical_interface_mappings = provider:ens33
    
    [vxlan]
    enable_vxlan = true
    local_ip = 192.168.72.120          #填写隧道IP,我的是用的ens34网卡
    l2_population = true
    
    [securitygroup]
    enable_security_group = true
    firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver
  5. linux内核支持

    通过验证以下所有sysctl值均设置为1,确保Linux操作系统内核支持网络桥筛选器:
    net.bridge.bridge-nf-call-iptables
    net.bridge.bridge-nf-call-ip6tables

    要启用网桥支持,通常需要加载bru netfilter内核模块,有关启用此模块的其他详细信息,请参阅官网操作系统文档。

  6. 配置第三层代理

    vi /etc/neutron/l3_agent.ini
    
    [DEFAULT]
    interface_driver = linuxbridge
  7. 配置DHCP代理

    vi /etc/neutron/dhcp_agent.ini 
    
    [DEFAULT]
    interface_driver = linuxbridge
    dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq
    enable_isolated_metadata = true
  8. 配置metadata代理

    vi /etc/neutron/metadata_agent.ini
    
    [DEFAULT]
    nova_metadata_host = controller
    metadata_proxy_shared_secret = 123456
  9. 配置计算服务以使用网络服务

    (1)编辑/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 = 123456
    service_metadata_proxy = true
    metadata_proxy_shared_secret = 123456

    (2)可以使用以下命令查看生效的配置
    grep '^[a-z]' /etc/keystone/keystone.conf

  10. 创建脚本链接

    网络服务初始化脚本需要一个指向ML2插件配置文件/etc/neutron/plugins/ML2/ML2_conf.ini的符号链接/etc/neutron/plugins.ini。如果此符号链接不存在,请使用以下命令创建它:

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

同步数据库

  1. 同步neutron数据库

    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
  2. 查看neutron数据库

    mysql -h192.168.174.120 -uneutron -p123456 -e "use neutron;show tables;"
    由于后期进行过neutron网络的配置,所以neutron数据库表较多,这里不做展示。

  3. 重启nova服务并设置neutron服务开机启动

    (1)重新启动计算api服务
    systemctl restart openstack-nova-api.service
    (2)配置服务开机启动

    systemctl enable neutron-server.service \
      neutron-linuxbridge-agent.service neutron-dhcp-agent.service \
      neutron-metadata-agent.service
    
    systemctl start neutron-server.service \
      neutron-linuxbridge-agent.service neutron-dhcp-agent.service \
      neutron-metadata-agent.service
    
    #验证服务是否启动成功
    systemctl status neutron-server.service \
      neutron-linuxbridge-agent.service neutron-dhcp-agent.service \
      neutron-metadata-agent.service

    (3)启用并启动第三层服务

    systemctl enable neutron-l3-agent.service
    systemctl start neutron-l3-agent.service
最后编辑:2020年11月17日 ©著作权归作者所有

仅有一条评论

  1. 非常好

发表评论

正在加载 Emoji