目录
一.STP的作用
- 1.为了减少网络的故障时间,网络设计中经常会采用冗余拓扑,冗余是保持网络可靠性的关键设计。
- 2.设备之间的多条物理链路能够提供冗余路径,当单个链路或端口发生故障时,网络可以继续运行,同时冗余链路可以增加网络容量,提供流量负载分担。
- 3.为避免产生二层交换环路,可以通过STP来管理二层冗余,STP可以让具有冗余拓扑的网络在故障发生时自动调整网络的数据转发路径。
- 4.Cisco的 PVST+可以解决STP 不能实现负载分担的问题。STP重新收敛时间较长,通常需要30~50秒,RSTP和MSTP可以解决该问题。
- 本文章主要介绍交换机上用于防止二层交换环路的STP、STP 防护RSTP 和 MSTP 技术的工作原理和配置,同时还讨论了交换机堆叠的问题。
二:STP历史
1. STP标准产生的原因:
- STP是一个针对数据链路层(二层)环路的技术。同样的,在网络层(三层)也需要环路。
- (1) 需要环路的动机:实现设备或线路的冗余,冗余能够解决单点故障问题,这样才能保证网络更加可靠;
- (2) 环路导致会导致哪些问题:广播风暴、多帧复用、MAC地址不稳定。二层环路产生后,广播风暴产生,帧在不断重新复制、MAC地址不断漂移,数据帧会不断增加,向滚雪球一样,越滚越大,不停歇,线路中传输的数据越来越大,最后交换崩溃,网络瘫痪,此时,交换机指示灯狂闪;
- (3)如何解决二层环路产生的问题:STP。
2. STP的起源:图论、离散数学
- 生成树是从图(图论)中生成的树,在含有原图的所有顶点的前提下,以最少数量的边将它们连接起来,如果我们从这些树种任意抽取一棵树那么我们可以把它叫做“统一生成树”或者“平均生成树”Uniform Spanning tree,图中边的加权值最小的那个生成树就是“最小生成树”Minimum Spanning Trfee。如下图
- 有向图、无向图、加权图、非加权图、循环图、非循环图、连通图 非连通图
- 怎样的图才是一个树结构呢?
- 1.是一个无向连通非循环图。
- 2.如果在图中添加任意一条边,则立即形成环路。
- 3.图中任意两点之间,有且仅有一条独特的路径。3. STA,SPANNING TREE ALGORITHM(算法)
- STP, Spanning Tree Protocol,生成树协议。
- 在STP背后的是STA,SPANNING TREE ALGORITHM,生成树算法。
4. SPANNING TREE在网络中的发展
- 2016(第十五届)中国互联网大会组委会日前透露,网络生成树协议(STP)发明者、国际互联网名人堂入选者Radia Perlman女士将出席6月21日-23日在北京举办的2016中国互联网大会。
- Radia Perlman女士是美国麻省理工学院博士,现任职于美国EMC公司。Perlman博士在早期网络路由和安全协议领域的发展作出了大量贡献,包括制定了稳健和可扩展的网络路由协议、提出了生成树协议(STP)、发明了可删除的存储系统以及可抵制恶意连接的分布式计算方法。她撰写的书籍《Interconnections》是一本广受读者欢迎的网络路由和桥接方面的书籍,同时她还是《Network Security》的合著者。她拥有100多项专利,并获得了众多奖项,其中包括入选美国国家发明家名人堂、国际互联网名人堂,入选美国国家工程院院士,以及获得美国计算机协会数据通信专业组(ACM-SIGCOMM)和美国高等计算机系统协会(USENIX)颁发的终身成就奖。
- IEEE Std 802.1D,STP
- PVST+(Per-VLAN Spanning Tree Plus) ,CISCO私有协议,每个VLAN拥有一颗单独的生成树。
- IEEE Std 802.1W,RSTP------2001年
- IEEE Std 802.1S,MSTP,由IEEE制定。
- PVRST+ ,CISCO私有,对RSTP的增强版
- 注意:根据目前找到的资料,802.1w,802.1s已经被替代了,都并入了IEEE Std 802.1D。截止2023年10月,IEEE Std 801.1D的最新版本是IEEE Std 801.1D-2022。
- IEEE Std 802.1D-2004 收敛了(吸收了,包含了) IEEE Std 802.1t-2001 和 IEEE Std 802.1w 标准。
- 802.1D 中,关于生成树协议 (STP) 标准的设计初衷是,每次连接都在中断一分钟左右后恢复可视为性能良好。随着LAN环境中第3层交换的出现,网桥现在与路由解决方案展开竞争。在路由解决方案中,开放最短路径优先(OSPF)和增强型内部网关路由协议(EIGRP)等协议能够在更短的时间内提供备用路径。
- 思科通过Uplink Fast、Backbone Fast和Port Fast等功能增强了原始802.1D规范,以加快桥接网络的收敛时间。缺点是这些机制是专有的并且需要额外配置。
- 快速生成树协议(RSTP; IEEE Std 802.1w)可看作是对早期版本的802.1D标准的演进,而不是一场革命。802.1D 中的术语基本上保持不变。而且大部分参数也没有变化,因此熟悉 802.1D 的用户可以轻松地快速配置新协议。在大多数情况下,RSTP 的性能比 Cisco 专有扩展的性能要好,而且不需要进行任何额外的配置。802.1w也可以恢复为802.1D,以便与旧网桥进行互操作(基于每个端口)。但这恰恰抛弃了它带来的好处。
- 技术背景:二层交换机网络的冗余性与环路。
三:MSTP介绍
- 在PVST中, 交换机为每个VLAN都构建一棵STP 树不个仅会为CPU 带来很大负载(特别是低端的交换),也会占用大量的带宽。MSTP (Multiple Spanning Tree Protocol)则可把多个VLAN 映射到一个STP实例上,每个实例都运行RSTP,从而减少了资源的浪费。
- MSTP 中引入了实例(Instance)和域(Region)的概念。
实例就是多个 VLAN的一个集合,这种通过将多个VLAN捆绑到一个实例中的方法可以节省通信开销和资源占用率。
- MSP各个实例拓扑的计算是独立的,通过控制这些实例上STP选举,就可以实现负载均衡。
- 域由域名(Configuration Name)、修订级别(Revision Level)、格式选择器(Configuration ldentifier Format Selector)、VLAN 与实例的映射关系组成。
- 其中域名、格式选择器和修订级别在BPDU数据包中都有相关字段,而 VLAN 与实例的映射关系在 BPDU 数据包中以 MDS 摘要信息(Configuration Digest)的形式表现,该摘要信息是根据映射关系计算得到的一个 16字节签名。只有上述4者都一样且相互连接的交换机机才认为在同一个MSTP域内。
- 默认时,所有的VLAN都映射到实例0上。
- MSTP的实例0具有特殊作用,称为CIST( Common Internal and Spanning Tree),即公共和内部生成树。
- 其他的实例称为MSTI ( Multiple Spanning Tree instance ) ,即多生成树实例。
多生成树 (MST) 是从 Cisco 专用多实例生成树协议 (MISTP) 实施得到的 IEEE 标准。
四:使用 MST 的位置
- 下图显示了一种常用设计,其特征是接入交换机 A 带 1000 个 VLAN,这些 VLAN 冗余连接到两台分布式交换机 D1 和 D2。在此设置中,用户连接到交换机 A,而网络管理员通常根据偶数或奇数 VLAN 或认为适当的任何其他方案,寻求实现接入交换机上行链路的负载均衡。
- 具有1000个VLAN的接入交换机A冗余连接到交换机D1和D2
- 以下部分是对此设置使用各种类型的 STP 的案例示例:
1.PVST+ 案例
- 在 Cisco 每 VLAN 生成树 (PVST+) 环境中,可以调整生成树参数,以便在每个上行链路中继上转发半数 VLAN。为轻松实现此目的,请选择网桥 D1 作为 VLAN 501 至 1000 的根网桥,选择网桥 D2 作为 VLAN 1 至 500 的根网桥。以下描述对于此配置是正确的:
- 在此案例中,可以获得最佳负载均衡结果。
- 为每个 VLAN 维护一个生成树实例,这意味着只为两个不同的最终逻辑拓扑维护 1000 个实例。这严重浪费了网络中所有交换机的 CPU 周期(除了每个实例发送各自的网桥协议数据单元 (BPDU) 所用的带宽以外)。
2.标准 802.1q 案例
- 原始 IEEE 802.1q 标准不仅仅定义了中继,还定义了许多其他内容。此标准定义了通用生成树 (CST),后者仅假定整个桥接网络运行一个生成树实例,而不考虑 VLAN 的数量。如果将CST应用于下图拓扑,则结果类似于如下所示的图表:
- Common Spanning Tree (CST) Applied to Network
- 应用于网络的通用生成树(CST)
- 在运行CST的网络中,以下陈述是正确的:
- 无法进行负载均衡;一个上行链路需要阻塞所有VLAN。
- CPU可备用;只需计算一个实例。
- 注意:思科实施增强了802.1q以支持一个PVST。此功能完全按照本示例中 PVST 的方式运行。Cisco 每 VLAN BPDU 通过纯 802.1q 网桥建立隧道。
3.MST 案例
- MST (IEEE 802.1s) 组合了 PVST+ 和 802.1q 的最佳优势。其观点在于,可以将若干个 VLAN 映射到数量减少的生成树实例,因为大多数网络不需要太多逻辑拓扑。在第一个图描述的拓扑中,只有两种不同的最终逻辑拓扑,因此实际上只需要两个生成树实例。不需要运行 1000 个实例。如此图所示,如果将 1000 个 VLAN 中的一半映射到不同的生成树实例,则以下描述是正确的:
- 由于一半的VLAN都连接到一个单独的实例,因此仍然可以实现所需的负载均衡方案。
- 由于只计算两个实例,因此可以节省 CPU。
- Map Half of the 1000 VLANs to a Different Spanning Tree Instance
- 将1000 VLAN的一半映射到不同的生成树实例
- 从技术观点来看,MST 是最佳解决方案。从最终用户的角度来看,迁移到MST的主要缺点是:
五:配置MSTP
cisco packet tracert (version6或version 8.2.1)只支持思科私有的pvst和rapid-pvst的配置,如下图示:
有兴趣完成MSTP实验的,可以使用EVE-NG模拟器进行试验。
1.实验目的
- 通过本实验掌握:
-
MSTP作用和工作原理
-
MSTP配置和调试方法
2. 实验拓扑
2.1 工业客户网络架构设计需求:
(1)设计一个网络架构,要有核心层和接入层,都使用思科交换机。
(2)企业有4个部门,要求这四个部门都可以上网,但分属不同的VLAN中,这样今后可以做其它安全策略以确保网络安全,这些策略如今后学到的访问控制列表ACL。
(3)网络架构的设计要具有冗余,防止一条线路或一台设备终端导致的业务中断。
(4)由于硬件冗余而产生的环路要处理好,也就是要在逻辑上(或者说通过配置)防止物理环路的产生。
(5)不能因为防止物理环路而导致某端口没有流量,这样浪费端口资源及设备间互联的带宽资源。也就是设备间两两互联的端口都要有流量。
2.2 乙方给出的解决办法:
(1)根据客户第1个需求,需要两台cisco 3560交换机,一台在核心层,一台在接入层接PC和网络打印机。
(2)根据客户第2个需求,可配置4个VLAN,VLAN1~VLAN4。
(3)根据客户第3个需求,要有冗余,核心层使用2台cisco 3560(S1和S2)。接入层交换机(S3)同时接2台核心层交换机,以确保任意一台核心层设备故障PC都能正常访问外网。也确保接入层到核心层有2条线路,任意一条线路及其端口出现故障,网络依然正常。
(4)根据客户第4个要求,防止环路,那么必须配置生成树协议。
(5)根据客户第5个要求,设备间两两互联的端口都要有流量,那么就必须选用生成树协议中的多生成树协议(MSTP)进行配置。
(6)最后,设计拓扑如下图示:
不理解上图的还可以看下图,上图其实是从现实中的下图中摘取的一部分
(7)多生成树协议(MSTP)配置思路如下:
拓扑图只有1个环路,因此只需要两个实例即可。现在有4个VLAN,将VLAN数量平均分配到2个实例中去,也就是配制两个实例(Instance),每个实例分2个VLAN即可。
Instance1: VLAN1, VLAN2 //实例1中包含VLAN1和VLAN2
Instance2: VLAN3, VLAN4 //实例2中包含VLAN3和VLAN4
交换机S1是Instance1的primary root bridge,priority:4096
交换机S1是Instance2的secondary root bridge,priority:8192
//S1交换机是实例1的主根桥,优先级数值是 4096
//S1交换机是实例2的次根桥,优先级数值是 8192
交换机S2是Instance1的secondar root bridge,priority:8192
交换机S2是Instance2的primary root bridge,priority:4096
//S2交换机是实例1的次根桥,优先级数值是 8192
//S2交换机是实例2的次根桥,优先级数值是 4096
3. 配置脚本
S1
enable
configure terminal
hostname S1
no ip domain-lookup
vlan 2
vlan 3
vlan 4
exit
interface range fastethernet 0/13 , fastEthernet 0/15
switchport trunk encapsulation dot1q
switchport trunk native vlan 99
switchport mode trunk
switchport nonegotiate
exit
spanning-tree mode mst
spanning-tree mst configuration
name cisco
revision 1
instance 1 vlan 1-2
instance 2 vlan 3-4
exit
spanning-tree mst 0 priority 4096
spanning-tree mst 1 priority 4096
spanning-tree mst 2 priority 8192
write
copy running-config startup-config
S2
enable
configure terminal
hostname S2
no ip domain-lookup
vlan 2
vlan 3
vlan 4
exit
interface GigabitEthernet1 1/0/13
switchport mode trunk
switchport trunk allowed vlan all
switchport trunk native vlan 99
switchport nonegotiate
interface GigabitEthernet 1/0/15
switchport mode trunk
switchport trunk native vlan 99
switchport nonegotiate
exit
spanning-tree mode mst
spanning-tree mst configuration
name cisco
revision 1
instance 1 vlan 1-2
instance 2 vlan 3-4
exit
spanning-tree mst 1 priority 8192
spanning-tree mst 2 priority 4096
exit
write
copy running-config startup-config
S3
enable
configure terminal
hostname S3
no ip domain-lookup
vlan 2
vlan 3
vlan 4
exit
interface range fastethernet 0/1-2
switchport mode trunk
switchport trunk native vlan 99
switchport nonegotiate
exit
spanning-tree mode mst
spanning-tree mst configuration
name cisco
revision 1
instance 1 vlan 1-2
instance 2 vlan 3-4
exit
write
copy running-config startup-config
六:STP&RSTP&MSTP的关系
1.STP/RSTP的局限性
- STP/RSTP的特点:所有VLAN共享一颗生成树,简单来说,STP/RSTP是单生成树协议。
- STP/RSTP的局限性:无法实现不同VLAN在多条Trunk链路上的负载分担,这样会导致线路资源浪费。
2.STP&RSTP&MSTP的对比
- STP,解决二层环路问题。
- RSTP,STP不够快,因此出现RSTP,R就是rapid的缩写。
- MSTP,STP和RSTP是单生成树协议,只有一个生成树,因此只能针对环路中的所有VLAN,这就导致了MSTP的出现,MSTP由于有多颗生成树,因此可以将不同的VLAN划分到不同的树中,从而实现多VLAN下的RSTP。
- STP->RSTP->MSTP体现了技术不断迭代的过程,而技术迭代的动力是实际应用中的需求!要由STP->MSTP的变迁思考和理解业务需求的变更对技术发展的促进!
- MSTP具有RSTP的快速收敛,同时又具有负载分担机制(不是负载均衡!!!),负载(流量)是被分担了,但负载(流量)没法均衡!
- STP&RSTP由于局域网内所有的VLAN都共享一颗生成树,VLAN间数据流量的负载分担就没有办法实现了,当链路被阻塞的时候就不在承载任何数据流量了,造成了物理链路带宽的浪费,同时由于接口VLAN的划分情况的差异,还有可能造成部分VLAN报文无法转发的问题,基于这个问题,就出现了MSTP。
- MSTP兼容STP和RSTP。
- 现实工程中如果需要配置生成树协议,都配的是MSTP(因为会有很多VLAN,每条线路都需要有流量,不能出现0流量的浪费情况),而且基本都是单区域的MSTP。
七:交换机堆叠概述
- Cisco StackWise技术可以为统一地利用一组交换机的功能提供一种创新的方法。单个交换机可以智能化地结合到一起创建一个单一的交换单元,这种技术称为堆叠。
- 可堆叠配置的交换机可以使用专用电缆进行互连,电缆可在交换机之间提供大带宽的吞吐能力,而堆叠的交换机可以作为一台更大的交换机有效地运行。例如,Cisco Catalyst 3750系列使用StackWise技术,采用背板堆叠的方式提供了一个32 Gbps 的堆叠互连;Cisco新型号的交换机3650可以提供160 Gbps的堆叠互连,连接多达9台交换机。交换机堆叠连接如图14-9所示,图中以菊花链方式连接交换机的堆叠电缆将一台交换机堆叠到另一台交换机上。交换机堆叠后从逻辑上来说,它们属于同一台设备。如果想对这几台交换机进行设置,只要连接到任何一台设备上,就可看到堆叠中的其他交换机。
- 交换机堆叠时最好能够使用相同型号的硬件设备和相同版本的IOS。如果硬件型号不同,则务必保证交换机上的IOS中使用的堆叠协议的主版本号是相同的。如果使用的堆叠协议的主版本号相同,但小数点后的版本号不同,仍然可以堆叠,不过可能会导致部分功能不兼容。