生成树协议(RTP、RSTP、MSTP)

生成树协议

  • 前言
  • STP
  • RSTP
    • 端口角色与端口状态
    • 选举规则
    • 拓扑变化处理机制
    • 保护功能
      • BPDU保护
      • 根保护
      • 环路保护
      • 防止TC-BPDU攻击
    • RSTP与保护配置实例
  • MSTP
    • MSTP概述
    • MSTP简单配置
    • MSTP配置实例

前言

1.交换机工作在二层,看见广播包会怎么样? 泛洪
(1) 当交换机从某个端口收到一个数据包,它先读取包头中的源MAC地址,这样它就知道源MAC地址的机器是连在哪个端口上的;
(2) 再去读取包头中的目的MAC地址,并在地址表中查找相应的端口;
(3) 如表中有与这目的MAC地址对应的端口,把数据包直接复制到这端口上;
(4) 如表中找不到相应的端口则把数据包广播到所有端口上,当目的机器对源机器回应时,交换机又可以学习一目的MAC地址与哪个端口对应,在下次传送数据时就不再需要对所有端口进行广播了。
不断的循环这个过程,对于全网的MAC地址信息都可以学习到,二层交换机就是这样建立和维护它自己的地址表。

2.为了保证冗余性,通常要双上联,这就引入了交换环路
交换环路会引发广播风暴和Mac地址表震荡,网络中的主机会收到重复数据帧

 
STP 802.1d 标准生成树
RSTP 802.1w 快速生成树 P/A机制
MSTP 802.1s 多生成树

STP:disabled——》blocking——》listening——》learning——》Forwarding
RSTP:discarding——》learning——》Forwading
 
STP的主要作用:
消除环路:通过阻断冗余链路来消除网络中可能存在的环路。
链路备份:当活动路径发生故障时,激活备份链路,及时恢复网络连通性。
 

STP

STP 从初始状态到完全收敛至少需经过 30s:

STP 选路规则:

  • 每个网络只有一个根桥
  • 每个非根桥都要选出一个根端口
  • 每个 Segment 只有一个指定端口

STP 有 3 个常用的计时器
Hello Time 定时器:2s
Max Age 定时器:20s
Forwarding Delay 定时器:15s

STP的端口状态
    disable:是生成树的关闭状态
    block:AP端口的最终状态一定是block
    listening:从侦听到学习需要15s
    learning:从学习到转发需要15s
    forwarding:DP端口和RP端口的最终状态一定是forwarding

STP 没有边缘端口的说法。
STP不做 过多展开。
 

RSTP

STP协议虽然能够解决环路问题,但是由于网络拓扑收敛较慢(30~50s),影响了用户通信质量,而且如果网络中的拓扑结构频繁变化,网络也会随之频繁失去连通性,从而导致用户通信频繁终端,这也是用户无法忍受的。(比如不参与生成树的用户终端也要等30秒,因为标准STP是没有边缘端口。 总结:标准STP,效率低下,就是一个字“等”)

端口角色与端口状态

RSTP 定义了两种新的端口角色:备份端口(Backup Port)和预备端口(Alternate Port)
AP 是 RP 的备份
BP 是 DP 的备份
RSTP通过三种常见端口角色来决定转发状态

  • 根端口RP:任何一个非ROOT交换机,距离根桥最近的端口就是根端口
  • 指定端口DP:提供下游链路向根桥转发数据的通道。指定端口转发数据。
  • 预备端口AP:提供根端口的备份端口。预备端口阻塞,不转发数据

RSTP 端口状态共有 3 种,即 discarding ,learning 和 forwarding
生成树协议(RTP、RSTP、MSTP)_第1张图片 

选举规则

选举根交换机-选举非根交换机上的根端口-选举指定端口-选举预备端口和备份端口
①根:BID(桥ID)=优先级(默认32768)+MAC地址 越小越优
②根端口RP:根路径开销cost最小的,对端的BID,对端的PID,本端的PID
(到达根桥最近的端口)
③指定端口DP:端口的cost,本端的BID,本端的PID
(到达根桥cost最小)
④阻塞端口AP
RSTP 在选举的过程中加入了“发起请求-回复同意”(P/A 机制)这种确认机制,由于每个步骤有确认就不需要依赖计时器来保证网络拓扑无环才去转发,只需要考虑 BPDU 发送报文并计算无环拓扑的时间(一般都是秒级)。

快速收敛机制(自己要能表达清楚)
P/A:Proposal 和 Agreement

P/A协商之前,任意一个新的RSTP交换机,都认为自己是根桥。它会把所有的端口全部设为DP端口,并全部阻塞。只有这种被阻塞的DP端口才会向外发送协商Proposal消息

  • P/A协商阶段1:所有“根桥”互相发送P置位的消息,然后知道了谁是根桥
    特点:由于有来回确认机制和同步变量机制,就无需依靠计时器来保障无环
    生成树协议(RTP、RSTP、MSTP)_第2张图片
  • P/A协商阶段2:第一跳非根桥向Root发送A消息(表示同意根大佬的安排)
    生成树协议(RTP、RSTP、MSTP)_第3张图片
  • P/A协商阶段3:非根桥之间的对话 (非根桥对话就只有P消息 没A消息)
    LSW7 在阶段2 已经弄了 RP端口,因此不能再有RP端口,设为AP端口表示服从LSW8
    生成树协议(RTP、RSTP、MSTP)_第4张图片
     

拓扑变化处理机制

判断拓扑变化唯一标准:当一个交换机的一个非边缘端口迁移到Forwarding状态,表示拓扑变更

网络发生拓扑变化时,变更点交换机直接向全网发送TC置位的BPDU报文,而不是先通知到根桥,然后由根桥向全网发送TC报文,这样在一定程度上节省了收敛时间。
(重新计算生成树,所有端口立马阻塞,变为DP端口,回到P/A协商阶段1)
生成树协议(RTP、RSTP、MSTP)_第5张图片
生成树协议(RTP、RSTP、MSTP)_第6张图片拓扑改变通知工具 TC
生成树协议(RTP、RSTP、MSTP)_第7张图片
TC的作用就是 冲刷,然后通知邻居,重新学习。 TC消息最终传递到Root,完全全网拓扑变更
一句话概括:交换机收到TC消息后,立即冲刷了除了接收TC的接口和edge port以外的接口的MAC转发表,然后继续向邻居发送TC消息,触动全网

边缘端口

  • 交换机连接PC、路由器、服务器、防火墙等非交换设备的接口不需要接收并处理BPDU,不需要参与快速生成树的计算,因此配置成边缘端口
  • 交换机上连接终端设备的接口设置成为边缘端口后,会立即进入转发
  • int g0/0/0
    stp edged-port enable

 

保护功能

在 RSTP 或 MSTP 交换网络中,为了防止恶意或临时环路的产生,可配置保护
功能来增强网络的健壮性和安全性。
BPDU 保护
根保护
环路保护
防止 TC-BPDU 攻击

BPDU保护

在交换设备上,通常将直接与用户终端或文件服务器等非交换设备相连的端口配置为边缘端口,边缘端口一般不会收到BPDU。如果有人伪造BPDU恶意攻击交换机,边缘端口接收到BPDU后,交换机会自动将边缘端口设置为非边缘端口,并重新进行生成树计算,从而引起网络震荡。交换机上启动了BPDU保护功能后,如果边缘端口收到了BPDU,那么边缘端口将被关闭,但是边缘端口属性不变,同时通知网管系统。被关闭的边缘端口只能由网络管理员手动恢复,如果需要被关闭的边缘端口自动恢复,可以配置端口自动恢复功能,并设置延迟时间

  • 边缘端口收到BPDU,会丧失特性,引起交换网络震荡
    黑客在边缘端口接一台运行生成树的交换机,当该边缘端口收到BPDU后,就丧失了边缘端口属性,成为普通STP端口,并重新进行生成树计算
    生成树协议(RTP、RSTP、MSTP)_第8张图片
    全局下 配置BPDU保护功能 [LSW4] stp bpdu-protection
    当端口收到BPDU报文就会被立即关闭,可以有效防止网络震荡(防止重新计算生成树),
    端口关了之后,管理员自行开启。

根保护

(交换机的DP端口,接口配置)
由于维护人员的错误配置或网络中的恶意攻击,网络中的合法根交换机有可能会收到优先级更高的BPDU,使得合法根交换机失去根交换机的地位,从而引起网络拓扑结构的错误变动。这种不合法的拓扑变化,可能会导致原来应该通过高速链路的流量被牵引到低速链路上,造成网络拥塞。对于启用了根保护功 能的端口,其端口角色不能成为根端口,一旦启用根保护功能的指定端口收到 了优先级更高的BPDU时,端口将进入Discarding状态,不再转发报文。在经过一段时间(通常为 2 倍的 Forward Delya, 30s)后,如果端口一直没有
再收到优先级更高的BPDU,端口会自动恢复到正常的Forwarding状态
生成树协议(RTP、RSTP、MSTP)_第9张图片
根桥是全网核心,如果有比根桥更优先的交换机接入网络该怎么办?
合法的根交换机 收到更优RST BPDU,重新进行生成树计算,并失去根的地位,引起网络拓扑结构的错误变动
解决:防止用户私接交换机,抢占根桥。 需要配置根保护

对于启用了根保护功能的端口,其端口角色不能成为根端口,一旦启用根保护功能的指定端口收到了优先级更高的BPDU时,端口将进入Discarding状态,不再转发报文。在经过一段时间(通常为2倍的Forward Delya,30s)后,如果端口一直没有再收到优先级更高的BPDU,端口会自动恢复到正常的Forwarding状态
生成树协议(RTP、RSTP、MSTP)_第10张图片

int g0/0/3
stp root-protection
还有stp root primary
secondary

环路保护

(阻塞端口的交换机,端口配置)
在运行RSTP或MSTP的协议网络中,根端口和其他阻塞端口的状态是依靠上游
交换机为断发来的BPDU进行维持的。当由于链路拥塞或者单向链路故障导致这些端口收不到来自上游交换机的BPDU时,交换机就会重新选择根端口。原先的根端口会转变为指定端口,而原先的阻塞端口会迁移到转发状态,从而造成交换机中可能产生环路。在启动了环路保护功能后,如果根端口或Alternate端口长时间收不到来自上游的BPDU,则会向网络管理员发送通知信息,如果是根端口则进入Discarding状态,阻塞端口则会一直保持在阻塞状态,不转发报文,从而不会在网络中形成环路。直到根端口或Alternate端口收到BPDU后,端口状态才恢复到Forwarding状态

人为过滤掉 bpdu报文 达到这些端口收不到来自上游交换机的BPDU
[SW2]int g0/0/2
stp bpdu-filter enable

配置:要在有阻塞端口的交换机配置 环路保护
[SW4]int g0/0/1
stp loop-protection
[SW4]int g0/0/2
stp loop-protection

再人为过滤,然后在SW4 dis stp brief 查看是否都在Forwarding

防止TC-BPDU攻击

(所有交换机,全局配置)
TC(topology change)也会被黑客利用,来攻击网络
生成树协议(RTP、RSTP、MSTP)_第11张图片
交换机在接收到TC BPDU后,会执行MAC地址表项和ARP表项的删除操作。如果有人在边缘端口接入一台计算机不断伪造TC BPDU报文恶意攻击交换机,交换机在短时间内会收到很多TC BPDU报文,频繁的删除操作会给设备造成很大的负担,给网络的稳定性带来很大隐患。启用防TC BPDU报文攻击功能后,可以配置交换机在单位时间内处理TC BPDU报文的次数。 如果在单位时间内,交换机收到的TC BPDU报文数量大于配置的阈值,交换机只会处理阈值指定的次数。对于其他超出阈值的TC BPDU报文,定时器到期后设备只对其统一处理一次。这样可以避免频繁地删 除MAC地址表项和ARP表项,从而达到保护设备的目的。
TC-Protection机制默认打开,单位时间内 处理指定的次数
解决:[ ]stp tc-protection
stp tc-protection threshold 2 默认阈值数是1
生成树协议(RTP、RSTP、MSTP)_第12张图片 

RSTP与保护配置实例

生成树协议(RTP、RSTP、MSTP)_第13张图片
基础配置
[SW1]stp mode rstp
[SW1]stp root secondary 为了模拟让更高优先级来抢占 -4096
[SW2]stp mode rstp
[SW3]stp mode rstp
[SW4]stp mode rstp
dis stp可以看到交换机的mac地址
在这里插入图片描述
[SW3]int e0/0/1
stp edged-port enable
[SW4]int e0/0/1
stp edged-port enable

BPDU 报文
在有边缘端口的交换机上配置,全局开启
生成树协议(RTP、RSTP、MSTP)_第14张图片自动恢复(会一直来回开关,当边缘端口收不到BPDU报文或者不设置为边缘端口时,就会正常)#error-down auto-recovery cause bpdu-protection interval 30

一般情况下,启动了BPDU保护功能,如果边缘端口收到了BPDU,那么边缘端口将被关闭,但是边缘端口属性不变,同时通知网管系统。被关闭的边缘端口只能由网络管理员手动恢复,如果需要被关闭的边缘端口自动恢复,可以配置端口自动恢复功能,并设置延迟时间。

根保护
因为基础配置SW1是4096,目前都是认SW1为根桥
生成树协议(RTP、RSTP、MSTP)_第15张图片
现在在SW4的旁路上接上SW5
[SW5]stp prriority 0
在SW3查看 发觉被抢占了
生成树协议(RTP、RSTP、MSTP)_第16张图片
根桥是全网核心,如果有比根桥更优先的交换机接入网络该怎么办?
合法的根交换机 收到更优RST BPDU,重新进行生成树计算,并失去根的地位,引起网络拓扑结构的错误变动
解决:防止用户私接交换机,抢占根桥。 需要配置根保护
int e0/0/2
stp root-protection

对于启用了根保护功能的端口,其端口角色不能成为根端口,一旦启用根保护功能的指定端口收到了优先级更高的BPDU时,端口将进入Discarding状态,不再转发报文。在经过一段时间(通常为2倍的Forward Delya,30s)后,如果端口一直没有再收到优先级更高的BPDU,端口会自动恢复到正常的Forwarding状态

环回保护
在有阻塞端口的交换机上配置,边缘端口是配置不了的
[SW1]stp root primary
[SW2]stp root secondary
这样SW4的 g0/0/1 是阻塞接口

人为过滤掉 bpdu报文
[SW2]int g0/0/2
stp bpdu-filter enable
然后SW4的g0/0/1会成为根端口
g0/0/2会变为learning状态,然后学习15秒会成为forwarding状态。 网络中没有阻塞端口,一直处于转发状态

配置了基础配置后,原本SW3的g0/0/2就是根端口 forwading。 都在转发状态会形成环路
生成树协议(RTP、RSTP、MSTP)_第17张图片

因此要在有阻塞端口的交换机配置 环路保护
[SW4]int g0/0/1
stp loop-protection
[SW4]int g0/0/2
stp loop-protection
生成树协议(RTP、RSTP、MSTP)_第18张图片
再人为过滤验证
[SW2]int g0/0/2
stp bpdu-filter enable
然后在SW4 dis stp brief 查看端口是否都在Forwarding 。
生成树协议(RTP、RSTP、MSTP)_第19张图片
TC-BPDU泛洪保护
[SW]stp tc-protection
stp tc-protection threshold 2   默认阈值数是1

交换机在接收到TC BPDU后,会执行MAC地址表项和ARP表项的删除操作。如果有人在边缘端口接入一台计算机不断伪造TC BPDU报文恶意攻击交换机,交换机在短时间内会收到很多TC BPDU报文,频繁的删除操作会给设备造成很大的负担,给网络的稳定性带来很大隐患。启用防TC BPDU报文攻击功能后,可以配置交换机在单位时间内处理TC BPDU报文的次数。 如果在单位时间内,交换机收到的TC BPDU报文数量大于配置的阈值,交换机只会处理阈值指定的次数。对于其他超出阈值的TC BPDU报文,定时器到期后设备只对其统一处理一次。这样可以避免频繁地删 除MAC地址表项和ARP表项,从而达到保护设备的目的。

 

MSTP

核心层做堆叠,全网不需要启动STP
核心层不做堆叠,核心——接入使用MSTP

MSTP概述

RSTP在STP基础上进行了改进,实现了网络拓扑快速收敛。但是由于局域网内所有的VLAN共享一棵生成树,因此被阻塞后链路将不承载任何流量,无法再VLAN间内实现数据流量的负载均衡,从而造成带宽浪费。
MSTP兼容STP和RSTP,既可以快速收敛,又提供了数据转发的多个冗余路径,在数据转发过程中实现VLAN数据的负载均衡

MST 域是多生成树域(Multiple Spanning Tree Region),由交换网络中的多台交换设备以及它们之间的网段所构成。

MSTP 同域的三要素就是域名、实例和 vlan 映射、修订级别
缺省情况下,MSTP域的MSTP修订级别为0,目前修订级别目前没有什么实际作用,算是个保留参数
 

部分VLAN路径不通:左边接口只允许VLAN2,假设右边被阻塞了。
生成树协议(RTP、RSTP、MSTP)_第20张图片
有次优路径
生成树协议(RTP、RSTP、MSTP)_第21张图片
 
解决方案:多生成树交叉阻塞
生成树协议(RTP、RSTP、MSTP)_第22张图片

MSTP简单配置

第一步:配置域,然后创建实例,激活域
生成树协议(RTP、RSTP、MSTP)_第23张图片
第二步:配置优先级,开销值,边缘端口
生成树协议(RTP、RSTP、MSTP)_第24张图片

MSTP配置实例

MSTP同域的三要素就是域名、实例和vlan映射、修订级别

生成树协议(RTP、RSTP、MSTP)_第25张图片

1.创建vlan和划分端口
[SW1]vlan 10
[SW1-vlan10]int e0/0/3
[SW1-Ethernet0/0/3]port link-type access
[SW1-Ethernet0/0/3]port de vlan 10
[SW1-Ethernet0/0/3]int e0/0/1
[SW1-Ethernet0/0/1]port link-type trunk
[SW1-Ethernet0/0/1]port trunk allow vlan all
[SW1-Ethernet0/0/1]int e0/0/2
port link-type trunk
port trunk allow vlan all

[SW2]vlan 20
int e0/0/3
port link acc
port de vlan 20
int e0/0/2
port link trunk
port trunk allow vlan all
int e0/0/1
port link trunk
port trunk allow vlan all

[SW3]vlan batch 10 20
int e0/0/3
port link acc
port de vlan 10
int e0/0/4
port link acc
port de vlan 20
int e0/0/1
port link tr
port tr all vlan all
int e0/0/2
port link tr
port trunk allow vlan all


2.配置MSTP模式
[SW1]stp enable
[SW1]stp mode rstp
[SW1]stp region-configuration
[SW1-mst-region]region-name huawei.com
[SW1-mst-region]revision-level 1 修订号为1
[SW1-mst-region]instance 1 vlan 10 映射
[SW1-mst-region]instance 2 vlan 20
[SW1-mst-region]active region-configuration
这一块和SW2一样配置

作为实例1的根,如果前面没有实例,默认的是实例0
[SW1]stp instance 1 root primary
[SW1]stp instance 2 root secondary

[SW2]stp instance 1 root secondary
[SW2]stp instance 2 root primary

SW3既不做主根,也不做辅根。  阻塞
[SW3]stp region-configuration
region-name huawei.com
revision-level 1
instance 1 vlan 10
instance 2 vlan 20
active region-configuration

[SW3]dis stp brief
生成树协议(RTP、RSTP、MSTP)_第26张图片
要是有低版本模式为STP的SW4交换机接在SW2旁路e0/04的接口上,SW2会从MSTP会转换为STP。 如果低版本交换机断掉了,不会手动检查切换。
因此要主动的去检查,如果没有低版本,就和高版本保持一致。
兼容性回迁
int e0/0/4
stp mcheck

你可能感兴趣的:(网工,#,HCIP,数通路由交换)