连接物理服务器

每个物理主机所需的网卡数量取决于云平台使用领域,组织的安全性和性能要求以及硬件的可用性。要完全运行的OpenStack云必须具有管理网络和数据网络。如果物理服务器只有一个网卡接口,导致的是管理数据和业务数据走一个接口。这样的部署方式在规模比较小时可以用,但是如果大型的数据中心这种方法并不可取。我的建议是,尽可能在多个接口之间分散控制和数据流量。

单网卡

对于使用单个网卡接口的物理主机,进出虚拟机的流量、SSH管理流量和API流量的所有流量都会流过这个接口。 此配置可能导致严重的性能降级,因为客户可以通过消耗所有可用带宽来对其主机创建拒绝服务攻击。 下图说明了在使用Open vSwitch驱动程序时对所有流量使用单个物理接口。 在控制节点上,单个接口连接到桥接器,并处理外部网络,虚拟机,管理和API服务的流量。 在计算节点上,单个接口处理客户和管理流量:

多网卡

为了降低访客网络带宽消耗影响管理流量的可能性并维持更稳健的安全状态,建议在多个物理接口之间隔离流量。 至少应使用两个接口:一个用作管理和API流量的专用接口,另一个用作外部和访客流量的专用接口。 其他接口可用于进一步隔离流量。 下图显示了在使用Open vSwitch驱动程序时,在两个物理接口上拆分的流量:


跨主机安装网络服务

与其他OpenStack服务一样,云运营商可以跨多个节点拆分安装OpenStack Networking服务。 小型部署可以使用单个节点托管所有服务,包括网络,计算,数据库和消息传递。 其他人可能会发现使用专用计算节点和专用网络节点来处理通过软件路由器来路由访客流量和分担Neutron DHCP和元数据服务会有好处。 以下部分描述了几个常见的服务部署模型。

使用单个控制节点安装

在由单个控制节点和一个或多个计算节点组成的环境中,控制节点将可能处理所有联网服务和其他OpenStack服务,同时计算节点还要提供计算节点服务所需资源。 下图演示了托管所有OpenStack管理和网络服务的控制器节点,其中未使用Neutron第3层代理。两个物理接口用于分隔管理和虚拟机网络流量:



上图反映了单个组合的控制节点/网络节点和一个或多个计算节点的使用,Neutron仅提供实例和外部网关设备之间的2层连接。 需要外部路由器来处理网段之间的路由。

下图演示了托管所有OpenStack管理和网络服务的控制器节点,包括Neutron L3代理。 三个物理接口用于提供单独的控制和数据平面:

上图反映了在使用Neutron L3代理的网络配置中使用单个组合的控制节点/网络节点和一个或多个计算节点。 使用Neutron创建的软件路由器安装在控制器节点上,并处理连接的租户网络和外网之间的路由。

使用专用网络节点安装

网络节点用于处理大多数或所有OpenStack网络服务,包括L3代理,DHCP代理,元数据代理等。 使用专用网络节点可以提供安全性和弹性,因为控制器节点将处于较小的网络和资源饱和的风险。 一些Neutron服务,例如L3和DHCP代理和Neutron API服务,可以跨多个节点部署以实现冗余和增加性能。

下图演示了托管所有OpenStack Networking服务的网络节点,包括Neutron L3,DHCP,元数据和LBaaS代理。 但是,Neutron API服务仍然安装在控制器节点上。 在必要时使用三个物理接口来提供单独的控制和数据平面:

上图反映了在使用Neutron L3代理的网络配置中使用专用网络节点。 使用Neutron API创建的软件路由器安装在网络节点上,并处理连接租户网络和外部提供商网络之间的路由。 neutron-server服务器的Neutron API服务保留在控制器节点上。

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

仅供学习交流

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

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

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

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

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

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

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

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

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

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

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

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

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

  7. openstack 网络简史

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

  8. 清除OpenStack网络与路由

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

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

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

随机推荐

  1. 009.Kubernetes二进制部署kube-apiserver

    一 部署master节点 1.1 master节点服务 kubernetes master 节点运行如下组件: kube-apiserver kube-scheduler kube-controlle ...

  2. java多线程与线程并发四:线程范围内的共享数据

    当多个线程操作同一个共有数据时,一个线程对共有数据的改变会影响到另一个线程.比如下面这个例子:两个线程调用同一个对象的的方法,一个线程的执行结果会影响另一个线程. package com.sky.th ...

  3. CentOS安装图解(在VMware 8上安装)

    近期准备学习一下CentOS,打算先在VMware上装一个用于初步了解. 整体步骤如下: 一.获取CentOS安装镜像.可以从以下几个地方获取,顺便提一句,我是从163下载的. 1.CentOS的官方 ...

  4. 淘宝小练习#css

    * { margin: 0; padding: 0; } a { text-decoration: none; } .box { background: #f4f4f4; } /* 头部样式STAR ...

  5. nyoj 21-三个水杯(BFS)

    21-三个水杯 内存限制:64MB 时间限制:1000ms Special Judge: No accepted:7 submit:18 题目描述: 给出三个水杯,大小不一,并且只有最大的水杯的水是装 ...

  6. Mybatis实现数据的增删改查

    Mybatis实现数据的增删改查 1.项目结构(使用maven创建项目) 2.App.java package com.GetcharZp.MyBatisStudy; import java.io.I ...

  7. ArcGIS API For Javascript:新增热力图层的方法

    当我们要制作一个热力图层,可以通过以下 3 步来实现: 引入类 在 require 中需引入 "esri/layers/FeatureLayer", "esri/rend ...

  8. bat脚本知识总结

    1常用基本命令 1.1 @ 它的作用是让执行窗口中不显示它后面这一行的命令本身 1.2 echo 它其实是一个开关命令,就是说它只有两种状态:打开和关闭.于是就有了echo on 和echo off两 ...

  9. go modules 学习

    go modules 学习 tags:golang 安装 只需要golang的版本是1.11及之后的,这个模块就内置好了 环境变量 (1) 配置GoLang的GOROOT (2) 可以不配置GoLan ...

  10. 在Raspberry Pi上创建容器

    树莓派Raspbian默认是支持LXC容器的,下面我们介绍一下在树莓派上创建并运行容器的过程. 1. 安装LXC相关的package $ sudo apt-get install -y git lxc ...