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 ...
随机推荐
- 算法编程题积累(3)——腾讯笔试"构造回文“问题
首先理解题意,回文串的特点:倒序后跟原串相同.故而可以将原串看成向一个回文串在任意位置添加任意字符后形成的字符串,也就是说原串中存在一段未必连续的回文序列. 通过分析可以知道AC本题的核心思路:求出回 ...
- CentOS7 reset脚本,用于初始化新的虚拟机
能用,有待完善 CentOS7测试 哈哈 #!/bin/bash #************************************************************** #Au ...
- CSS(6)---通俗讲解浮动(float)
CSS(6)---通俗讲解浮动(float) CSS有三模块:盒子模型.浮动 .定位.上篇博客有讲到 盒子模型地址:CSS(5)---通俗讲解盒子模型 一.理解浮动 1.概念 概念 浮动可以理解为让某 ...
- Mysql中,update语句引起的时间戳自动更新问题
前几天遇到一个奇怪的问题. 在Mysql数据库中有一张表,表中有一个字段是timestamp类型的.我在update别的字段时,这个timestamp字段的时间会自动更新为当前时间. 后来发现,是My ...
- 如何构建自己的 react hooks
我们组的前端妹子在组内分享时谈到了 react 的钩子,趁此机会我也对我所理解的内容进行下总结,方便更多的同学了解.在 React 的 v16.8.0 版本里添加了 hooks 的这种新的 API,我 ...
- Mac上sonar插件的安装及使用
本文主要讲解sonar的安装及使用. 分为两个维度来讲解 1. 使用sonarqube以及自带的Derby数据库 2. 使用sonarqube以及配置mysql数据库 ---------------- ...
- 小白学 Python 爬虫(1):开篇
人生苦短,我用 Python 引言 各位同学大家好,好久不见(可能只有一两天没见:囧)~~~ 先讲一件事情,昨天为啥没更新. emmmmmmmmm,当然是因为加班啦,快到年底了,公司项目比较忙,最近的 ...
- 使用navicat操作PostPreSql创建表并设置主键自增和触发器
使用navicat操作PostPreSql创建表并设置主键自增和触发器 1).创建递增序列 2).创建表,使用序列,设置主键递增 3)定义触发函数 自动生成时间戳函数 CREATE OR REPLAC ...
- 记一次LDAP主从同步配置
LDAP主从同步 OpenLDAP在2.3版本之前的同步复制带有一系列缺点如只支持一主多从模式等,在此缺点就不多说,下文着重介绍一下OpenLDAP V2.4以后的同步负复制功能 同步功能 2.4版最 ...
- Hadoop之HDFS文件系统
概念 HDFS,它是一个文件系统,用于存储文件,通过目录树来定位文件:其次,它是分布式的,由很多服务器联合起来实现其功能,集群中的服务器有各自的角色. HDFS的设计适合一次写入,多次读出的场景,且不 ...