一.STP
1. 二层网络环路产生的问题
(1)广播风暴
(2)MAC地址表震荡
(3)重复数据帧
2. STP的主要作用
(1)消除环路:通过阻断冗余链路来消除网络中可能存在的环路。
(2)链路备份:当活动路径发生故障时,激活备份链路,及时恢复网络连通性。
3. STP操作过程
(1)选举一个根桥。
STP中根桥的选举依据的是桥ID,STP中的每个交换机都会有一个桥ID(Bridge ID) 。桥ID由16位的桥优先级(Bridge Priority)和48位的MAC地址构成。在STP网络中,桥优先级是可以配置的,取值范围是0~65535,只能是4096的整数倍,默认值为32768。优先级最高的设备(数值越小越优先)会被选举为根桥。如果优先级相同,则会比较MAC地址,MAC地址越小则越优先。
(2)每个非根交换机选举一个根端口。
非根交换机在选举根端口时分别依据该端口的根路径开销、对端BID(Bridge ID)、对端PID(Port ID)和本端PID。
交换机的每个端口都有一个端口开销(Port Cost)参数,此参数表示该端口在STP中的开销值。默认情况下端口的开销和端口的带宽有关,带宽越高,开销越小。从一个非根桥到达根桥的路径可能有多条,每一条路径都有一个总的开销值,此开销值是该路径上所有接收BPDU端口的端口开销总和(即BPDU的入方向端口),称为路径开销。非根桥通过对比多条路径的路径开销,选出到达根桥的最短路径,这条最短路径的路径开销被称为RPC(Root Path Cost,根路径开销),并生成无环树状网络。根桥的根路径开销是0。
(3)每个网段选举一个指定端口。
指定端口的选举也是首先比较累计路径开销,累计路径开销最小的端口就是指定端口。如果累计路径开销相同,则比较端口所在交换机的桥ID,所在桥ID最小的端口被选举为指定端口。如果通过累计路径开销和所在桥ID选举不出来,则比较端口ID,端口ID最小的被选举为指定端口。
(4)阻塞非根、非指定端口。
未被选举为根端口或指定端口的端口为预备端口,将会被阻塞。
网络收敛后,只有指定端口和根端口可以转发数据。其他端口为预备端口,被阻塞,不能转发数据,只能够从所连网段的指定交换机接收到BPDU报文,并以此来监视链路的状态。
4. STP的端口角色和端口状态
端口角色:根端口、指定端口、预备端口
端口状态:
(1)Forwarding:转发状态。端口既可转发用户流量也可转发BPDU报文,只有根端口或指定端口才能进入Forwarding状态。
(2)Learning:学习状态。端口可根据收到的用户流量构建MAC地址表,但不转发用户流量。增加Learning状态是为了防止临时环路。
(3)Listening:侦听状态。端口可以转发BPDU报文,但不能转发用户流量。
(4)Blocking:阻塞状态。端口仅仅能接收并处理BPDU,不能转发BPDU,也不能转发用户流量。此状态是预备端口的最终状态。
(5)Disabled:禁用状态。端口既不处理和转发BPDU报文,也不转发用户流量。
5. STP故障
(1)根桥故障
非根桥会在BPDU老化之后开始根桥的重新选举。
根桥故障会导致50秒左右的恢复时间,恢复时间约等于Max Age(20s)加上两倍的Forward Delay(15s)收敛时间。
(2)直连链路故障
SWB检测到直连链路物理故障后,会将预备端口转换为根端口。
SWB新的根端口会在30 秒(2倍的Forward Delay)后恢复到转发状态。
(3)非直连链路故障
非直连链路故障后,由于需要等待Max Age加上两倍的Forward Delay时间,端口需要大约50秒才能恢复到转发状态。
二.RSTP
快速生成树RSTP在STP基础上进行了改进,实现了网络拓扑快速收敛。
RSTP使用了Proposal/Agreement机制保证链路及时协商,从而有效避免收敛计时器在生成树收敛前超时。如图所示,在交换网络中,P/A过程可以从根桥向下游级联传递。
P/A机制中同步的作用是避免临时环路的产生。
1. RSTP的端口角色
(1)根端口
(2)指定端口
(3)备份端口:Backup端口作为指定端口的备份,提供了另外一条从根桥到非根桥的备份链路。
(4)预备端口:Alternate端口作为根端口的备份端口,提供了从指定桥到根桥的另一条备份路径。
(5)边缘端口:RSTP里,位于网络边缘的指定端口被称为边缘端口。边缘端口一般与用户终端设备直接连接,不与任何交换设备连接。边缘端口不接收配置BPDU报文,不参与RSTP运算,可以由Disabled状态直接转到Forwarding状态,且不经历时延,就像在端口上将STP禁用了一样。但是,一旦边缘端口收到配置BPDU报文,就丧失了边缘端口属性,成为普通STP端口,并重新进行生成树计算,从而引起网络震荡。
2. RSTP的端口状态
RSTP把原来STP的5种端口状态简化成了3种。
(1)Discarding状态,端口既不转发用户流量也不学习MAC地址。
(2)Learning状态,端口不转发用户流量但是学习MAC地址。
(3)Forwarding状态,端口既转发用户流量又学习MAC地址。
3. 保护功能
(1)根保护
根保护功能确保了根桥的指定端口不会因为一些网络问题而改变端口角色。
(2)BPDU保护
配置BPDU保护功能后,如果边缘端口收到BPDU报文,边缘端口将会被立即关闭,并通知网管系统。被关闭的边缘端口可配置成自动恢复或管理员手动恢复。
(3)环路保护
根端口如果长时间收不到来自上游的BPDU,则进入Discarding状态,避免在网络中形成环路。
三.MSTP
多生成树协议MSTP兼容STP和RSTP,既可以快速收敛,又提供了数据转发的多个冗余路径,在数据转发过程中实现VLAN数据的负载均衡。
1. 单生成树的弊端
(1) 部分VLAN路径不通
(2)无法实现流量分担
(3)次优二层路径
2. 多生成树实例解决单生成树弊端
MSTP兼容STP和RSTP,既可以快速收敛,又提供了数据转发的各个冗余路径,在数据转发过程中实现VLAN数据的负载均衡。
MST域内可以生成多棵生成树,每棵生成树都称为一个MSTI。MSTI之间彼此独立,且每个MSTI的计算过程基本与RSTP的计算过程相同。
每个MSTI(MST Instance)都有一个标识(MSTID),MSTID是一个两字节的整数。VRP平台支持16个MST Instance,MSTID取值范围是0~15,默认所有VLAN映射到MST Instance 0。
VLAN映射表是MST域的属性,它描述了VLAN和MSTI之间的映射关系,MSTI可以与一个或多个VLAN对应,但一个VLAN只能与一个MSTI对应。