你的压力来自于,无法自律,只是假装努力

生成树协议--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(多生成树协议)

 

 

 

posted @ 2020-04-20 10:09  碗安  阅读(1779)  评论(0编辑  收藏  举报
( ¯▽¯;)