RSTP原理与配置

1.STP 的作用

STP :IEEE 802.1d

RSTP:IEEE 802.1w

MSTP:IEEE 802.1s

STP 是一个用于局域网中消除环路的协议。

如果没有生成树协议,会导致广播风暴,MAC 地址表震荡,帧的多个拷贝

2.生成树模式

一台交换机只能工作在一种模式下, stp mode stp / rstp/mstp 定义模式 默认mstp

按生成树实例与 VLAN 的对应关系,把交换机生成树模式分为 单成生树实例模式和多生成树实例模式

单实例模式:SST single STP 所有VLAN使用相同的一个拓扑,STP 和 RSTP

多实例模式:MST multiple STP 关联哪些VLAN 使用哪些实例 ,MSTP 是华为交换机默认的生成树模式

单实例模式:SST single STP 所有VLAN使用相同的一个拓扑,STP 和 RSTP

多实例模式:MST multiple STP 关联哪些VLAN 使用哪些实例 ,MSTP 是华为交换机默认的生成树模式

3.交换机 Bridge ID Port ID

BID 越小越优,优先级默认为 32768

stp priority 4096

STP优先级为什么必须是 4096的倍数 ,扩展系统ID 为 12 位,2的12次方是 4096

Port ID ( 端口ID )

端口PID 的大小可能会影响到是否被选举为指定端口

PID 越小越优,端口优先级默认为 128 ,最大为 240,数值为 16 的倍数

int g0/0/0

stp port priority 16

4.端口cost (端口开销)

华为在其交换设备上定义了3 种端口成本的计算方法,

默认是 IEEE 802.lt 标准,并可使用 stp pathcost-standard 命令来修改默认的端口成本的计算方法。

[SW1]stp pathcost-standard ?

dot1d-1998 IEEE 802.1D-1998 IEEE802.1D---1998标准

dot1t IEEE 802.1T IEEE802.1T标准

legacy Legacy 华为计算方法

⦁配置接口路径开销:

⦁dot1d-1998:指定路径开销值的计算方法是IEEE 802.1d-1998标准方法。使用IEEE 802.1d-1998标准方法时取值范围是1~65535。

⦁dot1t:指定路径开销值的计算方法是IEEE 802.1t标准方法。使用IEEE 802.1t标准方法时取值范围是1~200,000,000。

⦁legacy:指定路径开销值的计算方法是华为计算方法。使用华为计算方法时取值范围是1~200,000。

5. 端口角色和状态

路径开销(PathCost) 或根桥开销 ,路径成本最小的端口是RP 端口

端口角色

根端口 RP,指定端口 DP,替代端口 AP,备份端口 BP ,边缘端口 edged port

非根交换机有且只有一个RP 端口,根支换机没有RP 端口;

RP 对应端口一定是DP 端口;

每个网段有且只有一个DP 端口,

Root Port 根端口,交换机离根最近的端口

Designated Port 指定端口,

Backup Port 备份端口,处于Discarding 状态,是DP 端口的备份端口

Alternate Port 替代端口,处于Discarding 状态,所属交换机不是端口所连接网段的指定交换机。是RP 端口的备份端口

端口状态

Forwarding 转发 既转发用户流量,也处理BPDU 报文,只有根端口或指定端口才能进入Forwarding 状态

Leaming 学习 设备会根据收到的用户流量构建MAC 地址表但不转发用户流量,

Listening 侦听 确定端口角色, 将选举出根桥、根端口和指定端口,过渡状态

Blocking 阻塞 端口仅仅接收并处理BPDU , 不转发用户流量,阻塞端口的最终状态

Disable 禁用 端口不处理BPDU 报文,不转发用户流量,端口处在非操作状态

6.生成树计时器

生成树协议中用到 hello ,Forward delay 和 max age 这 3 个计时器,可在全局使用命令修改。

调整计时器一定要在根交换机上配置,其他交换机使用根桥交换机的计时器工作,根桥交换机的BPDU 中的计时器优于交换机本地计时器的配置。

stp timer hello 200 改为 2 S

stp timer forward-delay 1500 改为 15 S

stp timer max-age 2000 改为 20 S

stp max-hops 20 改为 20跳

hello timer : 2s root每2s产生BPDU。根交换机产生的BPDU 的通告时间间隔

forward delay: 15s 设备状态迁移的延迟时间。

链路故障需要新选出的根端口和指定端口要经过2倍的 forward delay 后才能进入转发状态

7.二种BPDU 报文

配置BPDU ( Configuration BPDU )

拓扑变化通知BPDU ( TCN BPDU )

TCN BPDU 是在设备检测到网络拓扑发生变化时才发出的。

配置BPDU 在以下3 种情况下会产生。

• 只要端口使能STP ,配置BPDU 就会按照Hello Time 定时器规定的时间间隔从指定端口发出。

• 当根端口收到配置BPDU 时,根端口所在的设备会向自己的每一个指定端口复制一份配置BPDU 。

• 当指定端口收到比自己差的配置BPDU 时, 立刻触发向下游设备发送自己的 BPDU

TCNBPDU 在如下 2 种情况下会产生:

• 端口状态变为Forwarding 状态, 且该设备上至少有一个指定端口:

• 指定端口收到TCNBPDU ,复制TCNBPDU 并发往根桥。

生成树选举

1.在整个网络选举出一个根桥

2.在每个非根桥都选举出一个根端口

3.在每个Segment (网段)上选举一个指定端口

4.堵塞非指定端口

根桥选举: BID= 优先级+ mac 地址,优先级默认为 32768,越小越优

stp priority 4096

stp root primary / secondary

根端口选举:依据该端口的根路径开销、对端BID(Bridge ID)、对端PID(Port ID)和本端PID

int g0/0/0

stp cost 100

stp port priority 16

指定端口选举:依据该端口的根路径开销、BID、PID

STP 收敛

STP端口默认处于堵塞状态,当STP根桥选择完成,端口角色计算成功后,端口会进行状态切换为listening:

第一个ForwardDelay,从listening切换为learnning,耗时15S,处于侦听状态。

第二个ForwardDelay,从learning切换为forwarding,耗时15S,完成MAC学习。

这两个ForwardDelay,合计耗时30S,就是STP的状态进入转发过程,又称慢收敛。

RP接口down时,STP收敛为30S

直接链路失效(链路DOWN),如果失效链路一边交换机失效的端口是根端口,并且该交换机有预备端口,那么收敛时间是30S;

DP接口down时,收敛为50S,因为DP无法发出BPDU,AP要等20S后才转为监听状态

如果失效链路一头交换机失效的端口是根端口,它没有预备端口,只有指定端口,那么收敛时间是50S。

如果在链路断开以前,本端的接口是DP,对端是AP,那么本端发送以自己为根的次优BPDU以后,对端的原AP端口需要等待20秒超时才会进行回应,所以需要50秒。

RSTP 的 P/A 机制

链路为点对点,RSTP按照P/A快速收敛进入转发状态:

1.上游设备发送Proposal报文,启动等待定时器。

2.下游设备堵塞全部其它端口,回应上游Agreement报文。

3.上游设备收到Agreement报文,端口进入转发状态。

通过一层一层的往下游请求,下游同意快速收敛,上游进入转发,实现整个RSTP网络快速收敛。

说明:非点对点链路无法实现PA快速收敛。

跟第三方对接,需要接口配置stp no-agreement-check实现快速收敛。

生成树保护

BPDU保护

根保护

环路保护

防止TC-BPDU攻击

BPDU protection : BPDU保护

在交换设备上,通常将直接与用户终端或文件服务器等非交换设备相连的端口配置为边缘端口,边缘端口一般不会收到BPDU。如果有人伪造BPDU恶意攻击交换机,边缘端口接收到BPDU后,交换机会自动将边缘端口设置为非边缘端口,并重新进行生成树计算,从而引起网络震荡。

Root protection : 交接机的 DP 端口,接口配置 (只能在 DP)

对于启用了根保护功能的端口,其端口角色不能成为根端口

Loop protection: 有阻塞端口的交接机,接口配置 (只能在 RP 或 AP)

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

TC protection : 所有交接机,系统视图 配置

交换机在接收到TC BPDU后,会执行MAC地址表项和ARP表项的删除操作。如果有人伪造了TC BPDU报文恶意攻击交换机,交换机在短时间内会收到很多TC BPDU报文,频繁的删除操作会给设备造成很大的负担,给网络的稳定性带来很大隐患。启用防TC BPDU报文攻击功能后,可以配置交换机在单位时间内处理TC BPDU报文的次数。

BPDP 过滤

对于运行生成树协议的园区网络,边缘端口不再参与生成树计算,但端口仍然会发送BPDU 报文,这可能导致BPDU 报文发送到其他网络,引起其他网络产生震荡。BPDU-filter 特性可使端口不收不发,过滤BPDU 报文。

int g0/0/1

stp bpdu-filter enable

STP基本原理

⦁在一个具有物理环路的交换网络中,交换机通过运行STP,自动生成一个没有环路的工作拓扑,也被称为STP树。树节点为某些特定的交换机,树枝为某些特定的链路。

⦁STP采用四个步骤来解决二层环路问题(生成一棵STP树):

⦁在一个交换网络中选举一个根桥;在每个非根桥上选举一个根端口;为每个网段选举一个指定端口;阻塞交换机上所有剩余的非根、非指定端口(备用端口)。

⦁如何生成STP树?

⦁主要通过比较4个参数:根桥ID、根路径开销、网桥ID和端口ID,值越小,越优先。而这些参数,都是报文BPDU中的字段。

⦁根桥选举:比较根桥ID,最小胜出。

⦁根端口选举:依次比较RPC、对端BID、对端PID和本端PID,最小胜出。

⦁指定端口选举:依次比较RPC、本端BID和本端PID,最小胜出。

⦁在确定了根端口和指定端口之后,交换机上所有剩余的非根端口和非指定端口被阻塞。

⦁根据端口是否接收和发送STP协议帧,以及端口是否能转发用户数据帧,STP定义了五种端口状态:Disabled、Blocking、Listening、Learning和Forwarding。

⦁Disabled状态:端口无法接收和发出任何帧(即:端口不仅不处理BPDU报文,也不转发用户流量),端口处于关闭(down)状态。

⦁Blocking状态:端口只能接收并处理BPDU,不能发送BPDU,也不能转发用户数据帧(用户流量),是阻塞端口的最终状态。

⦁Listening状态:端口可以接收并发送BPDU,但不进行MAC地址学习,也不能转发用户数据帧。这是过渡状态,用于确定端口角色,将选举出根桥、根端口和指定端口,同时用于防止临时环路。

⦁Learning状态:端口可以接收并发送BPDU,也可以进行MAC地址学习,根据收到的用户流量构建MAC地址表,但不能转发用户数据帧(用户流量)。这也是过渡状态,用于防止MAC地址表未建立,网络中出现大量数据帧泛洪。

⦁Forwarding状态:端口可以接收并发送BPDU,也可以进行MAC地址学习,同时能够转发用户数据帧(用户流量)。只有根端口或指定端口才能进入Forwarding状态。

⦁端口状态迁移:

⦁STP交换机的端口在初始启动时,会从Disabled状态进入到Blocking状态。在Blocking状态,端口只接收和分析BPDU,但不发送。

⦁在整个过程中,端口一但被关闭或发生了链路故障,就会进入Disabled状态。

⦁如果端口被选为根端口或指定端口,则会进入Listening状态,此时端口接收并发送BPDU,这种状态会持续一个Forward Delay的时间长度,缺省为15s,是为了防止临时环路:因为此时网络中可能还存在因STP树的计算过程不同步而产生的临时环路。

⦁在端口状态迁移过程中,如果端口的角色被判定为非根端口或非指定端口,则其端口状态就会立即退回到Blocking状态。

⦁如果没有因“意外情况”回到Disabled状态,那么端口会进入Learning状态,此时端口不但可以接收并发送BPDU,还会开始构建MAC地址表,为用户流量的转发做好准备。这个状态也会持续一个Forward Delay的时间长度,缺省为15s,是为了防止此时交换机的MAC地址表还未建立,导致大量的数据帧被泛洪。

⦁最后,端口进入Forwarding状态,开始转发用户流量。

BPDU报文格式:

字节

说明

Protocol Identifier

2

协议标识符。

Protocol Version Identifier

1

协议版本标识符,STP为0,RSTP为2,MSTP为3。

BPDU Type

1

当前BPDU类型:

  • 0x00:配置BPDU。

  • 0x80:TCN BPDU。

  • 0x02:Protocol Version Identifier为2时代表RST BPDU,Protocol Version Identifier为3时代表MST BPDU。

Flags

1

网络拓扑变化标志。对于MSTP,是指CIST标志字段。

  • 最低位=TC(Topology Change,拓扑变化)标志。

  • 最高位=TCA(Topology Change Acknowledgment,拓扑变化确认)标志。

Root Identifier

8

当前根桥的BID。对于MSTP,代表CIST的总根BID。

Root Path Cost

4

根路径开销,本端口累计到根桥的开销。对于MSTP,是指CIST外部路径开销,从本设备所属的MST域到CIST根桥所属MST域的累计路径开销。CIST外部路径开销根据链路带宽计算。

Bridge Identifier

8

本设备的BID。对于MSTP,是指CIST的域根设备ID,即IST Master的ID。如果总根在这个域内,那么域根设备ID就是总根设备ID。

Port Identifier

2

发送该BPDU的端口ID。对于MSTP,是指本端口在IST中的指定端口ID。

Message Age

2

BPDU报文的生存期。

如果配置BPDU是根桥发出的,则Message Age为0。否则,Message Age是从根桥发送到当前桥接收到BPDU的总时间,包括传输延时等。实际实现中,配置BPDU报文经过一个桥,Message Age增加1。

Max Age

2

BPDU报文的最大生存期,超时则认为到根设备的链路故障。

Hello Time

2

Hello Time定时器,缺省为2秒,即发送两个相邻BPDU的时间间隔。

Forward Delay

2

Forward Delay定时器,缺省为15秒。控制Listening和Learning状态的持续时间。

Version 1 Length

1

Version1 BPDU的长度,值固定为0。

Version 3 Length

2

Version3 BPDU的长度。

MST Configuration Identifier

51

MST配置标识,表示MST域的标签信息,包含4个字段。

CIST Internal Root Path Cost

4

CIST内部路径开销指从本端口到IST Master设备的累计路径开销。CIST内部路径开销根据链路带宽计算。

CIST Bridge Identifier

8

CIST的指定设备ID。

CIST Remaining Hops

1

BPDU报文在CIST中的剩余跳数。

MSTI Configuration Messages(may be absent)

16

MSTI配置信息。每个MSTI的配置信息占16 bytes,如果有n个MSTI就占用n×16bytes。

RSTP实验

SW1为根桥 SW2为备份根桥

SW1:stp mode rstp

stp instance 0 priority 4096

SW2:stp mode rstp

stp instance 0 priority 8192

SW3:stp mode rstp

SW4:stp mode rstp

SW1为根桥,因为根桥只有指定端口

SW4的G0/0/2口被堵塞

将SW3和SW4的连接PC的端口配置边缘端口,并且配置BPDU保护

[sw3-Ethernet0/0/1]stp edged-port enable

[SW4-Ethernet0/0/1]stp edged-port enable

SW3和SW4:stp bpdu-protection

可以看到开启了BPDU保护

dis stp 使用该命令

也可以看到: BPDU-Protection :Enabled 开启

在SW3上配置边缘端口,链路收到BPDU会直接关闭

在指定端口配置根保护(根保护只能在指定端口使用)

修改R4的优先级为0 (优先级为0 根桥)

R4已经认为自己是根桥

SW2和SW3依旧认为SW1为根桥同时指向SW4的链路状态为 DISCARDING(禁用)

配置环路保护

在SW2的G0/0/2口配置stp bpdu-filter enable 制造单向链路故障

配置前:

配置后:

可以看到已经产生环路

在SW4上配置环路保护

然后在在SW2的G0/0/2口依旧stp bpdu-filter enable

可以看到G0/0/2口变为了指定端口 并且状态为DISCARING (禁用) G0/0/1口 变为了根端口这样就避免了环路

PC1就可以ping通PC2了

配置tc---- bpdu 保护,以避免频繁地删除MAC地址表项和ARP表项,从而达到保护交换机的目的

stp tc-protection interval 10

stp tc-protection threshold 5

配置的含义是:交换机在10s 间隔内,默认是 hello 时间的 2s , 处理TC 报文的数量为 5, 默认为 1

SW1 SW2 SW3 SW4:

stp tc-protection ----开启tc--bpdu保护

stp tc-protection threshold 5

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值