ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Networking service – neutron安装(wallaby版本-allinone)

2022-01-18 23:03:34  阅读:174  来源: 互联网

标签:... Networking network service agent ml2 allinone neutron


Networking service – neutron安装(wallaby版本-allinone)

1 先决条件

在配置 OpenStack Networking (neutron) 服务之前,您必须创建数据库、服务凭证和 API 端点。

  1. 要创建数据库,请完成以下步骤:

    • 使用数据库访问客户端以root用户身份连接数据库服务器:

      $ mysql -u root -p
      
    • 创建neutron数据库:

      MariaDB [(none)] CREATE DATABASE neutron;
      
    • 授予对neutron数据库的适当访问权限,替换 NEUTRON_DBPASS为合适的密码:

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

  2. 来源admin凭据来访问仅管理员CLI命令:

    $ . admin-openrc.sh
    
  3. 要创建服务凭证,请完成以下步骤:

    • 创建neutron用户:

      $ openstack user create --domain default --password-prompt neutron
      
      User Password:123456
      Repeat User Password:123456
      +---------------------+----------------------------------+
      | Field               | Value                            |
      +---------------------+----------------------------------+
      | domain_id           | default                          |
      | enabled             | True                             |
      | id                  | fdb0f541e28141719b6a43c8944bf1fb |
      | name                | neutron                          |
      | options             | {}                               |
      | password_expires_at | None                             |
      +---------------------+----------------------------------+
      
    • adminneutron用户添加角色:

      $ openstack role add --project service --user neutron admin
      

      此命令不提供任何输出。

    • 创建neutron服务实体:

      $ openstack service create --name neutron --description "OpenStack Networking" network
      
      +-------------+----------------------------------+
      | Field       | Value                            |
      +-------------+----------------------------------+
      | description | OpenStack Networking             |
      | enabled     | True                             |
      | id          | f71529314dab4a4d8eca427e701d209e |
      | name        | neutron                          |
      | type        | network                          |
      +-------------+----------------------------------+
      
  4. 创建网络服务 API 端点:

    $ openstack endpoint create --region RegionOne network public http://controller:9696
    
    +--------------+----------------------------------+
    | Field        | Value                            |
    +--------------+----------------------------------+
    | enabled      | True                             |
    | id           | 85d80a6d02fc4b7683f611d7fc1493a3 |
    | interface    | public                           |
    | region       | RegionOne                        |
    | region_id    | RegionOne                        |
    | service_id   | f71529314dab4a4d8eca427e701d209e |
    | service_name | neutron                          |
    | service_type | network                          |
    | url          | http://controller:9696           |
    +--------------+----------------------------------+
    
    $ openstack endpoint create --region RegionOne network internal http://controller:9696
    
    +--------------+----------------------------------+
    | Field        | Value                            |
    +--------------+----------------------------------+
    | enabled      | True                             |
    | id           | 09753b537ac74422a68d2d791cf3714f |
    | interface    | internal                         |
    | region       | RegionOne                        |
    | region_id    | RegionOne                        |
    | service_id   | f71529314dab4a4d8eca427e701d209e |
    | service_name | neutron                          |
    | service_type | network                          |
    | url          | http://controller:9696           |
    +--------------+----------------------------------+
    
    $ openstack endpoint create --region RegionOne network admin http://controller:9696
    
    +--------------+----------------------------------+
    | Field        | Value                            |
    +--------------+----------------------------------+
    | enabled      | True                             |
    | id           | 1ee14289c9374dffb5db92a5c112fc4e |
    | interface    | admin                            |
    | region       | RegionOne                        |
    | region_id    | RegionOne                        |
    | service_id   | f71529314dab4a4d8eca427e701d209e |
    | service_name | neutron                          |
    | service_type | network                          |
    | url          | http://controller:9696           |
    +--------------+----------------------------------+
    

配置网络选项

您可以使用选项 1 和 2 表示的两种架构之一来部署网络服务。

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

选项 2 使用支持将实例附加到自助服务网络的第 3 层服务扩充了选项 1。该demo用户或其他非特权用户可以管理自助服务网络,包括在自助服务和提供商网络之间提供连接的路由器。此外,浮动 IP 地址使用来自外部网络(例如 Internet)的自助服务网络提供与实例的连接。

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

选项 2 还支持将实例附加到提供商网络。

我这里使用网络服务2,扩展性好,方便后续添加别的组件

网络选项 2:自助服务网络

控制器节点上安装和配置网络组件。

安装组件

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

配置服务器组件

  • 编辑/etc/neutron/neutron.conf文件并完成以下操作:

    • 在该[database]部分中,配置数据库访问:

      [database]
      # ...
      connection = mysql+pymysql://neutron:NEUTRON_DBPASS@controller/neutron
      

      替换NEUTRON_DBPASS为您为数据库选择的密码。123456
      注释掉或删除connection[database]部分中的任何其他选项 。

    • 在该[DEFAULT]部分中,启用模块化第 2 层 (ML2) 插件、路由器服务和重叠 IP 地址:

      [DEFAULT]
      # ...
      core_plugin = ml2
      service_plugins = router
      allow_overlapping_ips = true
      
    • 在该[DEFAULT]部分,配置RabbitMQ 消息队列访问:

      [DEFAULT]
      # ...
      transport_url = rabbit://openstack:RABBIT_PASS@controller
      

替换RABBIT_PASS为您openstack在 RabbitMQ 中为帐户选择的密码 。

  • [DEFAULT][keystone_authtoken]部分,配置身份服务访问:

    [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 = NEUTRON_PASS
    

    替换NEUTRON_PASS为您neutron 在身份服务中为用户选择的密码。
    注释掉或删除该[keystone_authtoken]部分中的任何其他选项 。

  • [DEFAULT][nova]部分,配置 Networking 以通知 Compute 网络拓扑更改:

    [DEFAULT]
    # ...
    notify_nova_on_port_status_changes = true
    notify_nova_on_port_data_changes = true
    
    [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_PASS
    

    替换NOVA_PASS为您nova 在身份服务中为用户选择的密码。123456

  • 在该[oslo_concurrency]部分中,配置锁定路径:

    [oslo_concurrency]
    # ...
    lock_path = /var/lib/neutron/tmp
    

配置模块化第 2 层 (ML2) 插件

ML2 插件使用 Linux 桥接机制为实例构建第 2 层(桥接和交换)虚拟网络基础设施。

  • 编辑/etc/neutron/plugins/ml2/ml2_conf.ini文件并完成以下操作:

    • 在该[ml2]部分中,启用平面、VLAN 和 VXLAN 网络:

      [ml2]
      # ...
      type_drivers = flat,vlan,vxlan
      
    • 在该[ml2]部分中,启用 VXLAN 自助网络:

      [ml2]
      # ...
      tenant_network_types = vxlan
      
    • 在该[ml2]部分中,启用 Linux 桥接和二层填充机制:

      [ml2]
      # ...
      mechanism_drivers = linuxbridge,l2population
      

      配置 ML2 插件后,删除type_drivers选项中的值 可能会导致数据库不一致。

      Linux 网桥代理仅支持 VXLAN 覆盖网络。

    • 在该[ml2]部分中,启用端口安全扩展驱动程序:

      [ml2]
      # ...
      extension_drivers = port_security
      
    • 在该[ml2_type_flat]部分中,将提供者虚拟网络配置为平面网络:

      [ml2_type_flat]
      # ...
      flat_networks = provider
      
    • 在该[ml2_type_vxlan]部分中,配置自助网络的VXLAN网络标识符范围:

      [ml2_type_vxlan]
      # ...
      vni_ranges = 1:1000
      
    • 在该[securitygroup]部分中,启用ipset以提高安全组规则的效率:

      [securitygroup]
      # ...
      enable_ipset = true
      

配置 Linux 网桥代理

Linux 桥接代理为实例构建第 2 层(桥接和交换)虚拟网络基础架构并处理安全组。

  • 编辑/etc/neutron/plugins/ml2/linuxbridge_agent.ini文件并完成以下操作:

    • 在该[linux_bridge]部分中,将提供者虚拟网络映射到提供者物理网络接口:

      [linux_bridge]
      physical_interface_mappings = provider:PROVIDER_INTERFACE_NAME
      

      替换PROVIDER_INTERFACE_NAME为底层提供者物理网络接口的名称。有关 详细信息,请参阅主机网络(就是ifconfig中哪个名字我这里是ens33

    • 在该[vxlan]部分中,启用VXLAN覆盖网络,配置处理覆盖网络的物理网络接口的IP地址,并启用二层填充:

      [vxlan]
      enable_vxlan = true
      local_ip = OVERLAY_INTERFACE_IP_ADDRESS
      l2_population = true
      

      替换OVERLAY_INTERFACE_IP_ADDRESS为处理覆盖网络的底层物理网络接口的 IP 地址。示例架构使用管理接口将流量隧道传输到其他节点。因此,替换OVERLAY_INTERFACE_IP_ADDRESS为控制器节点的管理 IP 地址。有关详细信息,请参阅 主机网络

      这里为172.31.7.120

    • 在该[securitygroup]部分中,启用安全组并配置 Linux 网桥 iptables 防火墙驱动程序:

      [securitygroup]
      # ...
      enable_security_group = true
      firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver
      
    • 通过验证以下所有sysctl值都设置为1,确保您的 Linux 操作系统内核支持网桥过滤器:

      vim  /etc/sysctl.conf
      net.bridge.bridge-nf-call-iptables = 1
      net.bridge.bridge-nf-call-ip6tables = 1
      
      modprobe br_netfilter
      
      sysctl -p
      # 将输出下面信息
      net.bridge.bridge-nf-call-iptables = 1
      net.bridge.bridge-nf-call-ip6tables = 1
      

      这里!!!

配置三层代理

第 3 层 (L3) 代理为自助服务虚拟网络提供路由和 NAT 服务。

  • 编辑/etc/neutron/l3_agent.ini文件并完成以下操作:

    • 在该[DEFAULT]部分,配置Linux网桥接口驱动:

      [DEFAULT]
      # ...
      interface_driver = linuxbridge
      

配置 DHCP 代理

DHCP 代理为虚拟网络提供 DHCP 服务。

  • 编辑/etc/neutron/dhcp_agent.ini文件并完成以下操作:

    • 在该[DEFAULT]部分中,配

    • 置 Linux 桥接接口驱动程序、Dnsmasq DHCP 驱动程序,并启用隔离元数据,以便提供商网络上的实例可以通过网络访问元数据:

      [DEFAULT]
      # ...
      interface_driver = linuxbridge
      dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq
      enable_isolated_metadata = true
      

网络选项设置完毕

配置元数据代理

元数据代理向实例提供配置信息,例如凭据。

  • 编辑/etc/neutron/metadata_agent.ini文件并完成以下操作:

    • 在该[DEFAULT]部分中,配置元数据主机和共享密钥:

      [DEFAULT]
      # ...
      nova_metadata_host = controller
      metadata_proxy_shared_secret = METADATA_SECRET
      

替换METADATA_SECRET为元数据代理的合适秘密。这里为123456

配置 Compute 服务以使用 Networking 服务

必须安装 Nova 计算服务才能完成此步骤。有关更多详细信息,请参阅文档网站安装指南部分 下的计算安装指南 。

  • 编辑/etc/nova/nova.conf文件并执行以下操作:

    • 在该[neutron]部分,配置访问参数,启用元数据代理,并配置secret:

      [neutron]
      # ...
      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 = NEUTRON_PASS
      service_metadata_proxy = true
      metadata_proxy_shared_secret = METADATA_SECRET
      

      替换NEUTRON_PASS为您neutron 在身份服务中为用户选择的密码。
      替换METADATA_SECRET为您为元数据代理选择的密码。
      有关 完整的选项集,请参阅计算服务配置指南,包括必要时覆盖服务目录端点 URL。

完成安装

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

    # ln -s /etc/neutron/plugins/ml2/ml2_conf.ini /etc/neutron/plugin.ini
    
  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
    

    由于脚本需要完整的服务器和插件配置文件,因此稍后会为 Networking 填充数据库。

  3. 重启计算 API 服务:

    # systemctl restart openstack-nova-api.service
    
  4. 启动网络服务并将它们配置为在系统启动时启动。

    对于两个网络选项:

    # 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
    

    对于网络选项 2,还启用并启动第 3 层服务:

    # systemctl enable neutron-l3-agent.service
    # systemctl start neutron-l3-agent.service
    
    

验证操作

在控制器节点上执行这些命令。

  1. 来源admin凭据来访问仅管理员CLI命令:

    $ . admin-openrc.sh
    
  2. 列出加载的扩展以验证neutron-server进程是否成功启动 :

    $ openstack extension list --network
    
    +---------------------------+---------------------------+----------------------------+
    | Name                      | Alias                     | Description                |
    +---------------------------+---------------------------+----------------------------+
    | Default Subnetpools       | default-subnetpools       | Provides ability to mark   |
    |                           |                           | and use a subnetpool as    |
    |                           |                           | the default                |
    | Availability Zone         | availability_zone         | The availability zone      |
    |                           |                           | extension.                 |
    | Network Availability Zone | network_availability_zone | Availability zone support  |
    |                           |                           | for network.               |
    | Port Binding              | binding                   | Expose port bindings of a  |
    |                           |                           | virtual port to external   |
    |                           |                           | application                |
    | agent                     | agent                     | The agent management       |
    |                           |                           | extension.                 |
    | Subnet Allocation         | subnet_allocation         | Enables allocation of      |
    |                           |                           | subnets from a subnet pool |
    | DHCP Agent Scheduler      | dhcp_agent_scheduler      | Schedule networks among    |
    |                           |                           | dhcp agents                |
    | Neutron external network  | external-net              | Adds external network      |
    |                           |                           | attribute to network       |
    |                           |                           | resource.                  |
    | Neutron Service Flavors   | flavors                   | Flavor specification for   |
    |                           |                           | Neutron advanced services  |
    | Network MTU               | net-mtu                   | Provides MTU attribute for |
    |                           |                           | a network resource.        |
    | Network IP Availability   | network-ip-availability   | Provides IP availability   |
    |                           |                           | data for each network and  |
    |                           |                           | subnet.                    |
    | Quota management support  | quotas                    | Expose functions for       |
    |                           |                           | quotas management per      |
    |                           |                           | tenant                     |
    | Provider Network          | provider                  | Expose mapping of virtual  |
    |                           |                           | networks to physical       |
    |                           |                           | networks                   |
    | Multi Provider Network    | multi-provider            | Expose mapping of virtual  |
    |                           |                           | networks to multiple       |
    |                           |                           | physical networks          |
    | Address scope             | address-scope             | Address scopes extension.  |
    | Subnet service types      | subnet-service-types      | Provides ability to set    |
    |                           |                           | the subnet service_types   |
    |                           |                           | field                      |
    | Resource timestamps       | standard-attr-timestamp   | Adds created_at and        |
    |                           |                           | updated_at fields to all   |
    |                           |                           | Neutron resources that     |
    |                           |                           | have Neutron standard      |
    |                           |                           | attributes.                |
    | Neutron Service Type      | service-type              | API for retrieving service |
    | Management                |                           | providers for Neutron      |
    |                           |                           | advanced services          |
    | resources: subnet,        |                           | more L2 and L3 resources.  |
    | subnetpool, port, router  |                           |                            |
    | Neutron Extra DHCP opts   | extra_dhcp_opt            | Extra options              |
    |                           |                           | configuration for DHCP.    |
    |                           |                           | For example PXE boot       |
    |                           |                           | options to DHCP clients    |
    |                           |                           | can be specified (e.g.     |
    |                           |                           | tftp-server, server-ip-    |
    |                           |                           | address, bootfile-name)    |
    | Resource revision numbers | standard-attr-revisions   | This extension will        |
    |                           |                           | display the revision       |
    |                           |                           | number of neutron          |
    |                           |                           | resources.                 |
    | Pagination support        | pagination                | Extension that indicates   |
    |                           |                           | that pagination is         |
    |                           |                           | enabled.                   |
    | Sorting support           | sorting                   | Extension that indicates   |
    |                           |                           | that sorting is enabled.   |
    | security-group            | security-group            | The security groups        |
    |                           |                           | extension.                 |
    | RBAC Policies             | rbac-policies             | Allows creation and        |
    |                           |                           | modification of policies   |
    |                           |                           | that control tenant access |
    |                           |                           | to resources.              |
    | standard-attr-description | standard-attr-description | Extension to add           |
    |                           |                           | descriptions to standard   |
    |                           |                           | attributes                 |
    | Port Security             | port-security             | Provides port security     |
    | Allowed Address Pairs     | allowed-address-pairs     | Provides allowed address   |
    |                           |                           | pairs                      |
    | project_id field enabled  | project-id                | Extension that indicates   |
    |                           |                           | that project_id field is   |
    |                           |                           | enabled.                   |
    +---------------------------+---------------------------+----------------------------+
    

    实际输出可能与此示例略有不同。

网络选项 2:自助服务网络

  • 列出代理以验证中子代理的成功发射:

    $ openstack network agent list
    
    +--------------------------------------+--------------------+------------+-------------------+-------+-------+---------------------------+
    | ID                                   | Agent Type         | Host       | Availability Zone | Alive | State | Binary                    |
    +--------------------------------------+--------------------+------------+-------------------+-------+-------+---------------------------+
    | f49a4b81-afd6-4b3d-b923-66c8f0517099 | Metadata agent     | controller | None              | True  | UP    | neutron-metadata-agent    |
    | 27eee952-a748-467b-bf71-941e89846a92 | Linux bridge agent | controller | None              | True  | UP    | neutron-linuxbridge-agent |
    | 08905043-5010-4b87-bba5-aedb1956e27a | Linux bridge agent | compute1   | None              | True  | UP    | neutron-linuxbridge-agent |
    | 830344ff-dc36-4956-84f4-067af667a0dc | L3 agent           | controller | nova              | True  | UP    | neutron-l3-agent          |
    | dd3644c9-1a3a-435a-9282-eb306b4b0391 | DHCP agent         | controller | nova              | True  | UP    | neutron-dhcp-agent        |
    +--------------------------------------+--------------------+------------+-------------------+-------+-------+---------------------------+
    

    输出应指示控制器节点上的四个代理和每个计算节点上的一个代理。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MI3yzuJ1-1642515874625)(C:\Users\10973\AppData\Roaming\Typora\typora-user-images\image-20211203100348043.png)]

neutron安装完毕

标签:...,Networking,network,service,agent,ml2,allinone,neutron
来源: https://blog.csdn.net/weixin_44271177/article/details/122570183

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有