2 协议ID 此处总为0
1 版本 STP的版本。802.1为0
1 消息类型 BPDU的类型(配置BPDU=ox00 TCN=ox80)
1 标志 TC/TCA
8 根ID 根网桥的网桥ID
4 路径开销 到达根网桥的STP开销
8 网桥ID 转发根网桥BPDU的网桥的ID
2 端口 转发根网桥BPDU的网桥的端口ID
2 消息寿命 从根桥发出BPDU之后的秒数,每经过一网桥就减一。即为跳数
2 最大寿命 网桥交根桥看作不可用前保留根桥ID的最大时间
2 hello 时间 根桥连续发出BPDU的间隔
2 转发延迟 网桥监听与学习状态所停留的时间。
通过扩展系统ID 你可以手动配置VLAN 的根交换机,第二根和交换机优先级。
原始出处http://3layer.blog.51cto.com/57448/3877
STP的工作原理
在交换机之间通过彼此交互BPDU进行比较,选出根网桥,根端口,指定端口,阻塞端口.
STP的相关术语及选举过程
(1)根网桥:它是BPDU的发源地,在交换机上开启协议时,所有交换机都会向外发送以自己为根网桥的BPDU,同时接收其他交换机发来的BPDU,用发 来的BPDU与自己的BPDU进行比较,如果自己的网桥优先级比接收到的低,那么就认为其他交换机为根网桥,把优先级高的那个根网桥地址写进自己的 BPDU,之后自己停止发送BPDU.通过上述过程,直到选出根网桥为止.
(2)根端口:到根网桥路径开销最小的那个端口即为根端口,每个非根网桥都有一个根端口,当根网桥发送BPDU时,路径开销为0,当第一个端口接收后,开 销累加为19(百兆链路为例)发送出去,当另一个交换机收到后同样把开销加19,传送出去,这样互相通告到根网桥的开销后选出根端口.比较各端口收到的 BPDU
(3)指定端口:每个网段都有一个指定端口,它是比较各端口收到的BPDU,谁具有最小的算法值(端口优先级+端口号)哪个端口就是指定端口.
(4)阻塞端口:不为上述端口的就是阻塞端口,也就是逻辑阻塞端口.
STP的比较过程
BPDU是STP的协议数据包,它里面包括了上述比较的参数,有根网桥ID(网桥优先级+MAC地址),根路径开销,发送网桥ID,端口ID(端口优先 级+端口号).以上面的图为例,假设网桥ID:SW1<SW2<SW3,这样SW1有最小的网桥优先级,所以SW1为根网桥.当根网桥选好 后,比较第二个根路径开销参数选出根端口这时要根据每个非个根网桥必须有一个根端口的原则进行选举,2,3,4,5比较接收到根网桥的BPDU,2接收时 开销为19,3接收到为38(相反方向),4接到时为38,5接收到时19,所以2,5为根端口.之后选举指定端口,由于根网桥上的端口都是指定端口,所 以只需比较其它即可.每个网段必须有一个指定端口,那么只有3,4口连接的那个网段没有指定端口,只要在这个两个其中选举就可以,由于发出的BPDU的前 两项都是相同,就需要比较第三个参数才能有结果,3的端口ID为128+3,4的端口ID为128+4,3的端口ID小于4的端口ID,所以3为指定端 口,而4为阻塞端口.
STP的增强特性
(1)Portfast:为了加快ACCESS口的收敛.一般配置在工作站,服务器,路由器端口接入处.
(2)Uplinkfast:加速冗余上行链路的收敛速度,解决上联接口的主备切换问题,一般配置在接入交换机上.
(3)Backbonefast:加快感知间接故障收敛时间.
知识扩展点:(经典但比 较复杂,慢慢看)
A部分:MST(Multiple Spanning Tree,多生成树) 结合了PVST+和802.1Q的优点,将多个VLAN映射到较少的STP实例。
MST的概念:它是一种集成了PVST的多个生成树,CST低BPDU开销及RSTP的快速收敛等优点的一种生成树协议。
MST的操作特性:
(1)将具有相同转发路径的VLAN映射到一个生成树中.
(2)根据用户对数据转发路径要求的不同来创建生成树实例.
(3)MST按照RSTP的方式收敛.
MST的术语
(1)MST区域:MST提出区域的概念与OSPF中的区域大体是一样的,都是为 减小抖动范围(网络边缘设备的接入和断开会影响全网络的收敛,有些网络是用户通信时不涉汲到时,但没有区域概念用户网络也会引起收敛,这种收敛是不必要 的),限制各协议的范围(减小协议本身数据开销,如果没有区域所有开有MST协议的设备都会接收MST的BPDU,这样BPDU就形成了广播风暴).区域 内CISCO可支持16个生成树实例.
(2)IST(Internal Spanning Tree):它是MST内部缺省的生成树实例,编号为INSTANCE 0,在MST区域内管理其他实例,默认所有VLAN都在IST中,像是默认情况下所有VLAN都在管理VLAN1中一样.在区域间进行互操作.
(3)MSTI(Multiple Spanning Tree Internal):多生成树实例,也就是用户实例,是用户自己创建的,用来承载用户数据,编号为INTSTANCE 1 - 15 ,并且只具有本地意义.它的BPDU只在本地有效,如果想出去必须附在IST中传递.
(4)CIST(Common INTERNAL Spanning Tree ):它是CST和IST的结合,在区域间时IST变成CIST,从大局看是CST的一部分,也就是CIST.
MST的操作过程
在图中上面为MST的区域1,下面为MST的区域2.操作分为区域内 操作和区域间操作.假设交换A,F为VLAN1的根,B,E为VLAN2的根.根优先 级:A<B<C<D<E<F
(1)区域内操作
图中VLAN1属于区域1的IST,VLAN2属于MSTI1,由于IST和MST是两个在逻辑上相互独立的生成树实例,所以分别有各自的替代端口.在 IST中,A为根网桥1、6、3为指定端口,2 、5为根端口,4为替代端口,VLAN1堵塞 4号端口.在MSTI1中,B为根网桥,2、3、6为指定端口,1、4为根端口,5为替代端口,VLAN2堵塞5号端口.在区域内收敛时继承RSTP的快 速收敛属性.下面区域2也通过上述进行区域间互操作,对于IST:F为根网桥,11为替代端口,13、14、10为指定端口,9、12为根端口.对于 MSTI2:E为根网桥,11、12、9为指定端口,10、13为根端口,14为替代端口.
(2)区域间操作
当7、8、15、16号端口连接时进行区域间操作,这时两个区域总体看为一个CST,进行内部根网桥,根端口,指定端口,替代端口的选举.选举过程略,结 果为A为根网桥,在区域间选举时由于C离A最近,所以相对于下面来讲C为根网桥,8或16、11、14、2、5为根端口,1、3、6、7、9、10、12 为指定端口,4、13、16为替代端口,所以用户数据经过6->5->7->8->9->14.上面是VLAN1的转发路 径.在C,D之间IST变成CIST进行交互BPDU.
(3)MST与STP互操作
MST与PVST:当MST有端口在连续2个BPDU时间都收到了PVST的BPDU那么接收到PVSTBPDU的MST端口会回退到PVST状态,与 PVST共同工作.就好像从这个端口进去,从另外端口以另一种BPDU出去,完成衔接.
B部分:
在IEEE 802.1w标准里定义了快速生成树协议RSTP(Rapid Spanning Tree Protocol)。RSTP协议在STP协议基础上做了三点重要改进,使得收敛速度快得多(最快1秒以内)。
第一点改进:为根端口和指定端口设置了快速切换用的替换端口(Alternate Port)和备份端口(Backup Port)两种角色,当根端口/指定端口失效的情况下,替换端口/备份端口就会无时延地进入转发状态。无需等待两倍Forward Delay时间。
第二点改进:在只连接了两个交换端口的点对点链路中,指定端口只需与下游网桥进行一次握手就可以无时 延地进入转发状态。如果是连接了三个以上网桥的共享链路,下游网桥是不会响应上游指定端口发出的握手请求的,只能等待两倍Forward Delay时间进入转发状态。
第三点改进:直接与终端相连而不是把其他网桥相连的端口定义为边缘端口(Edge Port)。边缘端口可以直接进入转发状态,不需要任何延时。由于网桥无法知道端口是否是直接与终端相连,所以需要人工配置。
可见,RSTP协议相对于STP协议的确改进了很多。为了支持这些改进,BPDU的格式做了一些修 改,但RSTP协议仍然向下兼容STP协议,可以混合组网。虽然如此,RSTP和STP一样同属于单生成树SST(Single Spanning Tree),有它自身的诸多缺陷,主要表现在三个方面。
第一点缺陷:由于整个交换网络只有一棵生成树,在网络规模比较大的时候会导致较长的收敛时间,拓扑改 变的影响面也较大。
第二点缺陷:近些年IEEE 802.1Q大行其道,逐渐成为交换机的标准协议。在网络结构对称的情况下,单生成树也没什么大碍。但是,在网络结构不对称的时候,单生成树就会影响网络 的连通性。
第三点缺陷:当链路被阻塞后将不承载任何流量,造成了带宽的极大浪费,这在环行城域网的情况下比较明 显。
这些缺陷都是单生成树SST无法克服的,于是支持VLAN的多生成树协议出现了。
PVST/PVST+
每个VLAN都生成一棵树是一种比较直接,而且最简单的解决方法。它能够保证每一个VLAN都不存在 环路。但是由于种种原因,以这种方式工作的生成树协议并没有形成标准,而是各个厂商各有一套,尤其是以Cisco的VLAN生成树PVST(Per VLAN Spanning Tree)为代表。
为了携带更多的信息,PVST BPDU的格式和STP/RSTP BPDU格式已经不一样,发送的目的地址也改成了Cisco保留地址01-00-0C-CC-CC-CD,而且在VLAN Trunk的情况下PVST BPDU被打上了802.1Q VLAN标签。所以,PVST协议并不兼容STP/RSTP协议。
Cisco很快又推出了经过改进的PVST+协议,并成为了交换机产品的默认生成树协议。经过改进的 PVST+协议在VLAN 1上运行的是普通STP协议,在其他VLAN上运行PVST协议。PVST+协议可以与STP/RSTP互通,在VLAN 1上生成树状态按照STP协议计算。在其他VLAN上,普通交换机只会把PVST BPDU当作多播报文按照VLAN号进行转发。但这并不影响环路的消除,只是有可能VLAN 1和其他VLAN的根桥状态可能不一致。
PVST/PVST+协议实现了VLAN认知能力和负载均衡能力,但是新技术也带来了新问 题,PVST/PVST+协议也有它们的“难言之隐”。
第一点缺陷:由于每个VLAN都需要生成一棵树,PVST BPDU的通信量将正比于Trunk的VLAN个数。
第二点缺陷:在VLAN个数比较多的时候,维护多棵生成树的计算量和资源占用量将急剧增长。特别是当 Trunk了很多VLAN的接口状态变化的时候,所有生成树的状态都要重新计算,CPU将不堪重负。所以,Cisco交换机限制了VLAN的使用个数,同 时不建议在一个端口上Trunk很多VLAN。
第三点缺陷:由于协议的私有性,PVST/PVST+不能像STP/RSTP一样得到广泛的支持,不 同厂家的设备并不能在这种模式下直接互通,只能通过一些变通的方式实现,例如Foundry的IronSpan。IronSpan默认情况下运行的是 STP协议,当某个端口收到PVST BPDU时,该端口的生成树模式会自动切换成PVST/PVST+兼容模式。
一般情况下,网络的拓扑结构不会频繁变化,所以PVST/PVST+的这些缺点并不会很致命。但是, 端口Trunk大量VLAN这种需求还是存在的。于是,Cisco对PVST/PVST+又做了新的改进,推出了多实例化的MISTP协议。
MISTP/MSTP
多实例生成树协议MISTP(Multi-InstanceSpanning Tree Protocol)定义了“实例”(Instance)的概念。简单的说,STP/RSTP是基于端口的,PVST/PVST+
是基于VLAN的,而MISTP就是基于实例的。所谓实例就是多个VLAN的一个集合,通过多个 VLAN捆绑到一个实例中去的方法可以节省通信开销和资源占用率。
在使用的时候可以把多个相同拓扑结构的VLAN映射到一个实例里,这些VLAN在端口上转发状态将取 决于对应实例在MISTP里的状态。值得注意的是网络里的所有交换机的VLAN和实例映射关系必须都一致,否则会影响网络连通性。为了检测这种错 误,MISTP BPDU里除了携带实例号以外,还要携带实例对应的VLAN关系等信息。MISTP协议不处理STP/RSTP/PVST BPDU,所以不能兼容STP/RSTP协议,甚至不能向下兼容PVST/PVST+协议,在一起组网的时候会出现环路。为了让网络能够平滑地从 PVST+模式迁移到MISTP模式,Cisco在交换机产品里又做了一个可以处理PVST BPDU的混合模式MISTP-PVST+。网络升级的时候需要先把设备都设置成MISTP-PVST+模式,然后再全部设置成MISTP模式。
MISTP带来的好处是显而易见的。它既有PVST的VLAN认知能力和负载均衡能力,又拥有可以和 SST媲美的低CPU占用率。不过,极差的向下兼容性和协议的私有性阻挡了MISTP的大范围应用。多生成树协议MSTP(Multiple Spanning Tree Protocol)是IEEE 802.1s中定义的一种新型多实例化生成树协议。这个协议目前仍然在不断优化过程中,现在只有草案(Draft)版本可以获得。不过Cisco已经在 CatOS 7.1版本里增加了M STP的支持,华为公司的三层交换机产品Quidway系列交换机也即将推出支持MSTP协议的新版本。
MSTP协议精妙的地方在于把支持MSTP的交换机和不支持MSTP交换机划分成不同的区域,分别称 作MST域和SST域。在MST域内部运行多实例化的生成树,在MST域的边缘运行RSTP兼容的内部生成树IST(Internal Spanning Tree)。
MST域内的交换机间使用MSTP BPDU交换拓扑信息,SST域内的交换机使用STP/RSTP/PVST+ BPDU交换拓扑信息。在MST域与SST域之间的边缘上,SST设备会认为对接的设备也是一台RSTP设备。而MST设备在边缘端口上的状态将取决于内 部生成树的状态,也就是说端口上所有VLAN的生成树状态将保持一致。
MSTP设备内部需要维护的生成树包括若干个内部生成树IST,个数和连接了多少个SST域有关。另 外,还有若干个多生成树实例MSTI(Multiple Spanning Tree Instance)确定的MSTP生成树,个数由配置了多少个实例决定。
MSTP相对于之前的种种生成树协议而言,优势非常明显。MSTP具有VLAN认知能力,可以实现负 载均衡,可以实现类似RSTP的端口状态快速切换,可以捆绑多个VLAN到一个实例中以降低资源占用率。最难能可贵的是MSTP可以很好地向下兼容 STP/RSTP协议。而且,MSTP是IEEE标准协议,推广的阻力相对小得多
转载于:https://blog.51cto.com/cisco130/1202550