STP 防护
STP 协议并没有什么措施对交换机的身份进行认证。在稳定的网络中如果接入非法的交
换机将可能给网络中的 STP 树带来灾难性的破坏。有一些简单的措施来保护网络,虽然这些
措施显得软弱无力。Root Guard 特性将使得交换机的接口拒绝接收比原有根桥优先级更高
的 BPDU。而 BPDU Guard 主要是和 portfast 特性配合使用,portfast 使得接口一有计算机
接入就立即进入转发状态,然而万一这个接口接入的是交换机很可能造成环路。BPDU Guard
可以使得 portfast 接口一旦接收到 BPDU,就关闭该接口
二 MST
在 PVST 中,交换机为每个 VLAN 都构建一棵 STP 树,不仅会带来 CPU 的很大负载,也会
占用大量的带宽。MST 则是把多个 VLAN 映射到一个 STP 实例上,从而减少了 STP 实例。MST
可以和 STP、PVST 配合使用。对于运行 STP、PVST 的交换机来说,一个 MST 域看起来就像一
台交换机。
RSTPRSTP 实际上是把减少 STP 收敛时间的一些措施融合在 STP 协议中形成新的协议。RSTP
中,接口的角色有:根接口、指定接口、备份接口(Backup Interface)、替代接口(Alternate
Interface )。接口的状态有:丢弃(Discarding )、学习状态(Learning )、转发状态
(Forwarding)。接口还分为边界接口(Edge Port)、点到点接口(Point-to-Point Port)、
共享接口(Share Port)。
PVST
当网络上有多个 VLAN 时,PVST(Per Vlan STP)会为每个 VLAN 构建一棵 STP 树。这样的
好处是可以独立地为每个 VLAN 控制哪些接口要转发数据,从而实现负载平衡。缺点是如果
VLAN 数量很多,会给交换机带来沉重的负担。Cisco 交换机默认的模式就是 PVST。
portfast、uplinkfast、backbonefast
STP 的收敛时间通常需要 30—50 秒。为了减少收敛时间,有一些改善措施。Portfast
特性使得以太网接口一旦有设备接入,就立即进入转发状态,如果接口上连接的只是计算机
或者其他不运行 STP 的设备,这是非常合适的。
Uplinkfast 则经常用在接入层交换机上,当它连接到主干交换机上的主链路上故障时,
能立即切换到备份链路上,而不需要经过 30 秒或者 50 秒。Uplinkfast 只需要在接入层交
换机上配置即可。
Backbonefast 则主要用在主干交换机之间,当主干交换机之间的链路上故障时,可以
比原有的 50 秒少 20 秒就切换到备份链路上。Backbonefast 需要在全部交换机上配置
基本 STP
为了增加局域网的冗余性,我们常常会在网络中引入冗余链路,然而这样却会引起交换
环路。交换环路会带来三个问题:广播风暴、同一帧的多个拷贝、交换机 CAM 表不稳定。
STP(STP,Spanning Tree Protocol)可以解决这些问题,STP 基本思路是阻断一些交换机接
口,构建一棵没有环路的转发树。STP 利用 BPDU(Bridge Protocol Data Unit)和其他交换
机进行通信,从而确定哪个交换机该阻断哪个接口。在 BPDU 中有几个关键的字段,例如:
根桥 ID、路径代价、端口 ID 等。
为了在网络中形成一个没有环路的拓扑,网络中的交换机要进行以下三个步骤:(1)选
举根桥、(2)选取根口、(3)选取指定口。这些步骤中,哪个交换机能获胜将取决于以下因
素(按顺序进行):
(1) 最低的根桥 ID;
(2) 最低的根路径代价;
(3) 最低发送者桥 ID;
(4) 最低发送者端口 ID。
每个交换机都具有一个唯一的桥 ID,这个 ID 由两部分组成:网桥优先级+MAC 地址。网
桥优先级是一个 2 个字节的数,交换机的默认优先级为 32768;MAC 地址就是交换机的 MAC
地址。具有最低桥 ID 的交换机就是根桥。根桥上的接口都是指定口,会转发数据包。
选举了根桥后,其他的交换机就成为非根桥了。每台非根桥要选举一条到根桥的根路径。
STP 使用路径 Cost 来决定到达根桥的最佳路径(Cost 是累加的,带宽大的链路 Cost 低),
最低 Cost 值的路径就是根路径,该接口就是根口;如果 Cost 职一样,就根据选举顺序选举
根口。根口是转发数据包的。
交换机的其他接口还要决定是指定口还是阻断口,交换机之间将进一步根据上面的四个
因素来竞争。指定口是转发数据帧的。剩下的其它的接口将被阻断,不转发数据包。这样网
络就构建出一棵没有环路的转发树。
当网络的拓扑发生变化时,网络会从一个状态向另一个状态过渡,重新打开或阻断某些
接口。交换机的端口要经过几种状态: 禁用(Disable)、阻塞(Blocking)、监听状态
(Listening)、学习状态(Learning)、最后是转发状态(Forwarding)。