一、DVR描述

分布式路由

二、相关的专业术语

术语名称 术语解释
SNAT

在路由器后(POSTROUTING)将内网的ip地址修改为外网网卡的ip地址,也就是绑定浮动IP和外部通信

DNAT

在路由前(PREROUTING)将来自外网访问网关ip和对应端口的目的ip及端口修改为内部服务器的ip及端口,实现发布内部服务器。也就是不绑定浮动IP,访问外网

三、传统网络节点的处理架构

传统的云平台,部署单网络节点时,架构如下:

此种方式东西向和南北向的流量会集中在网络节点,网络节点有可能会成为瓶颈。此种部署方式采用单个网络节点,如果网络节点故障,会导致平台的虚拟机网络故障,外部无法访问虚机。

四、DVR部署模式原理

基于上面传统的架构,处理的核心是路由器服务。如果计算节点上能实现路由器服务的话,无疑是比较合理的。因此,为了降低网络节点的负载,同时提高可扩展性,从而引入了分布式路由(DVR)服务,让计算节点来处理原先大量的东西向流量和DNAT流量(有浮动IP的VM和外部的通信)。这样的话,网络节点只需要处理占到一部分的SNAT(无浮动IP的VM跟外部的通信),大大降低了负载和整个系统对网络节点的依赖。

DVR部署的优势:

1)东西向流量的吞吐量的增加

2)高东西流量下,VM的平均带宽增加

3)南北向流量和东西向流量不再相互干扰

4)当东西向流量在同一个Hypervisor上,就不会走不必要的路径

适用场景:

网络的访问过程,涉及到路由服务的至少是需要跨子网的访问。包括是否是同一机器,是否涉及外部网络。从网络流量上看,涉及东西向和南北向流量。

东西向流量:

1)同一机器

如下图所示,同一机器的VM1和VM2访问,路由器直接在br-int上转发,不经过外部网桥

2)不同机器

VM1和VM4在不同的机器上,VM1访问VM4时,请求过程是计算节点上的IR1起路由器功能,返程的过程由目的计算节点的IR1路由器起作用。两个路由器的ID和内部接口,功能其实是一样的。

南北向流量:

1)无浮动IP

这种情况下,即VM没有绑定浮动IP时,跟传统的模式比较类似。此时,租户T1在外部,通过默认的SNAT网关访问内部子网的VM2时,网络节点上的T1-SNAT起到了路由器的作用。反过来,如果VM2访问外部的网络,则仍然需要经过网络节点上的T1-SNAT路由器。为什么必须从网络节点上走,因为对于外部网络来说,看到的都是外部接口的地址,这个地址只有一个。

2) 有浮动IP

有浮动IP时,VM2和VM1之间的访问,计算节点上的专门负责的外部路由器将负责进行转发,即计算节点上的IR1

东西向流量:同一租户不同网段的虚拟机间的通信,具体分为同一个物理节点上不同网段内的虚拟机之间的通信和不同物理节点上不同网段虚拟机之间的通信。

南北向流量:虚拟机访问internet的流量通常需要经过SNAT处理和internet访问虚拟机的流量可能需要经过DNAT处理

DVR部署架构:

openstack网络DVR的更多相关文章

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

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

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

    问题导读1.什么是VETH.qvb.qvo?2.qbr的存在的作用是什么?3.router服务的作用是什么? 如果不具有Linux网络基础,比如防火墙如何过滤ip.端口或则对openstack ovs ...

  3. 绝不能错过的10款最新OpenStack网络运维 & 监控工具

    摘要 今天我们要推荐给大家的是关于奥斯汀OpenStack Summit的OpenStack网络方面功能与工具相关的技术演讲. 希望可以帮助国内的开发者.架构师和用户更好地了解OpenStack在SD ...

  4. OpenStack网络新项目Dragonflow研究

    https://www.ustack.com/blog/openstack-dragonflow/ 本文由2015年5月30日举行的OpenStack Meetup北京上的演讲整理而成,演讲者为Uni ...

  5. 一文理解OpenStack网络

    摘要:如果你能理解OpenStack的网络,那么对于其他云平台的网络,应该也可以通过分析后理解掌握了. 本文分享自华为云社区<<跟唐老师学习云网络> - OpenStack网络实现& ...

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

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

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

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

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

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

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

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

随机推荐

  1. Web3.js 0.20.x API 中文版翻译

    文档原始链接为:https://web3.learnblockchain.cn/0.2x.x/,欢迎大家前往查阅,本文只是节选开头部分的介绍及API列表索引,以下为翻译正文: 为了开发一个基于以太坊的 ...

  2. Spring Batch 介绍

    在企业应用的关键环境中,通常有需要很多应用来来处理大量的应用.这商业操作包括了自动化,并且负责的处理程序来对大量数据进行高效的处理,通常这些程序不需要人工进行干预.这些事件包括有基于时间周期产生的操作 ...

  3. 微擎查询SQL语句常用

    pdo_fetch:根据SQL语句,查询一条记录 array | boolean pdo_fetch($sql, $params = array()); // :uid 是参数的一个点位符,没有使用引 ...

  4. lanmp环境中php版本的升级为7.1

    查看php版本的信息 vim  ./lib/phps.sh 设置权限   chmod 755 ./lib/phps.sh 下载版本  ./lib/phps.sh  7.1.4 查看版本 php -v ...

  5. Linux中常用压缩打包工具

    Linux中常用压缩打包工具 压缩打包是常用的功能,在linux中目前常用的压缩工具有gzip,bzip2以及后起之秀xz.本文将介绍如下的工具常见压缩.解压缩工具以及打包工具tar. gzip2 直 ...

  6. 在写makefile过程中遇到的问题

    老师布置了linux实验作业,本身不打算写了,反正也不交实验报告,但刚好项目也需要,所以就研究了makefile.不过还是要批评自己,怎么能这么的颓废呢? 刚开始做的时候出现了这样的错误,代码如下: ...

  7. 如何改变输出方式(让printf输出结果保存到TXT文本中)

    查阅相关资料,汇总如下: #include <stdio.h> #include <stdlib.h> int main() { char money= 's'; char a ...

  8. IDEA 自动生成 serialVersionUID 的设置

    打开File菜单,选择Settings选项,打开Settings设置对话框:左边树形目录,打开Editor>Inspections

  9. C++类型检查

    与大多数语言一样,C++也是类型决定了能对该对象进行的操作,一条表达式是否合法依赖于其中参与运算的对象的类型,C++是一种静态数据类型语言,它的类型检查发生在编译时, 因此编译器知道程序中每一个变量对 ...

  10. 64位Ubuntu下配置CP-ABE环境

    CP-ABE环境配置 本文密码学专业,论文仿真需要CP-ABE,现将配置过程作个记录 cpabe依赖pbc,pbc依赖gmp,gmp依赖M4.bison.flex,所以.. sudo apt-get  ...