《CCNP TSHOOT 300-135认证考试指南》——5.2节STP概述

简介:

本节书摘来自异步社区《CCNP TSHOOT 300-135认证考试指南》一书中的第5章,第5.2节STP概述,作者 【加】Raymond Lacoste , 【美】Kevin Wallace,更多章节内容可以访问云栖社区“异步社区”公众号查看

5.2 STP概述
CCNP TSHOOT 300-135认证考试指南
OSI参考模型的二层网络可用性不但需要拓扑结构中的交换机之间拥有冗余链路,而且要求网络具备冗余路径,不过这样会带来所谓的二层环路问题(如图5-1所示)。请注意SW1可以通过两条链路向SW2发送流量,反之亦然,因而SW1从某条链路发送给SW2的流量可以通过另一条链路返回SW1,并且无限循环。这是因为二层帧没有任何内嵌机制能够防止网络中出现的环路现象(如图5-1所示的环路1)。此外,图5-1中的SW1、SW2和SW3之间还存在一个更大的环路(环路2),从这些交换机的互连端口发送出来的二层帧也会在网络中产生无限循环。二层帧与三层数据包不同,三层数据包有一个TTL(Time-To-Live,生存时间)字段,如果在有限次数的路由器跳数之后,如果仍未到达目的地,那么将丢弃该数据包。因此,需要利用STP(Spanning Tree Protocol,生成树协议)来防止二层环路。IEEE 802.1D STP允许网络拓扑结构在物理上存在二层环路,但是在策略上阻塞数据流经一个或多个交换端口,以防止产生流量环路。


319718e5fe1373d14d0dbb0937464bff25ca589c

在检测与排除二层网络故障时,必须理解并掌握STP的工作方式,因而本节将首先回顾STP拓扑结构的动态建立方式,然后再讨论检测与排除STP故障时可能用到的相关命令。

5.2.1 STP操作特性回顾
STP利用BPDU(Bridge Protocol Data Unit,网桥协议数据单元)来构建STP拓扑结构,BPDU包中包含了构建STP拓扑结构所需的端口、地址、优先级以及开销等信息,从而能够确保数据按照期望方式进行传递。默认每两秒钟在交换机之间交换一次BPDU消息,以检测网络拓扑结构中的环路情况。发现环路后,可以在逻辑上阻塞选定的网桥接口并将该接口置入阻塞状态,从而消除网络中存在的环路。

由于二层环路会在网络中产生广播风暴或破坏交换机的MAC地址表,因而需要利用STP来防止网络出现二层环路。STP拓扑结构中的交换机可以分为两类。

关键

根网桥(root bridge):根网桥是一种被选举充当生成树拓扑结构参考点的交换机。BID
(Bridge ID,网桥ID)最低的交换机就会被选举为根网桥。其中,BID由优先级数值(默认为32768)和MAC地址(show version命令的输出结果中显示的交换机基本以太网MAC地址)组成。首先比较优先级,在两台或多台交换机优先级相同的情况下,再比较MAC地址。
非根网桥(non-root bridge):STP拓扑结构中的其他交换机均被称为非根网桥。
图5-2解释了网络中根网桥的选举情况,请注意,由于所有网桥的优先级都是32678(默认值),因而MAC地址最小的交换机(即SW1)被选举为根网桥。MAC地址是从左往右读的,由于MAC地址采用十六进制表示方式,因而从低到高依次为0~9,然后是A~F。


2686e6e8f478e653831a11cbcdd9daaee18f0135

关键

STP的根网桥选举规则为:越小越好,相同则不可接受。

提示:
记住该规则有助于理解根网桥选举过程中的每个步骤。
STP拓扑结构中的交换端口都可以归入表5-2以及图5-3所示的端口类型。

关键


108ab72953c6bf85ceb9656833173180bacc22c0

表5-3列出了802.1D STP及其后续标准802.1D-2004 STP规定的不同链路速率的默认端口开销。链路速率越高,开销越小。需要记住的是,开销越小越好,而且最终使用的开销值是路径开销的累积值。

关键


9b9cbeba65a788c234de8b9ab72a1bf2cf142224

1.确定根端口
了解特定端口成为特定端口角色的原因,对于检测与排除STP拓扑结构故障以及调整STP拓扑结构来说至关重要。图5-3中交换机SW2的根端口是Gi1/0/5,为何该端口会被选定为根端口呢?如果不知道原因,那么可以回顾交换机确定根端口的相关步骤。

第1步. 确定去往根网桥拥有最小累积路径开销的端口。如图5-3所示,SW2 Gi1/0/5到根网桥的总开销为4,SW2 Gi1/0/6到根网桥的总开销为4,SW2 Gi1/0/2到根网桥的总开销为(4+4)=8。请记住“越小越好,相同则不可接受”的选举规则,对于本例来说,存在两个最小开销4,在路径开销相同的情况下,需要使用最小的上游BID作为选择依据,因而继续第2步。

第2步. 确定收到具有较小上游BID的BPDU的SW2端口(Gi1/0/5或Gi1/0/6)。对于本例来说,从SW1收到的BPDU中的BID完全相同。首先检查SW2在端口Gi1/0/5和Gi1/0/6上收到的来自SW1的BPDU的优先级,由于图5-3中的BPDU都是从同一台交换机(SW1)以优先级32768发送出来的,因而这些BPDU的优先级均相同。接下来比较BPDU中的MAC地址,同样,由于交换机通过所有接口发送的所有BPDU都使用相同的基本以太网MAC地址,因而BPDU中的MAC地址也相同。因此,从SW1接收到的两个BPDU都拥有相同的优先级32768以及相同的MAC地址AAAA.AAAA.AAAA。在上游BID相同的情况下,需要使用上游PID作为选择依据,因而继续第3步。

第3步. 确定收到具有较小上游PID的BPDU的端口。SW1发送BPDU的时候会携带PID,PID包含端口优先级号及接口号,虽然可以手工修改优先级号(默认为128),但是无法修改接口号,因为接口号是由交换机生成的,其作用是识别交换端口。从图5-3可以看出,SW1的Gi1/0/5和Gi1/0/6的默认PID很可能分别为128.5和128.6,因而SW2收到SW1发送的BPDU时,在Gi1/0/5和Gi1/0/6上收到的BPDU的PID分别为128.5和128.6。由于PID越小越好,因而根据SW1发送的BPDU中的PID值,将SW2 Gi1/0/5选定为根端口。

对于图5-3中的SW3来说,由于从Gi0/1到根网桥的总开销为4,从Gi0/2到根网桥的总开销为8,因而Gi0/1被选为根端口。

2.确定指派端口
关键

确定每个网段的指派端口时,需要遵循上一节根端口选举过程中的相同步骤。需要记住的是,根网桥上的所有端口都是指派端口,因而无需任何计算即可知道拓扑结构中的这些指派端口。对于图5-3来说,没有指派端口的链路/网段只剩下SW2与SW3之间的网段了。从图中可以看出,已经将SW2上的Gi1/0/2标识为指派端口,原因何在呢?下面就来详细分析一下指派端口的确定步骤。

第1步. 确定去往根网桥拥有最小累积开销的网段。SW2 Gi1/0/2的累积开销(包括该网段本身的开销)为(4+4)=8,SW3 Gi0/2的的累积开销(包括该网段本身的开销)为(4+4)=8,由于开销相同,因而需要继续第2步。

第2步. 确定具有最小BID的上游交换机。如果不知道该怎么解决这个棘手的问题,那么这里有一个绝招。假设自己正站在SW2与SW3之间的网段中间,指着SW2,优先级是什么?是32768。指着SW3,优先级是什么?是32768。因而优先级相同。接下来需要查看MAC地址,仍然站在网段中间,指着SW2,MAC地址是什么?是BBBB.BBBB.BBBB。指着SW3,MAC地址是什么?是CCCC.CCCC.
CCCC。那么哪个MAC地址较小呢?当然是SW2的MAC地址较小。

因此,SW2的端口Gi1/0/2被选为SW2与SW3之间网段的指派端口。

3.确定非指派端口
除了根端口及指派端口之外,其余端口均为非指派端口,非指派端口将阻塞流量(如图5-3所示)。虽然非指派端口在正常情况下并不转发流量,但仍然接收BPDU以确定STP拓扑结构的状态。如果拓扑结构中的链路出现故障,那么非指派端口就可以通过BPDU间接检测到故障行为,并确定是否需要切换到转发状态,从而在防止网络环路的同时确保网络的可用性。

如果非指派端口需要切换到转发状态,那么将由在用的STP类型来确定非指派端口切换到转发状态所需的时间。STP(802.1D)、CST(Common Spanning Tree,公共生成树)以及Cisco专有STP实现(PVST+)的切换过程需要经历如下状态。

关键

阻塞状态:非指派端口在切换状态之前始终处于阻塞状态,如果非指派端口需要切换状态,那么默认会保持阻塞状态20秒钟,这段时间称为最大老化(max age)时间,实质上就是BPDU的生存时间。BPDU仅在20秒钟内有效,如果在最大老化时间超时后仍未收到新的BPDU,那么交换机就认为BPDU失效并切换到侦听状态。非指派端口处于阻塞状态时会评估BPDU,以尝试确定其在生成树中的角色。
侦听状态:端口从阻塞状态进入侦听状态后默认会在侦听状态维持15秒钟,这段时间称为转发时延(forward delay)。端口会在这段时间内发起BPDU,将本端口希望转发数据的意图告诉邻接交换机。此外,端口还会收到其他交换机发送的BPDU,这些BPDU将有助于构建STP拓扑结构并确定根端口和指派端口。
学习状态:端口从侦听状态进入学习状态后默认会在学习状态维持15秒钟,端口在这段时间内开始向MAC地址表添加表项,同时仍然发送和接收BPDU,以确保与STP拓扑结构相关决策的精确性。
转发状态:端口从学习状态进入转发状态并开始转发数据帧,同时还要学习MAC地址并发送和接收BPDU。根端口和指派端口都位于该状态。
从上述状态切换过程可以看出,从阻塞状态切换到转发状态需要50秒钟(802.1D)。

与STP使用定时器不同,快速生成树协议(802.1w)和多生成树协议(802.1s)使用握手机制作为主要收敛方法,因而收敛速度可以达到5秒钟甚至更快。如果握手机制失败,那么802.1w和802.1s将使用与802.1D相同的定时器作为备用收敛机制。此外,如果邻居交换机使用802.1D,那么为了保持后向兼容,需要与邻居交换机一样也使用定时器机制。

相关文章
|
传感器 5G UED
5G 标准化进程|带你读《5G空口特性与关键技术》之二
从 2016 年起,3GPP 启动了 R14 研究项,目标是在 2020 年实现 5G 的商业化部署。为此,3GPP 采取了按阶段定义规范的方式。第一阶段目标是R15,旨在完成规范 5G 的有限功能。第二阶段是 R16,旨在完成规范 IMT-2020 所定义的所有功能,将于 2019 年年底到 2020 年完成。
5G 标准化进程|带你读《5G空口特性与关键技术》之二
|
算法 开发工具 计算机视觉
【零代码研发】OpenCV实验大师工作流引擎C++ SDK演示
【零代码研发】OpenCV实验大师工作流引擎C++ SDK演示
237 1
|
存储 关系型数据库 MySQL
分析MySQL主从复制中AUTO_INCREMENT值不一致的问题
通过对 `AUTO_INCREMENT`不一致问题的深入分析和合理应对措施的实施,可以有效地维护MySQL主从复制环境中数据的一致性和完整性,确保数据库系统的稳定性和可靠性。
215 6
|
存储 关系型数据库 MySQL
MySQL bit类型增加索引后查询结果不正确案例浅析
【8月更文挑战第17天】在MySQL中,`BIT`类型字段在添加索引后可能出现查询结果异常。表现为查询结果与预期不符,如返回错误记录或遗漏部分数据。原因包括索引使用不当、数据存储及比较问题,以及索引创建时未充分考虑`BIT`特性。解决方法涉及正确运用索引、理解`BIT`的存储和比较机制,以及合理创建索引以覆盖各种查询条件。通过`EXPLAIN`分析执行计划可帮助诊断和优化查询。
229 1
|
存储 数据管理 jenkins
自动化测试框架的搭建与实践
【8月更文挑战第3天】随着软件行业的迅猛发展,自动化测试已成为保证软件质量的重要手段。本文将介绍如何搭建一个高效的自动化测试框架,并通过实际代码示例展示其应用。我们将探讨框架设计的核心原则、工具选择和脚本编写的最佳实践,以及如何通过持续集成实现自动化测试流程的优化。
217 1
|
机器学习/深度学习 人工智能 自然语言处理
揭开AI的神秘面纱:人工智能简介
这是一篇人工智能简介,从人工智能的定义,起源,分类,相关技术,应用前景与存在的挑战几个方面介绍人工智能
|
存储 Kubernetes 数据库
​分分钟教你在阿里云 K8s 上部署流数据库 RisingWave
本文主要介绍如何在阿里云【容器服务 Kubernetes 版 ACK】上部署 RisingWave 集群。RisingWave当前提供单机试玩模式,以及基于 K8s 的分布式部署模式,生产中我们只推荐后者。K8s 虽然上手门槛高,但只需按照本篇文章的步骤依次操作,你依然能轻松驾驭一个生产集群。
|
存储 移动开发 缓存
【前端实习生备战秋招】—HTML面试题汇总,建议收藏
【前端实习生备战秋招】—HTML面试题汇总,建议收藏
|
设计模式 前端开发 JavaScript
React开发的设计模式及原则
设计模式是最常见的,通用问题的可复用解决方案的归纳总结,通常被认为是解决该类问题的最佳实践,使用设计模式能帮助我们写出更容易维护,更健壮的代码。设计模式有很多,通常它们都会遵循一些共同的设计原则,接下来我们一起回顾下React社区里出现过的一些设计模式,以及它们所遵循的设计原则。
48074 6
React开发的设计模式及原则
|
存储 安全 网络安全
网站上传文件到NAS盘
网站上传文件到NAS盘
877 0