博客
关于我
openstack neutron网络插件学习(一)【linux-bridge实现】
阅读量:664 次
发布时间:2019-03-15

本文共 2372 字,大约阅读时间需要 7 分钟。

neutron网络架构与操作流程解析

1. 网络架构

在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):用于内部虚拟机的外网访问,通常由管理员预先创建并进行网络属性设置。

2. Neutron网络模块

Neutron网络模块主要包括以下操作流程:

  • API请求处理:通过Neutron-server接收并路由不同的API请求。

  • 插件执行:将API请求发送至对应的plugin,执行网络配置操作。

  • 数据库维护:更新网络状态信息,确保网络配置准确可靠。

  • 消息队列通信:在各网络模块间保持实时通信,同步核心网络状态。

  • 网络模块分为以下几个关键部分:

    • core plugin:负责维护网络、子网、端口等基础资源,通过与agent配合实现二层网络功能。

    • service plugin:实现高级网络功能,如路由、防火墙、负载均衡等。

    • agent代理:在各个节点上执行网络代理功能,根据_plugin的需求配置相应网络设备。

    3. 插件与代理

    • 插件的功能定位:解决网络配置细节问题(what to do),如创建VLAN或vxlan网络。

    • agent的功能定位:执行具体的网络操作(how to do),如配置物理网卡或创建网桥设备。

    • 兼容性配置:支持多种网络设备,如openvswitch、linux-bridge、思科交换机等,通过对应的plugin和agent实现异构网络部署。

    4. Neutron网络模块的两种部署方式

    • 方式一(控制节点+计算节点):

      • 控制节点部署neutron server、core插件代理和service插件代理。

      • 计算节点部署core插件代理,负责执行二层网络配置。

    • 方式二(控制节点+网络节点+计算节点):

      • 控制节点仅部署neutron server。

      • 网络节点聚焦于对高层网络服务,如数据转发、路由和负载均衡等。

      • 计算节点专注于执行二层网络功能。

    管理方式灵活,支持集群式部署,适用于大规模openstack环境。

    5. Neutron服务器架构

    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实现网络配置与状态维护。

    6. ML2核心插件

    ML2(Modular Layer 2)核心插件作为Neutron的标准插件,其优势在于支持异构网络部署,同时实现网络抽象能力。ML2通过type driver和mechanism driver实现灵活配置:

    • Type Driver:确定和管理网络类型配置,如VLAN、vxlan、flat、local等。

    • Mechanism Driver:执行实际的网络操作,支持openvswitch、linux-bridge等网络设备。

    ML2与其mechanism driver共同完成网络建模与实现,适用于大规模网络环境。

    7. Service Plugin/Agent

    Service Plugin/Agent负责提供高级网络服务,如:

    • DHCP代理:通过dnsmasq为虚拟机提供IP地址和hostname。

    • 路由转发:创建并管理路由器实例,提供网络跨越功能。

    • 防火墙策略:在路由器上配置防火墙规则,控制网络流量。

    • 负载均衡:通过haproxy实现虚拟机之间的负载均衡服务。

    这些高级功能均通过extension API接口对Neutron进行调用。

    8. 本地网络(Local Network)

    本地网络是一个轻量级的虚拟网络类型,主要适合内部通信需求。其特点包括:

    • communicate限制在同一物理节点的网络范围内。

    • 均通过桥接设备(如linux-bridge)实现虚拟网络连接。

    • 每个本地网络映射为独立的tap设备,无广播对应特点。

    9. 平坦网络(Flat Network)

    平坦网络是一种直接连接物理网卡的网络类型,特点包括:

    • 物理网卡与linux-bridge直接配接。

    • 不支持VLAN划分,适用于简单、快速的网络通信。

    配置时需指定物理网卡的对应关系。

    这些实现方式为Neutron网络部署提供了灵活的配置选项。

    转载地址:http://kqrmz.baihongyu.com/

    你可能感兴趣的文章
    python中打印二维列表数据
    查看>>
    python中打散数组shuffle
    查看>>
    Python中执行外部命令
    查看>>
    Python中拼接numpy数组-ChatGPT4o作答
    查看>>
    Python中提示:no module named 'PIL'
    查看>>
    Python中提示:UnicodeDecodeError: 'ascii' codec can't decode byte 0xe5 in position
    查看>>
    python中数据类型存储_浅谈Python中的数据类型
    查看>>
    python中文件最重要的功能是什么-学 Python 都用来干嘛的?
    查看>>
    python中文版语言_高盛最新调查:Python超过汉语成为未来最重要技能,你准备学哪种编程语言?...
    查看>>
    Python中文问题SyntaxError
    查看>>
    Python中方括号和括号括起来的列表有什么区别?
    查看>>
    python中时间处理_Python中处理时间的几种方法小结
    查看>>
    Python中枚举串口(包括虚拟端口)的跨平台方法是什么?
    查看>>
    python中根号下a怎么写_python中根号怎么表示
    查看>>
    Python中正则表达式的巧妙使用
    查看>>
    Python中浮点数的二进制表示(位不是十六进制)
    查看>>
    Python中特殊函数和表达式 filter,map,reduce,lambda
    查看>>
    python中用socket检测端口_Python 用socket模块实现检测端口和检测web服务
    查看>>
    python中用于列表操作的plus和append有什么区别?
    查看>>
    python中用递归求和
    查看>>