STP STP的终极目标: 从网络的任何地方,都是去往跟 交换机 最短的 无环的数据转发路径 1 同一个网路: 面临的第一个问题:单点故障 解决方案: 提供网络冗余/备份 1设备的备份 2链路的备份 所带来的新问题: 二层数据转发环路 新的解决方案: STP/RSTP-spanning-tree protpocol【生成树协议】 凸显出另外一个问题:利用率 解决方案:MSTP【生成实例树协议】

共有标准协议:
STP - 802.1d ,慢; RSTP - 802.1w , 快了一点; MSTP - 802.1s 为了在实现链路备份的同时,还可以实现数据转发的负载均衡,提高设备的利用率。 解决二层数据环路的协议 STP协议工作原理/过程: 1 选举交换机角色: 根交换机(网桥): 整个交换机网络中有且仅一个【跟BID小的值优先】 非根交换机: 除了根交换机
2 选举端口角色: 根端口: 任何一个非根交换机上,有且只有一个, 距离根交换机最近(cost)的端口 指定端口: 任何一个网段中且仅有一个, 距离根交换机最近的(cost)的端口 非指定端口: 剩下的所有端口,都是非指定的
3 确定端口状态: down listening: 侦听 【侦听的 BPDU,为了尽量的收集全所有的BPDU,进行比较】 learning : 学习 【此阶段学习MAC地址表】 forwarding:转发 【根端口和制定端口的最终状态】 blocking :阻塞 【非指定端口对应的最终端口】

STP协议的所有功能都是通过BPDU报文来实现 BPDU -bridge protocol data unit 【桥协议数据单元】

BPDU报文的基本构成: root-id: 表示的是根交换机的ID cost: 表示的是发送该BPDU的交换机到达根交换机的距离 bridge-id:表示的是发送该BPDU的交换机的名字 port-id: 表示的是发送该BPDU的交换机的出端口 由两部分组成: port-priority+port-number 【端口优先级+端口号】 端口的优先级:1个字节,默认值为128 端口号; 1个字节,是交换机上的端口的号码 比如:交换机的 gi0/0/23 的 port-id 表示是 : 128.23

我们可以在选举“设备角色”和“端口角色”时候 基于“交换机角色”和“端口角色”的定义 对 BPDU 报文中的4个字段,从上向下依次进行比较。 首先比较的是 root-id ; 如果不相同,则选择最小的为 Root-switch; 如果相同,则比较 cost ;如果不相同,则选择最小的 cost ; 如果相同,则比较 bridge-id , 如果不相同,则选择最小的; 如果相同,则比较 port-id , 如果不相同,则选择最小的;

STP的收敛时间:30--50秒 hello -2秒 【根交换机发送BPDU 的时间周期,两秒一次】 forward-delay=15秒 转发 延迟 【表示在 listening 和learning分别 停留的时间】 max-age=20 秒 最大生命时间20 秒 【每通过一个交换机减一秒,最高20秒】

	 配置命令以及解释:
[huawei]stp priority     

【STP的优先级,默认是32768设置时数值必须是 4096的倍数】

[huawei-gi0/0/23] stp cost 【修改一个端口上的 STP 的 cost 】
华为交换机上,1000M端口的cost默认是 20000 ;

[huawei]display stp
【可以查看到交换机运行的 STP 的模式,以及自己和根交换机的 BID 信息】 [huawei]display stp brief 【可以查看到交换机上的每个启用了STP 的端口的角色与状态】

[huawei]display stp interface gi0/0/23 【可以查看该接口的 cost ,以及发送和接收BPDU的情况】

MSTP配置: [A]stp region-configuration 【stp域的配置】 [A-mst-region]region-name 1 【给域起名字】 [A-mst-region]instance 1 vlan 10 20 【创建实例1 把vlan 10 20 加入】 [A-mst-region]active region-configuration 【激活域配置】 [A]stp instance 2 priority 4096 【给实例2 设置优先级】 [A]display stp instance 1 【查看实例1的stp是否优先级生效】