怎样配cisco交换机的STP,并给出实例并附带讲解

2024-12-14 09:47:08
推荐回答(2个)
回答1:

要在网络中配置2 个VLAN,不同VLAN 的STP 具有不同的根桥,实现负载平衡。

(1) 步骤1:利用VTP 在交换机上创建VLAN2,在S1 和S2 之间的链路配置Trunk

S1(config)#vtp domain VTP-TEST

Changing VTP domain name from NULL to VTP-TEST

S1(config)#vlan 2

//在S1 上配置VTP 的域名,并创建VLAN 2。由于默认时S2 和S3 的VTP 域名为空,它们将

自动学习到S1 的VTP 域名,同时S2、S3 也将自动学习到VLAN 2,请确认是否成功。

S1(config)#int f0/14

S1(config-if)#shutdown

//关闭该接口,以免影响我们的实验

S1(config)#int f0/13

S1(config-if)#switchport trunk encapsulation dot1q

S1(config-if)#switchport mode trunk

//S1 的f0/13 改为negotiate 后,由于默认时S2 的f0/13 为auto 模式,S1 和S2 将自动协

商成功Trunk。而默认时S3 的以太网接口就是desirable 模式,所以S3 和S1、S2 的链路

也自动协商成功Trunk。请确认三条链路的Trunk 是否成功。

(2) 步骤2:检查初始的STP 树

S1#show spanning-tree

VLAN0001

Spanning tree enabled protocol ieee

//以上表明运行的STP 协议是IEEE 的802.1D

Root ID Priority 32768

Address 0009.b7a4.b181

Cost 19

Port 17 (FastEthernet0/15)

Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec

//以上显示VLAN 1 的STP 树的根桥信息,通过根桥的MAC 地址可以确定S3 是根桥。这是

因为S3 是较早的交换机,具有较低的MAC 地址。由于S3 是一台低端的交换机,成为根桥

显然是不合理的。

Bridge ID Priority 32769 (priority 32768 sys-id-ext 1)

Address 0018.ba11.f500

Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec

Aging Time 300

//以上显示该交换机的桥ID

Interface Role Sts Cost Prio.Nbr Type

---------------- ---- --- --------- -------- --------------------------------

Fa0/13 Altn BLK 19 128.15 P2p

Fa0/15 Root FWD 19 128.17 P2p

//以上显示该交换机各个接口的状态,f0/13 为阻断状态,f0/15 为根口

VLAN0002

Spanning tree enabled protocol ieee

Root ID Priority 32768

Address 0009.b7a4.b182

Cost 19

Port 17 (FastEthernet0/15)

Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec

Bridge ID Priority 32770 (priority 32768 sys-id-ext 2)

Address 0018.ba11.f500

Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec

Aging Time 300

Interface Role Sts Cost Prio.Nbr Type

---------------- ---- --- --------- -------- --------------------------------

Fa0/13 Altn BLK 19 128.15 P2p

Fa0/15 Root FWD 19 128.17 P2p

//以上是VLAN 2 的STP 树情况,VLAN 2 的STP 树和VLAN 1 的类似。默认时,Cisco 交换机

会为每个VLAN 都生成一个单独的STP 树,称为PVST(Per VLAN Spanning Tree)。

【技术要点】需要仔细分析为什么STP 会是目前这种情况。三个交换机的默认优先级都是

32768,而S3 的MAC 较低,所以成为了根桥,则S3 上的f0/1 和f0/2 是指定口,处于Forword

状态。S1 有两个接口可以到达S3,一个接口是f0/13,到达S3 的Cost 为19+19=38,另

一个接口是f0/15,到达S1 的Cost 为19,因此f0/15 是根口,处于Forword 状态。同样

S2 上,f0/15 也是根口,处于Forword 状态。在S1 和S2 之间的链路上,要选举出一个指定

口。根据选举的要素,根桥的ID 是一样的,不能决出胜负;到达根桥的Cost 值也是一样的,

都为19,不能决出胜负;但是发送者桥ID 不一样,S1 的MAC 地址高,S2 的MAC 地址低,

S2 获胜,所以S2 的f0/13 是指定口,处于Forward 状态,S1 的f0/13 就处于Block 状态了。

(3) 步骤3:控制S1 为VLAN1 的根桥,S2 为VLAN2 的根桥

S1(config)#spanning-tree vlan 1 priority 4096

S2(config)#spanning-tree vlan 2 priority 4096

//对于VLAN 1 来说,S1 的优先级为4096,而S2 和S3 保持默认值32768,这样S1 就成为

了VLAN 1 的根桥。同样我们控制S2 成为了VLAN 2 的根桥。优先级通常要是4096 的倍数。

S1#show spanning-tree

VLAN0001

Spanning tree enabled protocol ieee

Root ID Priority 4097

Address 0018.ba11.f500

This bridge is the root

Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec

//S1 成为了VLAN 1 的根桥了

Bridge ID Priority 4097 (priority 4096 sys-id-ext 1)

Address 0018.ba11.f500

Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec

Aging Time 15

Interface Role Sts Cost Prio.Nbr Type

---------------- ---- --- --------- -------- --------------------------------

Fa0/13 Desg FWD 19 128.15 P2p

Fa0/15 Desg FWD 19 128.17 P2p

//对于VLAN 1 来说,f0/13 和f0/15 是指定口,都处于转发状态了

VLAN0002

Spanning tree enabled protocol ieee

Root ID Priority 4098

Address 0018.ba11.eb80

Cost 19

Port 15 (FastEthernet0/13)

Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec

//S2 成为了VLAN 2 的根桥了

Bridge ID Priority 32770 (priority 32768 sys-id-ext 2)

Address 0018.ba11.f500

Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec

Aging Time 15

Interface Role Sts Cost Prio.Nbr Type

---------------- ---- --- --------- -------- --------------------------------

Fa0/13 Root FWD 19 128.15 P2p

Fa0/15 Altn BLK 19 128.17 P2p

//对于VLAN 2 来说,f0/13 是根口,处于转发状态,而f0/15 却是阻断状态

S3#show spanning-tree brief

VLAN1

Spanning tree enabled protocol ieee

Root ID Priority 4097

Address 0018.ba11.f500

Cost 19

Port 1 (FastEthernet0/1)

Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec

Bridge ID Priority 32768

Address 0009.b7a4.b181

Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec

Aging Time 300

Interface Designated

Name Port ID Prio Cost Sts Cost Bridge ID Port ID

-------------------- ------- ---- ----- --- ----- -------------------- -------

FastEthernet0/1 128.1 128 19 FWD 0 4097 0018.ba11.f500 128.17

FastEthernet0/2 128.2 128 19 FWD 19 32768 0009.b7a4.b181 128.2

//在S3 上,对于VLAN1,S3 的f0/1 和f0/2 都处于转发状态。

VLAN2

Spanning tree enabled protocol ieee

Root ID Priority 4098

Address 0018.ba11.eb80

Cost 19

Port 2 (FastEthernet0/2)

Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec

Bridge ID Priority 32768

Address 0009.b7a4.b182

Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec

Aging Time 300

Interface Designated

Name Port ID Prio Cost Sts Cost Bridge ID Port ID

-------------------- ------- ---- ----- --- ----- -------------------- -------

FastEthernet0/1 128.1 128 19 FWD 19 32768 0009.b7a4.b182 128.1

FastEthernet0/2 128.2 128 19 FWD 0 4098 0018.ba11.eb80 128.17

//S3 上,对于VLAN2,S3 的f0/1 和f0/2 也都处于转发状态。

(4) 步骤4:控制指定口

在步骤3 中可以看到对于VLAN 1,S1 成为了根桥,S1 的f0/13 和f0/15 处于转发状态;

S2 的f0/13 是根口,也处于转发状态;S3 的f0/1 是根口,也处于转发状态;然而S2 和S3

之间的链路上,却是低端交换机S3 的f0/2 在转发数据,原因在于S2 和S3 在竞争指定口时,

由于S3 的MAC 较低而获胜了,这是不合理的。VLAN 2 的情况类似。

我们要控制指定口,这可以通过改变优先级实现,如下:

S2(config)#spanning-tree vlan 1 priority 8192

S1(config)#spanning-tree vlan 2 priority 8192

//对于VLAN 1 来说,S2 的优先级为8192,比S1 的4096 低,不至于成为根桥,但是比S3

的32768 低,所以在竞争指定口时会获胜。VLAN 2 的情况类似。

S3#show spanning-tree brief

VLAN1

(此处省略)

Interface Designated

Name Port ID Prio Cost Sts Cost Bridge ID Port ID

-------------------- ------- ---- ----- --- ----- -------------------- -------

FastEthernet0/1 128.1 128 19 FWD 0 4097 0018.ba11.f500 128.17

FastEthernet0/2 128.2 128 19 BLK 19 8193 0018.ba11.eb80 128.17

//S3 上,对于VLAN1,S3 的f0/1 处于转发状态,而f0/2 处于阻断状态。

VLAN2

(此处省略)

Interface Designated

Name Port ID Prio Cost Sts Cost Bridge ID Port ID

-------------------- ------- ---- ----- --- ----- -------------------- -------

FastEthernet0/1 128.1 128 19 BLK 19 8194 0018.ba11.f500 128.17

FastEthernet0/2 128.2 128 19 FWD 0 4098 0018.ba11.eb80 128.17

// S3 上,对于VLAN 2,S3 的f0/1 处于阻断状态,而f0/2 处于转发状态,这样起到了负

载平衡的作用。

14.3 实验2: portfast、uplinkfast、backbonefast

1. 实验目的

通过本实验,读者可以掌握如下技能:

(1) 理解portfast 的工作场合和配置

(2) 理解uplinkfast 的工作场合和配置

(3) 理解backbonefast 的工作场合和配置

2. 实验拓扑

如图14-1。

3. 实验步骤

在实验1 的基础上继续本实验,我们将只关心VLAN 1 的STP 树。

(1) 步骤1:配置portfast

图14-1 中,S1 的f0/5 是用于接入计算机。当计算机接入时,f0/5 接口立即进入

Listening 状态,随后经过Learning,最后才成为Forwarding,这期间需要30 秒的时间。

这对于有些场合是不可忍受的,可以配置portfast 特性,使得计算机一接入,接口立即进

入Forwarding。

S1(config)#int f0/5

S1(config-if)#spanning-tree portfast

%Warning: portfast should only be enabled on ports connected to a single

host. Connecting hubs, concentrators, switches, bridges, etc... to this

interface when portfast is enabled, can cause temporary bridging loops.

Use with CAUTION

%Portfast has been configured on FastEthernet0/5 but will only

have effect when the interface is in a non-trunking mode.

//交换机会警告该接口只能用于接入计算机或者路由器,不要接入其他的交换机

(2) 步骤2:配置uplinkfast

先确认实验1 的STP 树已经正确。在图14-1 中的S1 上,关闭f0/15 接口,在S3 上反

复执行“show spanning-tree vlan 1 brief”观察f0/2 接口的状态变化:

FastEthernet0/2 128.2 128 3019 LIS 19 8193 0018.ba11.eb80 128.17

大约15 秒后变为:

FastEthernet0/2 128.2 128 3019 LRN 19 8193 0018.ba11.eb80 128.17

大约15 秒后变为:

FastEthernet0/2 128.2 128 3019 FWD 19 8193 0018.ba11.eb80 128.17

合计大约15+15=30 秒,f0/2 变为转发状态。

S3(config)#spanning-tree uplinkfast

S1(config)#int f0/15

S1(config-if)#no shutdown

S1(config-if)#shutdown //等STP 重新稳定后,才执行该语句

在S3 上重复执行“show spanning-tree vlan 1 brief”,可以看到f0/2 很快就进入了

Forwarding 状态。

【技术要点】没有配置uplinkfast 时,交换机S3 如果能直接检测到f0/1 接口上的链路故

障,f0/2 会立即进入Listen 状态,这样30 秒就能进入Forward 状态。然而如果S1 和S3

之间存在一个Hub,S1 上的f0/15 接口故障了,S3 将无法直接检测到故障,S3 只能等待10

个周期没有收到S1 的BPDU(每个周期2 秒),20 秒中后,S3 的f0/2 才进入Listen 状态,

这样总共50 秒才就能进入Forward 状态。所以STP 重新收敛的时间通常需要30—50 秒。

(3) 步骤3:配置backbonefast

打开S1 上f0/15 接口,确认STP 树已经正确。在图14-1 中的S1 上,关闭f0/13 接口,

在S3 上反复执行“show spanning-tree vlan 1 brief”观察f0/2 接口的状态变化:

FastEthernet0/2 128.2 128 3019 BLK 19 8193 0018.ba11.eb80 128.17

大约20 秒后变为:

FastEthernet0/2 128.2 128 3019 LIS 19 8193 0018.ba11.eb80 128.17

大约15 秒后变为:

FastEthernet0/2 128.2 128 3019 LRN 19 8193 0018.ba11.eb80 128.17

大约15 秒后变为:

FastEthernet0/2 128.2 128 3019 FWD 19 8193 0018.ba11.eb80 128.17

合计大约20+15+15=50 秒,f0/2 变为转发状态。

S1(config)#spanning-tree backbonefast

S2(config)#spanning-tree backbonefast

S3(config)#spanning-tree backbonefast

S1(config)#int f0/13

S1(config-if)#no shutdown

S1(config-if)#shutdown //等STP 重新稳定后,才执行该语句

在S3 上重复执行“show spanning-tree vlan 1 brief”,可以看到f0/2 很快就进入了

Listening 状态,合计大约15+15=30 秒后,f0/2 就变为转发状态,比之前的50 秒少了

20 秒。

【提示】uplinkfast 命令只需要在S3 配置即可,而backbonefast 命令需要在S1、S2、S3

三台交换机上都配置。

这是个标准试验,希望对楼主有所帮助!

回答2:

你的原理不透彻,这是我上CCNA的笔记
STP 生成树协议为了解决冗余带来的问题
配置之前要搞清楚这几个问题:
1。交换机是如何发现网络是否存在环路的
2。交换机端口角色的选举
3。端口状态的转换
不知道你这几个清楚不?

就比如端口状态就有5种 disable--》 blocking --》listening--》learning--》forwarding
交换机之间传递的是BPDU(桥协议数据单元)有俩中 1.、配置PBDU,用于基本的生成树计算
2.、TNCPBDU 用于拓扑改变通告(一般就介绍第一种)
配置pbdu它的参数有1、桥ID,包含 桥优先级 32768 交换机端口的MAC地址
2。根路径开销 cost 3
3、端口id 包含 端口优先级 128 端口编号
STP算法或者选举过程我就不说了,都是最小原则。
根交换机
在网络中选举一个桥ID最优的交换机作为根交换机。则比较首先比较优先级,优先级数值越小越优先;如果优先级相同,则比较交换机的MAC地址,MACD地址越小的交换机越小越优先。
根端口
在网络中所有非根交换机上选择一个端口,首先选择到达根路径开销最小的端口,如果cost值相同。则比较BPDU 发送方 的桥ID,越小越优。如果桥Id相同在比较 发送方的端口ID。以此类推,一级一级的比较,越小越好。
指定端口:也是这样的,在每条链路上都选择一条。
下面就是命令,都是,基于你的要求和原理。
1、查看拓扑的生成树 show spanning-tree
2、修改交换机的stp优先级 (优先级必须是4096的倍数,最大不超过65535)
spanning-tree vlan * priority *****
3、修改交换机的端口的cost spanning-tree vlan * cost *****
4、修改交换机的端口的优先级 spanning-tree vlan * priority *****