• STP的配置和选路规则


    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.

     

     

     看了一下结果,发现并无影响。选取端口是首先比较路径开销。

    这个世界你真美好
  • 相关阅读:
    连接mysql慢或者多台服务器ping不通mysql
    java8 Stream
    Idea 提示xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
    sublime Text的使用
    BigDecimal 加减乘除 比较大小 setScale(精度处理)
    kubectl 命令
    mac brew命令的使用
    mysql json
    idea open打开项目之后,project里没有目录结构。
    mac 多显示器焦点快速切换
  • 原文地址:https://www.cnblogs.com/li2019/p/12002349.html
Copyright © 2020-2023  润新知