华为交换机STP实验

那年仲夏 提交于 2020-01-29 05:09:37

STP原理

  STP是用来避免数据链路层出现逻辑环路的协议,使用BPDU传递网络信息计算出一根无环的树状网络结构,并阻塞特定端口。在网络出现故障的时候,STP能快速发现链路故障,并尽快找出另外一条路径进行数据传输。
  交换机上运行的STP通过BPDU信息的交互,选举根交换机,然后每台非根交换机选择用来与根交换机通信的根端口,之后每个网段选择用来转发数据至根交换机的指定端口,最后剩余端口被阻塞。

选举过程

1.选举根交换机,依据根交换机ID。
  根交换机ID由交换机优先级和MAC地址组成。首先比较交换机优先级,数值最低的为根交换机;如果优先级一样,则比较MAC地址,数值最低的选举为根交换机。
2.选举根端口
  每台交换机上只能拥有一个根端口。生成树在选举出根交换机后,将在每台非根交换机上选举根端口。选举时首先比较该交换机上每个端口到达根交换机的根路径开销,路径开销最小的端口将成为根端口。如果根路径开销值相同,则比较每个端口所在链路上的上行交换机ID,如果交换机ID也相同,则比较每个端口所在链路上的上行端口ID。
3.选举指定端口
  生成树在每台非根交换机选举出根端口之后,将在每个网段上选举指定端口,选举的比较规则和选举根端口类似。

实验内容

  公司购置了4台交换机组建网络。考虑到网络的可靠性,将4台交换机如图所示拓扑搭建。由于默认情况下,交换机之间运行STP后,根交换机、根端口、指定端口的选择将基于交换机的MAC地址的大小,因此带来了不确定性,极可能由此产生隐患。
  公司网络规划,需要S1作为主根交换机,S2作为S1的备份根交换机。同时对于S4交换机,E0/0/1接口应该作为根端口。对于S2和S3之间的链路,应该保证S2的E0/0/3接口作为指定端口。同时在交换机S3上,存在两个接口E0/0/10、E0/0/11连接到测试PC,测试PC经常上下线网络,需要将交换机S3与之相连的对应端口定义为边缘端口,避免测试电脑上下线对网络产生的影响。

实验拓扑

在这里插入图片描述

实验步骤

1.基本配置
在交换机上启用STP(华为交换机默认启用MSTP),将交换机的STP模式更改为普通生成树STP。

[S1]stp enable 	
[S1]stp mode stp
S2、S3、S4同样配置命令

配置完成后,默认情况下需要等待30s生成树重新计算时间(15s Forward Delay+15s Learning状态时间)。可使用display stp命令查看S1的生成树状态。

[S1]display stp
-------[CIST Global Info][Mode STP]-------
CIST Bridge         :32768.4c1f-cc4e-0696
......
Last TC occurred    :Ethernet0/0/1
----[Port1(Ethernet0/0/1)][FORWARDING]----
 Port Protocol       :Enabled
 Port Role           :Root Port
......

或者使用display stp brief命令查看摘要信息。

[S1]display stp brief 
 MSTID  Port                        Role  STP State     Protection
   0    Ethernet0/0/1               ROOT  FORWARDING      NONE
   0    Ethernet0/0/2               ALTE  DISCARDING      NONE

2.配置网络中的根交换机
根交换机在网络中的位置是非常重要的,如果选择了一台性能较差的交换机,或者是部署在接入层的交换机作为根交换机,会影响到整个网络的通信质量及数据传输。所以确定根交换机的位置极为重要。根交换机选举依据是根交换机ID,值越小越优先,交换机默认的优先级为32768。
配置S1为主根交换机,S2为备份根交换机,将S1的优先级改为0,S2的优先级改为4096。

[S1]stp priority 0
[S2]stp priority 4096

配置完成查看S1和S2的STP状态信息

[S1]dis stp
-------[CIST Global Info][Mode STP]-------
CIST Bridge         :0    .4c1f-cc4e-0696
Config Times        :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
Active Times        :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
CIST Root/ERPC      :0    .4c1f-cc4e-0696 / 0
CIST RegRoot/IRPC   :0    .4c1f-cc4e-0696 / 0
......

[S2]dis stp
-------[CIST Global Info][Mode STP]-------
CIST Bridge         :4096 .4c1f-cca7-093f
Config Times        :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
Active Times        :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
CIST Root/ERPC      :0    .4c1f-cc4e-0696 / 200000
CIST RegRoot/IRPC   :4096 .4c1f-cca7-093f / 0
......

通过观察发现S1的优先级变为了0,为根交换机;而S2的优先级变为了4096,为备份根交换机。
还可以使用另外一种方式配置主根交换机和备份根交换机。首先删除交换机上配置的优先级,使用stp root primary/secondary命令配置主根交换机或备份根交换机

[S1]undo stp priority 
[S1]stp root primary 

[S2]undo stp priority
[S2]stp root secondary

3.配置S4的根端口

查看S4上生成树信息
[S4]dis stp br
 MSTID  Port                        Role  STP State     Protection
   0    Ethernet0/0/1               ALTE  DISCARDING      NONE
   0    Ethernet0/0/2               ROOT  FORWARDING      NONE

可以观察到,S4的E0/0/2为根端口,状态为转发状态。S4在选举根端口时,首先比较根路径开销,由于拓扑中所有链路都是相同的百兆以太网链路,开销值相同;接下来比较S4的两台上行交换机ID(优先级+MAC),S2交换机优先级为4096,S3默认优先级32768,所以与S2连接的E0/0/2接口被选为根端口。

查看S4的E0/0/2接口开销值
----[Port2(Ethernet0/0/2)][FORWARDING]----
 Port Protocol       :Enabled
 Port Role           :Root Port
 Port Priority       :128
 Port Cost(Dot1T )   :Config=auto / Active=200000
 Designated Bridge/Port   :4096.4c1f-cca7-093f / 128.2
 ......

可以观察到,接口路径开销采用的是Dot1T的计算方法,Config是指手工配置的路径开销,Active是实际使用的路径开销,开销值为200000。

配置S4的E0/0/2接口的开销值为300000
[S4]int e0/0/2	
[S4-Ethernet0/0/2]stp cost 300000

查看S4的E0/0/2开销值及STP状态摘要信息
[S4-Ethernet0/0/2]dis stp interface e0/0/2 
----[Port2(Ethernet0/0/2)][DISCARDING]----
 Port Protocol       :Enabled
 Port Role           :Alternate Port
 Port Priority       :128
 Port Cost(Dot1T )   :Config=300000 / Active=300000
 ......
	
[S4-Ethernet0/0/2]dis stp brief 
 MSTID  Port                        Role  STP State     Protection
   0    Ethernet0/0/1               ROOT  FORWARDING      NONE
   0    Ethernet0/0/2               ALTE  DISCARDING      NONE

此时,E0/0/1端口称为了根端口,这是由于将E0/0/2开销修改为300000之后,在选举根端口时,其到根路径开销大于E0/0/1的根路径开销。

4.配置指定端口
修改S3的E0/0/2接口的开销值,将该增增大,即增大该端口上的根路径开销,确保让S2的E0/0/3接口成为指定端口。

[S3]int e0/0/2
[S3-Ethernet0/0/2]stp cost 200001

查看S2的STP状态摘要信息
[S2]dis stp br
 MSTID  Port                        Role  STP State     Protection
0    Ethernet0/0/1               ROOT  FORWARDING      NONE
0    Ethernet0/0/2               DESI  FORWARDING      NONE
0    Ethernet0/0/3               DESI  FORWARDING      NONE

为了验证现在能够确保S2的E0/0/3接口成为指定端口,下面将S3的优先级调整为4096,并查看。

[S3]stp priority 4096

[S3]dis stp
-------[CIST Global Info][Mode STP]-------
CIST Bridge         :4096 .4c1f-cced-4404
......

再次查看S2和S3的STP状态。

[S2]dis stp br
 MSTID  Port                        Role  STP State     Protection
   0    Ethernet0/0/1               ROOT  FORWARDING      NONE
   0    Ethernet0/0/2               DESI  FORWARDING      NONE
   0    Ethernet0/0/3               DESI  LEARNING        NONE
	
[S3]dis stp br
 MSTID  Port                        Role  STP State     Protection
   0    Ethernet0/0/1               DESI  FORWARDING      NONE
   0    Ethernet0/0/2               ROOT  FORWARDING      NONE
   0    Ethernet0/0/3               ALTE  DISCARDING      NONE

可以观察到,即使将S3的优先级修改得比S2的优先级更低,但是S2的E0/0/3接口仍然为指定端口,而S3的E0/0/3接口还是Alternate端口,再次验证了在选举指定端口时首先比较根路径开销的规则。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!