网络架构¶
OpenStack Networking 是一项独立的服務,通常会在多个节点上部署多个进程。这些进程相互作用,并与其他 OpenStack 服务交互。OpenStack Networking 服务的主要进程是 neutron-server,一个 Python 守护进程,它暴露 OpenStack Networking API 并将租户请求传递给一系列插件进行进一步处理。
OpenStack Networking 组件包括
- neutron server (neutron-server 和 neutron-*-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-server、neutron-plugin 和插件代理程序交互。
下图显示了 OpenStack Networking 组件的架构和网络流程图
OpenStack Networking 服务在物理服务器上的部署¶
本指南重点介绍一种标准架构,包括一个 云控制器主机、一个 网络主机和一组 计算超visor,用于运行 VM。
物理服务器的网络连接¶
标准的 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 管理员指南。