STP(Spanning Tree Protocol)是用来避免数据链路层出现逻辑环路的协议(现实中,我们为了给通信做备份,交换机之间多条链路互连 有些物理环路是无法避免的)
STP是交换机的功能::交换机之间多条链路互连时,造成环路,,环路会引起 广播风暴,
网络中的主机会收到重复数据帧,,而STP通过阻塞端口,,来消除网络环路,并实现链路备份的作用。
STP配置的过程:
1.交换机上运行的STP通过BPUD信息的交互,选择跟交换机,(BPUD包括桥ID、路径开销、端口ID、计时器参数。)
2.然后每台非交换机选择与跟交换机通信的根端口,
3.之后,每个网段选择用来转发数据至跟交换机的指定端口,
4.最后剩余端口被阻塞
非根桥(ALTE:替代(阻塞)端口,DESI:指定端口,ROOT:指定端口)
接下来,通过实验来进一步了解:
实验拓扑:
实验步骤:
1.基本配置
根据实验拓扑图,,在交换机上启用STP(华为交换机默认启用MSTP),将交换机的STP模式更改为普通生成树STP。
S2、S3、S4同S1。
配置完成后,默认情况下虚等30s(生成树重新计算的时间15s Forward Delay加上15s Learning状态时间),在使用display stp命令查看S1的生成树状态。
可以看到S1的E 0/0/1端口为丢弃状态、端口角色Alternate,即替代端口,,E 0/0/2端口为转发状态、端口角色为ROOT(根端口)。
还可以使用display stp brief命令在S2,S3,S4上仅查看摘要信息。
在交换机S2上所有端口 为转发状态,,观察到E 0/0/1和E 0/0/3端口角色为指定端口,,
E 0/0/2位根端口,
在交换机S3上 所有端口,角色都为指定端口,,且端口状态都为转发。
交换机S4上 E 0/0/2端口角色为Altenate端口,,且状态为丢弃状态,,该端口将不会转发数据流量。
可以初步判定4台交换机中S3为根交换机,应为该交换机所有端口都为指定端口。
根网桥上没有根端口,,,非根桥上才有
通过display stp命令查看生成树详细信息
看到“CIST Root”和 “CIST Bridge”相同,即目前根交换机与自身的交换机ID相同,,说明S3为根交换机。
生成树运算第一步就是通过比较每台交换机的ID选举跟交换机。
交换机ID有交换机优先级和MAC地址组成,,首先比较交换机优先级,,数值最低的为根交换机;若优先级相同(我们这4台交换机的生成树刚刚开始运行,,都为默认值32768)则会比较MAC地址,,同样是数值最低的选举为根交换机。
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
其中CIST Bridge是自身交换机,,,,,CIST Root/ERPC 是根交换机
3.理解根端口的选举
生成树在选择出跟交换机之后,,将在每台非根交换机上选择根端口,,,选择时首先比较该交换机上每个端口到达跟交换机的 根路径开销,,路径开销最小的端口将成为根端口。如果根路径开销值相同,,则比较每个端口所在链路上的上行交换机ID,,如果该交换机ID 也相同,,则比较每个端口所在链路上的上行端口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连接的
E 0/0/2接口被选为根端口。。
查看S4的E 0/0/2接口开销值。
可以看到,,接口路径开销采用的是Dot1T的计算方法,,Config是指手工配置的路径开销,,Active是实际使用的路径开销,,开销值为1。
配置S4的E 0/0/2接口的代价值为2000,减少该接口默认的代价值。
配置完后再次查看S4的E 0/0/2接口开销值。
同样的将E 0/0/1端口的默认代价值修改为200 000。
这时,查看STP状态的摘要信息
发现此时E 0/0/1端口变成了根端口,,而E0/0/2变成啦 Alternate端口。。这时由于在选举根端口时,,其到根路径大于E 0/0/1的根路径开销。
4.理解指定端口的选举
生成树协议在每台非根交换机选择出根端口之后,将在每个网段上选举指定端口,,选择的比较规则和选择根端口类似。
现在网络管理员需要确保S2连接S3的E0/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的接口信息。
看到S2上E 0/0/3接口的MAC地址大于S3的,,,所以该网段上的S3E 0/0/3接口为指定接口。
修改S3的 E0/0/2接口的开销值,,将该值曾达(默认为200 000),,即增大该端口上的根路径开销值,确保S2的E 0/0/3接口成为指定端口。
配置完后查看S2的STP状态摘要信息。
根据STP计算规则选择指定端口时,,最终选择S2的 E0/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端口,,再次验证啦选举指定端口时首先比较根路径开销规则。
思考:
解答:当进行生存树BPUD比较是,,根桥ID、开销值、发送桥ID前三个参数依次都相同时,,这时就需要比较发送者的端口ID。
来源:oschina
链接:https://my.oschina.net/u/4415923/blog/3336925