OpenStack neutron vlan 模式下的网络包流向
时间:2015-01-15 18:09:41
1、什么是Neutron?
Neutron是OpenStack的network project ,是NaaS(networking-as-a-service)专题,负责网络虚拟化,开始于OpenStack的Folsom版,取名为Quantum,在Havana版本改名为Neutron。Neutron并非提供特定的网络功能,而是为了管理网络,提供网络服务,你可以使用不同厂商开发的插件,在同一个架构中可以同时拥有多种网络模式(vlan、gre、vxlan等),当然前提是使用ml2插件。
2、为什么是Neutron?
1、云租户可以按照自己的意愿进行网络设计
2、允许各租户添加各种网络插件
3、Neutron提供丰富的网络服务,诸如LB-aas,firewall-aas等
3、Neutron当中vlan模式的网络包流向

这张图主要想说明三种场景,第一:位于不同物理机上的虚拟机与虚拟机的通信;第二:位于同一物理机上的虚拟机与虚拟机之间的通信;第三:虚拟机与外网的通信。
不同物理机上的虚拟机之间的通信:
vlan模式下的网络特点:每一次的通信多需要进行vlan号和tag号的相互转换,其中将vlan号转换为tag号是在int-br-xxx,将tag号转换为vlan号是在phy-br-xxx;int-br-xxx和phy-br-xxx是一对veth设备,其中int-br-xxx位于桥br-int上,phy-br-xxx位于桥br-xxx上;
包从VM1出来到达compute1的网卡,已经将tag转换为vlan号,因此包带着vlan号进入交换机,寻找相应路径进入compute2经过桥br-int将vlan号转换为tag号,从而进入虚拟机VM2;
那么在这个过程当中包经过了哪些设备?
查看虚拟机的ip
nova list|grep vnc-test
| 187949aa-0c6f-47d9-b9b3-317e8eea7897 | vnc-test | ACTIVE | - | Running | net=10.0.0.231 |
根据虚拟机的ip查找port id:
neutron port-list|grep 10.0.0.231
| b4396540-8b7f-4386-9db5-3e1660a7ff48 | | fa:16:3e:e0:1b:58 | {"subnet_id": "5d9500ef-2f11-4455-9398-478026939659", "ip_address": "10.0.0.231"} |

第一个字段便是port id(b4396540-8b7f-4386-9db5-3e1660a7ff48),tapxxx、qvbxxx、qbrxxx通过brctl进行相关联,可以使用命令在相应的计算节点上查看:
brctl show
bridge name bridge id STP enabled interfaces
qbrb4396540-8b 8000.9afa4f3bb650 no qvbb4396540-8b
tapb4396540-8b
eth2是数据网络(虚拟机与虚拟机之间通信的网络),其中桥br-eth2与eth2进行桥接,它们可配ip也可不配;
当包从交换机到达eth2进入br-eth2(ovs-vsctl add-port br-eth2 eth2,往桥br-eth2添加端口eth2),经过phy-br-eth2转发到int-br-eth2,在这里将vlan号转换为tag号(一个vlan号对应一个tag号),从而包到达虚拟机;
同一物理机上的虚拟机之间的通信:
此场景与上一场景唯一的区别在于无需通过交换机。
虚拟机与外网的通信:
包从VM1出来到达交换机(在到达compute1的网卡时已经将tag号转换为vlan号),从交换机到达网络节点,经过namespace,在经过网络节点的外网网卡,与外网进行通信。
详细解释:
VM1(虚拟机)->eth0(VM1虚拟机的网卡)->br-int->br-eth2->eth2->switch->eth2(网络节点网卡)->namespace(br-ethx(包从phy-br-eth2端口转发到int-br-eth2(在这里将vlan号转换为tag号))->br-int(qr-xxx)->br-ex(qg-xxx))->网络节点的外网网卡;

使用如下命令查看namespace:
ip netns
使用如下命令进入namespace,xxxx代表ip netns执行结果的内容:
ip netns exec xxxx bash
4、结语
这是在Icehouse版本上,Juno版本,已将qr-xxx和qg-xxx分隔开来(前提是使用dvr)。neutron_packet_flows-notes-handout这篇文章有必要去读读(对于刚开始接触OpenStack Neutron这块的人员),该文件我已上传。
相关链接:https://wiki.openstack.org/wiki/Neutron
OpenStack neutron vlan 模式下的网络包流向的更多相关文章
- VLAN 模式下的 OpenStack 管理 vSphere 集群方案
本文不合适转载,只用于自我学习. 关于为什么要用OpenStack 管理 vSphere 集群,原因可以有很多,特别是一些传统企业,VMware 的使用还是很普遍的,用 OpenStack 纳管至少会 ...
- VMware NAT模式下设置网络
一.虚拟机NAT模式原理 NAT模式在VMware下又称VMnet8.在这种模式下,宿主机有两块网卡,一块是真实的物理网卡(即NAT device),连接Network:一块是 VMware Netw ...
- 1_NAT模式和桥接模式下的网络配置
相信当你看到这篇文章时,你一定对linux的桥接模式和NAT模式有所了解,所以你应该是能看懂这篇文件的,希望对你有所帮助,figthing ! 一.桥接模式:虚拟机和主机是连在同一个路由下的. ...
- nat模式下更改网络环境, 虚拟机中Linux无法上网的问题
出现的问题: 1.ifconfig -a 命令下会出现eth0信息中无ip地址等等信息: 2.无法ping通baidu,也就是无法上网: 3.ping 8.8.8.8 提示 connect:netwo ...
- Linux系统NAT模式下设置网络网关
1.配置Vm网络编辑器 2.配置固定IP地址 命令:vi /etc/sysconfig/network-scripts/ifcfg-ens33 #下面内容直接复制进去,如果有重复的可以去除 TYPE= ...
- 深入理解 Neutron -- OpenStack 网络实现(2):VLAN 模式
问题导读 1.br-int.br-ethx的作用是什么?2.安全组策略是如何实现的?3.VLAN 模式与GRE模式有哪些不同点?流量上有哪些不同?4.L3 agent实现了什么功能? 接上篇深入理解 ...
- openstack项目【day24】:VLAN模式
本节内容 一 二层基础知识 1.1 vlan介绍 1.1.1:vlan的含义 1.1.2:vlan的类型 1.1.3:vlan的不足 1.2 : 二层交换的基础知识 1.2.1:二层交换机最基本的功能 ...
- VLAN模式
一 二层基础知识 1.1 vlan介绍 本小节重点: vlan的含义 vlan的类型 交换机端口类型 vlan的不足 1.1.1:vlan的含义 局域网LAN的发展是VLAN产生的基础,因而先介绍一下 ...
- Openstack Neutron:三层技术和实现
目录 - 1.Neutron 三层技术简介 - 2.集中式router - 1.在节点上安装L3 agent - 2.配置外部网络 - 3.通过CLI或者Horizon 来创建路由 - 4.连接租户网 ...
随机推荐
- 201871030126-王会娟 实验二 个人项目—《D{0-1} KP》项目报告
项目 内容 课程班级博客链接 https://home.cnblogs.com/u/wanghuijuan815 这个作业要求链接 https://www.cnblogs.com/nwnu-daizh ...
- 【PHP】用了这么久的Laravel框架,你分析过核心架构了没
Laravel最初的设计是为了面向MVC架构的,它可以满足如事件处理.用户身份验证等各种需求.另外它还有一个由管理数据库强力支持,用于管理模块化和可扩展性代码的软件包管理器. Laravel以其简洁. ...
- python进阶(3)--条件判断、用户输入
文档目录: 一.if语句二.检索条件三.用户输入input四.while+inoput(),让用户选择何时退出五.break与continue六.while循环处理字典和列表 ------------ ...
- JDK8中新日期时间API
它们面临的问题是:可变性:像日期和时间这样的类应该是不可变的.偏移性:Date中的年份是从1900开始的,而月份都从0开始.格式化:格式化只对Date有用,Calendar则不行.此外,它们也不是线程 ...
- 【笔记】《Redis设计与实现》chapter8 对象
8.1 对象的类型与编码 Redis中的每个对象都由一个redisObject结构表示,该结构中和保存数据有关的三个属性分别是type属性.encoding属性和ptr属性 typedef struc ...
- Window、Ubuntu传输文件到阿里云服务器
Ubuntu传输文件到阿里云服务器 scp -r file(ubuntu的文件) root(用户名)@xx.xx.xx.xx(公网ip):/home/(目标文件夹) Window传输文件到阿里云服务器 ...
- redhat 7.6 安装Python3后配置 yum pip3 升级openssl
安装python3后需要重新配置yum 配置yum vim /usr/bin/yum #! /usr/bin/python #修改前#! /usr/bin/python2 #修改后 vim /usr/ ...
- 图解Leetcode组合总和系列——回溯(剪枝优化)+动态规划
Leetcode组合总和系列--回溯(剪枝优化)+动态规划 组合总和 I 给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 ...
- 4.Linux命令基本格式与简单使用
Linux命令名组成: 在Linux/Unix系统下输入命令,就会进行相应的操作,那么这个命令有如下组成: 命令名 [选项] [参数] 注:[]的内容代表可选 命令实例: ls #显示当前文件夹下的所 ...
- POJ 2752 同一个串的前后串
题解东北赛回来再补 #include<stdio.h> #include<string.h> int next[500000]; int ans[500000]; char s ...