理论

一、Neutron概述

   Neutron是OpenStack项目中负责提供网络服务的组件,它基于软件定义网络的思想,实现了网络虚拟化下的资源管理。Neutron 的设计目标是实现网络即服务(Networking as a Service),在设计上遵循了基于 SDN 实现网络虚拟化的原则,在实现上充分利用了 Linux 系统上的各种网络相关的技术。

二、Neutron 功能

  Neutron 为整个 OpenStack 环境提供网络支持,包括二层交换,三层路由,负载均衡,防火墙等。Neutron 提供了一个灵活的框架,通过配置,无论是开源还是商业软件都可以被用来实现这些功能。

1、二层交换Switch

L2其实是指七层网络协议中的第二层数据链路层,它的传输是以mac地址为基础。Nova 的 Instance 是通过虚拟交换机连接到虚拟二层网络的。Neutron 支持多种虚拟交换机,包括 Linux 原生的 Linux Bridge 和 第三方Open vSwitch。

Open vSwitch OVS)是一个开源的虚拟交换机,它支持标准的管理接口和协议。比Linuxbridge的功能更强大,是为了配合neutron而产生的。

利用 Linux Bridge 和 OVS,Neutron 除了可以创建传统的 VLAN 网络,还可以创建基于隧道技术的 Overlay 网络,比如 VxLAN 和 GRE(Linux Bridge 目前只支持 VxLAN,此外,由于GRE容易单点故障已经被弃用)。

2、三层路由 Routing

L3指网络层:是以ip地址为基础 。Instance 可以配置不同网段的 IP,Neutron 的 router(虚拟路由器)实现 instance 跨网段通信。Neutron从Juno版开始正式加入的DVR(Distributed Virtual Router)服务,它将原本集中在网络节点的部分服务分散到了计算节点上。可以通过namespace中使用ip route或者iptables实现路由或NAT,也可以通过openflow给OpenvSwitch下发流表来实现。

3、负载均衡

提供了将负载分发到多个 instance 的能力。LBaaS 支持多种负载均衡产品和方案,不同的实现以 Plugin 的形式集成到 Neutron,目前默认的 Plugin 是 HAProxy。所以不用搭建LVS,直接设置策略就可以。

4、 防火墙

Security Group 通过 iptables 限制进出 instance 的网络包。

Firewall­as­a­Service FWaaS,限制进出虚拟路由器的网络包,也是通过 iptables 实现。

防火墙的本质都是使用内核挂载的filter模块,只不过实现的方式有所区别,firewalld是利用分区实现,iptables是利用三表五链实现。Neutron有两种方式来保障instance和网络的安全性,分别是安全组以及防火墙功能,均可以通过iptables来实现,前者是限制进出instance的网络包,后者是进出虚拟路由器的网络包。

网络-network
  1. 模式
    1. Local:本地的一个Linux Bridge,除了虚拟机的虚拟网卡不连接其他的网络设备,实际场景很少使用,可以忽略。网络中的 instance 只能与位于同一节点上同一网络的 instance 通信,local 网络主要用于单机测试。

    2. Flat:不带vlan tag的网络,其实就是交换机形成的二层网络,和网桥一样,相当于Local网络的Linux Bridge连接到一个物理网卡,该网络中的instance能与同网络的instance通信,且可以跨多个节点,flat 网络中的 instance 能与位于同一网络的 instance通信,并且可以跨多个节点,实际场景也很少用到。

    3. VLAN:可以跨节点,是具有 802.1q tagging 的网络,一共可以划分4095个子网。vlan 是一个二层的广播域,同一 vlan 中的instance 可以通信,不同 vlan 只能通过 router 通信。vlan 网络可以跨节点,是应用最广泛的网络类型。目前是私有云网络应用较多。

    4. VXALN:是基于隧道技术的 overlay 网络,通过唯一的VNI区分于其他 vxlan 网络。vxlan中数据包通过VNI封装成UPD包进行传输,因为二层的包通过封装在三层传输,能够克服vlan和物理网络基础设施的限制。是VLAN的扩展,VxLAN有1600万个VNI编号,足够在云计算平台使用了。vxlan 网络通过唯一的 segmentation ID(也叫VNI)与其他 vxlan 网络区分。vxlan 中数据包会通过 VNI 封装成 UPD 包进行传输。因为二层的包通过封装在三层传输,能够克服 vlan 和物理网络基础设施的限制。Linuxbridge只支持VxLAN。

    5. GRE:与vxlan类似的一种overlay网络,主要区别在于使用 IP 包而非 UDP 进行封装。不同 network 之间在二层上是隔离的。现在已经被弃用了。

  • network 必须属于某个 Project( Tenant 租户),Project 中可以创建多个 network。network 与 Project 之间是 多对1的关系。

  • 注意:虚拟专用网络,还没有加到openstack的功能中。

  1. 子网-subnet

    • subnet 是一个 IPv4 或者 IPv6 地址段。instance 的 IP 从 subnet 中分配。每个 subnet 需要定义 IP 地址的范围和掩码。 subnet 与 network 是 1对多 关系。一个 subnet 只能属于某个 network;一个 network 可以有多个 subnet,这些 subnet 可以是不同的 IP 段,但不能重叠。例如,以下这两种设置都是被允许的:
      在这里插入图片描述

    在这里插入图片描述

  2. port-端口

    • port 可以看做虚拟交换机上的一个端口。port 上直接定义了 MAC 地址和 IP 地址,当 instance的虚拟网卡 VIF(Virtual Interface) 绑定到 port 时,port 会将 MAC 和 IP 分配给 VIF。而原来我们做网桥时,是虚拟机的网卡eth0在物理机里对应的是vnet0,vnet0是加在br0上的。
    • port 与 subnet 是 1对多 关系。一个 port 必须属于某个 subnet;一个 subnet 可以有多个port。有了port直接定义MAC与IP就不用使用ARP与RARP协议了。
  • 综上所述,我们可以知道neutron定义的三大网络资源只是二层的网络资源,与三层的没有关系。

三、Neutron架构

在这里插入图片描述
在这里插入图片描述

  1. core API ——对外提供管理 network, subnet 和 port 的 RESTful API。

  2. extension API —— 对外提供管理 router, load balance, firewall 等资源 的 RESTful API。

  3. common service ——认证和校验 API 请求。

  4. neutron core Neutron server 的核心处理程序,通过调用相应的 Plugin 处理请求。

  5. core plugin API 定义了 Core Plgin 的抽象功能集合,Neutron Core 通过该 API 调用相应的 Core Plgin。

  6. extension plugin API 定义了 Service Plgin 的抽象功能集合,Neutron Core 通过该 API调用相应的 Service Plgin。

  7. core plugin API 实现了 Core Plugin API,在数据库中维护 network, subnet 和 port 的状态,并负责调用相应的 agent 在 network provider 上执行相关操作,比如创建 network。

  8. service plugin 实现了 Extension Plugin API,在数据库中维护 router, load balance,

  9. security group 等资源的状态,并负责调用相应的 agent 在 network provider 上执行相关操作,比如创建 router


使用

安装与配置Controller

  1. 准备
    1. 创建数据库
      1. 使用数据库访问客户端连接到数据库 服务器作为用户:root
        $ mysql -u root -p000000
        
      2. 创建数据库:neutron
        MariaDB [(none)] CREATE DATABASE neutron;
        
      3. 授予对数据库的适当访问权限,并替换为合适的密码:neutron
        MariaDB [(none)]> GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'localhost' IDENTIFIED BY '000000';
        MariaDB [(none)]> GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'%' IDENTIFIED BY '000000';
        
      4. 退出数据库访问客户端。
    2. 获取凭据以获取对仅限管理员的 CLI 的访问权限 命令:admin
      $ . ~/admin-openrc.sh
      
    3. 要创建服务凭据:
      1. 创建用户:neutron
        $ openstack user create --domain default --password-prompt neutron
        User Password:000000
        Repeat User Password:000000
        +---------------------+----------------------------------+
        | Field               | Value                            |
        +---------------------+----------------------------------+
        | domain_id           | default                          |
        | enabled             | True                             |
        | id                  | ce73d190461f42249afc50aa1ef6f9d8 |
        | name                | neutron                          |
        | options             | {}                               |
        | password_expires_at | None                             |
        +---------------------+----------------------------------+
        
      2. neutron 用户授予 admin 角色并添加到 service 项目
        $ openstack role add --project service --user neutron admin
        
      3. 创建服务实体:neutron
        $ openstack service create --name neutron --description "OpenStack Networking" network
        +-------------+----------------------------------+
        | Field       | Value                            |
        +-------------+----------------------------------+
        | description | OpenStack Networking             |
        | enabled     | True                             |
        | id          | 1831bdeb02114fdf824196e8eff1427f |
        | name        | neutron                          |
        | type        | network                          |
        +-------------+----------------------------------+
        
    4. 创建网络服务 API 终结点:
      $ openstack endpoint create --region RegionOne network public http://controller:9696
      
      +--------------+----------------------------------+
      | Field        | Value                            |
      +--------------+----------------------------------+
      | enabled      | True                             |
      | id           | 0f3288eed7a649d7864b8db1c69a6eb2 |
      | interface    | public                           |
      | region       | RegionOne                        |
      | region_id    | RegionOne                        |
      | service_id   | 1831bdeb02114fdf824196e8eff1427f |
      | 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           | 89ff2230b0224f1a84eddf68925750a0 |
      | interface    | internal                         |
      | region       | RegionOne                        |
      | region_id    | RegionOne                        |
      | service_id   | 1831bdeb02114fdf824196e8eff1427f |
      | 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           | 323cb22c666740559d2b11d050100e57 |
      | interface    | admin                            |
      | region       | RegionOne                        |
      | region_id    | RegionOne                        |
      | service_id   | 1831bdeb02114fdf824196e8eff1427f |
      | service_name | neutron                          |
      | service_type | network                          |
      | url          | http://controller:9696           |
      +--------------+----------------------------------+
      
  2. 配置网络选项(两种网络选其一)
    1. 提供商网络(部署了最简单的体系结构,该体系结构仅支持 将实例附加到提供商(外部)网络。没有自助服务(私人) 网络、路由器或浮动 IP 地址。只有 或其他 特权用户可以管理提供商网络。admin)
      1. 安装服务
        # yum install -y openstack-neutron openstack-neutron-ml2 openstack-neutron-linuxbridge ebtables
        
      2. 配置服务器组件
        网络服务器组件配置包括数据库, 认证机制, 消息队列, 拓扑变更通知等插件
        1. 编辑文件并完成以下操作/etc/neutron/neutron.conf
          [database]
          # ...
          connection = mysql+pymysql://neutron:000000@controller/neutron
          [DEFAULT]
          # ...
          core_plugin = ml2
          service_plugins =
          transport_url = rabbit://openstack:000000@controller
          auth_strategy = keystone
          notify_nova_on_port_status_changes = true
          notify_nova_on_port_data_changes = true
          [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 = 000000
          [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 = 000000
          [oslo_concurrency]
          # ...
          lock_path = /var/lib/neutron/tmp
          
        2. 配置模块化第 2 层 (ML2) 插件
          ML2 插件使用 Linux 桥接机制构建第 2 层(桥接 和交换)实例的虚拟网络基础结构。
          1. 编辑文件添加/etc/neutron/plugins/ml2/ml2_conf.ini
            [ml2]
            # ...
            type_drivers = flat,vlan
            tenant_network_types =
            mechanism_drivers = linuxbridge
            extension_drivers = port_security
            flat_networks = provider
            [securitygroup]
            # ...
            enable_ipset = true
            
        3. 配置 Linux 网桥代理
          Linux 网桥代理构建第 2 层(桥接和交换)虚拟 实例的网络基础设施和处理安全组
          1. 编辑文件/etc/neutron/plugins/ml2/linuxbridge_agent.ini
            [linux_bridge]
            physical_interface_mappings = provider:ens33
            [vxlan]
            enable_vxlan = false
            [securitygroup]
            # ...
            enable_security_group = true
            firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver
            
            若需要配置多个flat
            [ml2_type_flat]
            
            flat_networks = flat1,flat2
            
            
            
            [linux_bridge]
            
            physical_interface_mappings = flat1:eth1,flat2:eth2
            
          2. 加载br_netfilter内核模块。要启用网络桥接器支持,通常br_netfilter内核模块需要加载
            # echo net.bridge.bridge-nf-call-iptables = 1 >> /etc/sysctl.conf
            # echo net.bridge.bridge-nf-call-ip6tables = 1 >> /etc/sysctl.conf
            
            # cat /etc/sysctl.conf
            # sysctl -p
            # modprobe br_netfilter
            # ls /proc/sys/net/bridge
            # sysctl -p
            
            # sysctl net.bridge.bridge-nf-call-iptables
            # sysctl net.bridge.bridge-nf-call-ip6tables
            
            
        4. 配置 DHCP 代理
          1. 编辑文件/etc/neutron/dhcp_agent.ini
            [DEFAULT]
            # ...
            interface_driver = linuxbridge
            dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq
            enable_isolated_metadata = true
            
    2. 自助服务网络(使用支持连接的第 1 层服务扩充选项 3 实例到自助服务网络。或其他非特权 用户可以管理自助服务网络,包括提供 自助服务和提供商网络之间的连接。此外 浮动 IP 地址使用自助服务提供与实例的连接 来自外部网络(如互联网)的网络。demo)
      1. 安装组件
        # yum install -y openstack-neutron openstack-neutron-ml2 openstack-neutron-linuxbridge ebtables
        
      2. 配置服务器组件
        • 编辑/etc/neutron/neutron.conf
          [database]
          connection = mysql+pymysql://neutron:000000@controller/neutron
          [DEFAULT]
          core_plugin = ml2
          service_plugins = router
          allow_overlapping_ips = true
          transport_url = rabbit://openstack:RABBIT_PASS@controller
          auth_strategy = keystone
          notify_nova_on_port_status_changes = true
          notify_nova_on_port_data_changes = true
          [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 = 000000
          [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 = 000000
          [oslo_concurrency]
          lock_path = /var/lib/neutron/tmp
          [oslo_messaging_amqp]
          [oslo_messaging_kafka]
          [oslo_messaging_notifications]
          [oslo_messaging_rabbit]
          [oslo_middleware]
          [oslo_policy]
          [privsep]
          [ssl]
          
      3. 配置模块化第 2 层 (ML2) 插件
        ML2 插件使用 Linux 桥接机制构建第 2 层(桥接 和交换)实例的虚拟网络基础结构
        • 编辑/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
          
      4. 配置 Linux 网桥代理
        Linux 网桥代理构建第 2 层(桥接和交换)虚拟 实例的网络基础设施和处理安全组
        • 编辑/etc/neutron/plugins/ml2/linuxbridge_agent.ini
          [linux_bridge]
          physical_interface_mappings = provider:ens33
          [vxlan]	
          enable_vxlan = true
          local_ip = 192.168.200.150
          l2_population = true
          [securitygroup]
          # ...
          enable_security_group = true
          firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver
          
        • 加载br_netfilter内核模块。要启用网络桥接器支持,通常br_netfilter内核模块需要加载
          # echo net.bridge.bridge-nf-call-iptables = 1 >> /etc/sysctl.conf
          # echo net.bridge.bridge-nf-call-ip6tables = 1 >> /etc/sysctl.conf
          
          # cat /etc/sysctl.conf
          # sysctl -p
          # modprobe br_netfilter
          # ls /proc/sys/net/bridge
          # sysctl -p
          
          sysctl net.bridge.bridge-nf-call-iptables
          sysctl net.bridge.bridge-nf-call-ip6tables
          
          
      5. 配置第 3 层代理
        第 3 层 (L3) 代理为 自助式虚拟网络。
        • 编辑/etc/neutron/l3_agent.ini
          [DEFAULT]
          # ...
          interface_driver = linuxbridge
          
      6. 配置 DHCP 代理
        • 编辑/etc/neutron/dhcp_agent.ini
          [DEFAULT]
          # ...
          interface_driver = linuxbridge
          dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq
          enable_isolated_metadata = true
          
  3. 配置元数据代理
    元数据代理提供配置信息 例如实例的凭证
    1. 编辑文件/etc/neutron/metadata_agent.ini
      [DEFAULT]
      # ...
      nova_metadata_host = controller
      metadata_proxy_shared_secret = 000000
      
  4. 将Nova服务配置为使用neutron服务
    1. 编辑文件/etc/nova/nova.conf
      [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 = 000000
      service_metadata_proxy = true
      metadata_proxy_shared_secret = 000000
      
  5. 完成安装
    1. 网络服务初始化脚本需要一个指向 ML2 插件配置的符号链接 文件。如果这个象征性 链接不存在,请使用以下命令创建它:/etc/neutron/plugin.ini /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
      
    3. 重新启动计算 API 服务:
      # systemctl restart openstack-nova-api.service
      
    4. 启动网络服务并将其配置为在系统启动时启动
      • 使用网络1
        # systemctl enable neutron-server.service neutron-linuxbridge-agent.service neutron-dhcp-agent.service neutron-metadata-agent.service
        # systemctl restart neutron-server.service neutron-linuxbridge-agent.service neutron-dhcp-agent.service neutron-metadata-agent.service
        
      • 使用网络2还需要启动第 3 层服务
        # systemctl enable neutron-l3-agent.service
        # systemctl restart neutron-l3-agent.service
        

安装与配置Compute

  1. 安装组件
    # yum install -y openstack-neutron-linuxbridge ebtables ipset
    
  2. 配置通用组件
    网络常见组件配置包括 身份验证机制、消息队列和插件
    1. 编辑文件/etc/neutron/neutron.conf
      [DEFAULT]
      # ...
      transport_url = rabbit://openstack:000000@controller
      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 = 000000
      [oslo_concurrency]
      # ...
      lock_path = /var/lib/neutron/tmp
      
  3. 配置网络选项
    1. 提供商网络
      • 配置 Linux 网桥代理
        Linux 网桥代理构建第 2 层(桥接和交换)虚拟 实例的网络基础设施和处理安全组。
        • 编辑/etc/neutron/plugins/ml2/linuxbridge_agent.ini
          [linux_bridge]
          physical_interface_mappings = provider:ens33
          [vxlan]
          enable_vxlan = false
          [securitygroup]
          # ...
          enable_security_group = true
          firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver
          
        • 加载br_netfilter内核模块。要启用网络桥接器支持,通常br_netfilter内核模块需要加载
          # echo net.bridge.bridge-nf-call-iptables = 1 >> /etc/sysctl.conf
          # echo net.bridge.bridge-nf-call-ip6tables = 1 >> /etc/sysctl.conf
          
          # cat /etc/sysctl.conf
          # sysctl -p
          # modprobe br_netfilter
          # ls /proc/sys/net/bridge
          # sysctl -p
          
          # sysctl net.bridge.bridge-nf-call-iptables
          # sysctl net.bridge.bridge-nf-call-ip6tables
          
    2. 自助服务网络
      • 配置 Linux 网桥代理
        Linux 网桥代理构建第 2 层(桥接和交换)虚拟 实例的网络基础设施和处理安全组
        • 编辑/etc/neutron/plugins/ml2/linuxbridge_agent.ini
          [linux_bridge]
          physical_interface_mappings = provider:ens33
          [vxlan]
          enable_vxlan = true
          local_ip = 192.168.200.151
          l2_population = true
          [securitygroup]
          # ...
          enable_security_group = true
          firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver
          
        • 加载br_netfilter内核模块。要启用网络桥接器支持,通常br_netfilter内核模块需要加载
          # echo net.bridge.bridge-nf-call-iptables = 1 >> /etc/sysctl.conf
          # echo net.bridge.bridge-nf-call-ip6tables = 1 >> /etc/sysctl.conf
          
          # cat /etc/sysctl.conf
          # sysctl -p
          # modprobe br_netfilter
          # ls /proc/sys/net/bridge
          # sysctl -p
          
          # sysctl net.bridge.bridge-nf-call-iptables
          # sysctl net.bridge.bridge-nf-call-ip6tables
          
  4. 将计算服务配置为使用网络服务
    • 编辑/etc/nova/nova.conf
      [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 = 000000
      
  5. 完成安装
    1. 重新启动计算服务:
      # systemctl restart openstack-nova-compute.service
      
    2. 启动 Linux 网桥代理并将其配置为在 系统引导:
      # systemctl enable neutron-linuxbridge-agent.service
      # systemctl restart neutron-linuxbridge-agent.service
      

验证

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

  1. 获取凭据以获取对仅限管理员的 CLI 的访问权限 命令:admin
    $ . ~/admin-openrc.sh
    
  2. 列出加载的扩展以验证进程是否成功启动:neutron-server
    $ openstack extension list --network
    
    
  3. 列出用于验证neutron的代理
    $ openstack network agent list
    
    +--------------------------------------+--------------------+------------+-------------------+-------+-------+---------------------------+
    | ID                                   | Agent Type         | Host       | Availability Zone | Alive | State | Binary                    |
    +--------------------------------------+--------------------+------------+-------------------+-------+-------+---------------------------+
    | 1056035f-9b52-4ba7-9f86-2429f4063eda | Linux bridge agent | controller | None              | :-)   | UP    | neutron-linuxbridge-agent |
    | 86013848-6fbf-49f2-88b6-99514237cea2 | DHCP agent         | controller | nova              | :-)   | UP    | neutron-dhcp-agent        |
    | 9aea177f-d303-4119-87b7-d7972024b7e7 | Metadata agent     | controller | None              | :-)   | UP    | neutron-metadata-agent    |
    | a2f7261d-1a7f-4771-a502-477580953345 | Linux bridge agent | compute    | None              | :-)   | UP    | neutron-linuxbridge-agent |
    | c6b33958-61fe-463c-b090-df400fa179b1 | L3 agent           | controller | nova              | :-)   | UP    | neutron-l3-agent          |
    +--------------------------------------+--------------------+------------+-------------------+-------+-------+---------------------------+
    

    网络选项 1:提供商网络 输出应指示控制器节点上的个代理和一个Compute节点上的代理
    网络选项 2:自助服务网络 输出应指示控制器节点上的个代理和一个Compute上的代理

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐