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. hiho #1066 : 无间道之并查集

    #1066 : 无间道之并查集 时间限制:20000ms 单点时限:1000ms 内存限制:256MB 描述 这天天气晴朗.阳光明媚.鸟语花香,空气中弥漫着春天的气息……额,说远了,总之,小Hi和小H ...

  2. JVM性能调优监控工具jps、jstack、jmap、jhat、jstat、jinfo、jconsole使用详解

    JDK本身提供了很多方便的JVM性能调优监控工具,除了集成式的VisualVM和jConsole外,还有jps.jstack.jmap.jhat.jstat等小巧的工具,本博客希望能起抛砖引玉之用,让 ...

  3. JS如何设置和获取盒模型对应的宽和高

    ㈠方式一:通过DOM节点的 style 样式获取  dom.style.width/height  只能获取使用内联样式的元素的宽和高. <!DOCTYPE html> <html ...

  4. Springboot 使用Jedis

    Springboot 使用Jedis 依赖 <dependency> <groupId>org.springframework.boot</groupId> < ...

  5. HTML控件 隐藏

    div的visibility可以控制div的显示和隐藏,但是隐藏后页面显示空白: style="visibility: none;" document.getElementById ...

  6. Java-线程等待、唤醒与中断

    一.sleep() 与 wait() 两者都会让当前线程进入等待状态.唤醒后都需要等待 CPU 资源,不一定会立即执行.若在等待期间被调用此线程的的 interrupt() 方法,将会产生 Inter ...

  7. (组件的)状态(state)和属性(props)之间有何不同

    State 是一种数据结构,用于组件挂载时所需数据的默认值.State 可能会随着时间的推移而发生突变,但多数时候是作为用户事件行为的结果.Props(properties 的简写)则是组件的配置.p ...

  8. php面向对象 练习

    实例一:求一个圆环的面积,大圆半径:10    小圆半径:5 造一个圆的类: class Yuan { public $r; function __construct($r) //半径初始化 { $t ...

  9. java 深入HashMap

    HashMap也是我们使用非常多的Collection,它是基于哈希表的 Map 接口的实现,以key-value的形式存在.在HashMap中,key-value总是会当做一个整体来处理,系统会根据 ...

  10. Python基本语法_函数_返回值

    目录 目录 前言 函数的返回值 在函数中Return和Print的区别 函数中的文档 前言 函数的返回值是函数重要的组成部分.函数的根本在于实现程序的部分功能,所以很多时候我们需要将函数执行后的结果返 ...