一、什么是STP(802.1D)
STP协议生来就是为了冗余而存在的,单纯树型的网络无法提供足够的可靠性,由此我们引入了额外的链路,这才出现了环路这样的问题。但单纯是标准的802.1D STP协议并不能实现真正的冗余与负载分担。
STP为IEEE 802.1D标准,它内部只有一棵STP tree,因此必然有一条链路要被blocking,不会转发数据,只有另外一条链路出现问题时,这条被blocking的链路才会接替之前链路所承担的职责,做数据的转发。无论怎样,总会有一条链路处于不被使用的状态,冗余是有了,但是负载分担是不可想象的。
cisco对STP做了改进,它使得每个VLAN都运行一棵stp tree,这样第一条链路可以为vlan 1 2 3服务,对vlan 4 5 6 blocking,第二条链路可以为vlan 4 5 6 forwarding,对vlan 1 2 3关闭,无形中实现了链路的冗余,负载分担。这种技术被称之为PVST+随着网络的发展,人们发现传统的STP协议无法满足主备快速切换的需求,因为STP协议将端口定义了5种状态,分别为:blocking listening learning forwarding disabling,想要从blocking切换至forwarding状态,必需要经过50秒的周期,这50秒我们只能被动地去等待。20秒的blocking状态下,如果没有检测到邻居发来的BPDU包,则进入listening,这时要做的是选举Root Bridge、Designate Port、Root Port,15秒后,进入learning,learning状态下可以学习MAC地址,为最后的forwarding做准备,同样是15秒,最后到达转发状态。这样的延时在现代网络环境下是让人极为难以忍受的。
二、生成树的原理和工作过程
2.1.原理
在一个二层交换网络中,逻辑的阻塞部分接口;形成从源到目标唯一路径(即使得从根到所有的节点仅存在唯一的路径);当最佳路径故障时,自动疏通被堵塞的部分接口,来继续网络通讯;实现线路备份
注意: 阻塞是逻辑阻塞,不是物理阻塞,所以不是shutdown
2.2.工作过程(即选举过程)
(1)第一步选出根网桥
对比BPDU中的桥ID: 桥ID= 网桥优先级 + MAC地址(本地背板池)
交换机作为网桥设备时,关注终端设备发送的数据帧中的MAC地址;但交换机本地无MAC;
需要运行STP协议的交换机,必须在出厂时由厂家进行MAC的写入-存储于交换机的背板地址池中
若交换的背板地址池中MAC地址为多个,将选择数值最小的地址来进行选举
先比较网桥优先级(0-65535,默认32768),小优;若优先级一致,比较MAC地址,数值小优;
注明: 在每一棵生成树实例中,有且仅有一台交换机作为根桥;负责发送BPDU,计算和指挥整个树的收敛;作为树形结构的根部,交换网络部分的中心节点;
(2)第二步选出根端口
在每一台非根网桥上有且仅有一个接口;本地离根网桥最近的接口,用于接收来自根网桥的BPDU,同时转发终端的数据帧;
- ① 比较从根网桥发出,之后通过该接口进入时最小的cost值;
- ② 若入向的cost相同,比较接口对端的设备的BID,小优
- ③ 若对端设备的BID相同,那么比较对端接口的PID;小优
- ④ 若对端设备的PID相同,那么比较本地的PID,小优
PID=端口ID = 接口优先级(0-240,默认128 小优)+ 接口编号 先比较优先级,小优&#x