本文共 2372 字,大约阅读时间需要 7 分钟。
在OpenStack网络架构中,openvswitch与linux-bridge相比较,openvswitch更为广泛应用。OpenStack至少支持以下几类网络流量:
管理网络 (Management):用于节点间的内部通信,例如message queue和database服务。
API网络 (API):通过管理网络向用户暴露API服务,API与管理网络合并后直接用于资源操作。
虚拟机网络 (VM):Neutron负责对虚拟机网络进行配置与管理。
外部网络 (External):指不受Neutron管理的网络,是与虚拟机通信的目标网络。
网络可划分为以下几种类型:
管理网络 (Management Network):用于管理所有节点,保障网络的可用性和安全性。
内部网络 (Internal Network):实现控制节点与网络节点之内的通信,支持tenants自定义管理,网络可重叠。
外部网络 (External Network):用于内部虚拟机的外网访问,通常由管理员预先创建并进行网络属性设置。
Neutron网络模块主要包括以下操作流程:
API请求处理:通过Neutron-server接收并路由不同的API请求。
插件执行:将API请求发送至对应的plugin,执行网络配置操作。
数据库维护:更新网络状态信息,确保网络配置准确可靠。
消息队列通信:在各网络模块间保持实时通信,同步核心网络状态。
网络模块分为以下几个关键部分:
core plugin:负责维护网络、子网、端口等基础资源,通过与agent配合实现二层网络功能。
service plugin:实现高级网络功能,如路由、防火墙、负载均衡等。
agent代理:在各个节点上执行网络代理功能,根据_plugin的需求配置相应网络设备。
插件的功能定位:解决网络配置细节问题(what to do),如创建VLAN或vxlan网络。
agent的功能定位:执行具体的网络操作(how to do),如配置物理网卡或创建网桥设备。
兼容性配置:支持多种网络设备,如openvswitch、linux-bridge、思科交换机等,通过对应的plugin和agent实现异构网络部署。
方式一(控制节点+计算节点):
控制节点部署neutron server、core插件代理和service插件代理。
计算节点部署core插件代理,负责执行二层网络配置。
方式二(控制节点+网络节点+计算节点):
控制节点仅部署neutron server。
网络节点聚焦于对高层网络服务,如数据转发、路由和负载均衡等。
计算节点专注于执行二层网络功能。
管理方式灵活,支持集群式部署,适用于大规模openstack环境。
Neutron服务器主要承担以下职责:
API服务:提供网络资源管理的RESTful API。
请求路由:根据请求类型(core API、extension API)调用相应的plugin。
核心处理:通过core plugin和service plugin处理网络请求。
请求校验:确保API请求格式正确性和权限验证。
Neutron服务器的模块划分如下:
Core API:对外暴露标准网络资源管理接口。
Extension API:提供扩展功能接口,如路由、防火墙等。
代码层级:
Neutron Core:核心处理程序,执行网络操作。
Core Plugin API:简化核心插件操作接口。
Extension Plugin API:提供扩展插件接口。
网络模块的核心职责是通过插件和agent实现网络配置与状态维护。
ML2(Modular Layer 2)核心插件作为Neutron的标准插件,其优势在于支持异构网络部署,同时实现网络抽象能力。ML2通过type driver和mechanism driver实现灵活配置:
Type Driver:确定和管理网络类型配置,如VLAN、vxlan、flat、local等。
Mechanism Driver:执行实际的网络操作,支持openvswitch、linux-bridge等网络设备。
ML2与其mechanism driver共同完成网络建模与实现,适用于大规模网络环境。
Service Plugin/Agent负责提供高级网络服务,如:
DHCP代理:通过dnsmasq为虚拟机提供IP地址和hostname。
路由转发:创建并管理路由器实例,提供网络跨越功能。
防火墙策略:在路由器上配置防火墙规则,控制网络流量。
负载均衡:通过haproxy实现虚拟机之间的负载均衡服务。
这些高级功能均通过extension API接口对Neutron进行调用。
本地网络是一个轻量级的虚拟网络类型,主要适合内部通信需求。其特点包括:
communicate限制在同一物理节点的网络范围内。
均通过桥接设备(如linux-bridge)实现虚拟网络连接。
每个本地网络映射为独立的tap设备,无广播对应特点。
平坦网络是一种直接连接物理网卡的网络类型,特点包括:
物理网卡与linux-bridge直接配接。
不支持VLAN划分,适用于简单、快速的网络通信。
配置时需指定物理网卡的对应关系。
这些实现方式为Neutron网络部署提供了灵活的配置选项。
转载地址:http://kqrmz.baihongyu.com/