从STP到RSTP,再到MSTP

生成树协议由来?

生成树协议:企业网三层架构—》冗余----》线路冗余—》二层桥接环路,防环使用。
导致问题:

1、 广播风暴
2、 MAC地址表翻滚
3、 同一数据帧的重复拷贝
4、 以上3个条件最终导致设备工作过载,导致重启保护

生成树:在一个二层交换网络中,生成一棵树型结构,逻辑的阻塞部分接口,使得从根到所有的节点仅存在唯一的路径;当最佳路径故障时,自动打开部分阻塞端口,来实现线路备份的作用;
生成树在生成过程中,应该尽量的生成一棵星型结构,且最短路径树;

过程:

  1. 交换机间使用BPDU—桥协议数据单元 – 交换机间沟通互动收发的数据
  2. 配置BPDU—只有根网桥可以发送,在交换网络初始状态时,所有交换机均定义本地为根网桥,进行BPDU的发送;使得网络中所有交换机均收到其他设备的BPDU,之后基于数据中的参数进行比对,选举出根网桥;再所有非根网桥不再发送BPDU,而是仅接收和转发根网桥的BPDU;周期2s发送,hold time 20s;
  3. TCN—拓扑变更消息(也是BPDU): 本地交换机链路故障后,STP重新收敛,为了快速刷新全网所有交换机的MAC表,将向本地所有STP接口发送TCN(标记位中的TCN位置1),邻居交换机收到TCN后,先标记为ACK位为回复,用于可靠传输消息;之后将TCN逐级转发到根网桥处,由根网桥回复TC消息来逐级回复到所有交换机;使所有交换机临时将MAC表的老换时间修改为15s(默认的,转发延时)

选举---- 根网桥 根端口 指定端口 非指定端口(阻塞端口)

1】 根网桥 – 在一棵生成树实例中,有且仅有一台交换机为root;
BPDU中的 桥ID来决定
桥ID= 网桥优先级(0-65535公有) 默认32768 + MAC地址(只有存在svi接口的交换机才拥有mac地址,若存在多个mac选数值最小)
根网桥的选举 先比较优先级,小优; 若优先级相同,比较mac,数值小优;
2】 根端口—在每台非根网桥上,有且仅有一个接口;本地离根网桥最近的接口(最短、星型),接收来自根网桥的BPDU,转发用户的流量(该接口不阻塞)
1、比较从根网桥发出后,通过该接口进入时最小的cost值;
2、入向cost值相同,比较该接口对端设备的BID,小优
3、对端BID也相同,比较该接口对端设备的接口的PID;先优先级小,若优先级一致,编号小
4、连对端PID也相同,比较本地PID,小优;
PID=端口ID 接口优先级(0-240,步长16,默认128) 接口编号
3】 指定端口,在每一段存在STP的物理链路上,有且仅有一个;转发来自根网桥的BPDU,同时可以转发用户流量(不阻塞);默认根网桥上所有接口为指定端口;
1、比较从根网桥发出后,通过该接口进入这段链路时的cost值最小(出向)
2、若出向cost值相同,必须本地的BID,小优;
3、本地BID相同,比较本地的PID;
4、本地PID,相同,直接阻塞该端口;
4】非指定端口(阻塞端口)当以上所有角色全部选举完成后,剩余没有任何角色的接口为非指定;
该接口逻辑阻塞,实际可以接收到信息,但不转发;
cost值:不同带宽 存在不同cost

STP接口状态:

down:没有BPDU收发,一旦可以进行BPDU收发进入下一状态
侦听:强制15s;所有交换机进行BPDU收发,选举所有角色;接口角色为非指定端口直接进入阻塞状态;
若为指定端口和根端口进入下一状态;
学习:强制15s; 指定端口和根端口学习所有接口连接设备的MAC地址,生成MAC表;之后进入下一状态;
转发:指端端口和根端口进入,可以转发用户报文;
阻塞:逻辑阻塞;
注:只有到接口进入到转发状态后,才能为用户转发数据报文,之前的30s不能转发任何数据;

收敛时间

初次收敛—30s = 15侦听+15s学习
结构变化:
	存在直连检测:本地存在阻塞端口,若其他端口断开,该阻塞端口马上进入15是侦听(选举);结果若为启用,那么将再进入15s学习---总30s
	没有直连检测:本地不存在阻塞端口,若某个端口断开,将发送次优BPDU(以本地为根)给其他邻居交换机,其他交换机无视该数据,进行20s hold time计时,到时时阻塞接口进入15s侦听,15s学习=总50s

STP的不足

stp的不足:
1.stp从初始状态到完全收敛至少需要30s。
2.有BP端口,RP端口down掉,至少需要30s才能切换至完全转发状态。
3.交换机无BP端口,RP端口down掉,至少需要50s=30+20(老化时间)s
4.交换机连接终端的链路进入转发需要经过30s。
5.stp拓扑变更机制复杂,
6.stp端口角色少,三种角色,根端口,指定端口,非指定端口。可能出现rp断掉,需要等待老化时间结束以后才能选取rp端口。
7.端口状态:关闭,阻塞,侦听,前三种不转发流量也不学习mac地址,行为相同,却呈现不同状态,增加使用难度。学习不转发但学习mac地址,转发,又转发又学习mac地址。

RSTP对于STP问题的改进:

  1. 端口角色和端口状态:(1.端口重新划分,定义了两种新的端口角色,备份端口(Backup Port)–从用户流量角度, Backup Port作为指定端口的备份,提供了另外一条从根节点到叶子节点的无环备份路径。和预备端口(Alternate Port)–从用户流量角度, Alternate Port提供了从指定桥到根桥的另一条无环可达路径,作为根端口的代替端口。更加精确描述端口,协议更加简便,加快了收敛。增加边缘端口,来保证端口安全。(2.状态重新划分,将原来的五种状态缩减为三种,关闭,阻塞,侦听,合三为一。称为discarding。
  2. 快速收敛机制:对于收敛慢的问题一:1)P/A机制(Proposal/Agrrement),有来回确认机制和同步变量机制,无需依靠计时器来保证无环,使一个指定端口更快进入Forwarding(必须是点对点的全双工模式链路)。2)RSTP和STP选举本质相同:选举根交换机-选举非根交换机的根端口-选举指定端口-选举预备端口和备份端口。由于(发起请求-同意回复)这种确认机制,无需依赖计时器来保证无环,加快了收敛速度。
  3. 对于根端口的快速切换机制的问题二:为加快收敛时间,设备上旧的根端口失效后,新的根端就应该在保证无环的情况下立刻迁移到Forwarding状态,而AP端口在选举的时候就考虑到该需求,故可立即进入转发状态。
  4. 对于次等BPDU的处理机制的问题三:RSTP处理次等BPDU报文不再依赖于任何定时器超时解决拓扑收敛,而是会立即发送本地最优的BPDU给对端,从而加快了拓扑收敛。
    对于边缘端口的引入的问题四:交换机上连接终端设备的接口设置成为边缘端口后,会立即进入转发,当该端口收到BPDU后,就丧失了边缘端口属性,成为普通STP端口,并重新进行生成树计算。
  5. 对于拓扑变更机制的问题五:RSTP判断拓扑变化唯一标准–一个非边缘端口迁移到forwarding状态。网络发生拓扑变化时,变更点交换机直接向全网发送TC置位的BPDU报文,而不是先通知到根桥,然后由根桥向全网发送TC报文,这样在一定程度上节省了收敛时间。
  6. 拓扑变化的问题:导致交换机mac地址表产生错误。—》1.检查到发生变化,清空端口学习的mac地址,这些端口向外发送RST BPDU。2.接受到的BPDU交换机的会清空除了收到报文外的其他所有非边缘端口学习到的MAC地址。3.边缘端口发生故障不会触发拓扑变更,故障恢复也不会触发。
  7. BPDU保护:1)防止在边缘端口再接入一台运行生成树的交换机,收到BPDU报文,会自动设置为非边缘端口,并重新进行生成树计算,引起网络震荡。—》配置BPDU保护后,如果收到BPDU报文,边缘端口立即关闭。
  8. 根保护:防止hacker在交换机接入一台优先级最高的交换机,使得根失去地位,引起网络拓扑变更。—》启动root保护功能的指定端口收到优先级更高的RST BPDU,端口进入Discarding状态,不转发报文,一段时间没有收到该优先级更高的RST BPDU,再恢复为正常的Forwardding。root保护功能只能在指定端口设置。
  9. TC-BPDU泛洪保护:因为交换机接受到TC-BPDU后,会执行macc地址表删除,如果hacker在边缘端口接入计算机,进行伪造TC-BPDU攻击交换机,交换机短时间收到大量TC-BPDU,频繁删除操作给设备造成很大的负担。----》配置防止TC-BPDU攻击,单位时间内设备处理TC-BPDU的次数进行设置,最多只能处理阀值内的次数,超出阀值的TC报文,定时器到期后,RSTP进程对其统一处理一次,避免频繁删除MAC地址表项,达到保护交换机的目的。

RSTP由于所有vlan共享一棵树,无法在vlan间实现负载均衡,从而造成宽带浪费,故推出MSTP,多生成树,既可以加快收敛,又能提供数据转发的多个冗余路径,转发过程中还实现vlan数据的负载均衡。

单生成树的弊端:

 1.部分vlan路径不通。
 2.无法实现流量分担。
 3.次优二次路径。故需要对单生成树进行优化。多生成树。

MST域内可以生成多棵树,每棵树都被称为一个MSTI,每个MSTI之间彼此独立。且每个MSTI的计算过程基本与RSTP计算过程相同。
每个生成树实例使用独立的RSTP算法,MSTP兼容于STP,一个MSTI可以与一个或者多个vlan相对应。

©️2020 CSDN 皮肤主题: 黑客帝国 设计师:上身试试 返回首页