一、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. You Don't Know JS: this & Object Prototypes( 第3章 对象)

    前2章探索了this绑定指向不同的对象需要函数引用的call-site. 但是什么是对象,为什么我们需要指向它们? 本章探索细节. Syntax the rules  that describe ho ...

  2. [转载]mapreduce合并小文件成sequencefile

    mapreduce合并小文件成sequencefile http://blog.csdn.net/xiao_jun_0820/article/details/42747537

  3. uWSGI和Gunicorn

    因为nginx等优秀的开源项目,有不少本来不是做服务器的同学也可以写很多服务器端的程序了.但是在聊天中会发现,大家虽然写了不少代码,但是对wsgi是什么,gunicorn是什么,反向代理又是什么并不了 ...

  4. MySQL之库表详细操作

    一 库操作 1.创建数据库 1.1 语法 CREATE DATABASE 数据库名 charset utf8; 1.2 数据库命名规则 可以由字母.数字.下划线.@.#.$ 区分大小写 唯一性 不能使 ...

  5. js删除数组中元素的方法

    一.清空数组 var ary = [1,2,3,4]; ary.splice(0,ary.length);//清空数组 console.log(ary); // 输出 [],空数组,即被清空了 二.删 ...

  6. MVC实战之排球计分(三)—— 模型类的设计与实现

    此软件使用的数据库连接方式code first 由EF框架产生数据库. code first需要对模型类设计和实现.模型类是现实实体在计算机中的表示.它贯穿于整个架构, 负担着在各层次及模块间传递数据 ...

  7. 【PowerDesigner】【5】数据模型 CDM

    前言:各种箭头的含义其实我还是有点混乱,所以这里只做记录 参考博客: 1,Powerdesigner数据库建模--概念模型--ER图[转] - holycrap - 博客园https://www.cn ...

  8. poj-2689-素数区间筛

    Prime Distance Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 22420 Accepted: 5954 Descr ...

  9. 七、持久层框架(MyBatis)

    一.MyBatis学习 平时我们都用JDBC访问数据库,除了自己需要写SQL,还要操作Connection,Statement,ResultSet这些. 使用MyBatis,只需要自己提供SQL语句, ...

  10. 01二维矩阵中最大全为1的正方形maxSquare——经典DP问题(二维)

    在一个二维01矩阵中找到全为1的最大正方形 1 0 1 0 0 1 0 1 1 1 1 1 1 1 1 1 0 0 1 0 以矩阵中每一个点作为正方形右下角点来处理,而以该点为右下角点的最大边长最多比 ...