Trunk 口  思科称为:native VLAN  华为称为:PVID   说白了就是Trunk端口本身所属的VLAN,因为,Trunk端口要"透传"多个VLAN的流量,其本身不属于任何一个VLAN。但是Trunk端口在交换机内部要与一个VLAN ID关联,此VLAN ID就是 思科的:native VLAN  华为的:PVID。

Trunk口的native VLAN 是不带标签通过的。到对端后会打上对端端口响应的native VLAN标签。如果两端native VLAN不一致就会发生VLAN跳跃问题(VLAN hopping)!
思科有CDP 思科发现协议(Cisco Discovery Protocol)若两端的trunk端口native VLAN 配置不一致会发出相关告警。
 
 
由于802.1Q规范并没有禁止多个连贯的标记(tag)串连起来。事实上QinQ技术也正是利用这一点缓解了单层VLAN4096个的限制。提供了4096*4096中可能的组合较好扩展了分配给每个VLAN ID的12比特的限制。   但是这一特性也成为了一下攻击的基础。
 
    双嵌套(double-nested)VLAN攻击
          注意:仅当Trunk口的native VLAN 与攻击者所在端口的VLAN ID 一致且分别属于用Trunk口互联的两台交换机下时,攻击才会生效。
 
                攻击者<--->交换机1<--->交换机2<--->受害者
 
         利用的就是Trunk口的native VLAN 是不带标签通过的。到对端后会打上对端端口响应的native VLAN标签。的特性。
         1、在攻击者发出以太网帧时就带上2个tag。外层tag与攻击者接入端口的tag一致。内层tag与受害者所在VLAN一致。
         2、当该攻击帧进入交换机1后通过交换机1~2之间的Trunk 口时由于与Trunk口nativeVLAN一致所以剥离外层的tag标签 此时攻击帧还剩下一层与受害者VLAN相同的内层标签。
         3、当交换机2Trunk端口收到攻击帧后发现攻击帧VLAN与受害者VLAN相同 按照该VLAN转发。  至此完成了跨越VLAN的攻击。
 
         在协议立场上看,并没有违规事件——讲802.1Q的帧头部串接起来并不违法。
          有三种方法可以来组织该攻击:
         1、确保不将native VLAN分配给任何访问端口。
 
         2、从Trunk中清除native VLAN(不建议使用)。
 
         3、强制Trunk上的所有流量都携带一个tag(首选的方法)。 警告:当与不支持该方法的交换机互相通信时native VLAN上的通信会中断!
              配置:不同版本可以在全局或端口下配置
                  全局 CiscoSwitch(config)#vlan dot1q tag native
                  端口 CiscoSwitch(config)#interface GigabitEthernet2/1
                         CiscoSwitch(config-if)#switchport trunk native vlan tag
 
       此外就是一些针对VLAN透传相关协议的攻击
 
       动态中继协议DTP,是 VLAN 组中思科的私有协议,主要用于协商两台设备间链路上的中继过程及中继封装 802.1Q 类型。DTP的用途是取代动态ISL(Dynamic ISL,DISL)。
        针对性的在连接普通用户的LAN口配置成access端口并将它们植入一个static(静态)VLAN.这样该端口会静默的丢弃DTP帧。
 
 
 
 
 

另外 阅读华为的文档时  基于MAC 基于子网 基于策略等VLAN划分都有如下描述:

  • 当收到的报文为untagged报文时,会以报文的源MAC地址为根据去匹配MAC-VLAN表项。如果匹配成功,则按照匹配到的VLAN ID和优先级进行转发;如果匹配失败,则按其它匹配原则进行匹配。

  • 当收到的报文为tagged报文时,处理方式和基于接口的VLAN一样:如果接口允许携带该VLAN标记的报文通过,则正常转发;如果不允许,则丢弃该报文。
     
    若使用软件自行打上tag则可以不需要基于MAC 基于子网 基于策略匹配 可骗过交换机。(我推测的)所以....还是老老实实的做基于端口的VLAN划分吧
     

交换机安全学习笔记 第四章 VLAN的更多相关文章

  1. [Python学习笔记][第四章Python字符串]

    2016/1/28学习内容 第四章 Python字符串与正则表达式之字符串 编码规则 UTF-8 以1个字节表示英语字符(兼容ASCII),以3个字节表示中文及其他语言,UTF-8对全世界所有国家需要 ...

  2. o'Reill的SVG精髓(第二版)学习笔记——第四章

    第四章:基本形状 4.1线段 SVG可以使用<line>元素画出一条直线段.使用时只需要指定线段起止点的x和y坐标即可.指定坐标时可以不带单位,此时会使用用户坐标,也可以带上单位,如em. ...

  3. 交换机安全学习笔记 第五章 DHCP缺陷攻击

    关于DHCP攻击有如下几类攻击方式:   一.耗尽DHCP地址池    通过随机生成源MAC地址,然后伪造DHCPDISCOVER数据包.耗尽DHCP服务器地址池.   免费的攻击工具:  Yersi ...

  4. Java 学习笔记 ------第四章 认识对象

    本章学习目标: 区分基本类型与类类型 了解对象与参考的关系 从打包器认识对象 以对象观点看待数组 认识字符串的特性 一."=" 和 "==" 当=用于基本类型时 ...

  5. 《metasploit渗透测试魔鬼训练营》学习笔记第四章—web应用渗透

    继续来学习metasploit...记好笔记是很重要的,下面开始正文: 二.WEB应用渗透技术     1.WEB应用渗透基础知识        先介绍WEB应用攻击的主要类型(大致介绍,具体请自行查 ...

  6. 交换机安全学习笔记 第六章 IPV4 ARP攻击

    ARP欺骗攻击 常用工具:  dsniff(Linux/windows).ettercap(Linux/windows).cain(仅windows). ARP欺骗攻击的目的是嗅探发往某主机的所有IP ...

  7. c语言学习笔记第四章——字符串和格式化输入、输出

    B站有视频演示 本章学习printf函数的输入输出,字符串的定义与实用. 字符串 字符串(character string)是一个或多个字符的序列,如下所示: "Zing went the ...

  8. [core java学习笔记][第四章对象与类]

    4.3 用户自定义类 4.3.1 类数组的声明 需要两次new Employee[]=staff=new Employedd[3]; staff[0]=new Employedd(参数列表); sta ...

  9. The Road to learn React书籍学习笔记(第四章)

    高级React组件 本章将重点介绍高级 React 组件的实现.我们将了解什么是高阶组件以及如何实现它们.此外,我们还将深入探讨 React 中更高级的主题,并用它实现复杂的交互功能. 引用 DOM ...

随机推荐

  1. Python在VSCode环境抓取TuShare数据存入MongoDB环境搭建

    本文出自:https://www.cnblogs.com/2186009311CFF/p/11573094.html 总览 此文分为5个部分 第一:Anaconda(下载和安装) 第二:VSCode( ...

  2. [大数据] hadoop高可用(HA)部署(未完)

    一.HA部署架构 如上图所示,我们可以将其分为三个部分: 1.NN和DN组成Hadoop业务组件.浅绿色部分. 2.中间深蓝色部分,为Journal Node,其为一个集群,用于提供高可用的共享文件存 ...

  3. 闰年计算——JavaScript 语言计算

    ㈠闰年是如何来的? 闰年(Leap Year)是为了弥补因人为历法规定造成的年度天数与地球实际公转周期的时间差而设立的.补上时间差的年份为闰年. ㈡什么是闰年? 凡阳历中有闰日(二月为二十九日)的年, ...

  4. viewport的相关知识点

    主要说一些viewport的基本原理以及使用 ㈠概念 手机浏览器是把页面放在一个虚拟的“窗口”(viewport)中,通常这个虚拟的“窗口”(viewport)比屏幕宽,这样就不用把每个网页挤到很小的 ...

  5. 2018 焦作网络赛 L Poor God Water ( AC自动机构造矩阵、BM求线性递推、手动构造矩阵、矩阵快速幂 )

    题目链接 题意 : 实际上可以转化一下题意 要求求出用三个不同元素的字符集例如 { 'A' .'B' .'C' } 构造出长度为 n 且不包含 AAA.BBB CCC.ACB BCA.CAC CBC ...

  6. Java并发编程的艺术笔记(七)——CountDownLatch、CyclicBarrier详解

    一.等待多线程完成的CountDownLatch CountDownLatch允许一个或多个线程等待其他线程完成操作,像加强版的join.(t.join()是等待t线程完成) 例: (1)开启多个线程 ...

  7. Java并发编程的艺术笔记(四)——ThreadLocal的使用

    ThreadLocal,即线程变量,是一个以ThreadLocal对象为键.任意对象为值的存储结构.这个结构被附带在线程上,也就是说一个线程可以根据一个ThreadLocal对象查询到绑定在这个线程上 ...

  8. sessionStorge和localStorage的使用-踩坑记_09

    sessionStorge的使用 sessionStorage 属性允许你访问一个 session Storage 对象.它与 localStorage 相似,不同之处在于 localStorage ...

  9. 自动化部署脚本--linux执行sh脚本

    自动化部署脚本文件目录: 运行主程序:./install.sh #!/bin/bash SCRIPTPATH=$(cd "$(dirname "$0")"; p ...

  10. python学习---50行代码实现图片转字符画1

    转自:https://blog.csdn.net/mm1030533738/article/details/78447714 项目链接: https://www.shiyanlou.com/cours ...