STP-生成树协议
1、为什么需要STP协议
1)局域网中容易出现的问题:单点故障和单链路故障,即:当某一条链路故障或某一台设备故障导致大面积主机网络中断
2)如果预防单点故障和单链路故障:
:增加冗余/备份设备:预防单点故障
:增加冗余/备份链路:预防单链路故障
3)增加冗余/备份链路后,引发的新的问题:
:交换机与交换机之间增加备份链路后:极有可能形成环状网络,形成二层环路
:二层环路:极有可能会引发广播风暴
: 广播风暴一旦形成:会造成网络拥塞,设备宕机,网络不可用
4)如何解决因二层环路所导致的广播风暴?
:STP协议可以解决二层环路:STP会形成一个物理有环,逻辑无环的网络
STP协议
1)STP是什么
:STP:Spanning Tree Protocol 生成树协议
2)STP的作用(如何实现逻辑无环,如何防止广播风暴)
:通过阻塞某个接口在逻辑上断开环路,防止广播风暴,破除二层环路
:当主线路故障,阻塞接口被激活,备份链路开始转发数据,当主线路恢复,接口再次被阻塞
3、STP的工作原理
1)步骤1:选举根交换机
2)步骤2:在每个非根交换机上选举1个根端口-(RP-根端口)
3)步骤3:在每条链路(每个网段)上选举1个指定端口-(DP-指定端口)
4)步骤4:阻塞非指定端口
4、选举根交换机
1)一个根桥(根交换机)
:在一个STP网络中,根桥只有1个
:STP初始化时,所有的交换机都认为自己是"根桥"
:交换机之间通过比较BID来选举根交换机,BID值小的为根交换机
2)BID是什么
:BID-网桥ID,即:STP协议给交换机分配的名字
:BID是由优先级与MAC地址组成,BID值越小越优先
:BID优先级取值范围:0~61440、默认值:32768
:BID优先级步长值:4096 ,即:配置STP优先级值的时候,只能配置0或者4096的倍数
3)STP基础命令
[SW1]stp mode stp //工作模式改为STP (华为交换机默认开机运行的是MSTP)
[SW1]stp priority 4096 //设置交换机的STP优先级为4096
[SW1]display stp //显示交换机的stp详细信息
```
选举根交换机实验:
需求
-修改SW11的STP优先级为4096,让SW11成为根桥(根交换机)
配置步骤
-修改交换机工作模式为stp
-修改SW11的STP优先级为4096
-验证与测试
配置命令
第一步:修改工作模式为stp
[SW11]stp mode stp //修改工作模式为stp
[SW22]stp mode stp //修改工作模式为stp
[SW33]stp mode stp //修改工作模式为stp
第二步:设置sw11的优先级为4096
[SW11]stp priority 4096 //设置交换机的STP优先级为4096
**
****第三步:验证与测试:**
[SW11]display stp
CIST **Bridge** :4096 .4c1f-cc8b-58cc //本机的BID
CIST **Root**/ERPC :4096 .4c1f-cc8b-58cc / 0 //根交换机的BID
<SW22>display stp
CIST Bridge :32768.4c1f-cc74-26e2 //本机的BID
CIST Root/ERPC :4096 .4c1f-cc8b-58cc / 20000 //根交换机的BID
<SW33>display stp
CIST Bridge :32768.4c1f-cc60-6abf //本机的BID
CIST Root/ERPC :4096 .4c1f-cc8b-58cc / 20000 //根交换机的BID
**结论:所以根交换机的BID是4096 .4c1f-cc8b-58cc,所以SW11是根交换机**
```
四、确定端口角色
1、两种度量值
1)ID:
:BID(网桥ID):设备优先级+MAC地址组成(值越小越优先)
:PID(端口ID):端口优先级+端口号组成 (值越小越优先)
:端口优先级取值范围:0~240,步长值:16
2)路径开销:Cost :
:路径开销可以形容为交换机之间的“距离远近”,开销值越小越优先
:交换机的每一个端口都有一个路径开销-cost值
:交换机的接口cost值和端口带宽有关系,带宽越高,cost值越小
:默认情况下,华为交换机千兆端口的cost值为:20000
:默认情况下,华为交换机百兆端口的cost值为:200000
3)查看交换机端口的路径开销值
<SW1>display stp
----[Port1(**GigabitEthernet0/0/1**)][FORWARDING]----
Port Protocol :Enabled
** **Port Role :Root Port ** //端口角色:根端口**
Port Priority :128 **//端口优先级:128**
Port Cost(Dot1T ) :Config=auto / Active=**20000**** ** ** //端口cost值:20000**
```
2、查看根路径开销值
:根路径开销值:等于根交换机到该交换机的所有入方向接口的cost累加值
<SW4>display stp
-------[CIST Global Info][Mode MSTP]-------
CIST Bridge :32768.4c1f-ccfb-25ec
Config Times :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
Active Times :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
CIST Root/ERPC :4096 .4c1f-cc08-301f / 40000 (根交换机BID/**根路径开销值**)
```
3、选举根端口
1)根端口定律:
:根交换机中没有根端口
:非根交换机中有且只有一个根端口
2)选举根端口原则:
:非根交换机到根交换机的根路径开销值最小的端口,即根端口
:如果根路径开销值相同,则比较发送者(对端交换机)的BID,越小越优
:如果发送者的BID也相同,则比较发送者的PID,越小越优
选举根端口实验:
思路
-在非根网桥SW2/SW3上,选择一个根端口(RP)
-到根交换机的根路径开销值最小的端口,即根端口
-SW2/SW3的根端口为G0/0/1
**第一步:SW1配置:**
[SW1]stp mode stp //工作模式改为stp
[SW1]stp priority 4096 //优先级改为4096
**第二步:SW2配置并测试结果:**
[SW2]stp mode stp //工作模式改为stp
[SW2]display stp brief //显示stp的简要信息
**Port(端口) Role(角色) STP State (状态)**
GigabitEthernet0/0/1 ROOT FORWARDING
**第三步:SW3配置并测试结果: **
[SW3]stp mode stp
[SW3]display stp brief //显示stp的简要信息
**Port(端口) Role(角色) STP State (状态)**
GigabitEthernet0/0/1 ROOT FORWARDING
```
选举根端口实验:
思路
-当根路径开销值一致时,比较发送者(对端交换机)的BID,越小越优
-SW4的G0/0/1为根端口
**第一步:SW1配置:**
[SW1]stp mode stp //工作模式改为stp
[SW1]stp priority 4096 //优先级改为4096
**第二步:SW2配置:**
[SW2]stp mode stp //工作模式改为stp
[SW2]stp priority 8192 //优先级改为8192
**第三步:SW3配置:**
[SW3]stp mode stp //工作模式改为stp
**第四步:SW4配置并测试结果:**
[SW4]stp mode stp //工作模式改为stp
[SW4]display stp brief //显示stp的简要信息
**Port(端口) Role(角色) STP State (状态)**
GigabitEthernet0/0/1 ROOT FORWARDING
```
选举根端口实验:
思路
-根路径开销值相同
-对端交换机的BID也相同,则比较对端交换机的PID,越小越优
-SW2的G0/0/3为根端口
**第一步:SW1配置:**
[SW1]stp mode stp //工作模式改为stp
[SW1]stp priority 4096 //优先级改为4096
**第二步:SW2配置并验证结果:**
[SW2]stp mode stp //工作模式改为stp
[SW2]display stp brief //显示stp的简要信息
**Port(端口) Role(角色) STP State (状态)**
GigabitEthernet0/0/3 ROOT FORWARDING
```
4、选举指定接口
1)指定端口定律:
:根交换机中的接口全是指定端口
:在每一条链路上选择一个指定端口
:通常情况下,一条链路上如果一端是根端口,另外一端是指定端口
2)选举指定端口原则:
:一条链路上,到根交换机的根路径开销值最小的端口,即指定端口
:如果根路径开销值相同,则比较链路两端交换机的BID(接口所在交换机的BID),越小越优
:如果交换机的BID也相同,则比较链路两端交换机的PID,越小越优
选举指定端口实验:
思路
-一条链路上,到根交换机的根路径开销值最小的端口,即指定端口
-SW2和SW3互连的这条链路的指定端口为SW3的g0/0/2
**第一步:SW1配置:**
[SW1]stp mode stp //工作模式改为stp
[SW1]stp priority 4096 //优先级改为4096
**第二步:SW2配置并测试结果:**
[SW2]stp mode stp //工作模式改为stp
[SW1]stp priority 8192 //优先级改为8192
[SW2]display stp brief //显示stp的简要信息
**Port(端口) Role(角色) STP State (状态)**
GigabitEthernet0/0/2 ALTE DISCARDING(阻塞状态)
**第三步:SW3配置并测试结果: **
[SW3]stp mode stp
[SW3]interface g0/0/1
[SW3-g0/0/1]stp cost 10000 //修改接口的路径开销值为10000
[SW3-g0/0/1]display stp brief //显示stp的简要信息
Port(端口) Role(角色) STP State (状态)
GigabitEthernet0/0/2 DESI FORWARDING(转发状态)
```
选举指定端口实验:
思路
-在每条链路上选举1个指定接口
-如果根路径开销值相同,则比较两端交换机的BID,越小越优
-SW2和SW3互连的这条链路的指定端口为SW2的g0/0/2
**第一步:SW1配置:**
[SW1]stp mode stp //工作模式改为stp
[SW1]stp priority 4096 //优先级改为4096
**第二步:SW2配置并测试结果:**
[SW2]stp mode stp //工作模式改为stp
[SW1]stp priority 8192 //优先级改为8192
[SW2]display stp brief //显示stp的简要信息
**Port(端口) Role(角色) STP State (状态)**
GigabitEthernet0/0/2 DESI FORWARDING(转发状态)
**第三步:SW3配置并测试结果: **
[SW3]stp mode stp
[SW3]interface g0/0/1
[SW3-g0/0/1]undo stp cost //接口cost值恢复默认20000
[SW3-g0/0/1]display stp brief //显示stp的简要信息
**Port(端口) Role(角色) STP State (状态)**
GigabitEthernet0/0/2 ALTE DISCARDING(阻塞状态)
```
STP端口状态和STP计时器
1、BPDU报文
1)BPDU:桥协议数据单元
:BPDU报文也成为“二层心跳报文”周期性发送,默认每2秒发送1次
:作用:交换机之间通过周期性发送BPDU报文,来实现STP功能
2)BPDU的四个重要字段:
:根网桥ID:根交换机的BID
:根路径开销:本端口累计到根桥的开销值(cost值)
:发送网桥ID:本交换机的BID
:端口ID:发送该BPDU报文的哪个端口的ID
2、STP的5种状态
禁用(disabled) :强制关闭,没有启动STP协议
阻塞(blocking):只接收BPDU报文,不发送BPDU报文
侦听(Listening):比较BPDU报文,确定交换机角色和端口角色
学习(Learning):基于端口上收到的数据帧,学习MAC地址表
转发(forwardding):端口最终的状态,能够发送和接收用户数据
3、STP3种的计时器
hello 时间:端口发送的BPDU报文的时间间隔:默认是2秒
转发延迟(forward delay):侦听—学习:15秒 、学习—转发:15秒
最大老化时间(Max Age):一个端口最大的“没有接收BPDU”的时间间隔:20秒
4、STP的最大收敛时间:30秒~50秒
1)根交换机故障,STP的收敛时间约50秒
2)链路故障:STP的收敛时间约30~50秒
MSTP
1、STP的不足
1)STP收敛速度慢:30秒~50秒,导致网络中断时间过长
2、解决方案:RSTP :快速生成树
1)RSTP:快速生成树,公有协议:IEEE802.1w,在STP的基础上优化而来
作用:实现网络的快速收敛,降低网络故障时间,提高数据转发的效率
2)RSTP对STP的改进
-增加了2种端口角色(AP和BP)
-减少了3种端口状态(阻塞、学习、转发三种状态合为一种)
-引入了P/A 机制(让指定端口尽快进入转发状态)
:P表示提议 A表示:同意, 协议一致
3、RSTP的不足
1)RSTP和STP有一个共同缺陷:局域网种所有的vlan共享一棵生成树
2)所有的vlan的数据转发路径是相同的、无法实现vlan数据流的负载分担
4、解决方案:MSTP:多生成树协议
1)MSTP:多生成树协议,公有协议:IEEE802.1s,在RSTP的基础上优化而来
2)在MSTP网络种,引入了域的概念,称为MST域
3)每一个MST域中包含一个或多个“生成树”称为“实例”
4)每个“实例生成树”都可以绑定vlan,实现vlan数据流的负载分担/负载均衡
5)默认情况下,所有的vlan都属于“实例树0:即:instance 0”
6)不同的“实例树”、就是不同的“生成树”,每个实例树种都可以选举根交换机
5、MSTP工作原理
**MSTP工作过程:**
1)选举根交换机
2)选举根端口-RP
3)选举指定端口-DP
4)确定替代端口-AP
**确定端口状态:**
1)(丢弃):相当于STP中的禁用、侦听、阻塞,不转发用户数据
2)Learning(学习):和STP 中的学习状态相同
3)Forwarding(转发):和STP中的转发状态相同