openstack网络DVR
一、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的更多相关文章
- 深入理解 Neutron -- OpenStack 网络实现(3):VXLAN 模式
问题导读1.VXLAN 模式下,网络的架构跟 GRE 模式类似,他们的不同点在什么地方?2.网络节点的作用是什么?3.tap-xxx.qr-xxx是指什么? 接上篇:深入理解 Neutron -- O ...
- 深入理解 Neutron -- OpenStack 网络实现(1):GRE 模式
问题导读1.什么是VETH.qvb.qvo?2.qbr的存在的作用是什么?3.router服务的作用是什么? 如果不具有Linux网络基础,比如防火墙如何过滤ip.端口或则对openstack ovs ...
- 绝不能错过的10款最新OpenStack网络运维 & 监控工具
摘要 今天我们要推荐给大家的是关于奥斯汀OpenStack Summit的OpenStack网络方面功能与工具相关的技术演讲. 希望可以帮助国内的开发者.架构师和用户更好地了解OpenStack在SD ...
- OpenStack网络新项目Dragonflow研究
https://www.ustack.com/blog/openstack-dragonflow/ 本文由2015年5月30日举行的OpenStack Meetup北京上的演讲整理而成,演讲者为Uni ...
- 一文理解OpenStack网络
摘要:如果你能理解OpenStack的网络,那么对于其他云平台的网络,应该也可以通过分析后理解掌握了. 本文分享自华为云社区<<跟唐老师学习云网络> - OpenStack网络实现& ...
- 开发人员必读openstack网络基础
云计算中的网络非常复杂,需要对网络的基础理论有一定的认识和了解,转载网上针对openstack中涉及到网络概念的文章 开发人员必读openstack网络基础1:什么是L2.L3 开发人员必读opens ...
- 深入理解openstack网络架构(4)-----连接到public network
原文地址: https://blogs.oracle.com/ronen/entry/diving_into_openstack_network_architecture3 译文转自:http://b ...
- 深入理解openstack网络架构(3)-----路由
原文地址: https://blogs.oracle.com/ronen/entry/diving_into_openstack_network_architecture2 译文转自:http://b ...
- 深入理解openstack网络架构(1)
原文地址: https://blogs.oracle.com/ronen/entry/diving_into_openstack_network_architecture 译文转载自:http://b ...
随机推荐
- android -------- 常用依赖库
// bannercompile 'com.youth.banner:banner:1.4.9' // recyclecompile 'com.android.support:recyclervie ...
- 集合 (set)
set 是一个无序不重复的元素集,集合跟字典是无序的,不支持索引 创建集合: 第一种方式:通过{ }创建 >>> num={1,2,3,4,3,3,1} >>> n ...
- docker-compose 在线安装升级
参考:https://docs.docker.com/compose/install/ curl -L "https://github.com/docker/compose/releases ...
- 【Oracle】【5】主键、外键管理
前言: 1,事实上我是不使用外键的,所以本文只介绍主键 正文: (1)创建表的同时创建主键约束 create table STUDENT ( ID int , NAME varchar(8), AGE ...
- MySQL Workbench中如何开启MySQL的远程帐号
'; /* 上面的语句表示将 discuz 数据库的所有权限授权给 root这个用户,允许 root用户在192.168.119.120进行远程登陆,并设置 root用户的密码为 123456 . 下 ...
- 接口测试--postman简介
一.什么是接口测试 接口测试是测试系统组件间接口的一种测试.接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点.测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑 ...
- 一、SQLite学习
由于公司业务拓展,需要开发一个基于ASP.NET Core2.0+AdminLTE架构的后台管理系统,数据库选择方面,选择了使用SQLite轻便. SQLite:一个软件库,实现自给自足,无服务器,零 ...
- Linux Shell获取系统资源使用百分比(CentOS)
CPU使用率: top -b -n | | 内存使用率: free -m | grep '^-' | awk '{print $3/($3+$4)*100"%"}' IO使用率(F ...
- iptables增加、删除、修改、查询、保存防火墙策略教程
一.查看现有防火墙策略 iptables -L -n iptables -L -n --line-number #--line-number参数会显示策略编号,该编号在删除策略时使用 二.增加防火墙策 ...
- python 豆瓣验证码识别总结
总结: pytesseract 识别比较标准的图片 识别成功率 还是不错的. 验证码的图片识别 需要先处理好 再用pytesseract 识别 from PIL import Image ...