二层环路存在的问题
1.广播风暴
根据交换机的转发原则,如果交换机从一个端口上收到的是一个广播帧,或者是一个目的MAC地址未知的单播帧,则会将这个帧向除源端口之外的所有其他端口转发。如果交换网络中有环路,则这个帧会被无限转发,此时便会形成广播风暴,网络中也会充斥着重复的数据帧

2.MAC地址漂移
交换机是根据所接收到的数据帧的源地址和接收端口生成MAC地址表项的

STP(生成树协议)
修改模式:
[Huawei]stp mode ?
mstp Multiple Spanning Tree Protocol (MSTP) mode
rstp Rapid Spanning Tree Protocol (RSTP) mode
stp Spanning Tree Protocol (STP) mode
基本概念
桥ID(Bridge ID,BID)
作用:唯一标识一台STP设备
构成:桥优先级+MAC地址

桥优先级的取值范围:0-65535;默认值为32768
注:网桥就是一台交换机;
比较规则:1.比较桥优先级,越小越优。2.比较MAC地址,越小越优。
桥优先级配置:
[Huawei]stp priority ?
INTEGER<0-61440> Bridge priority, in steps of 4096
根桥
STP的目的就是计算出一个无环的树(STP树),而根桥就是这棵树的树根
作用:生成树进行拓扑计算
选举规则:比较BID
注:对于一个STP网络,根桥在全网中只有一个,它是整个网络的逻辑中心,但不一定是物理中心。根桥会根据网络拓扑的变化而动态变化。
配置:
[Huawei]stp root primary ---配置当前设备为根桥。缺省情况下,交换机不作为任何生成树的根桥。配置后该设备优先级数值自动为0,并且不能更改设备优先级。
[Huawei]stp root secondary ---配置当前交换机为备份根桥。缺省情况下,交换机不作为任何生成树的备份根桥。配置后该设备优先级数值为4096,并且不能更改设备优先级。
cost(开销)
每一个STP的接口都有一个开销
作用:用于计算根路径开销,也就是到达根的开销
注:带宽越大,开销越小
配置:
[Huawei-GigabitEthernet0/0/1]stp cost ?
INTEGER<1-200000000> Port path cost
根路径开销(Root Path Cost)
作用:计算网桥到达根桥的距离
计算方法:一台设备从某个接口到达根桥的RPC等于从根桥到该设备沿途所有入方向接口的Cost累加。
接口ID(Port ID,PID)
作用:标识每台交换机的接口
构成:接口优先级(0-240,默认240)+接口编号
接口优先级配置;
[Huawei-GigabitEthernet0/0/1]stp port priority ?
INTEGER<0-240> Port priority, in steps of 16
BPDU(Bridge Protocol Data Unit,网桥协议数据单元)
BPDU是STP运行的基础,是灵魂
作用:携带交换机之间需要交换相关的信息和参数
类型:
1.配置BPDU:包含了桥ID、路径开销和端口ID等参数。STP协议通过在交换机之间传递配置BPDU来选举根交换机,以及确定每个交换机端口的角色和状态;在网络拓扑稳定以后,只有根桥主动发送配置BPDU,其他交换机在收到上游传来的配置BPDU后,才会发送自己的配置BPDU。
2.TCN BPDU:感知BPDU;当网络拓扑发生变化时,下游交换机向上游交换机发送;
报文格式:

端口存放BPDU的老化原则:
如果Message Age小于等于Max Age,则该非根桥设备继续转发配置BPDU报文
如果Message Age大于Max Age,则该配置BPDU报文将被老化
对于STP而言,最重要的工作就是在交换网络中计算出一个无环拓扑。在拓扑计算的过程中,一个非常重要的内容就是配置BPDU的比较。
配置BPDU的比较原则:
比较消息队列{RID,RPC,BID,PID}
工作流程
起初,所有交换机都认为自己是根桥。
1.选举根桥
2.非根桥选举根端口
什么是根端口??
一个非根桥设备上会有多个端口与网络相连,为了保证从某台非根桥设备到根桥设备的工作路径是最优且唯一的,就必须从该非根桥设备的端口中确定出一个被称为“根端口”的端口,由根端口来作为该非根桥设备与根桥设备之间进行报文交互的端口。
作用:保证了交换机与根桥之间工作路径的唯一性和最优性。
注意:一个非根桥设备上,最多只能有一个根端口。
3.每条链路选举一个指定端口
什么是指定端口?
网络中的每个链路与根桥之间的工作路径必须是唯一的且最优的。当一个链路有两条及以上的路径通往根桥时(该链路连接了不同的交换机,或者该链路连接了同一台交换机的不同端口),与该链路相连的交换机(可能不止一台)就必须确定出一个唯一的指定端口。
因此,每个链路(Link)选举一个指定端口,用于向这个链路发送BPDU。
注意:一般情况下,根桥上不存在任何根端口,只存在指定端口。
4.剩下一个接口被阻塞
什么是非指定端口(预备端口)?
在确定了根端口和指定端口之后,交换机上所有剩余的非根端口和非指定端口统称为预备端口。
阻塞非指定端口
STP会对这些非指定端口进行逻辑阻塞,即这些端口不能转发由终端计算机产生并发送的帧(用户数据帧)。
一旦非指定端口被逻辑阻塞后,STP树(无环路工作拓扑)就生成了。
注意:
非指定端口可以接收并处理BPDU。
根端口和指定端口既可以接收和发送BPDU,也可以转发用户数据帧。
STP的端口状态
Disabled:端口不处理BPDU报文,也不转发用户流量
Blocking:端口接收并处理BPDU,但是不转发BPDU,不转发用户流量;AP端口的最终状态
Listening:确定端口角色,将选举出根桥、根端口和指定端口;过渡状态
Learning:设备会根据收到的用户流量构建MAC地址表,但不转发用户流量;过渡状态
Forwarding:端口既转发用户流量也处理BPDU报文;RP和DP端口的最终状态
注:先确定端口角色,再进行端口状态的转变

拓扑变化
根桥故障

在稳定的STP网络,非根桥会定期收到来自根桥的BPDU报文。
如果根桥发生了故障,停止发送BPDU,下游交换机就无法收到来自根桥的BPDU报文。
如果下游交换机一直收不到BPDU报文,Max Age计时器(缺省: 20s)就会超时,从而导致已经收到的BPDU报文失效,此时,非根桥会互相发送配置BPDU,重新选举新的根桥。
端口状态:
SW3的预备端口,20s后会从Blocking状态进入到Listening状态,再进入Learning状态,最终进入到Forwarding状态,进行用户流量的转发。
收敛时间:
根桥故障会导致50s左右的恢复时间,等于Max Age加上2倍的Forward Delay收敛时间。
直连链路故障

当两台交换机间用两条链路互连时,其中一条是主用链路,另一条为备用链路。
当网络稳定时,交换机SWB检测到根端口的链路发生故障,则其备用端口会进入用户流量转发状态。
端口状态:
备用端口会从Blocking状态,迁移到Listening-Learning-Forwarding状态。
收敛时间:
直连链路故障,备用端口会经过30s后恢复转发状态。
非直连故障

在稳定的STP网络,非根桥会定期收到来自根桥的BPDU报文。
若SW1与SW2之间的链路发生了某种故障(非物理故障),因此SW2一直收不到来自根桥SW1的BPDU报文,Max Age计时器(缺省: 20 s)就会超时,从而导致已经收到的BPDU报文失效。
此时,非根桥SW2会认为根桥失效,并且认为自己是根桥,从而发送自己的配置BPDU给SW3,通知SW3自己是新的根桥。
在此期间,SW3的预备端口一直收不到包含根桥ID的BPDU,Max Age计时器超时后,端口进入到Listening状态,开始向SW2“转发”从上游发来的包含根桥ID的BPDU。
因此,Max Age定时器超时后,SW2和SW3几乎同时收到对方发来的BPDU,再进行STP重新计算,SW2发现SW3发来的BPDU更优,就放弃宣称自己是根桥并重新确定端口角色。
端口状态:
SW3预备端口20s后会从Blocking状态进入到Listening状态,再进入Learning状态,最终进入到Forwarding状态,进行用户流量的转发。
收敛时间:
非直连故障会导致50s左右的恢复时间,等于Max Age加上2倍的Forward Delay收敛时间。
拓扑变化更新MAC地址表

拓扑变更以及MAC地址表项更新的具体过程如下:
SW3感知到网络拓扑发生变化后,会不间断地向SWB发送TCN BPDU报文。
SW2收到SW3发来的TCN BPDU报文后,会把配置BPDU报文中的Flags的TCA位设置1,然后发送给SW3,告知SW3停止发送TCN BPDU报文。
SW2向根桥转发TCN BPDU报文。
SW1把配置BPDU报文中的Flags的TC位设置为1后发送,通知下游设备把MAC地址表项的老化时间由默认的300 s修改为Forward Delay的时间(默认为15 s)。
最多等待15 s之后,SW2中的错误MAC地址表项会被自动清除。此后,SW2就能重新开始MAC表项的学习及转发操作。
4405

被折叠的 条评论
为什么被折叠?



