虚拟机去混杂模式与 vlan in vxlan 特性

2023-05-16

虚拟机 vlan trunk 特性

 

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)

1. 去混杂模式

1.1 背景

混杂模式(Promiscuous Mode)是指一台机器能够接收所有经过它的数据流,而不论其目的地址是否是它。是相对于通常模式(又称“非混杂模式”)而言的。

这被网络管理员使用来诊断网络问题,但是也被无认证的想偷听网络通信(其可能包括密码和其它敏感的信息)的人利用。

在云计算openstack背景下,去混杂模式就是要抑制未知单播,只让目的mac是自身的报文或者广播/组播报文才允许进入虚拟机,减少不必要的虚拟机对报文处理所需的性能消耗。

1.2 未知单播

未知单播,即设备MAC表中没有该单播帧的目的MAC条目。

在交换机工作原理中,当交换机起动时,MAC地址表是空的,所以如果此时A主机发送一个帧给主机B,那么当交换机接受此帧的时候,查看源地址(主机A),并将它添加到MAC地址表中,但是交换机并不知道主机B在哪个端口上(MAC地址表中没有主机B的MAC地址),所以这个帧就是 未知单播帧 。交换机会泛洪这个帧。

1.3 组网图

 

1.4 流表分析

混杂模式时,policy网桥流表类似"...actions=normal...",不对流量进行区别,按正常转发即可。

去混杂模式时,policy网桥会添加以下相关流表:


priority=2,in_port=2,dl_dst=01:00:00:00:00:00/01:00:00:00:00:00,action=normal  //广播、组播报文正常转发
priority=2,in_port=2,dl_dst=$vm_mac,actions=normal  //对目的地址是VM本身mac的报文则正常转发
prrority=1,in_port=2,actions=drop  //其他报文就丢弃  

2. vlan in vxlan

2.1 作用

虚拟机之间通信的vlan报文能够封装到vxlan中在外部网络中传输,类似于qinq(vlan in vlan)。

2.2 组网图

 

2.3 流表分析

  • policy网桥
    • 虚拟机出来的报文

      不带vlan信息的报文,在pkt_mark做下标记后往下送,pkt_mark 信息存储在寄存器中:


vlan_tci = 0x0000/0x1ffff actions=load:1 -> NXM_NX_PKT_MARK[31..31], normal  

      带vlan的报文,将vlan信息(共12bit)保存在pkt_mark后往下送:


actions = move:OXM_OF_VLAN_VID[0..11] -> NXM_NX_PKT_MARK[0..11], load: 0-> NXM_NX_PKT_MARK[31..31], strip_vlan, normal  
    • 进入虚拟机的报文

      pkt_mark为0x1的报文,直接送往虚拟机:


pkt_mark = 0x00000001 actions = normal  

      pkt_mark不为0x1的报文,从pkt_mark获取到vlan信息后送往虚拟机:


actions = move:NXM_NX_PKT_MARK[0..11] -> OXM_OF_VLAN_VID[0..11], normal  
  • br-tun网桥
    • 虚拟机出来的报文

      pkt_mark为0x1的报文,按正常流程直接走table 20/22 :


pkt_mark = 0x00000001, actions = resubmit(,20) / (,22)  

      pkt_mark不为0x1的报文,获取并设置vlan信息,设置vni后走vxlan隧道出主机:


actions = move:NXM_NX_PKT_MARK[0..11] -> OXM_OF_VLAN_VID[0..11], set_tunnel:0x1388, output:3  
    • 进入虚拟机的报文

      报文不带vlan信息时,设置pkt_mark标志后,按照正常流程走table 10:


vlan_tci = 0x0000/0x1fff, tunnel_id = 0x1388, actions = load:1 -> NXM_NX_PKT_MARK[31..31], resubmit(, 10)  

      报文带vlan信息时,保存vlan信息到pkt_mark中,并将vxlan的vni修改为local vlan


tun_id = 0x1388, actions = move: OXM_OF_VLAN_VID[0..11] -> NXM_NX_PKT_MARK[0..11], load: 0->NXM_NX_PKT_MARK[31..31], mod_vlan_vid:1, resubmit(, 10)

转载于:https://www.cnblogs.com/allcloud/p/5587337.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

虚拟机去混杂模式与 vlan in vxlan 特性 的相关文章

  • VLAN实验

    实验拓扑 实验配置 1 将接口划入vlan 2 配置路由器 xff0c 通过池塘下发地址 测试 pc2可以访问pc4 pc5 pc6 pc5不能访问pc6 pc1可以访问2 4 5 6
  • 抓包展示vlan报文(8021Q)

    VLAN数据帧格式 要使交换机能够分辨不同VLAN的报文 xff0c 需要在报文中添加标识VLAN信息的字段 IEEE 802 1Q协议规定 xff0c 在以太网数据帧的目的MAC地址和源MAC地址字段之后 协议类型字段之前加入4个字节的V
  • ovs测试vlan

    ovs端口默认是trunk模式 xff0c 且所有的VLAN tag都可以通过 单个网桥实现vlan隔离的场景 实验拓扑如下 xff1a 1 首先创建一个网桥ovs switch xff0c 在命名空间里创建两个接口p0和p1 分别分配地址
  • devstack安装OpenStack Pike版本 (OVN+VLAN)

    控制节点配置文件 Sample DevStack local conf This sample file is intended to be used for your typical DevStack environment that 3
  • ubuntu下配置vlan功能--官网vlan how to

    http ubuntuforums org showthread php t 61 703387 ubuntu官网介绍 802 1q VLAN HOWTO Doing 802 1q trunking to an Ethernet switc
  • 虚拟机去混杂模式与 vlan in vxlan 特性

    虚拟机 vlan trunk 特性 1 功能 1 xff09 允许不同vlan的network下的虚拟机之间通信 一般情况下 xff0c 虚拟机只能在相同vlan的网络下通信 2 xff09 允许虚拟机发送vlan报文 2 组网图 虚拟机出
  • Linux 网卡VLAN、BOND配置

    此篇是在转载博文上做修订 原文内容有些地方不妥当 Redhat Linux的网络配置 xff0c 基本上是通过修改几个配置文件来实现的 xff0c 虽然也可以用ifconfig来设置IP xff0c 用route来配置默认网关 xff0c
  • 有了网段为什么还要有VLAN???

    近几日 xff0c 在学习VLAN及VXLAN方面的知识 xff0c 对于产生原因做一个总结及详解 VLAN xff08 Virtual Local Area Network xff0c 虚拟局域网 xff09 xff0c 其主要用途是用来
  • 华为S5720-52X-PWR-LI/S5720-52X-LI交互机堆叠和VLAN配置

    主要配置流程为 xff1a 交换机设备上电通过console线或网线连接到交换机后 xff0c 进行参数和堆叠配置断电 xff0c 连接好光纤重新上电 1 首次登录交换机 使用Putty软件 xff0c 通过串口 xff0c 连接到交换机
  • Linux下如何配置Vlan

    VLAN是虚拟局域网的缩写 一个物理交换机上可以共存多个VLAN xff0c 这些交换机通过Linux软件配置 xff0c 而不是通过硬件接口 xff08 您仍然需要配置实际的硬件交换机 xff09 VLAN作为名称建议一次组合多个LAN
  • 详解:什么是VXLAN?

    本文介绍了什么是VXLAN xff0c 以及VXLAN的基本概念和工作原理 什么是VXLAN VXLAN xff08 Virtual eXtensible Local Area Network xff0c 虚拟扩展局域网 xff09 xff
  • VLAN技术

    知识重点 认识VLAN VLAN简介 xff1a VLAN xff08 Virtual Local Area Network xff09 即虚拟局域网 xff0c 是将一个物理的LAN在逻辑上划分成多个广播域的通信技术 VLAN目的 xff
  • 华为 5680 OLT native vlan配置方式

    分为两部分 xff1a 1 配置给ONU端口 2 配置给OLT端口 1 在ONU 端口生效 ont port native vlan profile mode 命令功能 此命令用于配置ONT端口的缺省VLAN 当ONT的Native VLA
  • h3c vlan配置

    1 基于端口的VLAN配置命令 SWA vlan 10 创建VLAN SWA vlan10 port Ethernet1 0 1 向当前VLAN添加端口 SWA vlan 20 创建VLAN SWA vlan20 port Ethernet
  • VLAN标签

    大家好呀 xff0c 我是请假君 xff0c 今天又来和大家一起学习数通了 xff0c 今天要分享的知识是VLAN标签 我们知道 xff0c 以太网交换机根据MAC地址表来转发数据帧 MAC地址表中包含了端口和端口所连接终端主机MAC地址的
  • 交换机VLAN的定义、意义以及划分方式

    什么是VLAN 虚拟网技术 xff08 VLAN xff0c Virtual Local Area Network xff09 的诞生主要源于广播 广播在网络中起着非常重要的作用 xff0c 如发现新设备 调整网络路径 IP地址租赁等等 x
  • VLAN是什么,我们为什么需要它?

    VLAN是一组逻辑上的设备和用户 这些设备和用户并不受物理位置的限制 可以根据功能 部门及应用等因素将它们组织起来 相互之间的通信 任何典型的LAN环境都包括各种各样的设备和计算机系统 它们都有各自的用途 有些设备应用是特有的 语音 数据
  • 配置Sub-VLAN跨交换机的Super-VLAN

    示例图 一 实验目的 1 Sub VLAN跨交换机的Super VLAN 二 注意事项 1 必须先创建配置每个sub vlan 再创建 配置Super vlan 2 当Super vlan开启了 VLAN内ARP代理功能时 各个sub vl
  • 交换机学习总结

    网络中数据转发主要由交换机和路由器完成 路由器属于网络七层结构的网络层 第三层 交换机一般属于数据链路层 第二层 设备 也有三层交换机和四层交换机 分别属于网络层和传输层设备 路由器负责在不同的局域网内进行数据转发 比如你要访问百度的服务器
  • 计算机网络实验——交换机及VLAN的配置

    VLAN Virtual Local Area Network 虚拟局域网 环境 Win7 Cisco Packet Tracer Instructor 需求 划分三个子网 具体步骤如下 第一步 打开Cisco Packet Tracer

随机推荐