openstack网络架构

Neutron中的基本网络元素

Neutron使用所有网络管理员熟悉的元素来构建虚拟网络,包括网络,子网,端口,路由器,负载均衡器等。使用2.0版本核心Neutron API,用户可以构建一个由以下实体组成的网络:

网络:网络(Network)是一个隔离的2层广播域。 通常保留给创建它们的租户,如果相应地配置网络可以在租户之间共享。 网络是Neutron API的核心实体。 子网和端口必须始终与网络相关联。

子网:子网(subnet)是IPv4或IPv6地址块,可以将IP地址分配给虚拟机实例。 每个子网必须具有CIDR并且必须与网络相关联。 多个子网可以与单个网络相关联,并且可以是不连续的。 子网设置DHCP分配范围后可以限制提供给虚拟机的IP地址。

端口:Neutron中的端口(port)表示逻辑虚拟交换机上的虚拟交换机端口。 虚拟机接口映射到Neutron端口,并且端口定义要分配给插入其中的接口MAC地址和IP地址。 Neutron端口定义存储在Neutron数据库中,然后由相应的插件代理使用,以构建和连接虚拟交换基础设备。

管理员和用户可以通过创建和配置网络、子网来配置网络拓扑,然后指示Nova等服务将虚拟设备连接到这些网络上的端口。 用户可以创建多个网络,子网和端口,但限于由云管理员设置的每个租户配额定义的阈值。

插件扩展功能

Neutron引入了对扩展网络功能和Neutron API实现的第三方插件和驱动程序的支持。 可以创建使用各种基于软件和基于硬件的技术来实现由运营商和用户构建的网络的插件和驱动程序。

Neutron架构中有两种主要的插件类型:

•核心插件

•服务插件

核心插件实现核心Neutron API,并负责将网络,端口和子网所描述的逻辑网络适配成可由主机上运行的L2代理和IP地址管理系统实现的东西。服务插件提供额外的网络服务,如路由,负载均衡,防火墙等。

每种plugin代表了一种网络虚拟化的实现技术。不同的实现技术所提供的对外管理接口各不相同,plugin用来实现neutron rest api和相应实现接口之间的适配。

ML2(Modular Layer 2 plugin)

Ml2插件是一种允许OpenStack网络同时地利用多种二层网络技术的框架。目前与openswitch、linux bridge、hyperv L2 agent协同工作。ml2框架对简化新增L2网络技术的做了很好支持,比起以往新增加的核心插件,ML2框架需要更少的初期以及后期维护工作。

ML2驱动包括类型驱动和机制驱动,分别实现了网络类型和网络机制的可扩展性。

1)类型驱动(TypeDriver):

类型驱动可以管理多种网络类型,目前支持local, flat, vlan, gre, vxlan等。

2)机制驱动(MechanismDriver):

ML2机制驱动程序负责获取由类型驱动程序建立的信息, 机制驱动处理由类型驱动建立的信息(例如网络、子网、端口的创建、更新、删除操作),并且确保能够用于指定的网络机制,并确保其正确实现。 多个机制驱动可以被配置为同时操作(如有些节点可以使用openvswitch,有些则使用cisco Nexus 1000V等),并且可以使用三种类型的模型来描述:

• Agent-based:这包括LinuxBridge,Open vSwitch和其他

• Controller-based:这包括OpenDaylight,VMWare NSX和其他

• Top-of-Rack:这包括Cisco Nexus,Arista,Mellanox和其他

LinuxBridge和Open vSwitch ML2机制驱动程序用在托管实例和网络服务的节点内配置各自的交换技术。 LinuxBridge驱动程序支持local,flat,vlan和vxlan网络类型,而Open vSwitch驱动程序支持所有这些以及gre网络类型。

L2驱动器通过设置网络结构来限制广播流量的量。传统的交换行为如单播,多播和广播业务会被洪泛到所有交换机端口,直到学习到了地址。这种行为可能对网络结构产生负面影响,特别是随着云中的主机数量的增加。Neutron可以在所有主机上预填充转发数据库,​​以避免昂贵的学习操作。当使用ARP代理时,Neutron以类似的方式预填充所有主机上的ARP表,以避免ARP流量通过网络广播。

Neutron架构图



1、Neutron Server

对外提供 OpenStack 网络 API,接收请求,并调用 Plugin 处理请求。

2、Plugin

处理 Neutron Server 发来的请求,维护 OpenStack 逻辑网络状态, 并调用 Agent 处理请求。

3、Agent

处理 Plugin 的请求,负责在 network provider 上真正实现各种网络功能。

4、Network provider

提供网络服务的虚拟或物理网络设备,例如 Linux Bridge,Open vSwitch 或者其他支持 Neutron 的物理交换机。

5、Queue

Neutron Server,Plugin 和 Agent 之间通过 Messaging Queue 通信和调用。

6、Database

存放 OpenStack 的网络状态信息,包括 Network, Subnet, Port, Router 等。

参考资料

1、Learning OpenStack Networking (Neutron) Second Edition James Denton

2、https://mp.weixin.qq.com/s/IDjOy7TTQbaj-TJ4u0ixXA CloudMan公众号推送文章

openstack网络(三)的更多相关文章

  1. 深入理解openstack网络架构(4)-----连接到public network

    原文地址: https://blogs.oracle.com/ronen/entry/diving_into_openstack_network_architecture3 译文转自:http://b ...

  2. OpenStack云计算(一)——OpenStack 网络

    关于OpenStack OpenStack它是 Rackspace Cloud 和 NASA 负责的一个开源基础架构即服务的云计算项目. OpenStack 是一个由开发者和云计算技术人员的全球协作开 ...

  3. 深入理解 Neutron -- OpenStack 网络实现(3):VXLAN 模式

    问题导读1.VXLAN 模式下,网络的架构跟 GRE 模式类似,他们的不同点在什么地方?2.网络节点的作用是什么?3.tap-xxx.qr-xxx是指什么? 接上篇:深入理解 Neutron -- O ...

  4. 深入理解 Neutron -- OpenStack 网络实现(2):VLAN 模式

    问题导读 1.br-int.br-ethx的作用是什么?2.安全组策略是如何实现的?3.VLAN 模式与GRE模式有哪些不同点?流量上有哪些不同?4.L3 agent实现了什么功能? 接上篇深入理解 ...

  5. Openstack网络相关概念比较复杂,经常使人混淆,本文进行相关说明。

    Openstack网络相关概念比较复杂,经常使人混淆,本文进行相关说明. 文中相关术语与缩写 英文 缩写 中文 Virtual Local Area Network VLAN 虚拟局域网 Virtua ...

  6. OpenStack 网络:Neutron 初探

    OpenStack Neutron 网络模型 OpenStack nova-network 独立成为单独的组件 Neutron 后,形象的网络模型的多平面网络.混合平面私有网络.如图 3,图 4,图 ...

  7. openstack网络(二)

    连接物理服务器 单网卡 多网卡 跨主机安装网络服务 使用单个控制节点安装 使用专用网络节点安装 连接物理服务器 每个物理主机所需的网卡数量取决于云平台使用领域,组织的安全性和性能要求以及硬件的可用性. ...

  8. OpenStack(三)——allinone云平台的使用方法

    接着OpenStack(二)——使用Kolla部署OpenStack-allinone云平台继续操作. 特别感谢https://www.cnblogs.com/openstackteam/p/5519 ...

  9. 学习openstack(三)

      一.OpenStack初探 1.1 OpenStack简介 OpenStack是一整套开源软件项目的综合,它允许企业或服务提供者建立.运行自己的云计算和存储设施.Rackspace与NASA是最初 ...

随机推荐

  1. JDBC报错:The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one time zone

    报错原因:查阅资料发现这都是因为安装mysql的时候时区设置的不正确 mysql默认的是美国的时区,而我们中国大陆要比他们迟8小时,采用+8:00格式 解决方法: 1.修改MySQL的配置文件,MyS ...

  2. 裸板中中断异常处理,linux中断异常处理 ,linux系统中断处理的API,中断处理函数的要求,内核中登记底半部的方式

    1.linux系统中的中断处理  1.0裸板中中断异常是如何处理的?     以s5p6818+按键为例          1)按键中断的触发        中断源级配置            管脚功 ...

  3. jquery序列帧播放(支持视频自动播放和不是全屏播放)

    jquery序列帧播放 这个弊端就是到时候需要升级下带宽 至少10MB 保证不卡.. ae导出序列真的时候 每秒10帧 就是代码每秒播放10张图片 尺寸适当的可以压小点<pre> < ...

  4. PHP经典算法题

    1.百钱买百鸡 公鸡5文钱一只,母鸡3文钱一只,小鸡3只一文钱,用100文钱买一百只鸡,其中公鸡,母鸡,小鸡都必须要有,问公鸡,母鸡,小鸡要买多少只刚好凑足100文钱. 分析:估计现在小学生都能手工推 ...

  5. SQL中Truncate的用法

    SQL中Truncate的用法转自:http://www.studyofnet.com/news/555.html本文导读:删除表中的数据的方法有delete,truncate, 其中TRUNCATE ...

  6. HTTP基础及telnet简单命令

    一.HTTP概况 20世纪90年代初期,一个主要的新兴应用即万维网(World Wide Web)登上了舞台.Web是一个引起公众注意的因特网应用.Web的应用层协议是超文本传输协议(HTTP),它是 ...

  7. git 删除误上传的.idea文件

    问题: 提交项目的时候忘记添加.gitignore文件,误上传了文件(如.idea)如何解决?(本文以.idea文件夹举例) 1.将项目文件拉取下来 git pull origin master 2. ...

  8. JAVA _____Scanner用法

    今天就来说一说Scanner用法,以前我在学C的时候记得第一天学的是很普遍的HelloWord的输出,JAVA中的输出是这样子的, public class ScannerWriter { publi ...

  9. [从今天开始修炼数据结构]线性表及其实现以及实现有Itertor的ArrayList和LinkedList

    一.线性表 1,什么是线性表 线性表就是零个或多个数据元素的有限序列.线性表中的每个元素只能有零个或一个前驱元素,零个或一个后继元素.在较复杂的线性表中,一个数据元素可以由若干个数据项组成.比如牵手排 ...

  10. mvc 学习笔记

    1.routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); MVC中的路由忽略,只要访问的地址中带有 .axd , 该请求都将排除在mv ...