Neutron:OpenStack网络虚拟化核心

Neutron是OpenStack云计算平台的核心网络服务组件,负责提供和管理云环境中的网络连接、IP地址分配、路由、防火墙等网络功能,实现了对虚拟网络资源的抽象、隔离和自动化管理 。

Neutron的核心作用在于将复杂的物理网络基础设施抽象为软件定义的、可按需创建和配置的逻辑网络资源,从而支撑OpenStack云平台中虚拟机(实例)之间的互联以及与外部网络的通信 。其核心功能可以概括为以下几点:

功能类别具体功能说明
网络虚拟化创建虚拟网络(Network)提供二层网络隔离,支持VLAN、VXLAN、GRE等多种隧道技术 。
 划分子网(Subnet)为虚拟网络分配IP地址段(CIDR),并管理其DHCP、DNS等属性 。
 创建端口(Port)作为虚拟网卡,连接虚拟机实例或网络设备(如路由器)到虚拟网络 。
网络服务路由(Routing)通过虚拟路由器(Router)实现不同子网之间的三层转发,以及连接内部网络与外部网络(如公网)。
 DHCP服务为连接到子网的虚拟机自动分配IP地址、网关和DNS信息 。
 安全组(Security Group)与防火墙(FWaaS)提供基于端口(实例级别)或基于路由器(网络边界)的流量过滤规则,实现网络安全策略 。
 负载均衡(LBaaS)提供虚拟负载均衡器服务,将流量分发到后端多个实例上。
高级网络VPN即服务(VPNaaS)提供站点到站点或远程访问的VPN连接。
 服务质量(QoS)对网络带宽、延迟、丢包率等指标进行策略控制。

Neutron采用分布式、插件化的架构,主要分为控制节点(运行neutron-server)和网络节点/计算节点(运行各类Agent)。其核心组件协同工作流程如下:

  1. Neutron Server:作为API网关和大脑,接收用户通过Dashboard或CLI发送的REST API请求(如创建网络),进行身份验证和基础验证后,将请求分发给配置的插件(Plugin)进行处理 。
  2. Plugin 与 Driver:插件是Neutron架构的核心。通用的ML2(Modular Layer 2)插件通过类型驱动(Type Driver)管理不同的网络类型(如VLAN、VXLAN),通过机制驱动(Mechanism Driver)对接不同的底层虚拟交换技术(如Linux Bridge、Open vSwitch)。这种设计实现了网络后端技术的解耦与可扩展。
  3. Agent:代理是运行在各个物理节点上的守护进程,负责执行具体的网络配置任务。它们通过消息队列(如RabbitMQ)接收来自Plugin的RPC调用指令 。主要代理包括:
    • L2 Agent(如openvswitch-agentlinuxbridge-agent):在计算节点上,负责创建虚拟交换机端口、设置VLAN标签或建立隧道,将虚拟机的虚拟网卡(tap设备)连接到正确的虚拟网络 。
    • L3 Agent:通常运行在独立的网络节点上,负责创建和管理虚拟路由器(通过Linux Network Namespace实现),处理子网间的路由和外部网络的SNAT/DNAT转换 。
    • DHCP Agent:负责为每个需要DHCP服务的子网创建一个独立的DHCP服务器(运行在独立的Network Namespace中,使用dnsmasq软件),为虚拟机自动分配IP地址 。
    • Metadata Agent:为虚拟机提供访问实例元数据的代理服务。

以一个典型的创建VXLAN网络并启动虚拟机的流程为例,可以清晰地展示各组件如何协作 :

  1. 用户通过API请求创建一个VXLAN类型的网络net01和一个子网subnet01
  2. neutron-server接收到请求,ML2插件通过类型驱动记录网络类型为VXLAN,并通过配置的OVS机制驱动,将创建网络的信息通过RPC消息发送到消息队列。
  3. 所有运行了openvswitch-agent的计算节点和网络节点都会从消息队列收到该消息。
  4. 各节点的openvswitch-agent在本地OVS网桥(如br-int)上创建对应的逻辑端口,并配置VXLAN隧道端点。
  5. 当用户创建一个虚拟机并指定其连接到net01时,Nova会调用Neutron API为该虚拟机分配一个端口。
  6. Neutron的ML2插件和OVS机制驱动再次通过RPC通知计算节点上的openvswitch-agent
  7. 该代理在OVS网桥上创建tap设备(虚拟网卡),并将其与虚拟机绑定,同时设置正确的VXLAN网络标识,最终完成虚拟机接入虚拟网络。

Neutron的设计特点在于其高度的插件化松耦合,使得用户可以根据实际的基础设施和需求,灵活选择网络类型和底层实现技术,而无需修改上层应用逻辑 。同时,通过将控制平面(neutron-server + Plugin)与数据平面(各类Agent)分离,并利用消息队列进行通信,实现了系统的可扩展性和可靠性 。


参考来源

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值