STP 配置和选路规则

!

原理概述

STP是用来避免数据链路层出现逻辑环路的协议,使用BPDU传递网络信息计算出一根无环的树状网络结构,并阻塞特定端口。在网络出现故障的时候,STP 能快速发现链路故障,并尽快找出另外一条路径进行数据传输。

交换机上运行的STP通过BPDU信息的交互,选举根交换机,然后每台非根交换机选择用来与根交换机通信的根端口,之后每个网段选择用来转发数据至根交换机的指定端口,最后剩余端口则被阻塞。

在STP工作过程中,根交换机的选举,根端口、指定端口的选举都非常重要。华为VRP提供了各种命令来调整STP的参数,用以优化网络。例如,交换机优先级、端口优先级、端口代价值等。

实验内容

公司购置了4台交换机,组建网络。考虑到网络的可靠性,将4台交换机如图4-1所示拓扑搭建。由于默认情况下,交换机之间运行STP后,根交换机、根端口、指定端口的选择将基于交换机的MAC地址的大小,因此带来了不确定性,极可能由此产生隐患。

公司网络规划,需要SI作为主根交换机,S2作为S1的备份根交换机。同时对于S4交换机,E 0/0/1接口应该作为根端口。对于S2和S3之间的链路,应该保证S2的E 0/0/3接口作为指定端口。同时在交换机S3上,存在两个接口E 0/0/10、E 0/0/11连接到测试PC,测试PC经常上下线网络,需要将交换机S3与之相连的对应端口定义为边缘端口,避免测试电脑上下线对网络产生的影响。

实验拓扑

STP配置及选举规则的拓扑如图4-1所示。

MAC地址

本实验的MAC地址见表4-1。

实验步骤

1.基本配置

根据图4-1,在交换机上启用STP (华为交换机默认启用MSTP),将交换机的STP,模式更改为普通生成树STP.

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

可以观察到S1的E 0/0/1端口为转发状态、端口角色为根端口,E 0/0/2端口为丢弃状态,端口角色Alternate,即替代端口。

还可以使用display stp brief命令在S2、S3、S4上仅查看摘要信息。

在交换机S2上所有的端口为转发状态,观察到E 0/0/1和E 0/0/3端口角色为指定端口,E 0/0/2为根端口。

在交换机S3.上E 0/0/3端口角色为Alternate端口,且状态为丢弃状态,该端口将不会转发数据流量。

在交换机S4上所有的端口角色都为指定端口,且端口状态都为转发。

可以初步判断4台交换机中S4为根交换机,因为该交换机所有端口都为指定端口。通过display stp命令查看生成树详细信息。

可以观察到“CIST Root”和“CIST Bridge”相同,即目前根交换机ID与自身的交换机ID相同,说明目前S4为根交换机。

生成树运算第一步就是通过比较每台交换机的ID选举根交换机。交换机ID由交换机优先级和MAC地址组成,首先比较交换机优先级,数值最低的为根交换机:如果优先级一样,则比较MAC地址,同样数值最低的选举为根交换机。

目前在该公司的二层拓扑中,4台交换机的生成树都刚刚开始运行,交换机优先级都为默认值,即都相同,故根据每台交换机的MAC地址来选举,通过比较,最终确定S4为根交换机。

2.配置网络中的根交换机

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

现在将S1配置为主根交换机,S2为备份根交换机,将S1的优先级改为0, S2的优先级改为4096。

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

通过观察发现S1的优先级变为了0,为根交换机;而S2的优先级变为了4096,为备份根交换机。

这里还可以使用另外一种方式配置主根交换机和备份根交换机。

首先删除在S1上所配置的优先级,使用stp root primary命令配置主根交换机。

删除在S2.上所配置的优先级,使用stp root secondary命令配置备份根交换机。

配置完成后查看STP的状态信息,与前一种方法得到的一致,此时S1自动更改优先级为0,而S2更改为4096.

3.理解根端口的选举

生成树在选举出根交换机之后,将在每台非根交换机上选举根端口。选举时首先比较该交换机上每个端口到达根交换机的根路径开销,路径开销最小的端口将成为根端口。如果根路径开销值相同,则比较每个端口所在链路上的上行交换机ID,如果该交换机ID也相同,则比较每个端口所在链路上的上行端口ID.每台交换机上只能拥有一个根端口。目前S1为主根交换机,而S2为备份根交换机,查看S4上生成树信息。

可以观察到,现在S4的E 0/0/2为根端口,状态为转发状态。S4在选举根端口时,首先比较根路径开销,由于拓扑中所有链路都是相同的百兆以太网链路,S4 经过S3到S1与经过S2到S1的开销值相同:接下来比较S4的两台上行链路的交换机S2和S3的交换机标识,S2目前的交换机优先级为4096,而S3为默认的32768,所以与S2连接的E0/0/2接口被选为根端口。

查看S4的E 0/0/2接口开销值。

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

配置S4的E 0/0/2接口的代价值为2000,即增加该接口默认的代价值。

配置完成后再次查看S4的E 0/0/2接口开销值以及STP状态摘要信息。

发现此时E 0/0/1端口角色变成了根端口,而E0/0/2变成了Alternate 端口。这是由于将E 0/0/2接口的开销修改为2000之后,在选举根端口时,其到根路径开销大于E 0/0/1的根路径开销。

4.理解指定端口的选举

生成树协议在每台非根交换机选举出根端口之后,将在每个网段上选举指定端口,选举的比较规则和选举根端口类似。

现在网络管理员需要确保S2连接S3的E 0/0/3接口被选择为指定端口,可以通过修改端口开销值来实现。

为了模拟该场景,将S2的优先级恢复为默认的32768.

配置完成后, 查看S2的STP状态信息。

查看S2与S3的STP状态摘要信息。

通过观察发现在S2与S3间的链路上,选择了S3的E 0/0/3接口为指定端口,而S2的E 0/0/3 接口为Alternate端口。这是由于在选举指定端口时,首先比较两个端口的根路径开销,目前都相同:接着比较上行交换机的ID,此时S2和S3的交换机优先级相同,故比较MAC地址,最后通过比较MAC地址得出。

查看S2和S3的E 0/0/3接口信息。

可以观察到,S2 上E 0/0/3接口的MAC地址大于S3上E 0/0/3接口的MAC地址,所以该网段上S3的E 0/0/3接口成为指定接口。

修改S3的E 0/0/2接口的开销值,将该值增大(默认为1),即增大该端口上的根路径开销,确保让S2的E 0/0/3接口成为指定端口。

配置完成后查看S2的STP状态摘要信息。

根据STP计算规则选择指定端口时,最终选择S2的E 0/0/3接口作为指定端口。

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

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

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

思考

在什么场景下,选举根端口、指定端口时会比较到端口ID?

为了方便广大网络爱好学习者一起学(聚)习(众)交(搞)流(基),特开设华为干货交流群,里面已经上传大量学习资料,欢迎广大网络工程师进群学习!

扫描下方二维码  进群学习交流

球分享

球点赞

球在看

(0)

相关推荐