在一个现代的数据中心,网络设备要比以前复杂的多。服务器,交换机,路由器,存储系统和防火墙安全设备等都可能是以虚拟机和虚拟网络设备的形式存在。这些设备对传统网络管理系统造成巨大压力,因为它们无法提供可扩展的自动化方法来管理下一代网络。现在,用户希望通过更快的配置实现灵活控制基础设施。OpenStack就能满足用户这种需求。

什么是OpenStack Networking

OpenStack Networking是一个可插拔,可扩展和API驱动的系统,用于在基于OpenStack的云中管理网络和IP地址。 与其他核心OpenStack组件一样,管理员和用户可以使用OpenStack Networking来最大限度地利用现有数据中心资源。

Neutron是OpenStack Networking的代号,它是一个独立的服务,可以独立于其他OpenStack服务,如Nova(计算服务),Glance(映像服务),Keystone(认证服务),Cinder(块存储)和 Horizon(UI界面)。 OpenStack网络服务可以在多个主机之间运行,以提供弹性和冗余,也可以将它们配置在单个节点上运行。

OpenStack Networking向用户提供应用程序可编程接口或API,并将请求传递到配置的网络插件以进行相应处理。 用户能够在云中定义网络连接,并允许云运营商利用不同的网络技术来增强和支持云。与许多其他OpenStack服务一样,Neutron需要访问数据库来存储网络配置。

OpenStack网络的特性

OpenStack网络包括许多技术,例如交换,路由,负载均衡,防火墙和虚拟专用网络。这些功能可以配置利用开源或商业软件,并为云运营商提供所有工具 需要建立一个功能完整的云环境。 OpenStack Networking还为第三方供应商提供了一个框架,用于构建和增强云的功能。

交换机

虚拟交换机可以理解为将虚拟机连接到OSI模型的第2层或数据链路层的虚拟网络软件应用程序。 Neutron支持多个虚拟交换平台,包括由bridge内核模块实现的Linux桥接和Open vSwitch。Open vSwitch(也称为OVS)是一种开源虚拟交换机,支持标准管理接口和协议,包括NetFlow,SPAN,RSPAN,LACP和802.1q ,VLAN标记。然而,这些功能中的许多功能并不向用户公开OpenStack API。除了VLAN标记之外,用户还可以使用L2-in-L3隧道协议(如GRE或VXLAN)在软件中构建overlay网络。 Open vSwitch可用于虚拟机和OpenStack控制之外的设备之间通信,例如硬件交换机,网络防火墙,存储设备,专用服务器等。

路由器

OpenStack网络通过使用IP转发,iptables和网络命名空间技术实现路由和NAT功能。在网络命名空间中,我们可以在命名空间中创建套接字,绑定端口和接口。每个网络命名空间都有自己的路由表,接口和iptables进程用来提供过滤和网络地址转换。通过利用网络命名空间来分隔网络,不必担心由租户创建的网络之间重叠的子网。在Neutron中配置路由器使虚拟机能够与云环境的外部网络或其他网络进行交互和通信。路由器命名空间也被防火墙服务(Firewall as a Service)和虚拟专用网络服务(Virtual Private Network as a Service)利用。

负载均衡

这个技术首先在Grizzly版本的OpenStack中引入,负载平衡服务(也称为LBaaS)为用户提供了跨多个实例或服务器分发客户端请求的能力。 用户可以创建监视器,设置连接限制等。 Kilo版本的OpenStack在实验状态中引入了第2版的LBaaS API。 v2 API比版本1有了很大的改进,在Liberty版本中,它应该是稳定的。 OpenStack Networking配有一个用于LBaaS的插件,在开源参考实现中使用HAProxy。

防火墙

在OpenStack的kilo版本中,有两种为实例提供安全性的方法:安全组和防火墙。 使用安全组时,实例将放置在共享公共功能和规则集的组中。 Iptables规则在计算节点上配置,并过滤流入和流出连接到每个实例的Linux桥接器的流量。 在参考实现中,当使用由防火墙服务(也称为FWaaS)提供的虚拟防火墙时,安全服务工作在网络的边缘处而不是在计算节点处处理。 Liberty版本的OpenStack,FWaaS API仍然处于实验状态,在将来的版本中不能保证向后兼容性。

虚拟专用网络

虚拟专用网络或VPN在诸如因特网的公共网络上扩展专用网络。 VPN使计算机能够跨公共网络发送和接收数据,就像它直接连接到专用网络一样.Neutron提供了一组API,允许用户在使用开放网络时创建从Neutron路由器到远程网关的基于IPSec的VPN隧道。

网络功能虚拟化

网络功能虚拟化或NFV是一种网络架构概念,其建议使用传统的虚拟化技术来替代网络中的独立网络设备。这些功能包括入侵检测,缓存,网关,WAN加速器,防火墙等。 OpenStack中对NFV的支持正在加强,但是需要在当前设计模型中进行重大转变,以支持诸如直接到虚拟化实例,未分配IP的接口和其他网络设备可能需要的功能。在Juno中,支持SR- IOV,也称为single root I/O虚拟化。使用SR-IOV后,不再需要虚拟机来使用半虚拟化驱动程序或连接到主机中的虚拟网桥。相反,虚拟机绑定到利用虚拟功能(virtual function:VF)实现的SR-IOV端口,从而允许虚拟机直接访问NIC硬件。解释如何配置对SR-IOV的支持超出了本书的范围,但更多信息可以访问【OpenStack Wiki】。

网络类型

OpenStack网络的架构可以知道,在网络上看到的至少四种不同类型的流量。

管理网络

管理网络(也称为内部网络)用在主机之间的内部通信,例如消息传送服务和数据库服务之类的服务。 所有主机将通过此网络彼此通信。 在许多情况下,该相同的接口也可以用于主机之间的Glance图像传输或一些其它带宽密集的业务。管理网络可以被配置在隔离的专用网络接口上或者与另一网络组合。

API 网络

API网络用于向云中的用户和云中的服务交互的。 服务的endpoint地址(如Keystone,Neutron,Glance和Horizon)是从API网络获取的。通常的做法是对API端点使用单个接口和IP地址,以及通过SSH对主机本身进行管理访问。

外部网络

外部网络为Neutron路由器提供网络访问。 一旦路由器已配置并连接到外部网络,该外部网络将成为虚拟机和其他网络资源的浮动IP地址的来源。 外网IP地址预能路由到达并且可由内部网络或因特网上的客户端访问。

访客网络

访客网络是专用于虚拟机流量的网络。 访客网络的选项包括局限于特定节点的本地网络,flat或VLAN tag网络,或通过GRE或VXLAN封装实现的虚拟overlay网络。 用于外部网络和访客网络的物理接口可以是专用接口或与其他类型流量共享的接口。


本文翻译自Learning OpenStack Networking (Neutron) Second Edition James Denton

仅供学习交流

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

  1. 开发人员必读openstack网络基础

    云计算中的网络非常复杂,需要对网络的基础理论有一定的认识和了解,转载网上针对openstack中涉及到网络概念的文章 开发人员必读openstack网络基础1:什么是L2.L3 开发人员必读opens ...

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

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

  3. 深入理解openstack网络架构(3)-----路由

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

  4. 深入理解openstack网络架构(1)

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

  5. openstack 网络架构 nova-network + neutron

    openstack网络架构(nova-network/neutron) openstack网络体系中,网络技术没有创新,但用到的技术点很庞杂,包含bridge.vlan.gre.vxlan.ovs.o ...

  6. openstack 网络简史

    openstack 网络简史 研究openstack有2个月的时间,这段时间从网上获取N多宝贵资料,对我的学习有非常大帮助,在加上我自己的研究,最终对openstack整个网络体系有了个浅显的认识,写 ...

  7. 清除OpenStack网络与路由

    下面,我们以删除一个路由设备为例,讲解整个过程(以下命令都在控制节点执行) 列出所有路由设备,获得要删除的路由器id # neutron router-list [root@controller ~] ...

  8. OpenStack 网络服务 Neutron 私有网络构建(十九)

    本章内容基于之前提供者网络构建的基础上进行改动,之前文章参考如下: Openstack 网络服务 Neutron介绍和控制节点部署 (九) Openstack 网络服务 Neutron计算节点部署(十 ...

  9. OpenStack 网络服务 Neutron 多网卡(提供者网络)(十八)

    OpenStack 网络服务 Neutron 多网卡,分为内部网络.外部网络 使用vmware模拟两张网卡 添加网卡 网卡配置 cd /etc/sysconfig/network-scripts cp ...

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

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

随机推荐

  1. 史上最详细的C语言冒泡排序算法

    未经同意,请勿转载. void bubbing(){ ] = {,,,,,,,,,};//define init the array //going to the exinternal loop,st ...

  2. netty源码解析(4.0)-29 Future模式的实现

    Future模式是一个重要的异步并发模式,在JDK有实现.但JDK实现的Future模式功能比较简单,使用起来比较复杂.Netty在JDK Future基础上,加强了Future的能力,具体体现在: ...

  3. nyoj 739 笨蛋难题四

    笨蛋难题四 时间限制:1000 ms  |  内存限制:65535 KB 难度:3   描述 这些日子笨蛋一直研究股票,经过调研,终于发现xxx公司股票规律,更可喜的是 笨蛋推算出这家公司每天的股价, ...

  4. 力扣(LeetCode)环形链表 个人题解

    给定一个链表,判断链表中是否有环. 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始). 如果 pos 是 -1,则在该链表中没有环. 示例 1: 输入: ...

  5. 【PostMan】批量参数化的用法 之 text/csv

    目的:批量参数化,单个循环多次使用不同的参数请求. 测试数据准备 新建txt文件,输入格式: 首行 --->参数名 其他行 --->测试数据(不同测试数据需要换行) 如下所示,Number ...

  6. 【algo&ds】7.最短路径问题

    单源最短路径问题:从某固定源点出发,求其到所有其他顶点的最短路径 (有向)无权图:BFS (有向)有权图:Dijkstra算法 多源最短路径问题:求任意两顶点间的最短路径 直接将单源最短路算法调用|V ...

  7. MyBatis 数值类型 where 条件配置的坑

    复现异常 我们先通过案例复现该类异常,测试项目地址:https://gitee.com/yin_jw/demo/tree/master/mybatis-demo/springboot-mybatis- ...

  8. 白话布隆过滤器BloomFilter

    通过本文将了解到以下内容: 查找问题的一般思路 布隆过滤器的基本原理 布隆过滤器的典型应用 布隆过滤器的工程实现 场景说明: 本文阐述的场景均为普通单机服务器.并非分布式大数据平台,因为在大数据平台下 ...

  9. Openlayers ol.interaction.Select传值问题

    说明: 在使用ol.interaction.Select时,我定义的变量作用域作用不到其回调函数里,但我在select结果中,需要用到这些变量 解决方案: 虽想了个办法解决了,但不知道是不是合理:是否 ...

  10. 胜利点组——“萌猿填词”微信小程序评价

    此作业要求参见https://edu.cnblogs.com/campus/nenu/2019fall/homework/9860 1.根据(不限于)NABCD评论作品的选题; (1).你的创意解决了 ...