STPSpanningTree Protocol,生成树协议。

作用:在实际的网络环境当一个物理环路可以提高网络的可靠性,当一条线路断掉的时候,另外一条链路仍然可以传输数据。但是在交换的网络中,当交换机接受到一个未知的目的地址的数据帧的时候,交换机的操作是将这个数据帧广播出去,这样,在存在物理环路的交换机网络中,就会产生一个双向的广播环,甚至产生广播风暴,导致交换机死机。STP协议在逻辑上断开网络的环路,防止广播风暴的产生,而一旦正在用的线路出现故障,被逻辑上断开的线路又被连通,继续传输数据。

原理:主要是生成树的算法(STA),可以归纳3个步骤:

1、选择根网桥(RootBrige,网桥id是一个8字节的字段,前两个是十几只数值是网桥的优先级(取值范围是0-65535,默认为32768,值越小优先级越高),后6个字节是网桥的MAC地址(交换机的MAC地址)。

结论:在选择根网桥的时候,优先相同级的情况下,那个MAC地址小,谁就是根网桥。

2、选择根端口(Root Ports),依照的顺序依次是:到根网桥最低的根路径成本(根路径成本是两个网桥间的路径上所有链路的成本之和,链路传输的速率越大,传输数据的成本越低,10=100100=191000=410000=2);直连的网桥ID最小;端口ID最小。端口ID是一个2字节的STP参数,由一个字节的端口优先级(取值范围0-255,默认是128)和一个自己的端口编号组成。

结论:当根路径成本相同的时候,比较连接的交换机的网桥ID值,值小的作为根端口;当网桥ID相同的时候,比较端口ID值,选择值小的作为根端口。

3、选择指定端口(DesignatedPorts),为了消除桥接贿赂形成的可能,STP进行最后的计算,在每一个网段上选择一个指定端口,选择指定的端口依据与根端口的相同。顺序也有三个:根路径成本较低;所在的交换机的网桥ID的值较小;端口ID的值较小。

结论:根网桥没有根端口,根网桥上的端口都是指定端口,根端口和指定端口都是转发端口。

BPDU:桥协议数据单元,交换机使用该接口的MAC地址作为源地址,利用一个STP组播地址01-80-C2-00-00作为目的地址发送BPDU,每隔2秒,交换机向所有的交换机端口发送一个BPDU报文,通过BPDU来交换网桥ID/根路径成本信息。

BPDU的分类:配置BPDU用于生成树计算,TCN BPDU通告,用于通告网络拓扑的变化。

生成树的状态分为5种:禁用disable/阻塞blocking/侦听listening/学习learning/转发forwardinghello时间2s,转发延迟15s,最大老化时间20s。从阻塞到侦听20s,从侦听到学习15s,从学习到转发15s

vlan与生成树的关系:

IEEE的通用生成树CSTcisco的每vlan生成树PVSTcisco的能兼容CSTPVSTPVST+);还有RSTPMST(在进程里给不同的vlan做树)。

PVST的配置命令:
switch(config)#spanning-tree vlan 1
switch(config)#spanning-tree vlan 1 root primary|secondary
switch(config)#spanning-tree vlan 1 priority 小于<24576
switch(config-if)#spanning-tree vlan 1 cost cost
switch(config-if)#spanning-tree vlan 1 port-priority <24576
switch(config)#spanning-tree uplinkfast
switch(config)#spanning-tree portfast
以太网通道的配置:
switch(config)#interface range fastEthernet 0/1 - 2
switch(config-if-range)#channel-group 1 mode on
查看命令:
switch#show spanning-tree
switch#show spanning-tree vlan 1 detail