第八章,STP---生成树协议
-
广播风暴:广播帧在二层环路中形成逆时针和顺时针转动的两层环路,并且无限循环,最终导致设备宕机,网络瘫痪。
-
MAC地址表的翻摆:也被称为MAC地址表漂移。同一个数据帧,顺时针接收后将记录MAC地址及接口的对应关系,之后,逆时针还会在修改一边,如此循环,导致MAC地址表内容一直在变动。
-
多重复数据帧
生成树协议原理:在二层交换网络中,逻辑的阻塞部分接口,实现从根节点到所有节点唯一的路径的生成,成为一个没有环路的拓扑。当最佳路径数显故障时,个别被阻塞的接口将被打开,形成备份链路。
802.1D生成树
802.1D----是由IEEE组成颁布的公有协议----标准的STP协议
RSTP----802.1W
MSTP---802.1S
STP基本概念
桥ID
-
每一台运行STP协议的交换机都拥有的唯一的BID。
-
桥ID一共8字节,其中前2字节为桥优先级,后6字节为桥MAC地址。包含16bit的桥优先级和48bit的桥MAC地址,其中桥优先级占据桥ID的高16bit位。
根桥(root)
STP的主要作用之一就是在整个交换网络计算出一颗无环的树,而想要计算出该树,则需要先行确定树根的位置,即根网桥的位置。
选举规则:网络中拥有最小桥ID的交换机将成为根桥。
缺省情况下,桥优先级为32768。---可以修改,但是修改时范围为0-61440,且必须是4096的倍数。
开销cost与根路径开销RPC
每一个激活了STP的接口都维护着一个cost值,接口的cost主要用于计算RPC,也就是计算到达根的开销。
默认情况下使用IEEE 802.1T标准。
接口ID---PID
每一个运行了STP协议的交换机的接口会存在一个PID值,来标识该接口信息。
接口ID长度是16bit,高4bit是接口优先级,低12bit是接口编号。
接口优先级默认为128,可以修改,取值范围0-240,必须为16的倍数。
STP报文----BPDU
网桥协议数据单元
-
配置BPDU
-
TCN BPDU
BPDU载荷被直接封装在以太网数据帧中,数据帧的目的MAC地址是组播MAC地址:0180-c200-0000
配置BPDU报文
-
在交换网络初始化过程中,每台交换机都从自己激活了STP的接口向外发送配置BPDU
-
当STP收敛完成后,只有根网桥才会周期性发送配置BPDU,缺省为2秒。非根网桥会在自己接收到根网桥发送的配置BPDU以后,使用触发更新方式,将自己的配置BPDU发送出去。
-
协议版本---PVI
-
stp--->0;rstp--->2;mstp---->3
-
-
标志字段--->STP仅仅使用了最高位(TCA---拓扑变更确认标记)和最低位(TC--->拓扑变更标记)
-
消息寿命
-
与TTL值相同,但是为设备数量,代表BPDU从发出到现在经过的时间
-
初始值为0,没经过一台交换机,数值加1。
-
Max Hop参数----最大消息寿命,默认值为20。
-
-
生存时间
-
缺省20秒。
-
TCN BPDU报文
该报文用于在网络拓扑发生变化时,向根桥通知变化的发生。该报文是为了修改全网交换机的MAC地址表信息而存在的,而非是为了改变STP的生成树结构。
-
本地交换链路发生故障后,STP将重新收敛,为了加快刷新全网交换机的MAC地址表,故障交换机会向本地其余运行了STP的接口发送TCN BPDU报文
-
邻居交换机收到TCN BPDU报文后,将回复一个TCA标记为1的配置BPDU报文,用于可靠性传输。
-
该过程会一直持续到根网桥接收到TCN BPDU报文
-
注意:非根网桥不能主动发送配置BPDU,故需要等待接收到根网桥的BPDU后,将TCA标记位置为1,转发给故障设备。
-
-
之后该TCN BPDU会一直转发到根网桥处,由根网桥下发TC标记位为1的配置BPDU(只有根可以设置该标记位),逐级下发给所有交换机。
-
所有交换机在收到TC标记位为1的配置BPDU后,会立即将MAC地址表的老化时间临时性修改为15秒(转发延迟),使得MAC地址表能够提前刷新。
STP角色选举
选举步骤: 1、根网桥----rb 2、根端口-----RP 3、指定端口-----DP 4、非指定端口----NDP
根桥选举---RB
-
整个交换网络--选举范围
-
一个交换网络有且只有一个根网桥。
-
选择最小BID--->先比较桥优先级,后比较桥MAC地址。
-
根网桥的地位是具有可抢占性的。
根接口
-
选举范围----每一个非根网桥设备上,有且只有一个根接口。
-
所谓根接口----是非根网桥上所有接口中收到最优BPDU报文的接口。
最优BPDU的比较原则
-
选择具有最小桥ID的BPDU。
-
这一步,实际上是在选举根网桥。通过对比BID参数。
-
-
比较入向BPDU的RPC数值,选择最小的接口作为最优BPDU报文。
-
如果交换机接收到的多个BPDU报文的RPC相同,则比较对端设备的BID,选择具有较小BID参数的设备所对应的接口作为最优BPDU报文。
-
如果存在对端设备的BID相同,则比较对端的PID值,选择较小的PID所在接口的对应接口作为最优BPDU报文。
-
若对端PID相同,则比较本端接收到BPDU报文的接口的PID值,选择较小的作为最优BPDU报文。
指定接口--DP
-
选举范围-----两台交换机之间的物理链路上选举一个指定接口。有且只有一个。
-
该接口是该物理链路内到达根网桥最优的接口,也就是接收到最优BPDU的接口。
-
对于非根桥而言,其所有接口中收到最优BPDU的接口将成为该设备的跟接口,随后,该非根桥使用自己接收到的最优BPDU,为本设备上的其他接口各自计算一个BPDU报文。
-
然后使用计算出的BPDU报文与该接口上所接收到的BPDU报文进行对比,最优的BPDU报文,那么该BPDU所在的接口为指定接口
-
一般而言,根网桥的所有接口都是指定接口;在存在跟接口的链路上,对端必然是指定接口。
非指定接口--NDP
所有的不是跟端口和指定端口都被称为非指定端口。而非指定端口会被交换机进行逻辑阻塞。
被阻塞的接口既不会接收也不会转发业务数据,且该接口不会发送BPDU报文,但是可以接收BPDU报文。
STP工作过程
-
STP交换机初始化启动后,都会认为自己是根网桥,并在发送给其他交换机的配置BPDU中宣告自己为根桥。因此,此时的BPDU中的根桥ID为各自设备的网桥ID(BID)数值。
-
当交换机收到网络中其他设备发来的BPDU后,会对比BPDU报文中的根桥ID字段和自己的BID。
-
交换机不断交互BPDU报文,同时对BID进行对比,最终选举一台BID最小的交换机作为根网桥,其他为非根网桥。
-
根网桥的角色是可抢占的。
-
-
选举完根网桥后,根网桥仍然会持续性发送配置BPDU报文,起到保活的效果。而其他非根网桥将持续不断的收到根网桥发送的BPDU,并计算自己的BPDU报文从其他指定端口发送出去。
-
每个交换机根据从自己不同接口收到的BPDU报文中选择出最优的BPDU,从而选举根端口
-
RPC
-
比较对端BID
-
比较对端PID
-
比较本地PID
-
-
每台交换机的每一条链路选举指定端口
-
RPC
-
BID
-
链路两端的PID
-
-
在确定了根端口和指定端口之后,交换机上所有剩余的端口都被称为非指定端口。并且会在逻辑上阻塞所有的非指定端口。
-
当非指定端口被阻塞后,生成STP树。
-
被阻塞的接口既不会接收也不会转发业务数据,且该接口不会发送BPDU报文,但是可以接收BPDU报文
-
在交换网络中,一般将网关所在地、流量汇聚地点以及STP根网桥三点合并在一起。
STP的接口状态
-
禁用状态
-
接口关闭情况
-
接口禁用生成树协议
-
-
阻塞状态
-
是生成树协议激活后进入的第一个状态。
-
该状态会停留一个最大老化时间(20秒)。然后进入到下一个状态。
-
仅仅可以接收BPDU报文
-
-
侦听状态
-
可以收发BPDU报文。进行STP角色选举过程。
-
该状态会选举出根网桥、根接口、指定接口和非指定接口。
-
停留一个转发延迟时间(15秒)后,进入下一个状态。
-
只有根端口和指定端口会进入到学习状态,而非指定端口会退回到阻塞状态。
-
-
学习状态
-
接收业务流量,并学习MAC地址信息。----目的:为了减少单播帧的洪泛。
-
停留一个转发延迟时间(15秒)后,进入下一个状态。
-
-
转发状态
-
可以正常接收和转发业务数据和BPDU报文。
-
只有根端口和指定端口可以进入该状态。
-
STP的收敛时间
基于计时器进行收敛。
-
首次收敛----50S(阻塞20S+2*转发延迟)
-
根桥故障----50S(最大寿命+2*转发延迟)
-
直连链路故障----30S(2*转发延迟)
-
非直连链路故障---50S(最大寿命+2*转发延迟)
STP的配置
<span style="background-color:#f8f8f8"><span style="color:#333333">[sw1]stp enable ---启动STP协议,华为默认开启该协议
[sw1]stp mode stp ---修改STP的工作模式,默认工作模式为MSTP
[sw1]display stp ---查看STP协议运行状况
[sw1]display stp brief ---查看STP接口状态</span></span>
<span style="background-color:#f8f8f8"><span style="color:#333333">DESI--->指定接口
ROOT--->根端口
ALTE--->备份端口</span></span>
<span style="background-color:#f8f8f8"><span style="color:#333333">[sw1]stp root primary ---将交换机设定为根网桥,其本质是将优先级修改为0
[sw2]stp root secondary ---将交换机设定为备份根网桥,其本质是将优先级修改为4096
[sw3]stp priority 8192 ---将交换机优先级设定为8192
[sw6-GigabitEthernet0/0/1]stp port priority ? ---修改接口优先级,干涉PID数值
INTEGER<0-240> Port priority, in steps of 16
[sw6]stp pathcost-standard ? ----修改本地开销值计算方法类型,全网均需要修改
dot1d-1998 IEEE 802.1D-1998
dot1t IEEE 802.1T
legacy Legacy
[sw6-GigabitEthernet0/0/1]stp cost ? ----直接修改接口cost值
INTEGER<1-200000000> Port path cost ---该参数可以修改的范围是根据开销值计算类型而定</span></span>