openstack网络(四)-虚机流量分析
几种网络名词解释
1、local网络:local网络是与其他网络和节点隔离的网络。连接到本地网络的实例可以与相同计算节点上的相同网络中的其他虚拟机通信,但是可能无法与驻留在另一主机上的相同网络中的虚拟机通信。由于这种设计限制,local网络仅推荐用于测试目的。
2、flat网络:在flat网络中,不会有VLAN标记或其他网络隔离。在一些配置中,虚拟机可以驻留在与主机相同的网络中。
3、VLAN网络:VLAN网络是利用802.1q标记来隔离网络流量的网络。同一VLAN中的虚拟机被认为是同一网络的一部分,并且在同一二层广播域中。 跨VLAN通信只能通过使用路由器。
4、VXLAN网络:VXLAN网络使用唯一的分段ID(称为VNI)来区分来自其他VXLAN网络的流量。从一个虚拟机到另一个虚拟机的流量由主机使用VNI封装,并使用UDP在现有的3层网络上发送,在那里它被解封装并转发到虚拟机。使用VXLAN在现有网络上封装数据包意在解决VLAN和物理交换基础设施的限制。关于VXLAN封装如何工作的更多信息在RFC 7348中描述,可参考:https://tools.ietf.org/html/rfc7348。
使用LinuxBridge时虚机流量分析
VLAN
假设OpenStack云由VLAN 100的单个网络组成。 计算节点内的网络体系结构类似下图:
三个虚拟机实例通过各自的tap接口连接到名为brqXXXX的Linux网桥。 当映射到VLAN 100的网络中启动虚拟机时,Neutron自动创建了一个名为eth1.100的虚拟接口并连接到网络桥接器。 eth1.100接口绑定到物理接口eth1。 当来自虚拟机的流量穿过Linux网桥并流向物理接口时,eth1.100接口将此流量标记为VLAN 100,并将其放置在eth1上。 通过eth1到虚拟机的入口流量由eth1.100反向去标记,并通过网桥发送到目的虚拟机。
使用brctl show命令,上面的图可以在Linux CLI中显示如下:
输出中的网桥ID是基于虚拟VLAN接口的父网卡动态生成的。 在此网桥中,父接口为eth1。
以brq前缀开头的网桥名称是基于与之相关联的相应Neutron网络的UUID生成的。 每个网络使用自己的网桥。
如果需要多个VLAN,将创建另一个包含单独的虚拟VLAN接口的Linux网桥。 新的虚拟接口eth1.101连接到新的桥接器brqYYYY,如下图所示:
FLAT
Neutron中的flat网络旨在描述不会发生VLAN标记的网络。 与VLAN标记的网络不同,flat网络需要与网络相关联的主机的物理接口直接连接到网桥。 这意味着每个网桥和物理接口只能存在单个flat网络。
eth1连接到名为brqXXXX的桥以及对应于客户机实例的三个tap接口。 Linux内核不在主机上执行任何VLAN标记。
当创建多个flat网络时,必须将单独的物理接口与每个flat网络相关联。
Local
在Neutron中创建本地网络时,无法指定VLAN ID或甚至物理接口。 LinuxBridge插件代理将创建一个网桥,并仅将虚拟机的接口连接到网桥。 同一本地网络中的虚拟机将被连接到同一网桥,并且彼此之间自由通信。 由于主机没有连接到网桥的物理或虚拟VLAN接口,虚拟机之间的流量仅限于其所在的主机。
两个本地网络:brqXXXX和brqYYYY。 连接到同一网桥的虚拟机可以彼此通信,但在网桥外部没有其他任何东西。 当使用本地网络时,不允许不同网桥或主机上的虚拟机之间的通信。
VXLAN
当创建VXLAN网络时,LinuxBridge代理使用iproute2在用户空间创建相应的VXLAN接口,并将其连接到网桥,以代替带标签或物理接口。 VXLAN接口使用VNI和本地VTEP地址等信息。
当配置L2驱动时,Neutron将虚拟机的MAC地址及其各自的主机VTEP地址组成的静态条目存储到数据库。 当来自实例的分组穿过网桥时,主机通过查找转发数据库来确定如何转发分组。 如果找到一个条目,Neutron将把数据包转发出相应的本地接口,并相应地封装流量。 要查看每个主机上的桥接表,请使用bridge fdb show命令。
使用OVS时虚机流量分析
使用OVS的架构的可视化表示如下图所示:
虚拟机通过各自的tap接口连接到单独的Linux网桥。 Linux网桥使用veth连接到OVS集成网桥br-int。 br-int上的OpenFlow规则规定了如何通过虚拟交换机转发流量。 br-int使用OVS跳线连接到提供商网桥br-ethx。 最后,provider bridge连接到物理网络接口,允许流量进入和流出主机到物理网络基础设施。
当使用Open vSwitch驱动时,环境中的每个网络和计算节点都有自己的br-int,provider network和tunnel bridge。 跨节点的虚拟交换机通过物理网络有效地相互交叉连接。 可以在主机上配置多个provider bridge(br-ethx),但它通常需要为每个provider bridge使用专用物理接口(ethx)。
本文翻译自Learning OpenStack Networking (Neutron) Second Edition James Denton
仅供学习交流
openstack网络(四)-虚机流量分析的更多相关文章
- Openstack之Nova创建虚机流程分析
前言 Openstack作为一个虚拟机管理平台,核心功能自然是虚拟机的生命周期的管理,而负责虚机管理的模块就是Nova. 本文就是openstack中Nova模块的分析,所以本文重点是以 ...
- openstack kilo版本控制节点异常流量分析
- openstack nova 创建虚机流程
1文件 nova.api.openstack.coumpute.servers1函数 def create(self, req, body):1调用 (instances, resv_id) = se ...
- OpenStack 创建虚机过程简要汇总
1. 总体流程 翻译自原文(英文):https://ilearnstack.com/2013/04/26/request-flow-for-provisioning-instance-in-opens ...
- OpenStack 虚机网卡的创建过程
原文链接:https://www.cnblogs.com/potato-chip/p/9127083.html OpenStack虚机网卡的创建过程 OpenStack最基本和常用的操作就是启动虚机. ...
- OpenStack虚机网卡的创建过程
OpenStack虚机网卡的创建过程 OpenStack最基本和常用的操作就是启动虚机.虚机启动的过程中涉及很多内容,其中非常重要的一个环节就是创建并绑定虚机的虚拟网卡.虚机的创建和管理是Nova的任 ...
- VMWare 安装ubuntu,虚机设置静态IP接入公网
本文提供的kafka安装配置为Linux(ubuntu-16.04.3) 1.首先安装VMarea(14.0.0 build-6661328) 2.到http://www.ubuntu.org.cn/ ...
- 虚机中访问外网;NAT中的POSTROUTING是怎么搞的?
看下docker中是怎么配置的网络 在虚机中访问外网:设定了qemu,在主机上添加路由:sudo iptables -t nat -I POSTROUTING -s 192.168.1.110 -j ...
- Neutron 理解 (9): OpenStack 是如何实现 Neutron 网络 和 Nova虚机 防火墙的 [How Nova Implements Security Group and How Neutron Implements Virtual Firewall]
学习 Neutron 系列文章: (1)Neutron 所实现的虚拟化网络 (2)Neutron OpenvSwitch + VLAN 虚拟网络 (3)Neutron OpenvSwitch + GR ...
随机推荐
- Linux | 性能分析系列学习 (1)
学习重点: 把观察到的性能问题跟系统原理关联起来,特别是把系统从应用程序.库函数.系统调用.再到内核和硬件等不同的层级贯穿起来. 主要是四个方面:CPU 性能.磁盘 I/O 性能.内存性能以及网络性能 ...
- Python openpyxl Excel绘制柱形图
这是一份openpyxl的使用指南. 大体内容翻译自官网 https://openpyxl.readthedocs.io/en/stable/charts/bar.html#vertical-hori ...
- python基础-面向过程编程
面向过程编程 面向过程编程其实是一种机械式的思维方式,其核心就是"过程". 过程指的是一种解决问题的步骤,即先干什么再干什么,最后干什么. 优点:将复杂的问题流程化,进而简单化. ...
- Hibernate的多对多关系
1.表的关系: 分别有三个表:课程表.学生表.分数表.课程和学生的关系是多对多的,因为一个学生对应多个课程,而一个课程被多个学生选修.如果用一对多.多对一的观点来看待课程和学生的关系显然是不对的,因为 ...
- 201871010114-李岩松《面向对象程序设计(java)》第十一周学习总结
项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nwnu-daizh/p ...
- (C#)WPF:LinearGradientBrush 线性渐变画刷和RadialGradientBrush 圆形渐变画刷
<Window x:Class="WpfApp1.MainWindow" xmlns="http://schemas.microsoft.com/winfx/200 ...
- Mysql备份还有这么多套路,还不了解下?
逻辑备份和物理备份 逻辑备份 逻辑备份用于备份数据库的结构(CREAET DATABASE.CREATE TABLE)和数据(INSERT),这种备份类型适合数据量小.跨SQL服务器.需要修改数据等场 ...
- Python标准类型的分类
Python有3种不同的模型可以帮助对基本类型进行分类,这些类型更好的理解类型之间的相互关系以及他们的工作原理. 1 存储模型 能保存单个字面对象的类型,称为原子或标量存储: 能保存多个对 ...
- Win32窗口消息机制 x Android消息机制 x 异步执行
如果你开发过Win32窗口程序,那么当你看到android代码到处都有的mHandler.sendEmptyMessage和 private final Handler mHandler = new ...
- 《算法导论中文版》PDF 下载
电子版仅供预览及学习交流使用,下载后请24小时内删除,支持正版,喜欢的请购买正版书籍 在有关算法的书中,有一些叙述非常严谨,但不够全面:另一些涉及了大量的题材,但又缺乏严谨性.本书将严谨性和全面性融为 ...