在一个现代的数据中心,网络设备要比以前复杂的多。服务器,交换机,路由器,存储系统和防火墙安全设备等都可能是以虚拟机和虚拟网络设备的形式存在。这些设备对传统网络管理系统造成巨大压力,因为它们无法提供可扩展的自动化方法来管理下一代网络。现在,用户希望通过更快的配置实现灵活控制基础设施。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. beacon帧字段结构最全总结(一)——beacon基本结构

    一.beacon帧主要结构 二.MAC  header 1.Version:版本号,目前为止802.11只有一个版本,所以协议编号为0 2.Type:定义802.11帧类型,802.11帧分为管理帧( ...

  2. Hibernate中关于Query返回查询结果是类名的问题

    query.list返回的是一个装有类的信息的集合,而不装有数据库信息的集合.如下图 运行结果为:   因为得到的集合是类,所以要将list泛型设为那个类,并且将得到的集合进行.get(x).getx ...

  3. H5+app -- 关于ajax提交问题

    1.前阵子在做系统的h5+ app为满足手机端也能进行业务操作,例如:提货,扫描入库之类的.所以就要将做接口,从手机端调用后台系统的方法. 2.例如这样的请求格式,但是呢,每次请求它都直接跳到erro ...

  4. java中线程同步的几种方法

    1.使用synchronized关键字 由于java的每个对象都有一个内置锁,当用此关键字修饰方法时, 内置锁会保护整个方法.在调用该方法前,需要获得内置锁,否则就处于阻塞状态. 注: synchro ...

  5. XML解析之Jsoup

    操作xml文件 解析(读取):将文档中的数据解读到内存中 写入:将内存中的数据保存到XML文档中.持久化的存储 解析xml的方式 DOM:将标记语言文档一次性加载进内存,在内存中形成一颗dom树 优点 ...

  6. Java基础:数组的声明,循环,赋值,拷贝。

    数组的声明 一般有两种形式的声明: int[] a; int a[]; 这两种声明都没错,但是大多数都使用第一种声明,因为变量名是独立的,不带任何符号. 声明一个数组,并没有将a真正的初始化为一个数组 ...

  7. java编程思想第四版第八章习题

    第一题 package net.mindview.polymorphism; //基类-自行车 class Cycle{ } //子类-单轮车 class Unicycle extends Cycle ...

  8. webpack优化之玩转代码分割和公共代码提取

    前言 开发多页应用的时候,如果不对webpack打包进行优化,当某个模块被多个入口模块引用时,它就会被打包多次(在最终打包出来的某几个文件里,它们都会有一份相同的代码).当项目业务越来越复杂,打包出来 ...

  9. 使用Charles设置https代理到http以及证书安装(服务端篇)

    1.下载ssl证书到[登录],并且设置证书[始终信任] 2.SSL Proxying设置,Location为*,可以抓全部接口的https请求 参考:https://www.jianshu.com/p ...

  10. Java中的工具类究竟如何命名?

    先来几个例子 JDK自带工具类 Arrays.asList(); Objects.equals(); Collections.sort(); Spring框架工具类 StringUtils.isEmp ...