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. 【问题&解决】试用版SQL Server 2008 R2 提示评估期已过,数据库不能访问解决办法

    因为以前一直是试用版,重启服务器之后,突然数据库不能访问,提示评估期已过,都快吓死了.还好找到了解决办法特copy解决步骤如下: (笔者用的是企业版: R88PF-GMCFT-KM2KR-4R7GB- ...

  2. 【ASP.NET 进阶】根据IP地址返回对应位置信息

    其实就是使用了百度的IP库的功能接口,然后处理下就行了,效果图如下: 准备工作: 1.注册成为开度开发者,创建应用获得百度API调用的AK秘钥,百度开发中心地址:http://developer.ba ...

  3. floyd算法 青云的机房组网方案(简单)

    青云的机房组网方案(简单) 青云现在要将 nn 个机房连成一个互相连通的网络.工程师小王设计出一个方案:通过在 nn 个机房之间铺设 n-1n−1 条双向的光纤,将所有的机房连接.可以假设数据在两个机 ...

  4. hdu-5834 Magic boy Bi Luo with his excited tree(树形dp)

    题目链接: Magic boy Bi Luo with his excited tree Time Limit: 8000/4000 MS (Java/Others)    Memory Limit: ...

  5. Spring整合Hibernate详细步骤

    阅读目录 一.概述 二.整合步骤 回到顶部 一.概述 Spring整合Hibernate有什么好处? 1.由IOC容器来管理Hibernate的SessionFactory 2.让Hibernate使 ...

  6. AC日记——逃跑的拉尔夫 codevs 1026 (搜索)

    1026 逃跑的拉尔夫  时间限制: 1 s    空间限制: 128000 KB    题目等级 : 黄金 Gold 题解       题目描述 Description   年轻的拉尔夫开玩笑地从一 ...

  7. Linux安装、卸载软件

    在linux环境中,尤其是cenos中安装过一些软件,一般是二进制安装与源码安装,现小结一下linux中的安装与卸载. 一.通常Linux应用软件的安装包有三种: 1) tar包,如software- ...

  8. max_allowed_packet自动恢复

    https://dev.mysql.com/doc/refman/5.5/en/packet-too-large.html http://blog.chinaunix.net/uid-20304801 ...

  9. 34-php基础:cookie

    <?php //1.创建cookie //创建cookie,如下设置,cookie的过期时间为会话结束时 setcookie("name","gaoxiong&qu ...

  10. Asp.Net MVC 4 Web API 中的安全认证-使用OAuth

    各种语言实现的oauth认证: http://oauth.net/code/ 上一篇文章介绍了如何使用基本的http认证来实现asp.net web api的跨平台安全认证. 这里说明一个如何使用oa ...