网工必会stp /rstp /mstp (笔记)
二层环路导致的问题
1、广播风暴,交换机转发BUM报文的机制导致,数据帧没有防环机制。
BUM报文是指(B: boradcast、U:未知DMAC单播帧、M:组播)
2、 mac地址表震荡,生成错误MAC地址表项, 导致转发出现错误
3、重复数据帧接收,如果存在大量的广播帧,导致网络性能下降甚至是不可用,终端设备也会消耗大量CPU资源处理广播。
STP协议的所有角色都是通过比较BPDU的参数选举出来的。
STP定义每个交换机都有一个BID来标识自己。
BID=pri+mac
pri默认值32768
pri取值有2种标准
1、0-65535
2、0-61440 华为采用0-61440,但pri取 值必须是4096倍数。
ROOT桥:发送最好BPDU的交换机。
RP(根端口) :非根桥上接收最好BPDU的端口
DP(指定端口):链路.上发送最好BPDU的端口
AP(备用端口):即不是RP也不是DP的端口,被block。
DP端口要么对着RP,要么对着AP;RP的对端一定是DP。
什么是最好的BPDU?
BPDU中4个选举参数
RID:当前根桥的BID
RPC:对于根桥来说RPC永远等于0,对于非根桥来说RPC是自己根端口到根桥的路径开销之和。
BID:发送BPDU设备的BID
PID:由端口优先级+端口id组成,优先级的取值为0-240,默认值128,取16的倍数。
最好BPDu的选举机制:
1、比较RID ,RID越小越优
2、如果RID相同,则比较RPc路径和,越小越优
3、如果RPC路径和相同,则比较BID,越小越优
4、如果BID相同,则比较PID,越小越优
5、如果PID相同,则比较自身PID (特殊场景下,比如接个HUB)
非根桥根据根端口的配置消息计算DP端口的配置消息。
STP算法实现的基本过程
初始状态
由于每个桥都认为自己是根桥,所以在每个端口所发出的BPDU中,根桥字段都是用各自的BID,Root Path Cost字段是累计的到根桥的开销,发送者BID是自己的BID,端口PID是发送该BPDU端口的端口ID。
选择根桥
网络初始化时,网络中所有的STP设备都认为自己是“根桥”,根桥ID为自身的设备ID。通过交换配置消息,设备之间比较根桥ID,网络中根桥ID最小的设备被选为根桥。
选择根端口和指定端口
根端口和指定端口的选择过程如表1所示。
表1 根端口和指定端口的选择过程
步骤
过程
1
非根桥设备将接收最优配置消息(最优配置消息的选择过程如表2所示)的那个端口定为根端口
2
设备根据根端口的配置消息和根端口的路径开销,为每个端口计算一个指定端口配置消息:
- 根桥ID替换为根端口的配置消息的根桥ID;
- 根路径开销替换为根端口配置消息的根路径开销加上根端口对应的路径开销;
- 发送者BID替换为自身设备的ID;
- 发送端口PID替换为自身端口ID。
3
设备将计算出的配置消息与角色待定端口自己的配置消息进行比较:
- 如果计算出的配置消息更优,则该端口被确定为指定端口,其配置消息也被计算出的配置消息替换,并周期性地向外发送;
- 如果该端口自己的配置消息更优,则不更新该端口的配置消息并将该端口阻塞。该端口将不再转发数据,且只接收不发送配置消息。
表2 最优配置消息的选择过程
步骤
过程
1
每个端口将收到的配置消息与自己的配置消息进行比较:
- 如果收到的配置消息优先级较低,则将其直接丢弃,对自己的配置消息不进行任何处理;
- 如果收到的配置消息优先级较高,则用该配置消息的内容将自己配置消息的内容替换掉;
- 如果收到的配置消息和自己的一样,则将其直接丢弃。
2
设备将所有端口的配置消息进行比较,选出最优的配置消息
STP算法实现举例
一旦根桥、根端口和指定端口选举成功,整个树形拓扑就建立完毕了。下面结合例子说明STP算法实现的具体过程。
交换机参数
- 端口Up或使能了STP,会从Disabled状态进入到Blocking状态。
- 端口被选举为根端口或指定端口,会进入Listening状态。
- 端口的Forward Delay定时器超时,会进入Learning/Forwarding状态。
- 端口不再是根端口或指定端口时,会进入Blocking状态。
- 端口Down或者去使能STP时,就进入Disabled状态。
端口状态
forwarding :转发数据,学习MAC地址,处理BPDU
learning :不转发数据,学习MAC地址,处理BPDU
listening :不转发数据,不学习MAC地址,处理BPDU
blocking :不转发数据,不学习MAC地址,接受BPDU
稳定的STP网络只有2种状态,既forwarding和blocking
一个blocking状态的RP过着DP至少需要30秒才能进入到forwarding状态
1、非根桥的RP失效,并存在AP时,AP成为新的RP,并经历30s进入转发状态。
STP拓扑变化机制
- T点接口发生变更后,下游设备会不间断地向上游设备发送TCN BPDU报文。
- 上游设备收到下游设备发来的TCN BPDU报文后,只有指定端口处理TCN BPDU报文。其它端口也有可能收到TCN BPDU报文,但不会处理。
- 上游设备会把配置BPDU报文中的Flags的TCA=1,然后发送给下游设备,告知下游设备停止发送TCN BPDU报文。
- 上游设备复制一份TCN BPDU报文,向根桥方向发送。
- 重复步骤1、2、3、4,直到根桥收到TCN BPDU报文。
- 根桥把配置BPDU报文中Flags的TC=1和TCA=1后发送,TC=1是为了通知下游设备老化桥MAC地址表项,TCA=1是为了通知下游设备停止发送TCN BPDU报文。
- TCN BPDU报文主要用来向上游设备乃至根桥通知拓扑变化。
- 置位的TCA标记的配置BPDU报文主要是上游设备用来告知下游设备已经知道拓扑变化,通知下游设备停止发送TCN BPDU报文。
- 置位的TC标记的配置BPDU报文主要是上游设备用来告知下游设备拓扑发生变化,请下游设备直接删除桥MAC地址表项,从而达到快速收敛的目的。
TCA = 0 TC = 0 表示:周期性发送的BPDU(默认2秒)
TCA = 1 TC = 0 表示:确认TCN 配置BPDU(告诉下游我收到了,不要发TCN了)
TCA = 1 TC = 1 表示既是:确认TCN 配置BPDU,也是 TC 配置BPDU
- 当交换机收到TC BPDU后将自身所有端口(边缘端口除外)的MAC地址表的老化时间会从300秒设置为forwarding delay 15s ,TC BPDU会持续由根桥发送35s的时间
- 边缘端口标准STP是不支持的,但是华为的STP协议支持边缘端口的设置。
STP协议最早认为任何端口进入到forwarding状态或者进入disable状态时,认为STP拓扑发生变化,后来STP对拓扑发生变化的定义做出了优化:
- 当端口进入到forwarding状态认为拓扑发生变化(边缘端口除外),而DP端口进入disable状态不认为拓扑发生变化
- RP失效会认为拓扑发生变化,RP恢复到forwarding 状态后,并且有一个指定端口在转发状态,此RP也会拓扑发生变化发送TCN BPDU。
1、确定listening和forwarding所需的时间。
标准STP 是由根桥发送BPDU,非根桥不能主动发送BPDU。
华为STP根桥发送BPDU,非根桥也可以主动发送BPDU(华为从RSTP引入)
- 非根桥可以主动发送BPDU
- 收到次级BPDU立即老化
- 边缘端口(边缘端口也会发送BPDU,防止下行网络中产生环路的问题,收到自己发出的BPDU会block端口,收到其他交换机发出的BPDU会参与STP计算,实现破环,但又有临时环路的风险)
为什么在监听和学习状态需要Forwarding delay 的等待时间?
监听状态的15s是为了避免STP协议在收敛过程中产生临时环路,让BPDU能有足够的时间在整个网络进行传递。
基于这两种原因,STP协议的收敛是完全依赖计时器来完成的,收敛速度慢,为了解决临时环路和收敛期间单播帧泛洪,需要等待30s。
STP是单生成树,在存在多个VLAN的网络中,所有VLAN共享一棵树,导致链路利用率不高,访问路径存在次优,不合适的trunk放行配置导致部分VLAN不通。
为了解决STP收敛慢,开发出了RSTP,为了解决RSTP单树弊端,开发出了MSTP。
STP 单实例 RSTP 单实例 MSTP 多实例 厂家都存在私有的基于VLAN的STP,但并没有成为标准。 思科 PVSTP PVSTP+ 华为 VBST 实现和友商PVSTP的兼容
RSTP针对STP的优化
P/A 在点到点全双工的链路上让DP和RP端口快速进入转发状态,同时也不会产生临时环路。
DP端口处于discarding状态时,发送(P=1 ,A=1)BPDU RP收到DP的(P=1,A=1)的BPDU后,会进行同步置位。
注意:
DP端口处于discarding状态,对端是AP时,AP端口不会配置DP进行P/A协商,导致DP端口30s后才进入到forwarding状态,但是这并不会影响任何主机。
为什么P/A机制只能发生在点到点全双工的链路上,而且上下游最终的端口角色时DP和RP?
- 半双工可能存在两个以上的链路
- 根据P/A机制,发状态,如果下游接口有多台交换机,但上游交换机无法得知具体的交换机数量,那么就无法判断要收到多少个A置位的BPDU才能过渡到转发状态。
- 可能存在瞬间环路的风险,如果当SW3的G0/0/2端口是转发状态,当DP 收到A置位的BPDU将端口过渡到转发状态,当HUB的E0/0/9新增链路,如果SW1和SW4 进行P/A机制协商过渡到转发状态,那么就可能存在临时环路。
- 如果下游选举发生后,发现自己的AP端口,则不会回应A置位的BPDU
如果知道半双工链路上只有两台设备,可以强制启用半双工链路进行协商
两端接口敲命令: stp point-to-point {auto |force-false | force-true }
- 在RSTP中检测拓扑发生变化只有一个标准:一个非边缘端口迁移到转发状态
- 网络拓扑改变可能会导致交换机的MAC地址表产生错误
- 如图,在稳定情况下,SWC的MAC地址表中对应PCA的MAC地址的端口是E1 ;如果SEB的E1端口发生了故障,而SWC的MAC地址表中与PCA的MAC对应的端口仍然是E1,则会导致数据转发丢失的问题。
- 当交换机感知到拓扑发生变化(非边缘端口过渡转发状态)
- 在状态发生变化的本端口上发送TC置位 RST BPDU,时间为hello timer的2倍,一旦TC While Timer超时,则立即停止发送RST BPDU.
- 收到TC RST BPDU的交换机清空所有端口上的MAC地址表项,除了边缘端口和收到TC RST BPDU的端口
- 并继续泛洪TC RST BPDU ,如此反复,实现全网MAC地址表的更新
- 边缘端口down掉或者恢复up,不会触发拓扑变更。
注意:当RSTP的交换机收到STP BPDU,该端口将回退为STP的端口,失去快速收敛的特性。
- 快速进入转发状态,无盘工作站(PXE)或者DHCP获取IP地址的主机能够更快的接入网络(如果是普通端口到forwarding需要30s的过渡时间,可能会导致启动引导失败)
- 边缘端口UP和DOWN不会导致交换机发送TCN或者TC BPDU,增强STP网络的稳定性
- 边缘端口通常用于连接3层终端设备或路由器,防火墙路由设备。
- 确保下行网络不存在2层环路的场景下可以使用边缘端口
指定交换机:链路上DP端口所在的交换机就是这条链路的指定端口。
MSTP配置,对于同一个多生成树区域以下三个参数必须相同,且所有拥有相同域配置的MSTP交换机必须连续:
- 同一个域中基于instance维护生成树
- 同一个域中不同的instance可以设置不同的根桥
- 同一个域中可以针对不同的instance配置STP的参数
- 同一个域中每个instance独立维护自己的STP树
- 没有加入到instance中的VLAN,默认属于instance 0 (缺省实例)
网工必会stp /rstp /mstp (笔记)相关推荐
- 【HCIE-RS 天梯路】STP RSTP MSTP
生成树协议 STP(Spanning Tree Protocol)用于二层破环 不使用生成树协议可能会导致: 1. 广播风暴 2. MAC地址漂移 三层口没有STP 生成树协议模式:(实例 ...
- STP/RSTP/MSTP的概念及特点
STP/RSTP/MSTP的概念及特点 一.STP 1 基本概念 STP(Spanning Tree Protocol)即IEEE 802.1D,其作用主要有三个,第一是eliminate logic ...
- STP/RSTP/MSTP帧格式、报文格式及字段说明
STP(Spanning Tree Protocol,生成树协议)是一种二层(数据链路层)管理协议,它通过有选择性地阻塞网络冗余链路来达到消除网络二层环路的目的,同时具备链路的备份功能.最初被广泛应用 ...
- 简洁版本 STP/RSTP/MSTP的区别以及各自的特点
参考:https://blog.csdn.net/cisco_eigrp/article/details/47134357 生成树相关的几个概念STP/RSTP/MSTP STP:IEEE Std 8 ...
- STP/RSTP/MSTP协议简介
STP/RSTP/MSTP协议简介 STP 一.STP协议 二.为什么要有STP协议? BPDU 一.什么是BPDU? 二.BPDU的功能 三.BPDU的类型 端口 一.端口角色 二.端口状态描述 三 ...
- STP/RSTP/MSTP 精华详解
STP/RSTP/MSTP 精华详解: STP 概述 : 因为二层设备的互联,并因为交换机的转发原理,会导致物理环路的产生.这时就会使用到STP协议 STP:在有环的拓扑里面形成一个无环的逻辑拓扑(从 ...
- 思科ccna认证工程师NETCONF协议详解网工必看
思科ccna认证工程师NETCONF协议详解网工必看,这些年随着SDN的热潮,一个诞生了十年之久的协议再一次引起了人们的重视,它就是NETCONF协议. 网络配置协议NETCONF(Network C ...
- 华为数通笔记--STP/RSTP/MSTP
STP 背景:一种二层技术,在局域网中,为了提高设备可靠性,会增加冗余链路,但是也会造成环路的问题,STP技术就是经过协议计算阻塞某个端口,来打破环路. 基本概念: 根桥:STP网络的逻辑中心,通过H ...
- HCIE 面试资料-STP/RSTP/MSTP
STP STP介绍 STP(Spanning Tree Protocol)生成树协议 有三个版本,协议版本标识符,STP为0,RSTP为2,MSTP为3. STP的作用是进行逻辑阻断,通过堵塞端口来消 ...
- STP/RSTP/MSTP经典分析与对比
当前和STP相关的协议有:IEEE 802.1D(STP),802.1W(RSTP),802.1(MSTP).其中802.1D是最早关于STP的标准.RSTP(Rapid Spanning Tree ...
最新文章
- 下面为初学者分享一下SQL 数据库学习资料
- geohash vs PostGIS
- ewebeditor 5.2 列目录漏洞
- different application signatures解决方法
- 蓝书3.7 欧拉回路
- python语言key_Python语言学习:字典常用的方法
- mysql数据库邮箱什么类型_MySQL的数据类型介绍
- Python《多线程并发爬虫》
- 用ObjectProxy扩展模型对象
- 【绘图】matlab绘制图形
- sublime text 64位_Python学习第一步 - 用Sublime搭建Python运行环境
- android content provider线程安全,Android ContentProvider的线程安全(二)
- 让极路由给支持WDS的路由器无线桥接教程
- vmware vsphere出现“需要整合虚拟机磁盘”的告警处理方法(完整版)
- 刘强东宣布:京东减员50%,每天工作3小时!这样的未来是你想要的吗?
- AmazeUI图片轮播
- 郭盛华如今现状如何呢? 身价早过亿,网友:期待开直播
- 决策树--CART算法
- 【编程题】【Scratch二级】2021.06 绘制五彩缤纷的多瓣花
- nic占用率很高 Linux,linux – 许多丢弃了我的NIC数据包
热门文章
- 「LSTM 之父」亲笔万字长文,只为向世人证明:深度学习不是在母语为英语的地方被发明的...
- 九个帮你提高开发效率的现代CSS框架
- 华三AP(wa4320acn)wifi设置(命令行)
- android 钛备份,钛备份使用教程
- 无法登录到你的账户,通常可以通过从你的账户注销,然后重新登录
- 产品读书《Facebook效应:看Facebook如何打造无与伦比的社交帝国》
- 我在知乎上关于Laser200/310电脑的文章。
- 从GDPR和个保法看,为什么要做数据合规?
- 美林公司的尽职调查应用程序被选入Deloitte Tohmatsu的并购咨询解决方案
- 示波器电流探头可分为无源和有源两类,它们的区别是什么?