时间: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 模式下的网络包流向的更多相关文章

  1. VLAN 模式下的 OpenStack 管理 vSphere 集群方案

    本文不合适转载,只用于自我学习. 关于为什么要用OpenStack 管理 vSphere 集群,原因可以有很多,特别是一些传统企业,VMware 的使用还是很普遍的,用 OpenStack 纳管至少会 ...

  2. VMware NAT模式下设置网络

    一.虚拟机NAT模式原理 NAT模式在VMware下又称VMnet8.在这种模式下,宿主机有两块网卡,一块是真实的物理网卡(即NAT device),连接Network:一块是 VMware Netw ...

  3. 1_NAT模式和桥接模式下的网络配置

    相信当你看到这篇文章时,你一定对linux的桥接模式和NAT模式有所了解,所以你应该是能看懂这篇文件的,希望对你有所帮助,figthing    ! 一.桥接模式:虚拟机和主机是连在同一个路由下的. ...

  4. nat模式下更改网络环境, 虚拟机中Linux无法上网的问题

    出现的问题: 1.ifconfig -a 命令下会出现eth0信息中无ip地址等等信息: 2.无法ping通baidu,也就是无法上网: 3.ping 8.8.8.8 提示 connect:netwo ...

  5. Linux系统NAT模式下设置网络网关

    1.配置Vm网络编辑器 2.配置固定IP地址 命令:vi /etc/sysconfig/network-scripts/ifcfg-ens33 #下面内容直接复制进去,如果有重复的可以去除 TYPE= ...

  6. 深入理解 Neutron -- OpenStack 网络实现(2):VLAN 模式

    问题导读 1.br-int.br-ethx的作用是什么?2.安全组策略是如何实现的?3.VLAN 模式与GRE模式有哪些不同点?流量上有哪些不同?4.L3 agent实现了什么功能? 接上篇深入理解 ...

  7. openstack项目【day24】:VLAN模式

    本节内容 一 二层基础知识 1.1 vlan介绍 1.1.1:vlan的含义 1.1.2:vlan的类型 1.1.3:vlan的不足 1.2 : 二层交换的基础知识 1.2.1:二层交换机最基本的功能 ...

  8. VLAN模式

    一 二层基础知识 1.1 vlan介绍 本小节重点: vlan的含义 vlan的类型 交换机端口类型 vlan的不足 1.1.1:vlan的含义 局域网LAN的发展是VLAN产生的基础,因而先介绍一下 ...

  9. Openstack Neutron:三层技术和实现

    目录 - 1.Neutron 三层技术简介 - 2.集中式router - 1.在节点上安装L3 agent - 2.配置外部网络 - 3.通过CLI或者Horizon 来创建路由 - 4.连接租户网 ...

随机推荐

  1. 201871030110-何飞 实验三 结对项目—《D{0-1}KP 实例数据集算法实验平台》项目报告

    201871030110-何飞 实验三 结对项目-<D{0-1}KP 实例数据集算法实验平台>项目报告 项目 内容 课程班级博客链接 班级博客 这个作业要求链接 作业要求 我的课程学习目标 ...

  2. Dynamics CRM安装教程七:Claims-based认证-内部访问配置

    DFS安装配置好后就要开始配置CRM基于内部认证访问的配置,即使用HTTPS在CRM服务器进行访问的设置.在CRM服务器中找到Dynamic CRM部署管理器,开始菜单选择Dynamic CRM部署管 ...

  3. 集群部署时的分布式session如何实现?

    session是啥?浏览器有个cookie,在一段时间内这个cookie都存在,然后每次发请求过来都带上一个特殊的jsessionid cookie,就根据这个东西,在服务端可以维护一个对应的sess ...

  4. JavaScript 中对象解构时指定默认值

    待解构字段为原始值 正常情况下, const obj = { a: 1, b: 2, }; const { a, b } = obj; console.log(a, b); // 1 2 当被解构字段 ...

  5. 03 Django web服务开发 - URL路由

    Django中的APP -Django中的一个APP就是一个应用的意思 -项目可以包含多个APP(多个应用) -一个项目对应一个网站(生活服务网站) 一个APP队形网站的一个应用(二手交易,家政服务) ...

  6. js去重的两种方法

    去重 去重方法和思路也很多,这里就介绍两种吧. 方法一: 1 2 3 4 5 6 7 8 9 10 11 function unique1(arr) {       var res = [],     ...

  7. hdu2363 枚举最短路

    (1) 二分     把所有的高度都拿过来,组合起来,sort一遍,然后二分,找到能连通的最小的那个,但这里存在一起情况,就是遇到高度差相等的时候会bug.... (2) 枚举 连通直接break   ...

  8. hdu4287 水题

    题意:          水题,就是给你一些单词,和一些按键记录,问打出下面的那些单词,每一个按键记录一共按了多少次. 思路:       直接把每个单词的每一位转换成数字,然后再把每个单词转换的数字 ...

  9. DexHunter的原理分析和使用说明(二)

    本文博客地址:http://blog.csdn.net/qq1084283172/article/details/53715325 前面的博文<Android通用脱壳工具DexHunter的原理 ...

  10. Python中的时间日期模块(time、datetime)

    目录 Datetime 获取当前时间 获取当前日期 获取当前时间的tuple元组 格式化日期和时间 时间移动 获取两个时间的时间差 时间格式转换 Time 获取距元年(1970.1.1)的秒数 当时时 ...