STP 让人最容易混的就是根交换机、根端口、指定端口还有堵塞端口的选取。下面让我来简单介绍一下吧!
1.选举根交换机:
判断对象:所有运行STP协议的交换机中选出一个;
判断依据:交换机中选择网桥ID值(交换机优先级+MAC)最小的交换机作为网络中的根网桥;
确定根交换机后,该交换机所有端口都为指定端口DP;
2.确定非根交换机的根端口RP,每个非根交换机有且只有一个RP:
判断对象:非根网桥交换机上的不同端口之间;
判断依据:
(1)端口到根网桥路径开销最小
(2)发送方网桥ID最小
(3)发送方端口ID最小(端口ID有16位,它是由8位端口优先级和8位端口编号组成的,其中端口优先级的取值范围是0-240,缺省值是128,可以修改,但必须是16的倍数)
3.确定非根交换机的指定端口:
判定对象:在每一个物理网段的不同端口之间选举出一个指定端口。
判断依据:
(1)网桥到根网桥路径开销最小
(2)发送方网桥ID最小
(3)发送方端口ID最小
4.既非根端口又非指定端口的为阻塞端口AP
这些搞明白了,STP就容易多了!
接下来让我们来介绍一下实验吧!
下面的是我绘制的拓扑图:各个交换机的ID都一一标明来了。
首先我们进行一下基本的配置!
在四个交换机上启用STP,将交换机的STP模式更改为普通生成树STP,接下来我们查看一下生成树的状态。
stp enable
stp mode stp
可以观察到e0/0/1端口为转发状态、端口角色为根端口,E0/0/2端口为丢弃端口状态,端口角色Alternate,即代替端口。
我们还可以查看一下其他的交换机端口的状态。
观察到S2上所有的端口都为转发状态,观察到e/0/0/1和e0/0/3端口角色为指定端口,e0/0/2为根端口。
S3上e0/0/3端口的角色为Alternate端口,且为丢弃状态,该端口将不会转发数据流量。
S4上的所有端口都为指定端口,且端口状态为转发。
因此可以初步断定s4交换机就是根交换机。所有端口都为指定端口。并且我们也可以看到生成树的详细信息,CLST Root和CLST Bridge相同,也可以说明。
生成树运算的第一步就是通过比较每台交换机id选举根交换机。交换机id由交换机优先级和mac地址组成,首先比较两台交换机的优先级,数值最低的为根交换机;如果优先级一样,则比较mac地址组成,同样是值最低的选举为根交换机。目前在这个二层拓扑图中,交换机优先级默认是一样的,则比较mac地址选举。
2.配置网络中的根交换机。
根交换机在网络中的地位十分重要,最好选择性能较强交换机担任,最好不要选择部署在接入层的交换机,否则会影响网络的通信质量及信息传输。我们说的,根交换机的选举依据是根交换机的id,值越小越优先,交换机默认的优先级为32768,可以修改的哟。
现在我们就来将s1 配置成根交换机,s2 为备份交换机,将s1的优先级改为0,s2的优先级改为4096.
S1:
stp priority 0
S2:
stp priority 4096
让我们查看一下:
我们发现优先级变了,s1的为0,s2 的为4096,为备份交换机。我们还有另外一种方法进行配置。
首先删除在S1 S2上面的配置优先级:undo stp priority
S1:stp root primary
S2: stp root secondary
配置完得到的结果与上图所示,即上一种方法的结果一样。
3,理解根端口的选举。
生成树在选举出根交换机后,将在每台非根交换机上选一个根端口,有且只有一个,选举时会比较根路径的开销值,小的为根端口,若是相同,则比较每个端口在链路上的上行交换机的id。若是交换机的id也想通,则比较每个端口所在链路上的上行端口id。
目前S1为主交换机,S2为备份交换机,查看S4的生成树状态。
可以看到现在S4e0/0/2为根端口。状态位转发。S4在选举根端口时,首先比较路径开销,由于拓扑图中所有的链路都是相同的以太网链路,s4经过s3到s1与经过s2到s1的开销值相同;接下来比较s4的两台上行链路的交换机S2和S3的交换机标识,S2目前的交换机优先级默认为4096,而S3为默认的32768,所以与S2连接的E0/0/2接口被选为根端口。
接下来让我们看一下S4e0/0/2接口的开销值:200000
可以观察到,接口路径开销采用的是Dot1T的计算方法,config是手工配置的路径开销,Active是实际接口使用的路径开销,开销为200000.
接下来就让我么改变一下端口的开销值,使S4交换机的eo0/0/1端口成为根端口吧!
interface ebthernet 0/0/1
stp cost “修改的开销值“
要想1 端口成为根端口,只需要其端口的开销值小于2 端口就行了
我要进行的是减小e0/0/1的端口开销值。
看我已经将e0/0/1端口的开销值手动变为20000,相比默认200000小,我么来看一下结果吧!
看下图,端口e0/0/1变为了根端口。成功!
4,理解指定端口的选举。
根交换机就好说了,全部都是指定端口,但是非根交换机就不一定了,选取方法上面介绍了好几次,接下来就让我们人工选取指定端口吧。
(1)网桥到根网桥路径开销最小
(2)发送方网桥ID最小
(3)发送方端口ID最小
实验的要求是确保S2连接S3的e0/0/3接口被选为指定端口,可以通过修改端口的开销值来实现。
首先将S2的优先级回复默认32768.
undo stp root 我们发现已经修改过来了。
我们看一下S2 S3上e0/0/3接口的状态
通过观察,在S2 与S3链路上,选择了S2的e0/0/3为指定端口,而S2的e0/0/3接口为Alternate端口。路径开销相同,比较交换机的id,优先级也相同,就比较mac地址,最后得出结果。(拓扑图中标识了)
接下来让我们指定端口吧!
现在将S3的e0/0/3接口改为指定端口
我为了更好地理解,和实验做的不一样:我是将S2e0/0/1端口的开销值加大了,也就是根路径的开销。
看,我,们成功了。
接下来我们改变一下优先级,看看能否影响指定端口的选取。S3的优先级调整为4096.
看了一下结果,发现并无影响。选取端口是首先比较路径开销。