1. 功能

1)允许不同vlan的network下的虚拟机之间通信。一般情况下,虚拟机只能在相同vlan的网络下通信。

2)允许虚拟机发送vlan报文。

2. 组网图

虚拟机出来的tap设备连接到tbr网桥上,此时tap设备不打tag值, vlan_mode = trunk ,trunk port 与 subport 共用一个tap设备。

tbr网桥与br-int网桥用ovs自身的patch对相连。

3. 流表转换

  • trunk port场景 , 即虚拟机出来的报文不带vlan信息

  1)untag -> local vlan

  报文从vm1下行经过br-int后,在br-int匹配类似转换流表 “in_port=5,vlan_tci=0x0000 actions=mod_vlan_vid:3”

  2) local vlan -> untag  

  若报文欲从trbxxx网桥上行进入vm2,在trbxxx匹配类似转换流表 “in_port=4,dl_vlan=3 actions=strip_vlan” 

  注:若报文欲从br-phy物理网桥出本主机,则走普通流程,在br-phy将local vlan 转换成 真正用户网络的vlan

  • subport场景, 即虚拟机出来的报文带vlan信息

  3) vm vlan -> local vlan

  报文从vm1下行经过br-int后,在br-int匹配类似转换流表 “in_port=5,dl_vlan=1000 actions=mod_vlan_vid:4”

  4) local vlan -> vm vlan

  若报文欲从trbxxx网桥上行进入vm2,在trbxxx匹配类似转换流表 “in_port=4,dl_vlan=4 actions=mod_vlan_vid:1000”

4. 代码处理流程

  1) 生成xml文件。后续会根据xml文件挂载tap设备,此处tap设备是挂载到tbr网桥上。

  2) 准备组网环境。

    在创建虚拟机前,nova compute 进行plug动作准备好相关资源,如创建tbr网桥,用patch对连接tbr与br-int网桥。

    然后启动虚拟机,将tap设备挂载到tbr网桥上。

  3) ovs-agent 扫描 tbr网桥上新增的tap设备(trunk port),然后下发相应的流表。

    对于subport,由于无法在tbr网桥上扫描到,只能通过neutron北向接口创建subport时,neutron-server通过rpc消息通知ovs-agent,再下发流表。

5. 环境相关操作

  neutron port-create $network_id_1 --trunkport:type trunk

  neutron port-create $network_id_2 --trunkport:type subport --trunkport:parent_id $trunkport_id

   (创建subport的net与trunk port的net不是同一个,即vlan不同)

  nova boot --image xxx --flavor 1 --nic port-id=$trunkport_id (必须指定trunkport而不是subport来创建VM)

  vconfig add eth0 100 (在虚拟机中添加vlan 100的子接口)

  dhcpcd -L eth0.100 (在该子接口获取ip)

虚拟机 vlan trunk 特性的更多相关文章

  1. 2.1-VLAN/TRUNK/VTP

    2.1-VLAN/TRUNK/VTP     注意:配置VLAN时要退出VLAN配置模式才会执行 如果VLAN被删除或者shutdown,那么属于这个vlan的接口将被阻塞(灯一直是橙色,变不了绿色) ...

  2. 配置网卡为vlan trunk

    http://www.microhowto.info/tutorials/802.1q.html Configure an Ethernet interface as a VLAN trunk hos ...

  3. vlan trunk配置

    vlan trunk配置 Trunk:中继干道 作用:一条链路能承载多个vlan的流量,并对不同vlan的流量进行不同标记 trunk能够使vlan跨越交换机 PT配置 配置vlan:两台交换机同样的 ...

  4. vtp——vlan trunk protcal

    server模式——服务器模式,在该模式下可以建立vlan,删除vlan,该模式下的vlan可以下发到其他的交换机 client模式——客户端模式,被动模式.交换机可以接受从server模式下传来的v ...

  5. CCNA 之 八 交换基础 VLAN TRUNK VTP

    交换基础 主要知识点: 二层交换基础 Vlan的概念 Trunk的概念 VTP 二层交换基本配置 首先来看下园区网分层结构 交换机的主要功能: Address learning 学习MAC地址 会维护 ...

  6. 实验13:VLAN/TRUNK/VTP/

    实验10-1: 划分VLAN Ø    实验目的通过本实验,读者可以掌握如下技能:(1) 熟悉VLAN 的创建(2) 把交换机接口划分到特定VLAN Ø    实验拓扑 实验步骤要配置VLAN,首先要 ...

  7. vlan trunk vtp端口聚合

    第一步:端口聚合(两端都需要做相同的操作) 第二步:在服务器端配置为服务器模式 第四步:在服务器端添加vlan 第五步:在两端分别将不同的端口添加到不同的vlan

  8. 深入理解java虚拟机---jdk8新特性(二)

    1.jdk8新特性 1.新特性 2.lambda函数表达式的作用 A: 替换内部类 B:对集合的操作并行化

  9. 网络基础知识系列:阐述VLAN和Trunk

    网络性能是影响的效率的重要因素. 大的广播域分割方法,旨在提高网络性能.一个接口上,可是,路由器的LAN接口数量有限,它的主要功能是在网络间数据传输,而不是对终端设备提供网络接入. 訪问LAN的功能还 ...

随机推荐

  1. 【C#】1.算法温故而知新 - 简单的桶排序

    该算法的时间复杂度是O(M+N),M为桶的个数,N为待排序的个数 缺点: 1.不适用于小数 2.当数值过多,太浪费空间,比如数值范围为0~99999,那需申请100000个变量,也就是要写成a[100 ...

  2. 怎样快速免费获取Windows版本的ZBrush

    ZBrush是一款专业的3D绘制软件及数字雕刻软件,随着3D技术的不断进步,ZBrush也是越来越受到业内欢迎,在世界拥有了众多的粉丝和爱好者.相信很多用户对软件的体验就是从使用的版本开始的,本文就教 ...

  3. 合工大OJ 1330 种树

    Description 某校大门外长度为L的马路上有一排树,每两棵相邻的树之间的间隔都是1米.我们可以把马路看成一个数轴,马路的一端在数轴0的位置,另一端在L的位置:数轴上的每个整数点,即0,1,2, ...

  4. Unity 协程与线程

    协程是不同步的 协程 不是 线程,协同程序是 不同步 的 一个线程在程序中和其他线程是异步运行的,在多处理器机器中一个线程可以同时与所有其他线程的实时运行其代码,这使得线程编程能够解决很复杂的事情,因 ...

  5. [3D跑酷] DataManager

    DataManager管理游戏中数据,当然这个类中大部分的属性和方法都是Public 函数列表

  6. Pureftp-安全的ftp服务器部署

    一.简介: Pure-FTPd 是一款免费(BSD)的,安全的,高质量和符合标准的FTP服务器. 侧重于运行效率和易用性. 它提供了简单的答案,他满足了大众化的需求,包括普通用户以及主机供应商们 Pu ...

  7. S2--《深入.NET平台和C#编程》

    第一章    深入.NET框架 1.1  Microsoft  .NET框架概述 .NET框架的优势 * 提供了一个面向对象的编程环境,完全支持面向对象编程,.NET 框架提高了软件的可复用性,可扩展 ...

  8. mac 无法连接android手机进行调试 解决方案

    第一步: 查看usb设备信息 在 终端输入:system_profiler SPUSBDataType     可以查看连接的usb设备的信息 比如我的usb信息如下(部分内容): Android: ...

  9. MySQL学习指引

    mysql指引 1,mysql基本安装 2,mysql多实例安装与维护 3,备份恢复 备份数据库 分备数据库 分备表 恢复数据库

  10. linux下c++开发环境安装(eclipse+cdt)

    方法一: 此外,众所周知,Eclipse是Java程序,因此很容易就实现了跨平台,也是众所周知,Java的大型程序非常吃内存,即使有512MB内存, 仍然感觉Eclipse的启动速度很慢.个人认为1G ...