-
2021-08-19 21:55:37
生成树协议(英语:Spanning Tree Protocol,STP),是一种工作在OSI网络模型中的第二层(数据链路层)的通信协议,基本应用是防止交换机冗余链路产生的环路.用于确保以太网中无环路的逻辑拓扑结构.从而避免了广播风暴,大量占用交换机的资源。
如图所示,把四个交换机连成一个环路,从图中可以发现,Switch3交换机的左端口是橙色的,而其他交换机则是绿色指示灯,表明是正常工作状态。
这是因为各个交换机都运行着生成树协议,当其中有环路时候,某些交换机会断掉其中一个端口,这样使得整个逻辑环路不存在了(虽然物理上的环路仍然存在)。
下面,给整个拓扑结构添加两台计算机,如图
添加完后,PC2可以ping通PC,然后,我们把Switch0的右端口和Switch1的左端口都关掉,如下图
我们会发现,Switch3的左端口由橙色变为了绿色, 这是生成树协议的原因。
交换机的生成树协议是在启动后默认自动运行的,我们可以手动关闭
输入命令:no spanning-tree vlan 1 表示删除vlan1上面的生成树协议。
当删除完所有交换机的生成树协议后,那么就会存在环路了。
结果是会产生广播风暴。
当存在环路之后,PC2也是PING不通PC1的。
更多相关内容 -
生成树协议
2021-10-06 16:08:45生成树协议的主要作用是: 消除链路环路 链路的冗余备份 想象一下有三个交换机A、B、C 。 比如说正常直线连接这三个交换机的时候是:A->B->C ,这种情况下:B访问A,ok是直连 直接通过,当时C访问A的话就需要...生成树协议的主要作用是:
- 消除链路环路
- 链路的冗余备份
想象一下有三个交换机A、B、C 。 - 比如说正常直线连接这三个交换机的时候是:A->B->C ,这种情况下:B访问A,ok是直连 直接通过,当时C访问A的话就需要经过交换机B,这也不是最要命的,想象一下这种情况下如果B交换机或者是B相关链路发故障,那么C就直接和A断开连接,要是大一点的网络会导致很严重的网络瘫痪问题。
- 换一种想法 A->B,B->C,C->A 这种情况下三个交换机出现了一个环路,当B发送故障的话,其他的数据还可以跑到另一个链路继续转发,想法是这样,但是如果单单物理上这样连接的话,那就犯了二层交换网络中的大忌,因为当二层网络出现环路的时候,会发送广播风暴和MAC地址漂移。防止这种情况发送所以产生了生成树协议用于防环。
为什么这边要特定的说明是二层交换网络,因为在三层网络动态路由协议报文中有TTL值,当TTL值为0时,路由器会将此报文丢弃,所以防了数据在三层交换网络中无休止的转发。
广播风暴:当交换机收到一个广播帧或者是一个单播帧后,会将广播帧除接受端口以外的所有端口泛洪出去,如果是交换网络中存在环路,则此报文会无限制的转发,直到网络中出现太多此类报文,网络瘫痪。
MAC地址漂移:和上面一样如果网络中出现换路,A交换机发送了一个单播帧,A交换机将其广播出去,B交换机的1端口收到此帧,并在MAC表中记录A交换机和A交换机下的主机MAC地址,当时在B交换机接受到此广播帧后,同时C交换机也接收到了A发送的广播帧,并记录相应的MAC消息,同时也广播出去,此时B交换机也收到了C交换机发送的A交换机报文,此时B交换机的2端口收到报文,并查看MAC地址表中以有相同的主机MAC消息,它会认为主机位置改变,并更新之前的MAC消息,此时B中的主机MAC消息被修改,当B收到C的报文时,A也收到C的主机报文,主机A再次广播,主机B再次收到A,MAC表再次更新,如此反复,这就是MAC地址漂移。
STP
在网络中通过STP协议 在整个网路中计算出一颗无环的“树”。STP一般用于接入层和汇聚层。
STP基础概念
桥ID
- IEEE 802.1D标准规定BID由16位的优先级(Bridge Priority)与桥MAC地址组成
- 每一台参与STP的交换机都拥有唯一的BID
- BID的优先级占高16bit,其余48bit为MAC地址
- 在STP网络中BID最小的设备为根网桥
当然在STP的网络中总的BID占64bit,其中优先级占16为它的取值也就是0-65535(1111 1111 1111 1111),其默认值为32768(1000 0000 0000 0000),管理员可以手动设置优先级但是必须是4096的倍数。
在选举的过程中优先级小的会成为根网桥,如果优先级都相同会根据交换机的MAC地址比较MAC地址小的为根网桥,毕竟MAC地址是唯一的。
根桥
• 树形的网络结构必须有树根,于是STP引入了根桥(Root Bridge)概念。
• 对于一个STP网络,根桥在全网中只有一个,它是整个网络的逻辑中心,但不一定是物理中心。根桥会根据网络拓扑的变化而动态变化。
• 网络收敛后,根桥会按照一定的时间间隔产生并向外发送配置BPDU,其他设备仅对该报文进行处理,传达拓扑变化记录,从而保证拓扑的稳定COST
交换机的每一个端口都有一个端口开销值参数,此参数表示在此端口在STP中的开销值,默认情况下端口的开销和端口的宽带越高,开销越小
华为从交换机支持多种STP的技术协议标准缺省情况下交换机使用的是IEEE 802.1t标准技术路径开销RPC
从一个非根桥到达根桥的路径可能有多条,每一条路径都有一个总的开销值,此开销值是
该路径上所有接收BPDU端口的端口开销总和(即BPDU的入方向端口),称为路径开销。
非根桥通过对比多条路径的路径开销,选出到达根桥的最短路径,这条最短路径的路径开
销被称为RPC,并生成无环树状网络。根桥的根路径开销是0。Port ID
运行STP交换机的每一个端口都由一个端口的ID,端口的ID“由优先级和端口号组成,端口优先级的范围为0-240,步长为16,即取值为16的整数倍,缺省情况下,端口的优先级是128,端口ID可以确定端口的角色。
BPDU
生成树的所有相关协议都封装到BPDU中,BPDU由两种类型一种是配置BPDU,另一种是TCN BPDU
- 配置BPDU包含了桥ID、路径开销和端口ID等参数。STP协议通过在交换机之间传递配置BPDU来选举根交换机,以及确定每个交换机端口的角色和状态。在初始化过程中,每个桥都主动发送配置BPDU。在络拓扑稳定以后,只有根桥主动发送配置BPDU,其他交换机在收到上游传来的配置BPDU后,才会发送自己的配置BPDU。
- TCN BPDU是指下游交换机感知拓扑结构发送变化时,给上游交换机发送的拓扑变化通知。
在最开始所有的交换机都会发送BPDU,因为所有的交换机都认为自己为根网桥,等网络确定后BPDU只有根网桥才可以发送,其他非根网桥只有修改和转发的权力。•STP操作:
- 选举一个根桥。
- 每个非根交换机选举一个根端口。
- 每个网段选举一个指定端口。
- 阻塞非根、非指定端口。
• STP中定义了三种端口角色:指定端口,根端口和预备端口。
▫ 指定端口是交换机向所连网段转发配置BPDU的端口,每个网段有且只能有一个指定
端口。一般情况下,根桥的每个端口总是指定端口。
▫ 根端口是非根交换机去往根桥路径最优的端口。在一个运行STP协议的交换机上最多
只有一个根端口,但根桥上没有根端口。
▫ 如果一个端口既不是指定端口也不是根端口,则此端口为预备端口。预备端口将被阻
塞。
其实最难理解的时指定端口和根端口,其实区别在与 根端口是在非根交换机上选择距离根交换机最近的端口,而指定端口是在所有交换机上选择距离根交换机最近的端口,当然自己离自己最近,所以根端口上参与STP的肯定都是指定端口,而根端口的选择条件是非根交换机选择,所以根交换机上肯定没有根端口。
STP计算过程
根网桥的选举过程
首先在网络刚开始的时候,所有交换机都认为自己就是根交换机,所以都会发送BPDU。如下图:
首先从上面的BID中可以看到,所有交换机的BID中优先级是一样的,所以会比较MAC地址,地址小的入选,最终结果会是sw1入选,其中的过程是:三个交换机同时发送配置BPDU,- sw1收到sw2和sw3的BPDU时,发现它们的BID都比我大,我自己所记录的根交换机角色不变,仍然是我自己。
- 当交换机sw2收到sw1和sw3的BPDU也进行比较,假设先收到的是sw1的发现sw1的BID比它小,所以更改自己内部记录的根网桥角色为sw1,收到sw3的时候发现比现在记录的sw1的BID大,所以并不变。
- 当交换机sw3收到sw1和sw2的时候,假如首先收到的是sw2的BPDU,比较一番后将自己内部的网桥角色设置为sw2,然后又收到了sw1的BPDU后发现,sw1的BID比现在内部记录的sw2的还要小,所以将其修改为sw1。到目前此网路中的根网桥竞选完毕。
根端口的选举过程
什么是根端口?
▫ 一个非根桥设备上会有多个端口与网络相连,为了保证从某台非根桥设备到根桥设备
的工作路径是最优且唯一的,就必须从该非根桥设备的端口中确定出一个被称为“根
端口”的端口,由根端口来作为该非根桥设备与根桥设备之间进行报文交互的端口。
▫ 在选举出根桥后,根桥仍然持续发送BPDU,而非根桥将持续不断的收到根桥发送的
BPDU。因此,在所有非根桥上选举一个距离根桥“最近”的端口(根端口),在网
络收敛后,根端口将不断的收到来自根桥的BPDU。 ▫ 即:根端口保证了交换机与根桥之间工作路径的唯一性和最优性。
注意:一个非根桥设备上,最多只能有一个根端口。
选举过程:- 交换机有多个端口接入网络,各个端口都会收到BPDU报文,报文中会携带“RootID、
RPC、BID、PID”等关键字段,端口会针对这些字段进行PK。 - 首先比较根路径开销(RPC),STP协议把根路径开销作为确定根端口的重要依据。
RPC值越小,越优选,因此交换机会选RPC最小的端口作为根端口。 - 当RPC相同时,比较上行交换机的BID,即比较交换机各个端口收到的BPDU中的BID,
值越小,越优选,因此交换机会选上行设备BID最小的端口作为根端口。 - 当上行交换机BID相同时,比较上行交换机的PID,即比较交换机各个端口收到的
BPDU中的PID,值越小,越优先,因此交换机会选上行设备PID最小的端口作为根端
口。 - 当上行交换机的PID相同时,则比较本地交换机的PID,即比较本端交换机各个端口
各自的PID,值越小,越优先,因此交换机会选端口PID最小的端口作为根端口。
PRC》上行交换机BID》上行交换机的PID》交换机本身的PID
指定端口的选举
因此,每个链路(Link)选举一个指定端口,用于向这个链路发送BPDU。
• 注意:一般情况下,根桥上不存在任何根端口,只存在指定端口。指定端口也是通过比较RPC来确定的,选择RPC最小的作为指定端口,如果RPC相同,则
比较BID和PID。- 首先比较根路径开销(RPC),值越小,越优选,因此交换机会选RPC最小的端口作
为指定端口。 - 若RPC相等,则比较链路两端交换机的BID,值越小,越优选,因此交换机会选BID
最小的交换机的端口作为指定端口。 - 若BID相等,则比较链路两端端口的PID,值越小,越优选,因此交换机会选PID最小
的交换机的端口作为指定端口。
预备端口
选举范围为网段。
• 什么是非指定端口(预备端口)?
• 在确定了根端口和指定端口之后,交换机上所有剩余的非根端口和非指定端口统称为预备
端口。
• 阻塞非指定端口
▫ STP会对这些非指定端口进行逻辑阻塞,即这些端口不能转发由终端计算机产生并发
送的帧(用户数据帧)。
▫ 一旦非指定端口被逻辑阻塞后,STP树(无环路工作拓扑)就生成了。
• 注意:
▫ 非指定端口可以接收并处理BPDU。 ▫ 根端口和指定端口既可以接收和发送BPDU,也可以转发用户数据帧PRC》两端的BID》两端的port ID
STP的接口状态
状态名称 状态描述 - 禁用(disable) 不接收不发送BPDU 不学习mac地址 不转发 - 阻塞(Blacking) 不发送但接收BPDU 不学习 不转发 - 侦听(Listening) 接收并发送 但不学习 不转发 - 学习(Learning) 接收转发并学习 当不转发 - 转发(Forwarding) 接收发送 学习 转发 其中需要从禁用状态到转发状态必须经过阻塞-》侦听-》学习-》转发。其中侦听和学习都需要15秒的时间。这个和BPDU报文中的Forward Delay 有关系 。当然这个值也是可以自己手动修改。其中Max Age就是最大寿命,当在这个时间段后还没有收到任何BPDU的时候,则认为对端交换机或链路出现问题,则通知所有查询计算。默认20秒
Hello Time 的意思就是根网桥连续发送BPDU的时间间隔,默认2秒。拓扑变化-根网桥故障
根桥故障:
- 在稳定的STP网路,非根桥会定期收到来自根桥的BPDU的报文
- 如果根桥发送故障,停止发送BPDU,下游交换机将无法收到根网桥的BPDU报文
- 如果下游交换机一直收不到BPDU报文,在Max age计时器就会超时,从导致已经收到的BPDU报文失效,此时非根网桥互相发送配置BPDU,重新选举新的根桥。
端口状态: - SW3的预备端口,20S后从阻塞状态到侦听状态到转发状态,进行流量转发。
收敛时间: - 根桥故障会导致50左右的恢复时间,对于Max age 加上2倍的forward delay收敛时间。
拓扑变换-直连链路故障
- 直连链路故障
- 当两台交换机用两条链路互联时,其中一条是主用链路,另一条为备用链路。
- 当网络稳定时,交换机SWB检测到根端口的链路发送故障,则其备用端口会进入用户流量转发状态。
- 端口状态:
- 备用端口会从阻塞状态,迁移到侦听-学习-转发状态。
- 收敛时间
- 直连链路故障,备用端口会经过30S恢复转发状态。
拓扑变换-非直连链路故障
• 非直连故障
▫ 在稳定的STP网络,非根桥会定期收到来自根桥的BPDU报文。
▫ 若SW1与SW2之间的链路发生了某种故障(非物理故障),因此SW2一直收不到来自
根桥SW1的BPDU报文,Max Age计时器(缺省: 20 s)就会超时,从而导致已经收到
的BPDU报文失效。
▫ 此时,非根桥SW2会认为根桥失效,并且认为自己是根桥,从而发送自己的配置
BPDU给SW3,通知SW3自己是新的根桥。
▫ 在此期间,SW3的预备端口一直收不到包含根桥ID的BPDU,Max Age计时器超时后,
端口进入到Listening状态,开始向SW2“转发”从上游发来的包含根桥ID的BPDU。 ▫ 因此,Max Age定时器超时后,SW2和SW3几乎同时收到对方发来的BPDU,再进行
STP重新计算,SW2发现SW3发来的BPDU更优,就放弃宣称自己是根桥并重新确定
端口角色。
• 端口状态:
▫ SW3预备端口20s后会从Blocking状态进入到Listening状态,再进入Learning状态,
最终进入到Forwarding状态,进行用户流量的转发。
• 收敛时间:
▫ 非直连故障会导致50s左右的恢复时间,等于Max Age加上2倍的Forward Delay收敛
时间拓扑变化总结
- 当根路由发生故障 需要50s才可网络恢复
- 当直连链路发生故障需要30s
- 当非直连链路发生故障需要50s、
拓扑改变导致MAC地址表错误
• 拓扑变化过程中,根桥通过TCN BPDU报文获知生成树拓扑里发生了故障。根桥生成TC用
来通知其他交换机加速老化现有的MAC地址表项。
• 拓扑变更以及MAC地址表项更新的具体过程如下:
▫ SW3感知到网络拓扑发生变化后,会不间断地向SWB发送TCN BPDU报文。
▫ SW2收到SW3发来的TCN BPDU报文后,会把配置BPDU报文中的Flags的TCA位设置
1,然后发送给SW3,告知SW3停止发送TCN BPDU报文。 TCA (配置BPDU)
▫ SW2向根桥转发TCN BPDU报文。
▫ SW1把配置BPDU报文中的Flags的TC位设置为1后发送,通知下游设备把MAC地址表
项的老化时间由默认的300 s修改为Forward Delay的时间(默认为15 s)。
▫ 最多等待15 s之后,SW2中的错误MAC地址表项会被自动清除。此后,SW2就能重新
开始MAC表项的学习及转发操作。STP的基础配置命令
1.配置生成树工作模式
stp mode {stp|rstp|mstp} 默认情况时MSTP 默认优先级为32767
2.配置根网桥
stp root primary (最重要) 优先级为0 设置后不能修改优先级
3.备份网桥
stp root secondary (中等的)second 第二 优先级为4096 设置后不可修改优先级
4.配置交换机的STP优先级
stp priority priority (优先级)
5.配置接口路径开销
stp pathcost-standard{dot1d-1998|dot1t|legacy} //配置接口开销技术方法,默认情况IEEE802.1t(dot1t)标准方法。统一网络开销计算方法相同。
6.配置接口优先级
[huawei-intf]stp priority priority 缺省情况是128 步长16
7.启动STP/RSTP/MSTP
stp enable 启动MSTP
虽然说STP解决了出现环路和链路备份的问题但是它也有很大的缺点就是收敛慢,这就出现了MSTP。
IEEE于2001年发布的802.1w标准定义了快速生成树协议RSTP(Rapid Spanning-Tree
Protocol),RSTP在STP基础上进行了改进,实现了网络拓扑快速收敛。
• RSTP(快速生成树)是从STP演化而来的,基本思想一样;当交换网络拓扑结构发生变化
时, RSTP可以通过Proposal/Agreement机制更快地恢复网络的连通性。
• 根据STP的不足,RSTP删除了3种端口状态,新增加了2种端口角色,并且把端口属性充分
的按照状态和角色解耦;此外,RSTP还增加了相应的一些增强特性和保护措施,实现网络
的稳定和快速收敛。
• RSTP是可以与STP实现后向兼容的,但在实际中,并不推荐这样的做法,原因是RSTP会失
去其快速收敛的优势,而STP慢速收敛的缺点会暴露出来。
• RSTP对STP的其他改进: ▫ 配置BPDU的处理发生变化:
▪ 拓扑稳定后,配置BPDU报文的发送方式进行了优化;
▪ 使用更短的BPDU超时计时;
▪ 对处理次等BPDU的方式进行了优化;
▫ 配置BPDU格式的改变,充分利用了STP协议报文中的Flag字段,明确了接口角色。
▫ RSTP拓扑变化处理:相比于STP进行了优化,加速针对拓扑变更的反应速度。
端口角色:- 根接口
- 指定接口
- 预备端口
- 备份接口
端口状态: - 阻塞
- 学习
- 转发
• 从配置BPDU报文发送角度来看:
▫ 预备(Alternate)接口就是由于学习到其它网桥发送的配置BPDU报文而阻塞的接口。
▫ 备份(Backup)接口就是由于学习到自己发送的配置BPDU报文而阻塞的接口。
• 从用户流量角度来看:
▫ Alternate接口提供了从指定桥到根的另一条可切换路径,作为根接口的备份接口。
▫ Backup接口作为指定接口的备份,提供了另一条从根桥到相应网段的备份通路。
边缘端口
如果指定端口位于整个域的边缘,不再与任何交换设备连接,这种端口叫做边缘端口。
• 在STP中用户终端接入交换设备端口状态由Disabled状态转到Forwarding状态需要经过15s,
那么用户在这段时间无法上网,如果网络频繁变化,用户上网状态非常不稳定,时断时续。
• 边缘端口一般与用户终端设备直接连接,不与任何交换设备连接。边缘端口正常情况下接
收不到配置BPDU报文,不参与RSTP运算,可以由Disabled状态直接转到Forwarding状态,
且不经历时延,就像在端口上将STP禁用了一样。但是,一旦边缘端口收到配置BPDU报文,
就丧失了边缘端口属性,成为普通STP端口,并重新进行生成树计算,从而引起网络震荡。对于STP和RSTP的缺陷
虽然RSTP在STP的基础上进行了改进,实现了网络拓扑的快速收敛。但是仍然有共同的缺陷:由于局域网中所有的VLAN共享一棵树,因此无法在VLAN间实现数据流量的负载均衡,链路被堵塞后将不承担任何流量,还有可能造成部分VLAN的报文无法转发。当然堵塞的链路也造成了浪费。
企业网中部署VBST:
▫ 可消除网络中可能存在的通信环路。
▫ 可实现链路的复用和流量的负载分担,进而有效地提高链路带宽的利用率。
▫ 配置和维护简单,进而可降低配置和维护成本。
• 但是如果网络中VLAN的数量较多,为每个VLAN执行独立的生成树计算将耗费交换机大量
的资源多生成树MSTP
为了弥补STP和RSTP的缺陷,IEEE与年发布的802.1s标准中定义了MSTP
堆叠
• 堆叠iStack(Intelligent Stack),是指将多台支持堆叠特性的交换机设备组合在一起,从
逻辑上组合成一台整体交换设备。
• 堆叠系统建立之前,每台交换机都是单独的实体,有自己独立的IP地址和MAC地址,对外
体现为多台交换机,用户需要独立的管理所有的交换机;堆叠建立后堆叠成员对外体现为
一个统一的逻辑实体,用户使用一个IP地址对堆叠中的所有交换机进行管理和维护,如图所
示。通过交换机堆叠,可以实现网络大数据量转发和网络高可靠性,同时简化网络管理。Smart Link
• 如图所示Switch3采用双上行方式分别连接到FW1和FW2,这样Switch3到达上行的链路就
可以有两条。在Switch3上配置Smart Link,正常情况下,可实现Port2所在链路作为Port1
所在链路的备份。若Port1所在的链路发生故障,Smart Link会自动将数据流量切换到Port2
所在链路,保证业务不中断。总结
STP 802.1D BID 802.1D
RSTP 802.1w
MSTP 802.1sBID 0-65535 默认值32768
PID 默认优先级 128 0-240 16步长 -
实验4—生成树协议STP
2021-07-16 06:07:50计算机网络实验4工具版本:Cisco Packet Tracer 7实验环境:Windows10STP:Spanning Tree Protocol为什么要有生成树协议(spanning-tree protocol)?在传统的交换网络中会产生故障(单点故障),导致主机通信失败。生成...计算机网络实验4
工具版本:Cisco Packet Tracer 7
实验环境:Windows10
STP:Spanning Tree Protocol
为什么要有生成树协议(spanning-tree protocol)?
在传统的交换网络中会产生故障(单点故障),导致主机通信失败。生成树协议可应用于在网络中建立树形拓扑,消除网络中的环路,并且可以通过一定的方法实现路径冗余,但不是一定可以实现路径冗余。
生成树协议是一种二层管理协议,它通过有选择性地阻塞网络冗余链路来达到消除网络二层环路的目的,同时具备链路的备份功能。
共选择三个终端,三个交换机,给每个终端一个IP地址(要为C类地址:192.163.1.*)
ping命令测试是否连通
进入特权模式
输入show spanning-tree命令,查看交换机spanning-tree 状态
每个网络单元都有自己的MAC地址,每个交换机(网桥)经过“学习”之后,每个交换机都会知道每个站可由哪个端口到达,每个交换机基于每个端口(也可能是每个vlan)的列表被存储在一张表(过滤数据库),然而这其中的信息并不能假设永远是正确的(可能发生MAC地址改变),为了解决这个问题,每次学习一个地址后,网桥(交换机)会启动一个计时器(默认5分钟),如果有效期内没有再次出现过该条目,则删除。
生成树是线和点的集合,跨越所有节点,保证没有环,而图中显然是有环的,生成树协议允许我们禁用某些端口来保证没有环路,禁用哪个端点取决于各个端点MAC的地址和优先级的结合
配置spanning-tree
将fa0/10划分到vlan 1
S1#conf t
Enter configuration commands, one per line. End with CNTL/Z.
S1(config)#interface fa0/1
S1(config-if)#switchport access vlan 1 #//将fa0/1划分到vlan 1
配置完成后在两个节点之间发送信息,进入仿真模式,观察动画,关闭其中一个交换机端口,重新观察现象
-
RSTP快速生成树协议
2018-05-22 13:18:35快速生成树协议RSTP(Rapid Spanning Tree Protocol)在STP基础上实现了快速收敛,并增加了边缘端口的概念及保护功能。 RSTP的端口角色: RSTP在STP基础上新增加了2种端口角色:、Backup端口和边缘端口。通过...RSTP简介
RSTP概述:
快速生成树协议RSTP(Rapid Spanning Tree Protocol)在STP基础上实现了快速收敛,并增加了边缘端口的概念及保护功能。
RSTP的端口角色:
RSTP在STP基础上新增加了2种端口角色:、Backup端口和边缘端口。通过端口角色的增补,简化了生成树协议的理解及部署。
- Backup端口:由于学习到自己发送的配置BPDU报文而阻塞的端口,指定端口的备份,提供了另外一条从根节点到叶节点的备份通路。
- 边缘端口:如果端口位于整个交换区域边缘,不与任何交换设备连接,这种端口叫做边缘端口。边缘端口一般与用户终端设备直接连接。
图:RSTP 端口角色示意图 边缘端口的特点:
- 边缘端口会节省30S的延时,端口UP后会立即进入转发状态。
- 边缘端口的UP/DOWN不会触发拓扑改变。
- 边缘端口收的TC置为的配置BPDU报文不会将MAC地址的老化时间设置为15s。
- 边缘端口如果收到配置的BPDU报文会马上变为一个普通端‘’口,进行STP的收敛
- 边缘端口也会发送配置BPDU报文。
- PA协商不会阻塞边缘端口。
RSTP的端口状态:
RSTP的端口状态在STP的基础上进行了改进。由原来的五种缩减为三种。
端口状态 说明 Forwarding(转发) 在这种状态下,端口既转发用户流量又处理BPDU报文。 Learning(学习) 这是一种过渡状态。在Learning下,交换设备会根据收到的用户流量,构建MAC地址表,但不转发用户流量,所以叫做学习状态。Learning状态的端口处理BPDU报文,不转发用户流量。 Discarding(丢弃) Discarding状态的端口只接收BPDU报文。 注:
MSTP端口状态与RSTP端口状态相同。
华为公司数据通信设备缺省情况处于MSTP模式,当从MSTP模式切换到STP模式,运行STP协议的设备上端口支持的端口状态仍然保持和MSTP支持的端口状态一样,支持的状态仅包括Forwarding、Learning和Discarding
RSTP报文:
RSTP报文格式:
在BPDU的格式上,除了保证和STP格式基本一致之外,RSTP作了一些小的变化。一个是在Type字段,配置BPDU类型不再是0而是2,版本号也变成了2。所以运行STP的交换机收到该类BPDU时会丢弃。
另一个变化是在Flag字段,把原来保留的中间6位使用起来。这样改变了的配置BPDU叫做RST BPDU。
RSTP Flag字段格式:
- Bit7:TCA
- Bit6:Agreement
- Bit5:Forwarding
- Bit4:Learning
- Bit3和Bit2:端口角色
- 00:(Unknown) 未知
- 01:Alternate / Backup Port
- 10:(Root Port)根端口
- 11:(Designated Port)指定端口
- Bit1:Proposal
- Bit0:TC
RSTP报文抓包示例:
图:RSTP报文抓包示例 RSTP快速收敛机制:
P/A协商:
针对运行STP设备从初始化到完全收敛至少需要30s的问题,RSTP采用P/A(Proposal/agreement)协商机制。
特点:
由于有来回确认机制和同步变量机制,就无需依靠计时器来保障无环。可以让交换机的互联接口快速进入转发模式。
P/A协商的硬件条件:
只能应用在点到点的链路上(全双工的端口),如果是半双工端口会识别为共享(share)链路,在共享链路上不能使用P/A协商。
P/A协商的过程:
- SW1向SW2发送p置位的BPDU包。
- 同步变量(阻塞除边缘端口以外的其他端口,防止出现环路)。
- SW2向SW1发送A置位的BPDU包。
- SW1收到A置位的BPDU包后,端口立即进入Forwarding状态。(一般都是秒级)
P/A协商的详细过程:
图:P/A协商的详细过程 什么情况下RSTP报文中需要将Proposal位置位?
一个指定端口进入discarding或者learning状态,需要将proposal位置位。
RSTP中收敛时间的优化:
- P/A协商:可以让交换机的RP和DP的互联接口快速进入转发状态。
- 直连故障:AP口变为RP并快速进入转发状态,不需要30s延时。
- 次优场景:AP口收到次优的RST BPDU包后会马上变为DP口,并向该端口发送最优的RST BPDU包。
- 非直连链路故障:连续丢失3个RST BPDU包,端口角色就需切换,最长时间为6s。
- RSTP中TC置位的RST BPDU包所有桥设备都可以发送,连续发送4s(TC while时间)。
在RSTP中什么情况下才会发送TC BPDU包?
指定端口进入到转发状态。
MAC地址表的清除:
- TC发送者:清除除了边缘端口以为的其它端口的MAC地址绑定条目。
- TC接受者:清除除了TC报文接口端口和边缘端口以外的其它端口的MAC地址绑定条目。
在RSTP中非根桥也会每隔hello timer 主动发送RsT BPDU报文,不是由根桥来发。
在RSTP中DP口shutdown后BP口的角色会马上变为DP口,并经过30s的转发延时进入到转发状态。
RSTP保护功能:
保护功能 场景 配置影响 BPDU(Bridge Protocol Data Unit)保护 边缘端口在收到BPDU以后端口状态将变为非边缘端口,此时就会造成生成树的重新计算,如果攻击者伪造配置消息恶意攻击交换设备,就会引起网络震荡。 交换设备上启动了BPDU保护功能后,如果边缘端口收到RST BPDU,边缘端口将被error-down,但是边缘端口属性不变,同时通知网管系统。被error-down的边缘端口只能由网络管理员手动恢复。如果用户需要被error-down的边缘端口可自动恢复,可通过配置使能端口自动恢复功能,并可设置延迟时间。 防TC-BPDU报文攻击保护 交换设备在接收到拓扑变化报文后,会执行MAC地址表项和ARP表项的删除操作,如果频繁操作则会对CPU的冲击很大。 启用防TC-BPDU报文攻击功能后,在单位时间内,交换设备处理拓扑变化报文的次数可配置。如果在单位时间内,交换设备在收到拓扑变化报文数量大于配置的阈值,那么设备只会处理阈值指定的次数。对于其他超出阈值的拓扑变化报文,定时器到期后设备只对其统一处理一次。这样可以避免频繁的删除MAC地址表项和ARP表项,从而达到保护设备的目的。 Root保护 由于维护人员的错误配置或网络中的恶意攻击,根桥收到优先级更高的BPDU,会失去根桥的地位,重新进行生成树的计算,并且由于拓扑结构的变化,可能造成高速流量迁移到低速链路上,引起网络拥塞。 对于启用Root保护功能的指定端口,其端口角色只能保持为指定端口。一旦启用Root保护功能的指定端口收到优先级更高的RST BPDU时,端口状态将进入Discarding状态,不再转发报文。在经过一段时间(通常为两倍的Forward Delay),如果端口一直没有再收到优先级较高的RST BPDU,端口会自动恢复到正常的Forwarding状态。 环路保护 当出现链路拥塞或者单向链路故障,根端口和Alternate端口会老化。根端口老化,会导致系统重新选择根端口(而这有可能是错误的),Alternate端口老化,将迁移到Forwarding状态,这样会产生环路。 在启动了环路保护功能后,如果根端口或Alternate端口长时间收不到来自上游设备的BPDU报文时,则向网管发出通知信息(此时根端口会进入Discarding状态,角色切换为指定端口),而Alternate端口则会一直保持在阻塞状态(角色也会切换为指定端口),不转发报文,从而不会在网络中形成环路。直到链路不再拥塞或单向链路故障恢复,端口重新收到BPDU报文进行协商,并恢复到链路拥塞或者单向链路故障前的角色和状态。 -
stp root-protection
//需要在所有的指定端口开启根保护,如果开启后的端口收到比根桥更优的BPDU报文,端口状态会变为Discarding状态。 如果连续MAX age的时间内从该端口都没有收到更优的BPDU报文,端口会自动恢复为Forwarding状态。。 防止根被抢占。
-
stp loop-protection
//用于RP和AP端口。接收BPDU报文的端口。防止单向链路故障造成的环路。
-
TC-protection
//设置TC报文的响应次数。如果接收TC的数量大于阀值范围内得TC次数,超出部分只执行1次。
-
BPDU-protection
//配置BPDU保护
RSTP配置命令:
基础配置同STP配置命令行。
[接口视图] stp point-to-point { auto | force-false | force-true} //配置指定端口的链路类型。 缺省情况下,指定端口自动识别是否与点对点链路相连,点对点链路支持快速收敛。 //如果当前以太网端口工作在全双工模式,则当前端口相连的链路是点到点链路,选择参数force-true实现快速收敛。 //如果当前以太网端口工作在半双工模式,可通过执行命令stp point-to-point force-true强制链路类型为点对点链路,实现快速收敛。 [接口视图] stp transmit-limit packet-number //配置端口在单位时间内BPDU的最大发送数目。缺省情况下,端口每秒BPDU的最大发送数目为6。 //如果设备的所有端口都需要配置每秒发送BPDU的最大数目。可以在系统视图下通过执行该命令实现。 stp mckeck //执行MCheck操作。用来对端口执行从STP模式自动迁移回原来的RSTP/MSTP模式的操作。 stp edged-port default //配置当前设备上的所有端口为边缘端口。 stp bpdu-filter enable //配置当前端口为BPDU filter端口。 stp bpdu-protection //配置交换设备边缘端口的BPDU保护功能 stp tc-Protection //使能交换设备对TC类型BPDU报文的保护功能。 stp tc-Protection threshold 1 //配置设备处理阈值指定数量的拓扑变化报文所需的时间。 stp tc-Protection threshold 1 //配置交换设备在收到TC类型BPDU报文后,单位时间内,处理TC类型BPDU报文并立即刷新转发表项的阈值。 //缺省情况下,设备在指定时间内处理拓扑变化报文的最大数量是1。 stp root-protection //配置交换设备的Root保护功能。 //当端口的角色是指定端口时,配置的Root保护功能才生效。 //配置了根保护的端口,不可以配置环路保护。 stp loop-protection //配置交换设备根端口或Alternate端口的环路保护功能。
注意:
-
在全局模式下配置边缘端口和BPDU报文过滤功能后,设备上所有的端口不会主动发送BPDU报文,且均不会主动与对端设备直连端口协商,所有端口均处于转发状态。这将可能导致网络成环,引起广播风暴,请用户慎用。
-
在端口模式下配置边缘端口和BPDU报文过滤功能后,端口将不处理、不发送BPDU报文。该端口将无法成功与对端设备直连端口协商STP协议状态,请慎用。
-
如果用户希望被error-down的边缘端口可自动恢复,可通过配置使能端口自动恢复功能,并设置延迟时间,即在系统视图下执行命令error-down auto-recovery cause bpdu-protection interval interval-value,使能端口自动恢复为Up的功能,并设置端口自动恢复为Up的延时时间。使被关闭的端口经过延时时间后能够自动恢复。
-
当端口的角色是指定端口时,配置的Root保护功能才生效。
配置了根保护的端口,不可以配置环路保护。
配置设备支持和其他厂商设备互通的参数:
为了实现华为公司的数据通信设备与其他厂商设备互通,需要根据其他厂商设备的P/A机制选择端口的快速迁移方式。
Proposal/Agreement机制,目前交换设备的端口支持以下两种方式:
- 增强方式:当前端口在计算同步标志位时计算根端口。
- 上游设备发送Proposal报文,请求进行快速迁移,下游设备接收到后,把与上游设备相连的端口设置为根端口,并阻塞所有非边缘端口。
- 上游设备继续发送Agreement报文,下游设备接收到后,根端口转为Forwarding状态。
- 下游设备回应Agreement报文,上游设备接收到后,把与下游设备相连的端口设置为指定端口,指定端口进入Forwarding状态。
- 普通方式:当前端口在计算同步标志位时忽略根端口。
- 上游设备发送Proposal报文,请求进行快速迁移,下游设备接收到后,把与上游设备相连的端口设置为根端口,并阻塞所有非边缘端口,根端口转为Forwarding状态。
- 下游设备回应Agreement报文,上游设备接收到后,把与下游设备相连的端口设置为指定端口,指定端口进入Forwarding状态。
在运行生成树的通信网络中,如果华为公司的数据通信设备与其他厂商设备混合组网,可能会因为与其他厂商设备的Proposal/Agreement机制不同可能导致互通失败。需要根据其他厂商设备的Proposal/Agreement机制,选择端口使用增强的快速迁移机制还是普通的快速迁移机制。
配置命令:
[接口视图] stp no-agreement-check //配置端口使用普通的快速迁移方式。 //缺省情况下,端口使用增强的快速迁移机制。
RSTP配置举例:
如下图,SW1配置为根桥,并且配置了根保护功能。SW2配置为备份根桥,连接PC的端口配置为边缘端口。SW3连接PC的端口配置为边缘端口,并配置BPDU过滤。
图:RSTP配置拓扑 SW1配置文件:
[SW1]dis current-configuration # sysname SW1 # stp mode rstp stp instance 0 root primary stp tc-protection # interface GigabitEthernet0/0/1 stp root-protection //配置根保护 # interface GigabitEthernet0/0/2 stp root-protection #
SW2配置文件:
[SW2]dis current-configuration # sysname SW2 # stp mode rstp stp instance 0 root secondary stp bpdu-protection //配置BPDU保护 error-down auto-recovery cause bpdu-protection interval 30 //配置因为BPDU保护导致端口Down后自动恢复功能 # interface GigabitEthernet0/0/1 stp no-agreement-check //配置普通P/A协商 stp transmit-limit 5 //配置端口在单位时间内BPDU的最大发送数目为5 stp instance 0 port priority 32 //配置端口优先级 stp instance 0 cost 100 //配置端口开销值为100 # interface GigabitEthernet0/0/2 # interface GigabitEthernet0/0/3 stp edged-port enable //配置边缘端口 #
SW3配置文件:
[SW3]dis current-configuration # sysname SW3 # stp mode rstp stp tc-protection threshold 5 # interface GigabitEthernet0/0/1 # interface GigabitEthernet0/0/2 stp bpdu-filter enable //配置BPDU过滤 # interface GigabitEthernet0/0/3 # interface GigabitEthernet0/0/4 stp loop-protection //配置环路保护 #
参考文档:华为HedEx文档
-
生成树协议——STP 详解(day 5)
2020-06-05 18:47:30STP 生成树协议 分享今日: 参考博客链接: RSTP协议 STP 协议 MSTP 文章目录STP 生成树协议1. 环路问题1.1 广播风暴1.2 MAC地址表翻转1.3 多帧复制2. STP 作用2.1 作用2.2 基本术语2.2.1 桥(Bridge)2.2.2 桥MAC... -
网络--生成树协议详解
2020-06-22 13:06:07生成树协议(Spanning Tree Protocol 简称:STP),是一种工作在OSI中数据链路层的通信协议,基本应用是防止交换机冗余链路产生的环路,用户确保以太网中无环路的逻辑拓扑结构。从而避免广播风暴,大量占用交换机的... -
生成树协议原理
2018-08-23 16:03:22生成树协议STP(Spanning Tree Protocol)可以在提高可靠性的同时又能避免环路带来的各种问题。 1 STP出现背景 1.1 广播风暴 环路会引起广播风暴。 网络中的主机会收到重复数据帧。 根据交换机... -
华为(STP生成树协议)
2021-10-24 11:25:551.1、为什么要有生成树协议 1.2、STP选举 1.3、BPDU介绍 1.4、选举规则 1.5、端口角色 1.6、端口状态描述 二、STP实例 2.1拓扑图 2.2L2-SW1配置 2.3 L2-SW3配置 2.4 查看端口状态 三、MSTP实例 3.1 拓扑... -
三、生成树协议(Spanning Tree Protocol,STP)
2022-03-14 20:14:58生成树协议(Spanning Tree Protocol,STP) STP 为什么需要生成树 冗余/备份是必须的,环路不可避免 环路危害 广播风暴 MAC地址学习错误/震荡/漂移 无法通信/重复数据帧接收 什么是生成树... -
详解生成树协议(stp)
2020-05-31 12:33:34详解生成树协议(stp) 将从以下几个方面讲解 stp原理作用 stp基本概念 stp报文格式 stp拓扑计算 实验:通过已知网络拓扑结构网络查找RID RP DP 规划出自己想要的拓扑结构 1.stp原理作用出现的背景 stp是用与局域... -
stp生成树协议详解
2021-04-13 14:43:51生成树协议(Spanning Tree Protocol 简称:STP),是一种工作在OSI中数据链路层的通信协议,基本应用是防止交换机冗余链路产生的环路,用户确保以太网中无环路的逻辑拓扑结构。从而避免广播风暴,大量占用交换机的... -
Cisco 快速生成树协议RSTP 协议原理及配置二
2021-06-28 02:02:015 (100%) 1 vote3,配置过程STP的全称是spanning-tree protocol,STP协议...生成树协议现已 经发展为多生成树协议和快速生成树协议(RSTP,Rapid Spanning Tree Protocol,IEEE802.1W)。两台Cisco 2960交换机使用两个百... -
华为[ENSP]生成树协议配置实例(STP)
2022-04-22 19:55:53华为[ENSP]生成树协议配置实例(STP) 一、启用和禁用STP 在SWA上启用和禁用STP,默认情况下STP是开启的。 -
STP生成树协议
2018-05-22 13:16:54生成树协议STP(Spanning Tree Protocol)将环形网络修剪成为一个无环的树型网络,避免报文在环形网络中的增生和无限循环。 在一个复杂的网络环境中,难免会出现环路。由于冗余备份的需要,网络设计者都倾向于在... -
华为交换机之生成树协议(MSTP)配置详解
2020-12-20 04:58:37.MSTP是一个共有的生成树协议,在实际生产环境中得到广泛的应用。MSTP(Multiple Spanning tree Algorithm and protocol)是多生成树技术,允许在一个交换环境中运行多个生成树,每个生成树称为一个实例(instance)。... -
第十一章 生成树类协议
2022-05-19 16:08:53第二节 生成树协议及其变种 第三节 生成树与快速生成树的配置 第一节 生成树概述 驱动问题 二层链路的冗余会带来什么样的问题? 广播风暴、MAC地址表不稳定、帧的多份传递 ... -
快速生成树——RSTP生成树协议——工作机制、端口角色、端口状态、收敛时间、为什么RSTP生成树收敛快、...
2022-01-27 12:10:22uplinkfast技术、Portfast技术、backbonefast技术、常见的STP调整命令:_孤城286的博客-CSDN博客 一、RSTP端口角色: 1、根端口(与STP相同) 2、指定端口(与STP相同) 3、替代端口---除了从RP端口收到来自根桥的... -
ovs的生成树协议(STP)实验
2021-05-08 20:07:27为了提高网络可靠性,交换机网络中通常会使用冗余链路,冗余链路会给交换机带来环路风险,并导致广播风暴以及MAC地址表不稳定等问题,生成树协议STP(Spanning Tree Protocol)可以在提高可靠性的同时又避免环路带来... -
二层技术 STP——生成树协议(一篇带你完全搞懂STP)
2020-05-19 22:27:24生成树协议STP(Spanning Tree Protocol)可以在提高可靠性的同时又能避免环路带来的各种问题。 环路引起的问题 环路会引起MAC地址表翻转,广播风暴,多帧复制等现象。 广播风暴 环路会引起广播风暴 网络中的主... -
RSTP:快速生成树
2022-02-20 17:20:19**rstp:**快速生成树协议 ,加快了stp收敛。RSTP 删除了 3 种端口状态,新增加了 2 种端口角色。 RSTP在STP上面的改进 1、新增端口角色 Alternate 端口和 Backup 端口。 alternate端口学习到其他端口BPDU报文而阻塞... -
RSTP(快速生成树协议)
2021-01-30 23:12:48RSTP(快速生成树协议) 快速生成树协议RSTP(Rapid Spanning Tree Protocol)在STP基础上实现快速收敛,并增加了边缘端口的概念和保护功能。 STP的缺点 1.STP从初始状态到完全收敛至少需要经过30s 2.SWC与SWA的直... -
STP(生成树协议)研究(1):概述、产生背景、基础知识
2020-07-18 09:05:37(一)为什么引入生成树协议 以太网中,为了进行链路备份,提高网络可靠性,通常会使用冗余链路。但是使用冗余链路会在交换网络中产生环路,并导致广播风暴(<=广播帧或未知单播帧 &交换机转发原理)以及MAC... -
二层协议基本总结(三)--生成树协议
2020-04-20 19:18:34STP通过构造一棵树来消除交换网络中的环路 STP基本概念 STP的端口角色:指定端口,根端口,预备端口 指定端口:交换机向所连网段转发配置BPDU的端口,每个网段有且只能有一个指定端口,一般情况下,根桥的每个端口... -
锐捷交换机生成树
2022-04-07 16:28:24生成树 Ruijie(config)# spanning-tree 打开Spanning Tree协议,锐捷设备默认起开了STP Ruijie(config)# spanning-tree mode mstp / rstp / stp 切换Spanning Tree模式,设备默认启用模式是 MSTP Ruijie... -
生成树实验
2020-01-15 14:27:24目录 1容错实验 1.1实验内容 1.2实验原理 1.3关键命令 ...由于可以基于VLAN构建生成树,因此可以通过网络设计和生成树协议同时实现容错和负载均衡功能 1容错实验 1.1实验内容 构建如下图... -
生成树协议配置与管理STP——4
2017-08-23 13:07:03MSTP可以把一个交换网络划分成多个域,每个域内形成多棵生成树,生成树之间彼此独立,实现不同VLAN流量的分离,达到网络负载均衡的目的。 通过给交换设备配置MSTP的工作模式、配置域并激活后,启动MSTP,MSTP便开始... -
生成树协议配置管理——3
2018-11-09 09:17:41这就得用到MSTP(Multiple Spanning Tree Protocol,多生成树协议)。MSTP与RSTP在许多方面是完全一样的,包括主要的五种端口角色、三种端口状态、三种收敛机制、三种定时器,以及影响拓扑收敛的参数配置等,主要... -
CCNA--生成树协议(STP)
2017-11-14 21:39:00STP(生成树协议)是一个二层管理协议。在一个扩展的局域网中参与STP的所有交换机之间通过交换桥协议数据单元bpdu(bridge protocol data unit)来实现;为稳定的生成树拓扑结构选择一个根桥;为每个交换网段选择...