STP详解

STP

1.STP概述

STP(Spanning Tree Protocol)生成树协议,是一个用于局域网中消除环路的协议

如果没有生成树协议,会导致以下问题:

  • 广播风暴导致网络不可用

环路产生广播风暴,广播风暴会导致网络瘫痪

  • MAC地址表震荡导致MAC地址表项被破坏

即使是单播报文,也有可能导致交换设备的MAC地址表项混乱,破坏交换机设备的MAC地址表

既想要有冗余,那要去除环路带来的危害,从逻辑上消除环路: 使用 STP (Spanning Tree Protocol)

STP能够从逻辑上去阻塞一个端口,当非阻塞链路出现单点故障的时候,这个被阻塞的端口恢复到转发数据的状态。

2.STP基本概念

终极目标就是要找到那个被阻塞的接口,为什么是这个端口被阻塞?其中需要进行一系列的选举,选举过程如下:

在每个广播域中选举出一个根网桥;

在非根交换机上,选根端口RP(Root Port);

在空余的链路上,选出指定端口DP(Desinnated Port);

最后剩下的,这个端口就要被阻塞--在新的生成树标准(IEEE802.1D-2004及802.1w)中,阻塞端口细分为AP(Alternate Port)端口和BP(Backup Port)端口。

BPDU:Bridge protocol data unit 桥协议 数据单元

交换机或者网桥之间周期性地发送: 每2s发送一次,当选举结束以后,根桥会以每2s一次的频率发送自己的BPDU。

交换机接收BPDU:

当交换机接收了一个更优的BPDU(有最小的 Root-BID或者 Root Path),接收的端口就会保存这个BPDU

BPDU的关键字段:

BID:Bridge ID

Root BID: 根桥的BID

Root Path:(cost)

达到根桥的开销,当交换机接收到BPDU的时候,会根据自己的链路带宽,修改 Root Path

COST值:10MBps 100 | 100MBps 19 | 1GBps 4 | 10GBps 2

Sender BID:

当根桥发出的BPDU被一台交换机接受并发送的时候,这台交换机会把自己的 BID 写到 Sender-BID的位置

Port ID: 端口的ID

优先级+端口号 0-255 默认值128

3.建立过程

3.1 在每个广播域中选举出一个根网桥

在选举开始的时候,所有的交换机都会认为自己是根桥,他们产生并相互发送自己的BPDU。比较BPDU中的Bridge-id:优先级+MAC地址,越小越优先。

Bridge-id:优先级+MAC地址 优先级:范围0-65535,必须设置成 4096的倍数,最小是0 优先级的默认值是 32768, 越小越优先

当根桥选举完成后,只有根桥能够自己产生BPDU,其他的非根桥负责接收和转发来自根桥的BPDU。

3.2 在非根交换机上,选出根端口

  1. 比较到达根桥的路径开销

例如此图,SW1的端口2比端口1路径开销小,SW2的端口2比端口1路径开销小

  1. 如果开销值相同:比较端口接收到的BPDU中 Sender-BID这一参数【即从对端交换机接收的BPDU,Sender-BID就是对端交换机的BPDU

例如此图,SW4的两个接口到根桥的开销值是相同的,比较Sender-BID,端口2的对端交换机BPDU更优先,从而SW4的端口2是根端口

  1. 如果交换机的各个接口接收到BPDU中的 Sender-BID也相同,则比较 BPDU中的 Sender-PID

Sender-PID :优先级+ 端口编号,即对端交换机的PID 【优先级:0-255 越小越优先 默认128】

例如此图,SW5的两个端口,对端交换机的3端口PID更优先,所以SW5的2端口选为根端口

  1. 如果交换机的各个接口接收到BPDU中的 Sender-PID也相同,例如使用了HUB集线器,则比较交换机本身端口的PID

例如此图,使用了HUB,相当于SW6的两个端口连接到SW2的同一个接口,比较选择SW6的自身端口的PID(local PID),选择SW6的端口1为根端口

3.3 在剩余的链路上,选举出指定端口

  1. 根端口对面的端口,就是指定端口
  2. 在剩余链路上,选举指定端口
  • 比较端口所在的交换机到达根桥的路径开销,越小越优先
  • 如果端口所在交换机到根桥的开销相同,则比较端口所在交换机的BID
  • 如果所在交换机的BID也相同,比较交换机的PID

3.4 剩下的就是阻塞的端口

剩余的端口就是被阻塞的端口,但是BP(Blocking Port)端口已经细分为AP(Alternate Port)端口和BP(Backu Port)端口

选举完成,从逻辑上去掉那些被阻塞链路,就得到了一棵能到达根桥的无环的树 ---> spanning tree

检查STP的选举情况:display stp brief

根端口 :Root port

指定端口:Designation port

非指定:alternate backup /backup Port

4.STP的状态机

  • 启动【Disable】:端口处在非操作状态,端口不处理BPDU报文也不转发用户流量
  • 阻塞【Blocking】:如果端口被选举成为了 阻塞端口,则这个端口就不能转发数据了,被阻塞的端口,只能接收并处理BPDU也不能学习MAC地址。
  • 侦听【Listening】:过渡过程,完成选举过程,能够接收和转发BPDU,不能学习MAC地址,也不能转发数据

新的生成树标准,Disable、blocking和Listening合并成Discarding状态

  • 学习【Learning】:学习MAC地址,用来完善交换机自己的MAC地址表,能够学习MAC地址,能够接收和转发 BPDU,不能转发用户流量
  • 转发【Forwarding】:能够进行转发数据了,能够接收换发送BPDU,能够学习MAC地址,能够转发数据

端口的状态切换过程:

例如此图中

[SW1]display stp brief MSTID Port Role STP State Protection 0 GigabitEthernet0/0/1 ALTE DISCARDING NONE 0 GigabitEthernet0/0/2 ROOT FORWARDING NONE [SW2]display stp brief MSTID Port Role STP State Protection 0 GigabitEthernet0/0/1 DESI FORWARDING NONE 0 GigabitEthernet0/0/2 ROOT FORWARDING NONE [SW3]display stp brief MSTID Port Role STP State Protection 0 GigabitEthernet0/0/1 DESI FORWARDING NONE 0 GigabitEthernet0/0/2 DESI FORWARDING NONE

5 STP的计时器

Forward Delay 设备状态迁移的延迟时间,要求新选出的根端口和指定端口要经过2倍的Forward Delay后,才能进入转发状态,即

从 Discarding 到 Learning,需要经历15s

从 Learning到 Forwarding,需要经历 15s

华为已不再使用最大存活期Max-age,而是收到BPDU就开始重新计算,如果一直没有收到BPDU,也会在至少3个Hello间隔后重新计算。

6 STP的拓扑变更

https://support.huawei.com/enterprise/zh/doc/EDOC1100092149

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值