STP :任务是找到网络中的所有链路,关闭任何冗余的链路(现在大多默认开启)
 
首先选 根桥
ID(最小):先比桥优先级;再比 VLAN 1MAC (都取小的)
 
再选链路
1、根端口 :直连 :多条直连选cost最小,
   cost相同选桥ID小的,
 桥ID同选端口号最低的链路;   
离根桥最近
2、指定端口 cost最小,处于转发状态
3、非指定端口 :阻塞状态,但始终监听帧,并学习形成MAC
 
除了根桥外,其他所有的网桥都是非根桥,它们相互之间都交换BPDU,并在所有SW上更新STP拓扑DB以防止环路并对链路失效采取补救措施。
 
默认时,每2秒发送一次BPDU,它被发送到网桥/SW的所有活动端口上;可以改变桥的ID,以使它自动成为根桥,改变默认优先级是选举根桥的最佳方式,这一点很重要,因为你希望网络中的核心SW(离网络中心最近的SW)成为根桥,这样STP就会快速收敛。
SW(config)#do sh spanning-tree
SW(config)#spanning-tree vlan 1 priority 4096
 
SW(config)#spanning-tree vlan 1 root primary  这个命令并不会覆盖低优先级的SW —仅当所有的SW都设置了相同或更高的优先级时,此命令才起作用。
 
桥优先级的数值以4096递增,对于网络中的每个vlan,如果想将某台SW设置为根桥,那么必须改动每个vlan的优先级。每个vlan都可以有不同的根桥,尽管这不常见。
 
当网桥或SW上的所有端口都转变到转发或阻塞状态时,就产生了收敛,STP正在收敛时,所有主机的数据都会停止发送。
 
RSTP :快速生成树协议802.1w
Core(config)# spanning-tree mode rapid-pvst
必须确信网络中所有的SW都在正确地运行802.1w协议,能与老的STP协议实现相互操作,此时802.1w内在的快速收敛能力将丢失。只在其中一台SW上打开802.1w并不起作用。
 
PortFast :如果你有一台服务器或其他设备连接到SW上,而且可以保证在禁用STP时不会产生交换环路,那么就可以在这些端口上开启快速端口,也就是说当STP正在收敛时,端口不会花50s才进入转发状态。
SW(config)#int range fa 0/1 -12
SW(config-if-range)# spanning-tree portfast
注:用在刚卖的SW进行各个端口的快速检测,但测完没有问题后,再no 掉。  
 
可以使用VMPSvlan管理策略服务器)的服务来建立MAC地址的数据库,此DB可用于vlan的动态寻址。VMPSDB能够自动将MAC地址映射到vlan中。