一、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. pip3 install requests Cannot open D:\Python35\Scripts\pip3-script.py

    1.问题描述: 使用pip(或pip3)指令安装模块时,出现了Cannot open D:\Python35\Scripts\pip3-script.py的报错信息 2.原因分析: pip安装出错 3 ...

  2. LeetCode--290--单词模式

    问题描述: 给定一种 pattern(模式) 和一个字符串 str ,判断 str 是否遵循相同的模式. 这里的遵循指完全匹配,例如, pattern 里的每个字母和字符串 str 中的每个非空单词之 ...

  3. 小程序点击跳转外部链接 微信小程序提示:不支持打开非业务域名怎么办 使用web-view 配置业务域名

    小程序点击跳转外部页面 1.index.wxml  添加点击事件   标签可以是小程序支持的 <!-- 邀请好友 --> <cover-image src='/img/invitat ...

  4. 00-自测4. Have Fun with Numbers

    Notice that the number 123456789 is a 9-digit number consisting exactly the numbers from 1 to 9, wit ...

  5. 『MXNet』第三弹_Gluon模型参数

    MXNet中含有init包,它包含了多种模型初始化方法. from mxnet import init, nd from mxnet.gluon import nn net = nn.Sequenti ...

  6. 第二阶段——个人工作总结DAY05

    1.昨天做了什么:将值由一个活动传递到另一个活动. 2.今天打算做什么:打算制作修改密码的界面. 3.遇到的困难:因为是任务是分开的,所需要获取的值是通过另一个活动(不是自己任务)的传递过来的,所以还 ...

  7. php面向对象比较

    在PHP中有 = 赋值符号.== 等于符号 和 === 全等于符号, 这些符号代表什么意思? (1).=是赋值符 (2).使用 == 符号比较两个对象 ,比较的仅仅是两个对象的内容是否一致. (3). ...

  8. gleez框架获得时间控件

    1,首先你要在你的页面上引用一个js <script src="<?php echo URL::base() ?>media/vendor/datepicker/Wdate ...

  9. tomcat压缩版配置

    下载Jdk并安装 配置Java环境变量 因为需要用services.bat安装,services.bat中 rem Make sure prerequisite environment variabl ...

  10. Hadoop 2.7.3 完全分布式维护-简单测试篇

    1. 测试MapReduce Job 1.1 上传文件到hdfs文件系统 $ jps Jps SecondaryNameNode JobHistoryServer NameNode ResourceM ...