这个是802.1系列的第一弹.欢迎飞砖.转载请保留作者信息:

作者:红头发(aka CCIE#15101/JNCIP Candidate)
出处:[url]http://www.91lab.com[/url]

一.STP:
在 谈本主题之前,先简单的对STP(802.1d)做个回顾.STP是用于打破层2环路的协议,但这个协议有个最明显的缺点,就是当层2网络重新收敛的时 候,至少要等待50秒的时间(转发延迟+老化时间).50秒的时间对于一个大型的层2网络来说,是一个漫长的过程(何况这只是个理论时间,实际情况还会更 长).虽然CISCO对STP的这些缺点开发出了些弥补性的特性,比如Port Fast,Uplink Fast和Backbone Fast,用于加快层2网络的收敛时间.套用王朔的话"看上去很美".虽然这些"新"特性能够改善STP的一些不足,但是,这些特性是CISCO私有的, 而非行业标准;此外,这些特性要求我们做额外的配置,如果缺乏对这些技术的理解,还有可能导致环路问题.

二.RSTP:
RSTP 是IEEE 802.1w标准定义的,目的就是为了改进STP的一些不足,并且在某些情况下,RSTP要比之前所提到的那些Port Fast,Uplink Fast和Backbone Fast技术更为方便.但是在比较古老的交换机型号中比如CATALYST 2900XL/3500XL里,不支持RSTP与RPVST+(或叫PVRST+),还有些型号比如CATALYST 2948G-L3/4908G-L3,CATALYST 5000/5500和CATALYST 8500不支持RSTP.

802.1d标准中对端口状态的定义有:
1.监听(listening).
2.学习(learning).
3.堵塞(blocking).
4.转发(forwarding).
5.禁用(disabled).

802.1w标准中对端口状态的定义有:
1.丢弃(discarding).
2.堵塞(blocking).
3.转发(forwarding).
丢弃状态,实际上就类似802.1d中监听,学习和禁用状态的集合.

在 802.1w中,根端口(root port,RP)和指定端口(designated port,DP)仍然得以保留;而堵塞端口被改进为备份端口(backup port,BP)替代端口(alternate port,AP).不过,生成树算法(STA)仍然是依据BPDU决定端口的角色.和802.1d中对RP的定义一样,到达根桥(root bridge)最近的端口即为RP.同样的,每个桥接网段上,通过比较BPDU,决定出谁是DP.一个桥接网段上只能有一个DP(同时出现两个的话就形成 了层2环路).

在802.1d中,非RP和DP的端口,它的状态就为堵塞状态,这种状态虽然不转发数据,但是仍然需要接收BPDU来保持 处于堵塞状态.AP和BP同样也是这样.AP提供了到达根桥的替代路径,因此,一旦RP挂掉后,AP可以取代RP的位置.BP也提供了到达同一桥接网段以 及AP所不能保证到根桥连接性的冗余链路.

rstp.jpg (99.12 KB)

2007-3-29 22:33

在RSTP里,BPDU的格式稍稍变化了一些,在802.1d里,BPDU只有两个标签选项:
1.拓扑改变(TC).
2.拓扑改变确认(TCA).
而RSTP中的BPDU采用的是版本2的BPDU,换句话说802.1d网桥将丢弃这种新的BPDU.这种新的BPDU,在原先的BPDU基础上增加了6个标签选项:

bpdu.jpg (81.34 KB)

2007-3-29 22:49

BPDU的处理方 式,和802.1d也有些不同,取代原先的BPDU中继方式(非根桥的RP收到来自根桥的BPDU后,会重新生成一份BPDU朝下游交换机发送出 去),802.1w里的每个网桥,在BPDU hello time(默认2秒)的时间里生成BPDU发送出去(即使没有从根桥那里接收到任何BPDU).如果在连续3个hello time里没有收到任何BPDU,那么BPDU信息将超时不被予以信任.因此,在802.1w里,BPDU更像是一种保活(keepalive)机制. 即,如果连续三次未收到BPDU,那么网桥将认识它丢失了到达相邻网桥RP或DP的连接.这种快速老化的方式使得链路故障可以很快的被检测出来.

在RSTP里,类似Backbone Fast的下级BPDU(inferior BPDU)也被集成进去.当交换机收到来自RP或DP的下级BPDU时,它立刻替换掉之前的BPDU并进行存储:

ib.jpg (14.3 KB)

2007-3-29 23:04

如上图,由于C知道根桥仍然是可用的,它就立刻向B发送关于根桥的BPDU信息.结果是B停止发送它自己的BPDU,接收来自C的BPDU信息并将连接到C的端口做为新的RP.

传 统的802.1d标准里,STA是被动的等待层2网络的收敛(由于转发延迟的定义).对STP默认的计时器进行修改,可能又会导致STP的稳定性问题; 而RSTP可以主动的将端口立即转变为转发状态,而无需通过调整计时器的方式去缩短收敛时间.为了能够达到这种目的,就出现了两个新的变量:边缘端口 (edge port)和链路类型(link type).

边缘端口(EP)的概念,和CISCO中Port Fast特性非常相似.由于连接端工作站的端口,是不可能导致层2环路的,因此这类端口就没有必要经过监听和学习状态,从而可以直接转变为转发状态.但是 和Port Fast不同的是,一旦EP收到了BPDU,它将立即转变为普通的RSTP端口:

ep.jpg (87.05 KB)

2007-3-29 23:18

RSTP快速转变为转发状态的这一特性,可以在EP和点到点链路上实现的.由于全双工操作的端口被认为是点到点型的链路;半双工端口被认为是共享型链路.因此RSTP会将全双工操作的端口当成是点到点链路,从而达到快速收敛.

lp.jpg (88.02 KB)

2007-3-29 23:25

当STA决定出DP后,对于802.1d,仍然要等待30秒的转发延迟才能进入转发状态;在802.1w里:

c.jpg (106.55 KB)

2007-3-30 12:52

假设根桥和交换机A之间创建 了一条新的链路,链路两端的端口刚开始均处于堵塞状态,直到收到对方的BPDU.当DP处于丢弃或者学习状态,它将在自己将要发送出去的BPDU里设置提 议位(proposal bit),如上图的p0和步骤1.由于交换机A收到了上级(superior)信息,它将意识到自己的P1应该立即成为RP.此时交换机A将采取同步 (sync)动作,将该上级BPDU信息洪泛到其他的所有端口上并保证这些端口处于同步状态(in-sync).

当端口满足下列标准之一时,即处于同步状态:
1.端口为EP.
2.端口为堵塞状态(即丢弃,或者为稳定拓扑).

假 设交换机A的P2为AP,P3为DP,P4为EP.P2和P4满足上述标准之一,因此为了处于同步状态,交换机A将堵塞P3,指定它为丢弃状态,其他端口 处于同步状态(步骤2).交换机A将解除P1的堵塞状态做为新的RP,并向根桥反馈确认信息(步骤3),这个信息其实是之前步骤1所发的提议BPDU信息 的拷贝,只不过是把提议位设置成了认可位(agreement bit).当P2收到这个认可信息后,它立即进入转发状态.由于P3之前被堵塞了,当步骤3完成后,P3也执行之前P0所经过的步骤1,向下游交换机发出 提议BPDU信息,尝试快速进入转发状态.依次类推.

由于提议机制非常迅速,因此RSTP不需依赖任何计时器.如果一个指定为丢弃状态的端口,在发出提议BPDU信息后没有收到认可信息,该端口会回退到802.1d标准,从监听到学习,再慢慢进入转发状态.这种情况多发生在不理解RSTP BPDU的交换机端口上.

RSTP 里另外一个快速进入转发状态的机制,和CISCO对STP的扩展技术Uplink Fast很相似.当网桥丢失了RP后,它会把自己的AP直接设置为转发状态(新的RP).因此对于RSTP来说,Uplink Fast的特性无需手动配置.还有一点和802.1d不同的是,当交换机检测到拓扑变化后,产生TC信息,直接洪泛给整个网络,而无需像802.1d那样 先报告给根桥:

tc.jpg (80.05 KB)

2007-4-4 15:10

三.MST:
MST 是由IEEE 802.1s标准制定,来自CISCO私有的MISTP协议(Multiple Instances Spanning Tree Protocol).和RSTP一样,MST在某些CATALYST交换机上也不支持,比如:CATALYST 2900/3500XL,CATALYST 2948G-L3/4908G-L3,CATALYST 5000/5500以及CATALYST 8500.

在谈MST之前先说说关于trunk的原始版本IEEE 802.1q,该标准制定了CST(Common Spanning Tree).CST假定整个层2网络只有一个STP的实例,也就是说不管整个层2网络划分了多少个VLAN,都只有一个STP的实例.CST的一些优劣:
1.缺点:无法实现STP的负载均衡.
2.优点:节约CPU资源,整个层2网络只需要维护一个STP的实例.
而后续的802.1q增强了对VLAN的支持,出现了PVST+(每1个VLAN有1个STP的实例).

802.1s 结合了PVST+和802.1q的优点,将多个VLAN映射到较少的STP实例.之前的PVST+的优点,可以实现STP的负载均衡,对 CPU资源是个负担.而MST减少了不必要的STP的实例.如下图,假设D1和D2分别为VLAN 1到500和VLAN 501到1000的根桥,如果用PVST+,就将有1000个STP的实例,但是实际上整个层2网络只有2个逻辑拓扑,所以优化办法是将STP的实例减少 到2个,同时保留STP负载均衡的优点:

mst.jpg (70.5 KB)

2007-4-4 15:24

从技术角度来看,MST的确是最佳解决方案,但是对端用户而言却并不是必需的,因为MST通常要求比802.1d和802.1w更为复杂的配置,并且还可能遇到与802.1d的协同操作问题.

之 间提到了,多个VLAN可以映射到一个STP的实例上.但是,决定哪个VLAN和哪个STP实例相关联,以及BPDU的标签方式以便交换机可以鉴别出 VLAN与STP实例信息,这是个问题.这个时候就出现了一个类似BGP里AS的概念:区域(Region).MST的区域是指处于同一管理范围的交换机 组.为了能够成为MST区域里的一部分,交换机必须享有相同的配置属性:
1.以26个字母命名的配置名(32字节).
2.配置修正号(2字节).
3.对应4096个VLAN的元素表.

在 做VLAN到STP实例映射的时候,要先定义MST的区域,但这个信息不会在BPDU里传播,因为对于交换机来说,它只需要知道自己和邻居交换机是否处于 同一个MST区域.因此,只有一份VLAN到STP实例的映射摘要信息,配置修正号,与配置名随着BPDU被传播出去.当交换机端口收到该BPDU后, 它将解读该摘要信息,和自身的摘要信息做个比较,如果结果不同,那么该端口将成为MST区域的边界:

region.jpg (53.78 KB)

2007-4-4 15:24

根据802.1s的定义,MST网桥必须能够处理至少两种实例:
1.一个IST(Internal Spanning Tree).
2.一个或多个MSTI(Multiple Spanning Tree Instance).
当然到目前为止,802.1s只是个"准标准",这些术语可能随着最终版的802.1s而有不同的叫法.CISCO支持1个IST和15个MSTI.

由 于MST源自IEEE 802.1s,因此,要必须让802.1s和802.1q(CST)协同操作.IST实例向CST发送或从CST那里接收BPDU.IST实例其实是 RSTP实例的简化,它扩展了MST区域里的CST.IST可以看做CST外部的整个MST区域的代表:

interaction.jpg (97.11 KB)

2007-4-4 15:24

如上图,这两种图例职能相同.在典型的802.1d环境里,你可能会看到堵塞M和B之间的通信;同样的,你可能期望堵塞图中MST区域里的某个端口(而不是堵塞D).但是,由于IST是做为整个MST区域的代表,因此,你看到的就是对B和D的堵塞.

MSTI 也是RSTP的简化版实例,它只存在于MST区域的内部.MSTI默认自动运行RSTP,而无需额外的配置.和IST不同的是,MSTI永远不会和MST 区域外部通信.另外,只有IST会向MST区域外发送BPDU,而MSTI不会.在MST区域内,网桥相互交换MST BPDU,这些MST BPDU对IST来说可以看成是RSTP BPDU.

配置MST示例:
Switch(config)# spanning-tree mst configuration                    /---进入MST配置模式---/
Switch(config-mst)# instance 1 vlan 10-20             /---将VLAN 10到20映射到实例1里,VLAN范围为1-4094,实例范围为0-4094---/
Switch(config-mst)# name region1                                            /---命名MST区域,32字节长的字符,大小写敏感---/
Switch(config-mst)# revision 1                                            /---配置修正号,范围是0到65535---/
Switch(config-mst)# show pending                                     /---显示等待用户确认的配置信息---/

Pending MST configuration
Name      [region1]
Revision  1
Instance  Vlans Mapped
--------  ---------------------
0            1-9,21-4094
1             10-20
-------------------------------

Switch(config-mst)# exit                                                /---应用配置并退出MST配置模式---/
Switch(config)# spanning-tree mode mst                   /---启用MST,同时让RSTP生效---/

指定MST根桥与配置MST网桥的优先级:
Switch(config)# spanning-tree mst {instance-id} root {primary|secondary} [diameter net-diameter [hello-time ses]]
对于MST,半径范围只能为0;默认配置信息2秒发送1次,可选修改范围为1-10秒.
Switch(config)# spanning-tree mst {instance-id} priority {priority}
端口优先级的值范围是0-61440,以4096递增,值越低,优先级越高,默认为32768.

配置MST端口优先级与路径开销:
Switch(config)# spanning-tree mst {instance-id} port-priority {priority}
端口优先级的值范围是0-240,以16递增,值越低,优先级越高.
Switch(config)# spanning-tree mst {instance-id} cost {cost}
路径开销的值范围是1到200000000,取决于接口带宽.

配置MST的相关计时器:
Switch(config)# spanning-tree mst hello-time {sec}
默认配置信息2秒发送1次,可选修改范围为1-10.
Switch(config)# spanning-tree mst forward-time {sec}
默认转发延迟为15秒,可选修改范围为4-30.
Switch(config)# spanning-tree mst max-age {sec}
指定MST实例的最大生存周期,默认为20秒,可选修改范围为6-40.

指定BPDU的最大跳数:
Switch(config)# spanning-tree mst max-hops {hop-count}
默认为20跳,可选修改范围为1-255.

定义链路类型为点到点:
Switch(config-if)# spanning-tree link-type point-to-point

一些验证命令:
Switch#show spanning-tree mst configuration
验证MST区域信息.
Switch#show spanning-tree mst [instance-id]  
验证MST实例信息.
Switch#show spanning-tree mst interface [interface-id]
验证特定接口的MST实例信息.

欢迎飞砖.转载请保留作者信息:
作者:红头发(aka CCIE#15101/JNCIP Candidate)
出处:[url]http://www.91lab.com[/url]

原文地址 [url]http://www.91lab.com:81/bbs/viewthread.php?tid=14438&extra=page%3D1[/url]

转载于:https://blog.51cto.com/yanyang/476586

802.1d,802.1w,802.1s与802.1q相关推荐

  1. STP生成树协议:802.1D、PVST、PVST+、RSTP、MSTP;

    索引 STP802.1D 端口角色: 端口状态: 802.1D收敛时间: STP生成树选举: 生成树配置: 802.1D生成树的缺点 PVST -- Cisco私有生成树协议 PVST+ :在PVST ...

  2. 理解透彻--802.1d,802.1w,802.1s与802.1q

    原文链接:http://blog.sina.com.cn/s/blog_9950926401018bj6.html 照片之类的就在原文链接里面看吧.这里就不复制啦. 算啦,我先简要总结一下: STP( ...

  3. CCNP2交换:生成树:STP(802.1D)、PVST、PVST+、RSTP/RPVST、802.1W、MSTP

    文章目录 CCNP2交换:生成树:STP(802.1D).PVST.PVST+.RSTP/RPVST.802.1W.MSTP 一.线路冗余导致的问题: 1.广播风暴 2.MAC地址表翻滚: 3.同一数 ...

  4. 802.11a/b/g/n/ac, 802.11kvr 说明

    ### 欢迎访问我的博客 blog.ayla1688.cool, 原文地址:http://blog.ayla1688.cool/archives/335.html ### 802.11b 2.4GHz ...

  5. 802.11 n wlan linux驱动下载,802.11n无线网卡驱动

    802.11n无线网卡驱动万能包是专门针对802.11n无线网卡整理的无线万能驱动包,适用天Win7/Winxp/win8/Win10,包括64位和32位系统.主要是结合物理层和MAC层的优化来充分提 ...

  6. IEEE 802.15.4 CSMA-CA算法翻译(IEEE 802.15.4-2006 7.5.1.4 CSMA-CA algorithm)

    在CAP内,传输数据或MAC命令帧之前,应使用CSMA-CA算法.除非可以在确认数据请求命令后快速发送帧. CSMA-CA算法不用来传输信标网络中的信标帧.确认帧.以及在CFP中的数据帧. 在信标网络 ...

  7. IEEE802.1 802.11协议标准

    IEEE802.1标准提供了一个对整个IEEE802系列协议的概述,描述了IEEE802标准和开放系统基本参照模型(即ISO的OSI7层模型)之间的联系,解释这些标准如何和高层协议交互,定义了标准化的 ...

  8. IEEE 802.1标准简介

        IEEE 802.1简介 IEEE 802.1是一组协议的集合,如生成树协议.VLAN协议等.为了将各个协议区别开来,IEEE在制定某一个协议时,就在IEEE 802.1后面加上不同的小写字母 ...

  9. 802.11基本概念介绍【802.11 无线网络权威指南学习总结1】

    802.11基本概念介绍[802.11 无线网络权威指南学习总结1] 1.802.11网络技术介绍 IEEE 802 规格的重心放在 OSI 模型最底下的两层,因为它们同时涵盖了实体(physical ...

最新文章

  1. Spring Boot 缓存应用实践
  2. SVM学习笔记1-问题定义
  3. 深度学习(十二)稀疏自编码
  4. Cocos2d-x--Box2D绘制出两个矩形框的解决方案
  5. webpack开发配置
  6. flink网页端提交pr-修改文档报错
  7. React开发(215):React中的Fragments的动机
  8. java.lang.IllegalArgumentException: invalid comparison: java.time.LocalDateTime and java.lang.String
  9. 04-mysql常见命令,语法规范,
  10. java列表展开折叠,Android在开发中的实用技巧之ExpandableListView简单实现商品列表折叠...
  11. 【推荐收藏】1000+ Python第三方库大合集
  12. cad转dxf格式文件太大_DWG格式怎么转换成DXF格式?实测好用的转换工具都在这了...
  13. CCNA考试题库中英文翻译版及答案16
  14. sql 分组 行列转换
  15. EJB是什么?(节选)
  16. 亿能bms上位机_BMS_CAN 基于USBCAN的BMS上位机软件,VC CSharp C#编程 238万源代码下载- www.pudn.com...
  17. 基于边缘特征的二值化阈值选取方法--ywp125
  18. 谷歌gmail注册入口_Google将在今年秋天将所有人推向新版Gmail,无论他们是否愿意...
  19. 学校计算机教室防火墙,学校网络及电脑教室建设方案
  20. tensorrt部署YOLOv5模型记录【附代码,支持视频检测】

热门文章

  1. 第一章笔记——编程基础
  2. c语言中如何生成1个0到1的随机数
  3. pta天梯赛 非常弹得球
  4. Android常用颜色大全
  5. 多元微积分_三维散度
  6. 怎样开启电脑护眼模式
  7. MM,这是我第一次给你写的Blog,用一首《那一夜》开始吧
  8. RTOS 系统篇-Tickless 模式简介与测试
  9. 计算机专业可报机电一体化吗,文科生可以报考机电一体化技术专业吗
  10. Python3.7.1学习(一):redis的连接和简单使用