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是否优先级生效】