在当今的数字化浪潮中,作为领先的开源 云计算管理平台 ,为构建和管理公有云、私有云提供了强大的基础设施,其核心组件各司其职,共同构成了一个功能完备的“ 云操作系统 ”,Neutron负责网络资源的虚拟化管理,是实现云平台网络灵活性与可编程性的关键,深入理解 Neutron架构原理 ,是掌握网络技术的基石,也是 云操作系统学院 课程中的核心内容。
Neutron的核心设计理念
Neutron的设计理念是“网络即服务”,它旨在将网络资源(如网络、子网、路由器、端口、安全组等)抽象化,通过API的形式提供给上层应用和租户,用户可以像创建虚拟机一样,通过API或Dashboard动态地创建、配置和管理自己的虚拟网络环境,而无需关心底层的物理网络拓扑和实现细节。
Neutron的关键组件剖析
Neutron的架构采用了典型的分布式、插件化设计,主要由以下几个部分协同工作:
ML2插件:灵活性的基石
ML2插件的出现是Neutron架构演进的一个重要里程碑,它将网络类型与网络机制解耦,使得Neutron可以同时支持多种二层网络技术和多种网络设备。
这种解耦通过两种类型的驱动实现:
| 驱动类型 | 职责 | 示例 |
|---|---|---|
| 类型驱动 | 负责管理网络分段的类型,定义网络的隔离和封装方式。 | VLAN, VXLAN, GRE, FLAT |
| 机制驱动 | 负责与具体的网络设备或技术进行交互,实现网络配置。 | Open vSwitch, Linux Bridge, SR-IOV |
通过这种设计,管理员可以在同一个云环境中,为不同的租户或需求灵活地选择VLAN或VXLAN等不同的网络技术,而机制驱动则确保这些配置能被底层的虚拟交换机正确执行。
工作流程简述
一个典型的“为虚拟机创建端口”的流程如下:
至此,一个虚拟网络端口就创建并配置完成了,虚拟机启动后即可使用该端口进行网络通信。
相关问答FAQs
问1:ML2插件与Neutron Agent有什么根本区别?
答:
它们的角色和运行位置完全不同,ML2插件是运行在控制节点上的“决策中心”,负责处理API请求、管理数据库状态,并定义网络如何被抽象,而Neutron Agent是运行在计算节点或网络节点上的“执行者”,它接收来自ML2插件(通过消息队列)的指令,并调用底层的系统工具(如ovs-vsctl, iptables)来实际配置网络设备,简单说,插件负责“想”,Agent负责“做”。
问2:Neutron如何实现租户网络之间的隔离? 答: Neutron通过ML2插件中的类型驱动来实现网络隔离,当使用VLAN类型驱动时,它会为每个租户网络分配一个唯一的VLAN ID,通过物理交换机的VLAN功能实现隔离,当使用VXLAN类型驱动时,它会为每个租户网络分配一个唯一的VNI(VXLAN Network Identifier),通过在底层IP网络之上构建隧道来封装和隔离不同租户的流量,这种方式使得租户网络可以在共享的物理基础设施上实现逻辑上的完全隔离。














发表评论