计算机网络之STP(Spanning Tree Protocol)生成树协议详解及其实验配置

目录

1.STP概念

1.1  STP选举过程

1.1.1 根桥和根端口的选举

1.1.2 端口角色的选举

2.STP端口状态解释及转换

2.1 STP的五种端口状态

2.2 STP过程中的两种常见问题

3.STP的拓扑改变条件及流程

3.1 STP的拓扑改变流程 

3.2 STP拓扑改变的条件

3. STP华为eNSP实验


1.STP概念

为了提高网络可靠性,交换网络中通常会使用冗余链路。然而。冗余链路会给交换网络带来环路风险,并导致广播风暴以及MAC地址表不稳定等问题,进而会影响到用户的 通信质量。生成树协议STP(Spanning Tree Protocol)可以在提高可靠性的同时又能避免环路带来的各种问题。

STP协议的原理:找到交换网络中的冗余链路,然后阻塞一端,避免环路。

STP协议的版本:IEEE 802.1D(STP)、IEEE 802.1W(RSTP-Rapid)、IEEE 802.1S(MSTP-Multiply  华为私有协议)

HUB网络就算存在冗余链路引也不会出现环路,因为HUB工作在物理层,工作模式为半双工。

1.1  STP选举过程

 

STP的选举过程:

1. 选举一个根桥        在一个交换网络中选举一个根桥,根桥是设备的概念。默认情况下所有设备都是根桥,通过交互BPDU包优选BID小的设备作为根桥,在STP根桥选举后只会由根桥每隔2秒发送一次BPDU包,其它的非根桥接收后转发。

2.每个非根交换机选举一个根端口         根桥选举后,交换网络中的其它设备都是非根桥,每个非根桥还需要选举一个到达根桥最短路径的端口成为根端口。注:非根桥只能由一个根端口

3.每个网段选举一个指定端口                 每条链路上还需要选举一个指定端口,默认情况下根桥的所有端口都是指定端口

4.阻塞非根,非指定端口                既不是根端口也不是指定端口的其它端口需要被阻塞。不能转发数据帧。

 

所有配置了STP协议的交换机都会发送BPDU(桥协议数据单元)报文,通过交互BPDU报文选举设备角色和端口角色。

BPDU包是通过组播的方式发送的。目的MAC地址:01-80-C2-00-00-00

STP BPDU包结构:

Protocol id=00(生成树协议)

Protocol Version= 00(STP)02(RSTP)03(MSTP)

BPDU Type = 00(Config BPDU)80(TCN BPDU)

BPDU Flags = TC(拓扑改变)TCA(拓扑改变确认)这些Flags只有在配置BPDU包中被置位

 

STP协议中包含一些重要的时间参数,这里举例说明如下:

Hello Time是指运行STP协议的设备发送配置BPDU的时间间隔,用于检测链路是否存在故障。交换机每隔Hello Time时间会向周围的交换机发送配置BPDU报文,以确认链路是否存在故障。当网络拓扑稳定后,该值只有在根桥行修改才有效。

Message Age:如果配置BPDU是根桥发出的,则Message Age为0.否则,Message Age是从根桥发送带当前桥接接收到BPDU的总时间,包括传输时延等。实际实现中,配置BPDU报文每经过一个交换机,Message Age增加1.

Max Age是指BPDU报文的老化时间,可在根桥上通过命令人为改动这个值。Max Age通过配置BPDU报文的传递,可以保证Max Age在整网中一直。非根桥设备收到配置BPDU报文后,会将报文中的Message Age和Max Age进行比较;如果Message Age小于Max Age,则该非根桥设备会继续转发配置BPDU报文。如果Message Age大于Max Age,则该设置BPDU报文会被老化掉。该非根桥设备将直接丢弃该配置BPDU,并认为Hi好网络直接过大,导致了根桥连接失败。

设备角色:根桥、非根桥

端口角色:根端口、指定端口、替代端口

1.1.1 根桥和根端口的选举

根桥的选举:

通过比较BID(桥ID)选举,优选BID小的。BID参数由两部分组成:优先级(默认值为32768)+MAC地址(交换机的背板MAC地址)

1.比较优先级,优先级越小越优

2.如果优先级一样,比较MAC地址,MAC地址越小越优

根端口的选举:

RPC(root path cost)RPC是BPDU包中的一个参数,用于标识发送BPDU包的交换机自己到达根桥的距离

本地端口的RPC(通过端口到根桥的距离)=本端口的PC+收到的BPDU报文中通告的RPC

PC(port cost)PC的计算是需要依据端口的带宽来计算的,目前计算PC的标准有三种:1.IEEE 802.1d

2.IEEE 802.1t    3.华为私有标准

 

1.1.2 端口角色的选举

 

STP端口角色的选举过程:

1.比较RID(根桥ID),优选小的

2.比较到达根桥的RPC(root path cost),越小越优

3.比较BPDU包发送者的BID,越小越优

4.比较BPDU包发送者的PID(Port ID(端口ID)),端口ID由两部分组成=端口优先级(默认为128,可以配置,配置时必须为16的整数倍)+端口ID 越小越优

5.比较BPDU包接收者的PID,越小越优

STP有几种端口角色:根端口(RP--Root Port),指定端口(DP --Define Port),替代端口(AP---Alternative Port)

2.STP端口状态解释及转换

2.1 STP的五种端口状态

STP中有几种端口状态:Disable(禁用)、Listening(监听)、学习(Learning)、转发(Forwarding)、阻塞(Blocking)

Disable(禁用):端口shutdown,端口Up后会从Disable转为Listening状态

Listening(监听):在该状态下可以发送和接收BPDU包,但是不能转发数据帧,用于选举设备角色和端口角色,该状态会维持一个,该状态会维持一个Forward Delay(15秒)的时间,超过该时间后会过渡到Learning状态

Learning(学习):在该状态下可以发送和接收BPDU包,可以接收但是不能转发数据帧,会学习源MAC地址用来构建MAC地址表,该状态会维持一个Forward Delay(15秒)的时间,超过该时间后会过渡到Forwarding状态

Forwarding(转发):在该状态下可以发送和接收BPDU包,同时也可以接收和转发数据帧。

Blocking(阻塞):在该状态下可以接收BPDU包,但是不能转发BPDU包和数据帧。

 

STP中根桥的选举依据的是桥ID,STP中的每个交换机都会有一个桥ID(Bridge ID)。桥ID由16位的的桥优先级(Bridge Priority)和48位的MAC地址构成。在STP网络中,桥优先级是可以配置的,取值范围是0~65535,默认值为32768.优先级最高的设备(桥ID最小)会被选举为根桥。如果优先级相同,则会比较MAC地址,MAC地址越小则越优先。

交换机启动后就自动开始进行生成树收敛计算啊。默认情况下,所有交换机启动时都认为自己是根桥,自己的所有端口都为指定端口,这样的BPDU报文就可以通过所有端口转发。对端交换机收到BPDU报文后,会比较BPDU中的根桥ID和自己的桥ID,如果收到的BPDU报文中的桥ID优先级低,接收交换机会继续通告自己的配置BPDU报文给相邻交换机。如果收到的BPDU报文中的桥ID优先级高,则交换机会修改自己的BPDU报文的根桥ID地段,宣告新的根桥。

Disable->Listening->Blocking(AP)

Disable->Listening->Learning->Forwarding(RP/DP)

直接链路故障进入到转发状态需要的时间是30秒(两次转发延时)

间接链路故障进入到转发状态需要的时间是50秒(MAX  AGE+Forward delay×2)

2.2 STP过程中的两种常见问题

什么场景下STP的收敛时间是30秒?

1.直连故障

2.AP切换到RP

什么场景下STP收敛的时间是50秒?

1.非直连故障和单向链路故障

2.次优BPDU

 

3.STP的拓扑改变条件及流程

TCN BPDU包:拓扑改变通告

TCN BPDU包只能由非根桥发起,沿着根端口通告给根桥

 TCA BPDU包:用于确认接收到的TCN BPDU包

TC BPDU包:只能由根桥发起,连续发送35秒(max age+forwarding delay)

接收到TC BPDU包后会将自己的MAC地址表老化时间设置为15秒,加速老化

 

3.1 STP的拓扑改变流程 

STP的拓扑改变流程

1.如果非根桥上发生拓扑改变,向根端口发送TCN BPDU包,通告根桥拓扑已经变化

2.上联的非根桥从指定端口收到了TCN BPDU包后,会向发送者恢复TCA flag位置位的配置BPDU包,同时继续向根桥发送TCN BPDU包

3.根桥收到TCN BPDU包后,向发送者回复TCA flag位置位的配置BPDU包,同时向所有的指定端口发送TC flag置位的配置BPDU包,TC置位的配置BPDU包会持续发送35S(max age+forward delay),同时将自己的MAC地址表的老化时间设置为15S

4,其它非根桥收到TC置位的配置BPDU包后,将自己MAC地址表的老化时间设置为15S

3.2 STP拓扑改变的条件

STP中触发拓扑改变的条件:

1、一个端口从forwarding状态过渡到blocking或者disable状态

2、一个非根桥如果从指定端口接收到TCN BPDU,需要向根桥转发TCN BPDU

3、一个端口进入到forwarding状态,并且本地(交换机)已经存在一个指定端口 

 

 

华为X7系列交换机支持三种生成树协议模式。

stp mode  {  mstp(多路生成树协议)  |  stp   |  rstp(快速生成树协议) }命令用来配置交换机的生成树协议模式。缺省情况下,华为X7系列交换机工作在MSTP模式。在使用STP前,STP模式必须重新配置。 

 

 

STP  ,RSTP(Rapid Spanning Tree Protocol),华为私有协议

 

3. STP华为eNSP实验

STP实验:

拓扑图;

计算机网络之STP(Spanning Tree Protocol)生成树协议详解及其实验配置_第1张图片

一:宣布根桥

计算机网络之STP(Spanning Tree Protocol)生成树协议详解及其实验配置_第2张图片

二:查看根桥

计算机网络之STP(Spanning Tree Protocol)生成树协议详解及其实验配置_第3张图片

计算机网络之STP(Spanning Tree Protocol)生成树协议详解及其实验配置_第4张图片

三:修改STP模式为STP

计算机网络之STP(Spanning Tree Protocol)生成树协议详解及其实验配置_第5张图片

计算机网络之STP(Spanning Tree Protocol)生成树协议详解及其实验配置_第6张图片

计算机网络之STP(Spanning Tree Protocol)生成树协议详解及其实验配置_第7张图片 四:修改SW3的RPC值来完成端口角色的转换

通过display stp brief 命令查看各端口的角色,发现SW3与拓扑图不符

计算机网络之STP(Spanning Tree Protocol)生成树协议详解及其实验配置_第8张图片

查看端口的PRC发现是默认的20000,所以需要修改g0/0/1口的PRC来实现角色的转换 

计算机网络之STP(Spanning Tree Protocol)生成树协议详解及其实验配置_第9张图片

计算机网络之STP(Spanning Tree Protocol)生成树协议详解及其实验配置_第10张图片

五:查看修改效果

 计算机网络之STP(Spanning Tree Protocol)生成树协议详解及其实验配置_第11张图片

计算机网络之STP(Spanning Tree Protocol)生成树协议详解及其实验配置_第12张图片

你可能感兴趣的:(计算机网络之STP(Spanning Tree Protocol)生成树协议详解及其实验配置)