生成树(STP)
创始人
2024-01-28 10:11:38
0

1.详细说明STP的工作原理

在二层交换网络中,逻辑的阻塞部分的接口,实现从跟交换机到所有节点唯一的路径称为最佳路径,生成一个没有环路的拓扑。当最佳路径出现故障时,个别被阻塞的接口将打开,形成备份链路。

2. STP的接口状态有哪些,每个状态的作用是什么?

STP的接口状态

状态名称状态描述
禁用(Disable)该接口不能收发BPDU,也不能收发业务数据帧,例如接口为down
阻塞(Blocking)当该接口被STP阻塞。处于阻塞状态的接口不能发送BPDU,但是会持续侦听BPDU,而且不能收发业务数据帧,也不会进行MAC地址学习
侦听(Listening)当接口处于该状态时,表明STP初步认定该接口为根接口和指定接口,但接口依然处于STP计算的过程中,此时接口可以收发BPDU,但是不能收发业务数据帧,也不会进行MAC地址学习
学习(Learning)当接口处于该状态时,会侦听业务数据帧(但是不能转发业务数据帧),并且在收到业务数据帧时会进行MAC地址学习
转发(Forwarding)处于该状态的接口可以正常的收发业务数据帧,也会进行BPDU处理。接口的角色需是根接口或指定接口才能进入转发状态

3. 说明STP在结构突变时的表现

结构突变主要有三种故障:根桥故障、直连链路故障、非直连链路故障

(1)根桥故障

<1> 根桥故障

  • 在稳定的STP网络中,非根桥会定期收到来自根桥的BPDU报文
  • 如果根桥发生了故障,停止发送BPDU,下游交换机就无法收到来自根桥的BPDU报文
  • 如果下游的交换机一直收不到BPDU报文,Max Age计时器(缺省:20s)就会超时,从而导致已经手打的BPDU报文失效。此时,非根桥会互相发送配置BPDU,重新选举新的根桥。

<2> 端口状态

SW3的预备端口,20S会从Blocking状态进入到Listening状态,在进入Learning状态,最终进入Forwarding状态,进行用户流量的转发。

<3> 收敛时间

根桥故障会导致50s左右的恢复时间,等于Max Age加上两杯的Forward Delay收敛时间

(2)直连链路故障

<1> 直连链路故障

  • 当两台交换机之间用两条链路互连时,其中一条是主用链路,另一条为备用链路。
  • 当网络稳定时,交换机SW2会检测到根端口的链路发生故障,则其备用端口会进入用户流量转发状态。

<2> 端口状态

备用端口会从Blocking状态,迁移到Listening-Learning-Forwarding状态

<3> 收敛时间

直连链路故障,备用端口会经过30s后恢复转发状态

(3)非直连链路故障

<1> 非直连故障

  • 在稳定的STP网络,非根桥会定期收到来自根桥的BPDU报文
  • 若SW1和SW2之间的链路发生了某种故障(非物理故障),因此导致SW2一直收不到来自根桥的SW1的BPDU报文,Max Age计时器(缺省:20s)就会超时,从而导致已经收到的BPDU报文失效。
  • 此时,非根桥SW2会认为根桥失效,并且认为自己是根桥,从而发送自己的配置BPDU给SW3,通知SW3自己是新的根桥
  • 在此期间,SW3的预备端口一直收不到包含根桥的BPDU,Max Age计时器超市后,端口进入到Listening状态,开始向SW2“转发”从上游发来的包含根桥ID的BPDU
  • 因此,Max Age计时器超时后,SW2和SW3几乎同时收到对方发来的BPDU,再进行STP重新计算,SW2发现SW3发来的BPDU更优,放弃宣称自己是根桥,并且重新定义端口角色。

<2> 端口故障

SW3的预备端口20s后会从Blocking状态进入到Listening状态,再进入Learning状态,最终进入到Forwarding状态,进行用户流量的转发

<3> 收敛时间

非直连故障会导致50s左右的恢复时间,等于Max Age加上2倍的Forwarding Delay收敛时间

4. RSTP对于STP的改进项有哪些?仔细说明

(1)改进点1:端口角色

通过对端口的增补,简化了生成树协议的理解便于部署

<1> RSTP的端口角色一共有四种:根端口、指定端口、Alternate端口和Backup端口

<2> 根端口和指定端口的作用和STP中相同。Alternate端口和Backup端口的作用描述如下:

从配置BPDU的报文发送角度来看:

  • Alternate端口就是由于学习到其他网桥发送的配置BPDU报文而阻塞的端口
  • Backup端口就是由于学习到自己发送的配置BPDU报文而阻塞的端口

从用户流量角度来看:

  • Alternate端口提供了从指定桥到根的另一条可切换路径,作为根端口的备份端口
  • Backup端口作为指定端口的备份,提供了另一条从根桥到相应网段的备份通路

<3> 给一个RSTP域内所有端口分配角色的过程就是整个拓扑收敛的过程

(2)改进点2:端口状态

RSTP的状态规范缩减为3种,根据端口是否转发用户流量和学习MAC地址来划分

  • Discarding状态:不转发用户流量也不学习MAC地址
  • Learning状态:不转发用户流量但是学习MAC地址
  • Forwarding状态:既转发用户流量又学习MAC地址

(3)改进点3:RST  BPDU

<1> RSTP的配置BPDU充分利用了STP报文中的Flag字段,明确了端口角色

<2> 除了保证和STP格式基本一致之外,RSTP做了如下变化:

  • type字段:配置BPDU类型不再是0而是2,所以运行STP的设备收到RSTP的配置BPDU时会丢弃
  • flag字段:使用了原来保留的中间6位,这样改变的配置BPDU叫做RST BPDU

<3> RST BPDU的报文格式

<4> RST BPDU与STP配置和BPDU报文格式的不同点。包括:BPDU类型和Flag字段

1> BPDU类型,1 Byte,RST BPDU的类性质为0x02

2> 标志,1 Byte,包括:

bit 7:TCA,表示拓扑变化确认
bit 6: Agreement,表示同意,用于P/A机制;. bit 5: Forwarding,表示转发状态
bit 4:Learning,表示学习状态
bit 3和bit2:表示端口角色,00表示未知端口,01表示替代或备份端口,10表示根端 口,11表示指定端口
bit 1: Proposal,表示提议,用于P/A机制;. bit 0: TC,表示拓扑变化。

(4)改进点4:配置BPDU的处理

(5)改进点5:快速收敛机制

注意:这个P/A机制是RSTP完成快速收敛的核心手段,因为他改变了STP依照计时器收敛的方法,可以理解为完成选举后立即切换状态,完成收敛。

  • 事实上对于STP,指定端口的选择可以很快完成,主要的速度瓶颈在于:为了避免环路,必须等待足够长的时间,使全网的端口状态全部确定,也就是说必须要等待至少一个ForwardDelay所有端口才能进行转发
  • 而RSTP的主要目的就是消除这个瓶颈,通过阻塞自己的非根端口来保证不会出现环路。而使用P/A机制加快了上游端口进入Forwarding状态的速度

(6)改进点6:拓扑变更机制

<1> 在STP中,如果拓扑发生了变化,需要先向根桥传递TCN BPDU,在由根桥来通知拓扑变更,泛洪TC置为的配置BPDU

<2> 在RSTP中,通过新的拓扑变更机制,TC置位的RST BPDU会快速的在网络中泛洪

(7)改进点7:保护功能

<1> BPDU保护

在交换设备上,通常将直接与用户终端(如PC机)或文件服务器等非交换设备相连的端口 配置为边缘端口。

如上图所示:

  • sw3与某主机互联,并设置该互联端口为边缘端口。
  • 后来该主机被恶意用户侵占,并伪造RST BPDU攻击SW3,因此边缘端口会收到RST BPDU,失去边缘端口特性,并进行生成树计算

<2> 根保护

由于维护人员的错误配置或网络中的恶意攻击,根桥有可能会收到优先级更高的RST BPDU,使得根 桥失去根地位,从而引起网络拓扑结构的错误变动。这种拓扑变化,会导致原来应该通过高速链路 的流量被牵引到低速链路上,造成网络拥塞。

如图所示:

  • 网络稳定时,SW1为根桥,向下游设备发送最优RST BPDU。
  • 如果SW2被恶意用户侵占,例如恶意修改SW2的桥优先级,使得SW2的桥优先级优于sw1,此时SW2会主动发送自己的RST BPDU。
  • 当SW1的指定端口收到该RST BPDU后,会重新进行生成树计算,而SW1也会失去根桥的地位,引起拓扑变动。

<3> 环路保护

在运行RSTP的网络中,根端口状态是依靠不断接收来自上游交换设备的RSTBPDU维持。当由于链 路拥塞或者单向链路故障导致根端口收不到来自上游交换设备的RST BPDU时,此时交换设备会重 新选择根端口。

如图所示:

当SW1和SW3之间的链路发生单向链路故障时,SW3由于根端口在超时时间内收不到来 自上游设备的BPDU报文,Alternate端口切换成根端口,根端口切换成指定端口,从而形成了环 路。

<4> 防TC-BPDU攻击

交换设备在接收到TC置位的RST BPDU报文后,会执行MAC地址表项的删除操作。如果有人伪造TC置位的RST BPDU报文恶意攻击交换设备时,交换设备短时间内会收到很多RST BPDU报文,频繁的删除操作会给设备造成很大的负担,给网络的稳定带来很大隐患。

如图所示:

如果SW3被恶意用户侵占,伪造大量TC置位的RST BPDU并向外发送。SW2收到这些RST BPDU后,会频繁执行MAC地址表项的删除操作,形成巨大负担。

5.生成树实验

(1)接入层

[sw1]vlan 2
[sw1-vlan2]q
[sw1]port-group group-member g0/0/3 g0/0/4	
[sw1-port-group]port link-type access 
[sw1-GigabitEthernet0/0/3]port link-type access 
[sw1-GigabitEthernet0/0/4]port link-type access 
[sw1-port-group]port default vlan 2
[sw1-GigabitEthernet0/0/3]port default vlan 2
[sw1-GigabitEthernet0/0/4]port default vlan 2
[sw1]int g0/0/1
[sw1-GigabitEthernet0/0/1]port link-type trunk 	
[sw1-GigabitEthernet0/0/1]port trunk allow-pass vlan 2
[sw1-GigabitEthernet0/0/1]undo port trunk allow-pass vlan 1
[sw1]int g0/0/2
[sw1-GigabitEthernet0/0/2] port link-type trunk
[sw1-GigabitEthernet0/0/2] undo port trunk allow-pass vlan 1
[sw1-GigabitEthernet0/0/2] port trunk allow-pass vlan 2
[sw2]vlan batch 3 to 4
[sw2]int g0/0/3
[sw2-GigabitEthernet0/0/3]port link-type access 	
[sw2-GigabitEthernet0/0/3]port default vlan 3
[sw2]int g0/0/4
[sw2-GigabitEthernet0/0/4]port link-type access 	
[sw2-GigabitEthernet0/0/4]port default vlan 4
[sw2]int g0/0/1
[sw2-GigabitEthernet0/0/1]port link-type trunk 
[sw2-GigabitEthernet0/0/1]port trunk allow-pass vlan 3 4
[sw2-GigabitEthernet0/0/1]undo port trunk allow-pass vlan 1
[sw2]int g0/0/2
[sw2-GigabitEthernet0/0/2] port link-type trunk
[sw2-GigabitEthernet0/0/2] undo port trunk allow-pass vlan 1
[sw2-GigabitEthernet0/0/2] port trunk allow-pass vlan 3 to 4

(2)汇聚层

[sw3]vlan batch 2 to 4
[sw3]vlan 100
[sw3-vlan100]q
[sw3]int g0/0/5
[sw3-GigabitEthernet0/0/5]port link-type trunk 
[sw3-GigabitEthernet0/0/5]port trunk allow-pass vlan 2
[sw3-GigabitEthernet0/0/5]undo port trunk allow-pass vlan 1
[sw3]int g0/0/4
[sw3-GigabitEthernet0/0/4]port link-type trunk 
[sw3-GigabitEthernet0/0/4]port trunk allow-pass vlan 3 4
[sw3-GigabitEthernet0/0/4]undo port trunk allow-pass vlan 1
[sw3]port-group group-member g0/0/2 g0/0/3
[sw3-port-group]port link-type trunk
[sw3-GigabitEthernet0/0/2]port link-type trunk
[sw3-GigabitEthernet0/0/3]port link-type trunk
[sw3-port-group] undo port trunk allow-pass vlan 1
[sw3-GigabitEthernet0/0/2] undo port trunk allow-pass vlan 1
[sw3-GigabitEthernet0/0/3] undo port trunk allow-pass vlan 1
[sw3-port-group] port trunk allow-pass vlan 2 to 4
[sw3-GigabitEthernet0/0/2] port trunk allow-pass vlan 2 to 4
[sw3-GigabitEthernet0/0/3] port trunk allow-pass vlan 2 to 4
[sw3]dhcp enable
[sw3]int vlan 100
[sw3-Vlanif100]ip add 10.1.1.1 24
[sw3-Vlanif100]dhcp select interface 
[sw3]int g0/0/1
[sw3-GigabitEthernet0/0/1]port link-type trunk 
[sw3-GigabitEthernet0/0/1]port trunk allow-pass vlan 100
[sw3-GigabitEthernet0/0/1]undo port trunk allow-pass vlan 1
[sw4]vlan batch 2 to 4
[sw4]vlan 100
[sw4-vlan200]q
[sw4]int g0/0/4
[sw4-GigabitEthernet0/0/4] port link-type trunk
[sw4-GigabitEthernet0/0/4] undo port trunk allow-pass vlan 1
[sw4-GigabitEthernet0/0/4] port trunk allow-pass vlan 2
[sw4]int g0/0/5
[sw4-GigabitEthernet0/0/5] port link-type trunk
[sw4-GigabitEthernet0/0/5] undo port trunk allow-pass vlan 1
[sw4-GigabitEthernet0/0/5] port trunk allow-pass vlan 3 to 4
[sw4]port-group group-member g0/0/2 g0/0/3
[sw4-port-group]port link-type trunk
[sw4-GigabitEthernet0/0/2]port link-type trunk
[sw4-GigabitEthernet0/0/3]port link-type trunk
[sw4-port-group]undo port trunk allow-pass vlan 1
[sw4-GigabitEthernet0/0/2]undo port trunk allow-pass vlan 1
[sw4-GigabitEthernet0/0/3]undo port trunk allow-pass vlan 1
[sw4-port-group]port trunk allow-pass vlan 2 to 4
[sw4-GigabitEthernet0/0/2]port trunk allow-pass vlan 2 to 4
[sw4-GigabitEthernet0/0/3]port trunk allow-pass vlan 2 to 4
[sw4]dhcp enable 
[sw4]int vlan 200
[sw4-Vlanif200]ip add 10.1.2.1 24
[sw4-Vlanif200]dhcp select interface
[sw4]int g0/0/1
[sw4-GigabitEthernet0/0/1]port link-type trunk 
[sw4-GigabitEthernet0/0/1]port trunk allow-pass vlan 200
[sw4-GigabitEthernet0/0/1]undo port trunk allow-pass vlan 1

(3)核心层

[sw5]vlan 100
[sw5-vlan100]q
[sw5]vlan 200
[sw5-vlan200]q
[sw5]int vlan 100
[sw5-Vlanif100]ip add 10.1.1.2 24
[sw5]int vlan 200
[sw5-Vlanif200]ip add 10.1.2.2 24
[sw5]int g0/0/1
[sw5-GigabitEthernet0/0/1] port link-type trunk
[sw5-GigabitEthernet0/0/1] undo port trunk allow-pass vlan 1
[sw5-GigabitEthernet0/0/1] port trunk allow-pass vlan 100
[sw5]int g0/0/2
[sw5-GigabitEthernet0/0/2] port link-type trunk
[sw5-GigabitEthernet0/0/2] undo port trunk allow-pass vlan 1
[sw5-GigabitEthernet0/0/2] port trunk allow-pass vlan 200

(4)配置生成树

[sw3]stp mode stp ---配置生成树的工作模式
[sw4]stp mode stp 
[sw2]stp mode stp 
[sw1]stp mode stp 
[sw3]stp root primary ---配置当前设备为根桥
[sw4]stp root secondary ---配置当前交换机为备份根桥

由于默认所有接口都要参与生成树,所以将SW3和SW4的G0/0/1接口的生成树关闭,也将连接PC机接口的生成树关闭

[sw3]int g0/0/1
[sw3-GigabitEthernet0/0/1]undo stp enable---关闭接口的生成树
[sw4]int g0/0/1	
[sw4-GigabitEthernet0/0/1]undo stp enable
[sw1]int g0/0/3
[sw1-GigabitEthernet0/0/3]undo stp enable
[sw1]int g0/0/4
[sw1-GigabitEthernet0/0/4]undo stp enable
[sw2]int g0/0/3
[sw2-GigabitEthernet0/0/3]undo stp enable
[sw2]int g0/0/4
[sw2-GigabitEthernet0/0/4]undo stp enable 

查看SW1和SW2的端口状态

查看SW4的端口状态

(5)将根端口修改为g0/0/4

  • 修改RPC
[sw4]int g0/0/3---在根桥收到的接口上修改RPC
[sw4-GigabitEthernet0/0/3]stp cost 1---将RPC修改为1

查看SW4的端口状态

  • 修改PID
[sw3]int g0/0/3---在根桥发送接口上修改PID
[sw3-GigabitEthernet0/0/3]stp port priority 0---将PID修改为1(默认步长为16的倍数)

查看SW4的端口状态

相关内容

热门资讯

小本创业好项目有哪些? 小本创... 小本创业好项目有哪些?可以选择一些投资费用比较少的项目,最好是人们刚需的用量大,自然收入稳定。例如:...
今年小本创业项目做什么好!? ... 小本创业项目有很多,至于好不好?得全方面评价。因为小本≠无风险;小本≠好利润;小本≠有前景;小本≠适...
四个闷声发财的小本生意 当今社... 互联网小礼品是借用互联网,借助手机智能移动平台,在手机里根据顾客需求制作出来,如果你也玩手机可搜索阿...
哪些风口项目适合小本创业 哪些... 所谓的创业风口,从来都是无稽之谈,但凡能摆在明面上的都过了红利期了。雷军先生“只要是头猪,站在风口上...
有哪些风口上适合个体创业的项目... 来源:耕叔说钱()作者:耕叔疫情之下,除了少数余粮较多的地主家庭,心理不慌以外。绝大多数人,是受影响...
这几个小生意项目 哪些风口项目... 2、农村合作医疗城市到处有医院,但农村刚好相反。看个病都是非常麻烦的事。所以农村开诊所也是一个非常不...
年轻人最适小本创业好项目首选合... 延伸阅读****'%年轻人%'年青人创业找项目年轻人六大创业好项目1574人年青人敢闯敢拼的精神才是...
小本创业的好项目 小本创业的好...   :野菜种植寻找一块城乡结合处土地,投资种植芦笋,芦蒿,马兰,荠菜等绿色食品,投资小,见效快,市场...
加盟小本创业项目 加盟小本创业... 首页商务服务详情加盟小本创业项目时间:2021-02-加盟小本创业项目一般大的商场***好采取可以保...
小本创业项目,休闲食品加盟! ... 生活水平的普遍提高同时也带动了潜力无限的休闲食品行业的发展,如今休闲食品在国内的年平均增长率达到了2...