二层STP的原理

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

猜你喜欢

转载自blog.51cto.com/13597266/2115422