网络架构

OpenStack Networking 是一项独立的服務,通常会在多个节点上部署多个进程。这些进程相互作用,并与其他 OpenStack 服务交互。OpenStack Networking 服务的主要进程是 neutron-server,一个 Python 守护进程,它暴露 OpenStack Networking API 并将租户请求传递给一系列插件进行进一步处理。

OpenStack Networking 组件包括

neutron server (neutron-serverneutron-*-plugin)

此服务在网络节点上运行,以服务 Networking API 及其扩展。它还强制执行网络模型和每个端口的 IP 寻址。neutron-server 需要间接访问持久数据库。这是通过插件完成的,插件使用 AMQP(高级消息队列协议)与数据库通信。

plugin agent (neutron-*-agent)

在每个计算节点上运行,以管理本地虚拟交换机 (vswitch) 配置。您使用的插件决定了哪些代理程序运行。此服务需要消息队列访问,并取决于所使用的插件。某些插件,如 OpenDaylight(ODL) 和 Open Virtual Network (OVN),不需要在计算节点上运行任何 python 代理。

DHCP agent (neutron-dhcp-agent)

为租户网络提供 DHCP 服务。此代理程序在所有插件中都是相同的,负责维护 DHCP 配置。neutron-dhcp-agent 需要消息队列访问。根据插件可选。

L3 agent (neutron-l3-agent)

为租户网络中 VM 的外部网络访问提供 L3/NAT 转发。需要消息队列访问。根据插件可选。

network provider services (SDN server/services)

为租户网络提供额外的网络服务。这些 SDN 服务可能通过 REST API 等通信通道与 neutron-serverneutron-plugin 和插件代理程序交互。

下图显示了 OpenStack Networking 组件的架构和网络流程图

../_images/sdn-connections.png

OpenStack Networking 服务在物理服务器上的部署

本指南重点介绍一种标准架构,包括一个 云控制器主机、一个 网络主机和一组 计算超visor,用于运行 VM。

物理服务器的网络连接

../_images/1aa-network-domains-diagram.png

标准的 OpenStack Networking 设置最多具有四个不同的物理数据中心网络

管理网络

用于 OpenStack 组件之间的内部通信。此网络上的 IP 地址应仅在数据中心内可访问,并被视为管理安全域。

Guest 网络

用于云部署中 VM 的数据通信。此网络的 IP 寻址要求取决于所使用的 OpenStack Networking 插件以及租户所做的虚拟网络的网络配置选择。此网络被视为 Guest 安全域。

外部网络

用于在某些部署场景中为 VM 提供 Internet 访问。此网络上的 IP 地址应可供 Internet 上的任何人访问。此网络被视为公共安全域。

API 网络

将所有 OpenStack API(包括 OpenStack Networking API)暴露给租户。此网络上的 IP 地址应可供 Internet 上的任何人访问。这可能与外部网络相同,因为可以为外部网络创建一个子网,该子网使用 IP 分配范围来仅使用 IP 块中 IP 地址范围的一小部分。此网络被视为公共安全域。

有关更多信息,请参阅 OpenStack 管理员指南