zoukankan      html  css  js  c++  java
  • 生成树协议--STP

                                                       生成树协议——STP

    引入:

    为了消除链路层的环路,即二层环路,并实现链路的冗余备份(就是当主链路出现故障,能有一条备用链路保证网络不受影响),STP生成树协议诞生了!!

    一.基础

    STP,Spanning Tree Protocol,生成树协议

    作用:→通过阻断冗余链路来消除桥接网络中可能存在的路径回环,即网络环路。

               →当前链路发生故障时激活冗余备份链路,恢复网络连通性。

    通过在桥(这里的桥是指连接两个物理段的设备,在生成树协议中一般为交换机)之间交换BPDU,来保证设备完成生成树的计算过程。

    BPDU,Bridge Protocol Data Unit,桥协议数据单元,就是生成树设备之间交换报文的报文类型。BID,桥ID,即生成树网络中交换机的ID,由优先级和MAC地址构成,例:0.0000-0000-0001,开头的0表示桥优先级,默认为32768,可通过命令修改,范围在0-65535之间,且取值只能是0或4096的倍数。

    (1)配置BPDU包含的信息

    根桥ID(RootID)(在生成树协议网络的众多交换机中会选举出一个老大作为根桥,这个老大叫Root,用来交换拓扑信息)

    根路径开销(Root Path Cost)(其他设备到根桥的的开销,路径开销:网桥间距离的度量值)

    指定桥ID(DBID,Designated Bridge ID)(每个物理段都会选举出一个指定桥,如上图①与②物理段因为SW1被选举为整个网络的根桥,所以不用选指定桥,③物理段则会选择一个指定桥,通过BID可知指定桥为SW2,因为其BID较小)

    指定端口ID(什么是指定端口后面会说)

    (2)根桥的选举:

    ①.通过比较BID,先比较优先级,优先级值越小越优先,优先级大的被选为根桥。

    ②.如果优先级相同,则比较MAC地址,MAC地址小的优先。

    (3)端口角色:

    →DP——指定端口,根桥上所有端口为指定端口,连接指定桥的端口为指定端口。每个物理段,有只有一个DP,DP的对端必定是RP或者AP,RP和AP的对端必定是DP。

    →RP——根端口,在非根桥上选举根路径开销最小的端口为根端口。每个非根桥必须选择一个端口作为根端口。

    →AP——阻塞端口,既不是根端口也不是指定端口的其他端口被STP置为阻塞状态。也可以说是RP的备用端口,当RP所在链路故障时,AP转变为RP.

    (4)路径开销COST

    STP以IEEE802.1D为标准计算开销:

    带宽 STP开销
    4Mbit/s 250
    10Mbit/s 100
    100Mbit/s 19
    1 Gbit/s 4
    10 Gbit/s 2

    (5)通过桥ID决定端口角色

    →在根路径开销相同时,所连网段指定桥ID最小的端口为根端口RP。

    →在根路径开销相同时,桥ID最小的桥被选为物理段上的指定桥,连接指定桥的端口为指定端口DP

    (6)通过端口ID决定端口角色

     

     →当两条链路开销相同时,端口ID小的一方为根端口。

     

    (7)端口状态

    端口角色 端口状态 端口行为
    未启用STP功能的端口 Disabled 不收发BPDU,不收发数据,不学习MAC地址
    非指定端口或根端口 Blocking 收但不发BPDU,不收发数据,不学习MAC地址
             —— Listening 收发BPDU,不收发数据,不学习MAC地址
             —— Learning 收发BPDU,不收发数据,学习MAC地址
    指定端口或根端口 Forwarding 收发BPDU,收发数据

    (8)端口迁移

     →端口被选为指定端口或根端口后,状态变化

    Blocking →Listening →(Forward Delay time=15s)→Learning →(Forward Delay time=15s)→Forwarding           

    Forward Delay time:状态转换需要的时间

    二.深入

    (1)STP中BPDU报文格式

    →PID:协议ID

    →PIV:版本

    →BPDU Type:BPDU类型,有配置BPDU和TCN(用于清除MAC表)

    →Flags:标志位,共8个bit,对应8个位,即Flags字段有8位,标准STP中只使用了第七位TCA与第0位TC,而RSTP,MSTP中8位都用到了。

    →Root ID,RPC,Bridge ID,Port ID分别对应根桥ID,路径开销,本桥ID,端口ID。

    →Message Age,当前消息年龄,每经过一台设备,这个值+1,这个值大于Max Age时,则该报文被老化。

    →Max Age,最大老化时间,默认为20s

    →Hello Time,默认为2s

    →FWD Delay,传输时延。

    (2)STP中的TCN BPDU

    STP的TCN BPDU,主要用于清除设备的MAC地址表。

    当网络拓扑发生变化,例如:

    当SWA与SWC之间出现故障,因为MAC地址表项的老化时间默认为300s,所以00-05-06-07-08-BB   G0/1这条错误的MAC表项会存在300s后才会转换成备用链路的G0/2接口,在这段时间之内,SWB是无法将数据从G0/2接口转发给SWC的。

    300s恢复正常转发肯定是无法接受的,所以有了TCN BPDU,用来清除MAC以重新获取正确的MAC地址。

     (灵魂画师)

    →TCN,用于通知

    →TCA,用于确认TCN,位于BPDU报文中Flags位的第7位

    →TC,  清除MAC,位于BPDU报文中Flags位的第0位

    (3)STP保护

    →STP根保护

    话不多说 看图

    当网络中新加入一个交换机且优先级大于当前根桥,如果没有开启根保护,那么新来的SW会被选为根桥,这会导致PC间的互访不能用最优路径。即没有新加入SW时PC间的互访线路为:②→③,而新来的SW被选为根桥后的线路为:②→④→④→③。

    当开启的根保护时,即在根桥上配置root-protection,当收到更高优先级的BPDU,即对于G0/3接口的BPDU不进行计算,并配置为状态Listening状态。

    →STP BPDU保护

    STP的BPDU保护是针对于边缘端口的,即如果确认边缘端口所连接的是一台PC,如果这台PC发送STP报文,会导致STP网络发生变化,如果PC是攻击者会导致STP网络瘫痪,所以要开启STP的BPDU保护,即一旦接收到PC发来的BPDU,则立刻将这个边缘端口shutdown,如果想要恢复,可以网管手工恢复或配置成一定时间内未收到BPDU自动恢复。

    →STP环路保护

    图来~

    当AP接口(Blockig状态)一直收不到来自上游的BPDU使他继续阻塞,那么它会在20S(BPDU老化时间)后从AD转变为DP从而形成环路,所以可通过在AP接口上配置stp loop-protection开启环路保护。

    (4)常用命令

    [SW]stp global enable                                                                      !全局开启STP特性

    [SW]stp mode stp/rstp/mstp                                                           !设置STP模式(默认为MSTP)

    [SW]stp pathcost-standard  dot1d-1998/dot1t/legacy                    !配置路径开销标准,dot1d-1998已被淘汰,常用dot1t。

    [SW]stp priority 0/4096的倍数                                                         !设置当前设备的STP优先级(默认32768)

    [SW]stp timer hello [100-1000ms]                                                  !配置STP Hello时间,单位为毫秒,默认为200ms,即2s

    [SW]stp timer max-age [600-4000ms]                                            !配置STP最大老化时间,默认为20s

    [SW]stp root-protection                                                                   !开启STP根保护

    [SW]stp bpdu-protection                                                                 !开启BPDU保护

    [SW]stp loop-protection                                                                  !开启环路保护

    [SW-GigabitEthernet1/0/1]stp edged-port                                      !配置端口为边缘端口

    [SW-GigabitEthernet1/0/1]stp cost  [1-200000]                              !STP接口开销

    [SW]display stp                                                                                !查看STP信息

    [SW]display stp root                                                                        !显示所有生成树根桥信息

    [SW]display stp bpdu-statistics                                                       !显示端口BPDU统计信息

    !!!!!

    STP先讲到这,后面更新RSTP(快速生成树协议)与MSTP(多生成树协议)

    未经允许,禁止转载。。。 需要什么资料请下方评论或私信博主
  • 相关阅读:
    三:redis的数据类型
    二:redis配置
    一:redis安装(Windows)
    Mysql数据库的调优
    JAVA中的设计模式四(装饰模式)
    tomcat启动正常,但是访问项目时,404. Eclipse没有正确部署工程项目
    在eclipse中安装jadclipse的反编译插件
    部署Maven项目到tomcat报错:java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener【转】
    自动生成编号,id,序号,采用不同策略生成
    POI实现Excel导入导出
  • 原文地址:https://www.cnblogs.com/cqwangye/p/12711318.html
Copyright © 2011-2022 走看看