网络工程师修练指北---STP(Spanning Tree Protocol)

网络工程师修练指北—STP(Spanning Tree Protocol)

Hello哇,欢迎来到《网络工程是修练指北系列》,今天我们接着上一篇VLAN的内容,继续为大家介绍网络交换二层技术中另一个重要的内容—STP

一口小酒🍸,一首歌📻,阿轩带你修成XIAN!

上一篇中我们讲到,通过VLAN的技术可以实现交换机之间通过一根线缆能够实现所有VLAN间的通信。

那么大家有没有想过一个问题,就是如果我这根线缆出现了故障,那是否就意味着我所有的通信就中断了呢?那么我又没有什么方法避免呢?

有的人可能就会说了,那可以再接一根线,这样一根线断了的话另一根还在。

没错,这确实是一个好办法,但是有没有想过这样的一个问题呢:

如图:

image-20250401010115976

我们说交换机是工作在二层的,他们之间的通信和信息的宣告是通过ARP广播报文来实现的.

假设现在A和B都是两个全新的交换机;

那么当交换机刚开机的时候,我们以交换机A为例,首先它看到的是我在0/3接口上对应的一个11的地址,然后我发送广播,架设从0/1发送,那么B接收,并查看MAC地址表,这个时候发现B上面是没有MAC地址表的,所有我接收完成后会再发送广播,这个广播将从0/1和0/3发送;

这个时候A将从0/2接收到B发送的广播报文,那A就会产生疑惑,为什么我之前记录的是11对应的是从0/3过来的,现在变成了0/2?

那这个时候是不是就产生了环路呢?

这其实就是我们所说的二层环路,二层环路是一件很危险的事情的,二层的环路会带来广播风暴,大量的广播风暴会使交换机高负荷工作,轻则设备宕机,严重的甚至会造成设备过温,烧坏硬盘,配置丢失

那么我们有没有一种技术,既能够避免二层环路的产生,又能够支持我接入多条链路为主用链路做备份呢?

这其实就是STP协议出现的初衷

STP的好处

讲到这里,其实我们能够很清楚的看到,STP的好处就是避免二层网络出现环路,避免二层网络中的广播风暴的产生

STP的工作原理

其实STP的工作原理就是在逻辑上把交换机中的一个端口断开,防止环路的产生,当主用链路故障的时候,会将这个端口自动启起来,开启备用链路,恢复通信(不要指望能够很快,这个后面应该会讲到—如果没有喝多的话)

STP的算法

那么STP是如何工作呢?STP的工作大致遵循下面的几个步骤:

首先STP需要选择根网桥;

其次选择根端口;

第三选择指定端口;

最后将其余端口逻辑down掉。

接下来我们依次来讲解每个步骤的工作内容和规则

选择根网桥

生成树协议,你就想象成有一棵树,有树的话就必须要有根

那么这个根要如何定义呢,主要是遵循以下规则:选择根网桥ID最小的作为根

那么什么是根网桥ID呢?

网桥ID即BID(Bridge ID),是由网桥优先级+网桥MAC组成的。

网桥优先级的取值范围为0-61440,默认值是32768,所以一般没有特殊设定的话我们在选取根的时候是选择网桥MAC地址最小的,当然优先级是能够手动指定的。

手动配置的话需要遵循以下几点:

  1. 必须是2的整数倍
  2. 必须是16的证书倍
  3. 最小值是4096

因此常用的优先级为4096/8192/24576/32768

选择根端口

选择完根网桥后,需要选择根端口。

根端口是用来做什么的呢?

根端口是用来接收从根过来的消息的端口,所以必须是要在非根网桥上去进行选择,并且选择一个到达根最近的端口作为根端口

根端口的选择遵循以下顺序:

  1. 最低的到达根网桥的路径开销,带宽越高,开销越小,如果开销值一致,则进行下一步比较;
  2. 最低的发送方网桥ID,如果一样,则进行下一步比较;
  3. 最低的端口优先级,端口优先级的取值范围是0-240,默认是128,如果一致则进行下一步比较;
  4. 发送方最低的端口ID,每个端口都有端口ID,端口ID由端口优先级+端口编号组成

选择指定端口

指定端口是指用来传递消息的端口

首先需要确认的一点就是,根网桥上的所有端口都是指定端口。

这个应该就很好理解了,根网桥,所有的端口肯定都要传递数据转发数据帧的,总不至于把根都切断了吧(断。。。。根。。。。。断子绝孙?😱👀)

所以指定端口是在非根网桥上进行选择的,需要遵循以下四步:

  1. BPDU中的根网桥ID
  2. 到达根网桥的最低开销
  3. 发送方的网桥ID
  4. 若优先级相同则选择最低MAC地址

BPDU

那么在STP协议中,端口的变化,或者说选举过程中的数据包和信息又要通过什么来传递呢?

STP的信息其实是通过BPDU来传递的,我们可以将BPDU理解为信息的载体,将需要比较的信息来进行传递和交换

BPDU是通过组播来传递的,组播地址为01-80-C2-00-00-00

BPDU其实分为两种:

  1. 配置BPDU,用于首次生成树的计算
  2. 拓扑变更BPDU(TCN BPDU),用于通告网络拓扑的变化

在一个二层网络中,不太可能说是不限制整个网络的大小的,所以在BPDU中由一个参数叫Message Age,从根出来的Message Age的值为0,每经过一个交换机,该值加一,默认的最大值为20,当Message Age的值达到Max Age值的时候,非根网桥将丢弃该配置BPDU

image-20250401001925888

那么前面我们说了STP的作用主要是将端口逻辑Down掉,那么其实在STP中有以下几种端口状态:

端口状态

  1. 禁用状态,Disable,不发送不接收BPDU,不学习MAC,不转发
  2. 阻塞,Discarding,不发送BPDU,但接收BPDU,不学习MAC,不转发数据
  3. 侦听,Listening,发送和接收BPDU,不学习MAC,不转发数据
  4. 学习,Learning,学习MAC,发送和接收BPDU
  5. 转发,Forwarding,发送和接收BPDU,学习MAC地址,转发数据

侦听和学习称为中间态,是端口状态变化的中间状态

image-20250401004753857

根据上图,我们知道,端口从阻塞状态变为转发状态总共需要50秒的时间,也就是前面讲的当主用链路故障的时候,会将这个端口自动启起来,开启备用链路,恢复通信所需要的时间

实验

## 实验目的

令SWA是VLAN1的主根桥,在VLAN 1的STP中阻塞SWC的E0/0/2端口,当SWA失效时,SWB接替SWA成为VLAN1的主根桥

image-20250401004955460

----------

SWA:

<Huawei>

<Huawei>system-view

Enter system view, return user view with Ctrl+Z.

[Huawei]sysname SWA

[SWA]undo info-center enable

Jan  9 2025 16:52:19-08:00 SWA DS/4/DATASYNC_CFGCHANGE:OID 1.3.6.1.4.1.2011.5.25

.191.3.1 configurations have been changed. The current change number is 4, the c

hange loop count is 0, and the maximum number of records is 4095.

Info: Information center is disabled.

[SWA]stp enable

[SWA]stp mode stp

Info: This operation may take a few seconds. Please wait for a moment...done.

[SWA]interface E0/0/1

[SWA-Ethernet0/0/1]port link-type trunk

[SWA-Ethernet0/0/1]port trunk allow-pass vlan all

[SWA-Ethernet0/0/1]interface E0/0/2

[SWA-Ethernet0/0/2]port link-type trunk

[SWA-Ethernet0/0/2]port trunk allow-pass vlan all

[SWA-Ethernet0/0/2]stp priority 4096

[SWA]display current-configuration 

\#

sysname SWA

\#

undo info-center enable

\#

stp mode stp

stp instance 0 priority 4096

\#

cluster enable

ntdp enable

ndp enable

\#

drop illegal-mac alarm

\#

diffserv domain default

\#

drop-profile default

\#

aaa

 authentication-scheme default

 authorization-scheme default

 accounting-scheme default

 domain default

 domain default_admin

 local-user admin password simple admin

 local-user admin service-type http

\#

interface Vlanif1

\#

interface MEth0/0/1

\#

interface Ethernet0/0/1

 port link-type trunk

 port trunk allow-pass vlan 2 to 4094

\#

interface Ethernet0/0/2

 port link-type trunk

 port trunk allow-pass vlan 2 to 4094

 

 [SWA]display stp brief 

 MSTID  Port                        Role  STP State     Protection

   0    Ethernet0/0/1               DESI  FORWARDING      NONE

   0    Ethernet0/0/2               DESI  FORWARDING      NONE

SWB:

<Huawei>system-view

Enter system view, return user view with Ctrl+Z.

[Huawei]undo info-center enable

Info: Information center is disabled.

[Huawei]sysname SWB

[SWB]stp enable

[SWB]stp mode stp

Info: This operation may take a few seconds. Please wait for a moment...done.

[SWB]interface E0/0/1

[SWB-Ethernet0/0/1]port link-type trunk

[SWB-Ethernet0/0/1]port trunk allow-pass vlan all

[SWB-Ethernet0/0/1]interface E0/0/2

[SWB-Ethernet0/0/2]port link-type trunk

[SWB-Ethernet0/0/2]port trunk allow-pass vlan all

[SWB-Ethernet0/0/2]stp priority 8192

[SWB]display current-configuration 

\#

sysname SWB

\#

undo info-center enable

\#

stp mode stp

stp instance 0 priority 8192

\#

cluster enable

ntdp enable

ndp enable

\#

drop illegal-mac alarm

\#

diffserv domain default

\#

drop-profile default

\#

aaa

 authentication-scheme default

 authorization-scheme default

 accounting-scheme default

 domain default

 domain default_admin

 local-user admin password simple admin

 local-user admin service-type http

\#

interface Vlanif1

\#

interface MEth0/0/1

\#

interface Ethernet0/0/1

 port link-type trunk

 port trunk allow-pass vlan 2 to 4094

\#

interface Ethernet0/0/2

 port link-type trunk

 port trunk allow-pass vlan 2 to 4094

\#



[SWB]  display stp brief

 MSTID  Port                        Role  STP State     Protection

   0    Ethernet0/0/1               DESI  FORWARDING      NONE

   0    Ethernet0/0/2               ROOT  FORWARDING      NONE




关闭SWA后,SWB状态变化

[SWB]display stp brief

 MSTID  Port                        Role  STP State     Protection

   0    Ethernet0/0/1               DESI  DISCARDING      NONE

[SWB]display stp brief

 MSTID  Port                        Role  STP State     Protection

   0    Ethernet0/0/1               DESI  LEARNING        NONE

[SWB]

[SWB]display stp brief

 MSTID  Port                        Role  STP State     Protection

   0    Ethernet0/0/1               DESI  LEARNING        NONE

[SWB]display stp brief

 MSTID  Port                        Role  STP State     Protection

   0    Ethernet0/0/1               DESI  LEARNING        NONE

[SWB]display stp brief

 MSTID  Port                        Role  STP State     Protection

   0    Ethernet0/0/1               DESI  FORWARDING      NONE

[SWB]display stp brief

 MSTID  Port                        Role  STP State     Protection

   0    Ethernet0/0/1               DESI  FORWARDING      NONE


SWC:

<Huawei>

<Huawei>system-view

Enter system view, return user view with Ctrl+Z.

[Huawei]undo info-center enable

Info: Information center is disabled.

[Huawei]sysname SWC

[SWC]stp enable 

[SWC]stp mode stp

Info: This operation may take a few seconds. Please wait for a moment...done.

[SWC]interface E0/0/1

[SWC-Ethernet0/0/1]port link-type trunk

[SWC-Ethernet0/0/1]port trunk allow-pass vlan all

[SWC-Ethernet0/0/1]interface E0/0/2

[SWC-Ethernet0/0/2]port link-type trunk

[SWC-Ethernet0/0/2]port trunk allow-pass vlan all

[SWC-Ethernet0/0/2]display current-configuration 

\#

sysname SWC

\#

undo info-center enable

\#

stp mode stp

\#

cluster enable

ntdp enable

ndp enable

\#

drop illegal-mac alarm

\#

diffserv domain default

\#

drop-profile default

\#

aaa

 authentication-scheme default

 authorization-scheme default

 accounting-scheme default

 domain default

 domain default_admin

 local-user admin password simple admin

 local-user admin service-type http

\#

interface Vlanif1

\#

interface MEth0/0/1

\#

interface Ethernet0/0/1

 port link-type trunk

 port trunk allow-pass vlan 2 to 4094

\#

interface Ethernet0/0/2

 port link-type trunk

 port trunk allow-pass vlan 2 to 4094

\#



[SWC]display stp brief 

 MSTID  Port                        Role  STP State     Protection

   0    Ethernet0/0/1               ROOT  FORWARDING      NONE

   0    Ethernet0/0/2               ALTE  DISCARDING      NONE

关闭SWA后,SWC状态变化

[SWC]display stp brief 

 MSTID  Port                        Role  STP State     Protection

   0    Ethernet0/0/1               ROOT  FORWARDING      NONE

   0    Ethernet0/0/2               ALTE  DISCARDING      NONE

[SWC]display stp brief

 MSTID  Port                        Role  STP State     Protection

   0    Ethernet0/0/2               ROOT  DISCARDING      NONE

[SWC]display stp brief

 MSTID  Port                        Role  STP State     Protection

   0    Ethernet0/0/2               ROOT  LEARNING        NONE

[SWC]display stp brief

 MSTID  Port                        Role  STP State     Protection

   0    Ethernet0/0/2               ROOT  LEARNING        NONE

[SWC]display stp brief

 MSTID  Port                        Role  STP State     Protection

   0    Ethernet0/0/2               ROOT  LEARNING        NONE

[SWC]display stp brief

 MSTID  Port                        Role  STP State     Protection

   0    Ethernet0/0/2               ROOT  LEARNING        NONE

[SWC]display stp brief

 MSTID  Port                        Role  STP State     Protection

   0    Ethernet0/0/2               ROOT  FORWARDING      NONE

[SWC]display stp brief

 MSTID  Port                        Role  STP State     Protection

   0    Ethernet0/0/2               ROOT  FORWARDING      NONE


最后,给各位兄弟们加点氮!

图片
部分图片来源于网络,如有侵权请联系删除

See yo!

Motto: Actions speak louder than words.
欢迎大家关注我的微信公众号,方便大家手机查看~也会不定期分享读书心得、育儿想法
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值