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. Python 基础之socket编程(三)

    python 基础之socket编程(三) 前面实现的基于socket通信只能实现什么呢?在tcp协议的通信中就是一个用户说一句,服务端给你回一句,你再给服务端说一句,服务端再给你回一句,就这样一直友 ...

  2. windows系统cmd命令行窗口查看端口占用情况

    # 查看所有在用端口 netstat -ano # 查看指定端口 netstat -ano | findstr 8899 # 结束该进程:taskkill /f /t /im javaw.exe:或者 ...

  3. 网站搭建-2-本地网站搭建-安装Linux虚拟机/ 安装IIS Windows

    搭建网站-1-域名申请参见公众号 生物信息系统(swxxxt) 首先,已经拥有了一个可以正常使用的域名. 之前买了两年的阿里的服务器,由于是Windows的,最后不了了之了(因为当时找的代码都是lin ...

  4. 『嗨威说』算法设计与分析 - 贪心算法思想小结(HDU 2088 Box of Bricks)

    本文索引目录: 一.贪心算法的基本思想以及个人理解 二.汽车加油问题的贪心选择性质 三.一道贪心算法题点拨升华贪心思想 四.结对编程情况 一.贪心算法的基本思想以及个人理解: 1.1 基本概念: 首先 ...

  5. 【前端知识体系-CSS相关】Bootstrap相关知识

    1.Bootstrap 的优缺点? 优点:CSS代码结构合理,现成的代码可以直接使用(响应式布局) 缺点:定制流程较为繁琐,体积大 2.如何实现响应式布局? 原理:通过media query设置不同分 ...

  6. 构建 DNS 主从复制服务器

    一.主节点配置 1.yum install bind -y 安装 DNS 服务 2.vim /etc/named.conf 编辑 DNS 的配置文件 3.named-checkconf 检查配置文件 ...

  7. C语言|博客作业01

    2.1你对计算机科学与技术的了解是怎样? 一开始,我并不知道计科和软件的区别,甚至以为这是一种专业的两种叫法.进了大学之后,才一下子懂了,计科就是计科,它和软件虽有相同之处,但是终究是不一样的.计科涉 ...

  8. linux图形界面 KDE、GNOME

    1.Linux图形桌面系统组成(由上往下层次结构) 窗口管理器——Enlightenmen.icewm.Fvwm.window-maker 桌面环境———Gnome.KDE.CDE X WINDOW— ...

  9. Matplotlib入门简介

    Matplotlib是一个用Python实现的绘图库.现在很多机器学习,深度学习教学资料中都用它来绘制函数图形.在学习算法过程中,Matplotlib是一个非常趁手的工具. 一般概念 图形(figur ...

  10. 扛把子组20191121-3 Final阶段贡献分配规则

    此作业的要求参见http://edu.cnblogs.com/campus/nenu/2019fall/homework/10063 队名:扛把子 组长:孙晓宇 组员:宋晓丽 梁梦瑶 韩昊 刘信鹏 F ...