zoukankan      html  css  js  c++  java
  • 交换机生成树——STP

    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。

  • 相关阅读:
    计算一个数的逆序数的个数(1)
    Javascript DOM(2)
    python 装饰器
    Javascript DOM
    Javascrip 入门第三节课
    C# sapnco支持.net 4.5了,真是个意外的发现
    uft调用rfc接口
    pyqt常用窗口组件
    python QQTableView中嵌入复选框CheckBox四种方法
    Pygame模块,功能表
  • 原文地址:https://www.cnblogs.com/escwq/p/11973020.html
Copyright © 2011-2022 走看看