传统网络根基之Spanning-Tree

当我们每次去公司办公,在访问重要的应用、工具或者上网时,都会使用到的一张网络,统称为园区网。通常,大家会使用固定终端、移动终端设备,通过园区网收发邮件、远程控制操作等。在园区网的场景下,如同物理层以太网通信、冗余网关协议、静态路由、动态路由、DHCP等基础网络协议的正常运转,得以让我们的本地办公、远程交付顺利开展。

在过去10多年中,随着业务数据量并发、响应延迟要求提高,除了园区网技术的稳固,对数据中心网络技术的实现越发渴望。尤其最近很长一段时间的技术应用、学习中,我们谈及了许多诸如“双活”、“SDN”、“Vxlan”、“MPLS-VPN”、“BGP EVPN”等等讨论非常火热、应用较为广泛的网络词语。但随着网络发展、建设需求演进、砥砺前行的同时,我们也不难发现,不论网络技术使用多么先进,它一定是在传统网络根基之上逐级嵌套、演变而来。所以,回归到网络最底层、最基础的“二层”核心技术之一“生成树”还能掌握多少呢。

PART-01

什么是生成树(Spanning-Tree)

所有园区网、数据中心底层网络,交换机的转发算法会在接收帧所在端口的VLAN中将未知数据帧和广播帧泛洪至同VLAN内所有端口。这就会导致一个潜在的问题。如果运行这一算法的网络设备连接成了一个物理环路,泛洪的数据帧将会沿着环路永远地在交换机之间传递。一旦物理上连接成了环路,环路中的数据帧将会以指数形式成倍增加,继而造成网络瘫痪。

当然,从另外一个角度来看,网络中的环路形态也有好处,那就是可以提供链路的冗余性。如果某条链路故障,流量仍可使用其余路径到达目的地。为充分发挥冗余性的优势同时解决物理环路导致的异常发生,此时,生成树这项技术则被网络开拓者们创造而生。

生成树即总结为,在局域网生产运行时,通过这种技术,来实现一个无环的二层广播域。

PART-02

Spanning-Tree技术历史及相关介绍

生成树的设计、开发以及推广是由被人尊称为“互联网之母”的美国网络设计师拉迪亚·珀尔曼。

除数据链路层的重要设计开发,在网络层“SFP”路由算法也做出了杰出贡献,并在TRILL技术开发上做出了重大突破。TRILL也被称为如今数据中心网络应用最为广泛的Vxlan技术前身。

这里大家可以拓展一下,在职场里,一路所学、赖以生存的各类IT信息技术创造者是谁呢?它的发展历史又是如何呢?

STP

传统网络根基之Spanning-Tree

STP(Spanning Tree Protocol)由IEEE制定的802.1D标准定义,用于在局域网中消除数据链路层物理环路的协议。运行该协议的设备通过彼此交互信息发现网络中的环路,抑制广播风暴,并有选择的对某些端口进行阻塞,最终将环路网络结构修剪成无环路的树型网络结构,从而防止报文在环路网络中不断增生和无限循环,避免设备由于重复接收相同的报文造成的报文处理能力下降的问题发生。

STP包含了两个含义,狭义的STP是指IEEE 802.1D中定义的STP协议,广义的STP是指包括IEEE 802.1D定义的STP协议以及各种在它的基础上经过改进的生成树协议。

STP 的出现即实现了数据链路层防环,也同时实现了最基本的链路冗余特性。

标准生成树分为Blocking(阻塞状态)、Listening(侦听状态)、Learning(学习状态)、Forwarding(转发状态)、Disabled(禁用状态)。

RSTP

RSTP由IEEE制定的802.1w标准定义,它在STP基础上进行了改进,实现了网络拓扑的快速收敛。其“快速”体现在,当一个端口被选为根端口和指定端口后,其进入转发状态的延时将大大缩短,从而缩短了网络最终达到拓扑稳定所需要的时间。

PVST

STP和RSTP在局域网内的所有网桥都共享一棵生成树,不能按VLAN阻塞冗余链路,所有VLAN的报文都沿着一棵生成树进行转发。而PVST则可以在每个VLAN内都拥有一棵生成树,能够有效地提高链路带宽的利用率。PVST可以简单理解为在每个VLAN上运行一个RSTP协议,不同VLAN之间的生成树完全独立。

MSTP

MSTP由IEEE制定的802.1s标准定义,相比于STP、RSTP和PVST,MSTP的优点如下:

MSTP把一个交换网络划分成多个域,每个域内形成多棵生成树,生成树之间彼此独立。生成树间独立计算,实现快速收敛。通过设置VLAN与生成树的对应关系表(即VLAN映射表),将VLAN与生成树联系起来。并通过“实例”的概念,将多个VLAN捆绑到一个实例中,从而达到了节省通信开销和降低资源占用率的目的。

MSTP将环路网络修剪成为一个无环的树型网络,避免报文在环路网络中的增生和无限循环,同时还提供了数据转发的多个冗余路径,不同VLAN的流量沿各自的路径转发,实现VLAN数据的负载分担。

PART-03

生成树技术展示

Spanning-Tree建立

下图这是一个经典STP组网结构,使用三台交换机设备通过线缆实现两两互连,物理上看似一个环路的场景。如果在未使用STP技术场景时,将必然早成这个局域网内的广播风暴,最终造成网络瘫痪。

传统网络根基之Spanning-Tree

我们选举SW1进行查看,缺省状态下,局域网内所有交换机生成树优先级Priority值一致,通过比较mac-address值(越小越优先),此时可以看到,SW1是这个广播域内的根桥设备,根桥上所有转发端口的生成数角色Role为Desg(指定端口),并且此时本台设备运行了RSTP快速生成树协议。

传统网络根基之Spanning-Tree

我们先不通过命令行观察SW2和SW3的生成树状态,通过理论知识分析,这两台交换机一定是非根桥,并且连接根桥的端口是处于转发状态的根端口,接口角色为Root。由于SW2的桥ID地址小于SW3的桥ID地址,所以SW2上所有端口均为转发接口。如下所示。

传统网络根基之Spanning-Tree

为防止环路产生,依据生成树机制,SW3设备将是优先级最低的设备,并且SW3除连接根桥端口为Root接口为转发状态,那么目前只剩下一个连接SW2的接口,这个接口必然会被生成树机制阻塞,从而避免环路发生。查看一下SW3状态:

传统网络根基之Spanning-Tree

由于是模拟器场景,为了保护本地电脑的CPU不会因广播风暴而损坏,暂无法关闭生成树协议,但是设想一下,如果在更加庞大的网络规模场景下,如果因某种原因产生了环路,数据帧在无限复制、转发处理中,设备CPU将很快被冲高,轻则设备因过载保护自动重启,重则设备硬件将损坏。

下面,我们继续演示RSTP生成树建立状态,将交换机所有端口关闭,再开启,此时观察生成树每个阶段接口状态的变化。

传统网络根基之Spanning-Tree

交换机端口在RSTP协议启动运行时经历了Blocking→Learning→Forwarding三个状态,这正好对应了快速生成树的建立过程中的三个阶段状态。

根桥的调整

为了防止网络中的环路,生成树技术中使用了一个参数点:根桥。根桥是生成树拓扑中的逻辑中心。网络中任何为止去往根桥的所有路径可以按需处于生成树转发(ForWarding)或阻塞(Blocking)模式。根桥通过选举得出,每台交换机拥有唯一的BID,包含具体字段参数如下:

·桥优先级(值范围0-65535,默认为32768,步长为4096)

·MAC地址

拥有最低BID的交换机将被选定成根桥,如果过网络中的所有交换机的桥优先级相同,那么将选择带有最小MAC地址的交换机作为根桥。演示如下:

依然是这个经典的生成树拓扑,每台交换机的优先级值缺省均为32768,此时比较MAC地址,SW1的mac-address为aabb.cc00.0100,SW2为aabb.cc00.0200,SW3为aabb.cc00.0300,从而在SW1的生成树信息展示中,我们可以看到在ROOT ID信息列显示出“This bridge is the root”。

传统网络根基之Spanning-Tree

此时,调整降低SW2的Priority参数值,查看生成树状态。发现SW2已经变成了VLAN 1 这棵树的根桥设备。

传统网络根基之Spanning-Tree

查看SW1的生成树状态,此时,已经将根桥角色指向了SW2。

传统网络根基之Spanning-Tree

根端口的调整

依据生成树原理,已知根桥上所有端口均为指定端口,并处于转发状态。非根桥连接根桥的端口为根端口(Root),非根桥连接相邻设备的端口为指定端口或阻塞端口。如图所示。

传统网络根基之Spanning-Tree

此时由于某种场景使用需求,我们将SW3的端口角色进行调整。通过修改接口生成树cost值,将原本阻塞端口调整为根端口并转发数据帧,原有根端口置为阻塞状态。

传统网络根基之Spanning-Tree

生成树防护技术说明

BPDU guard(BPDU保护):在服务器接入场景下,不论是单服务器接入方式,还是服务器虚拟化场景接入,若仅涉及一个VLAN接入时,通常我们会配置为access模式,同时在交换机的接口配置portfast或edged,从而绕过监听和学习状态直接进入转发。但是开启了portfast接口依然可以监听到BPDU帧,此时需要通过配置BPDU guard来保护portfast端口的完整性。意为,如果同时配置portfast和BPDU guard的端口收到了任何BPDU帧,端口将会进入err-disable阻塞状态。

BPDU Filter:交换机会在自身所有端口发送BPDU。在一些特殊情况下,可能需要阻止向其它网络隔离域发送。这时就要用到了BPDU过滤特性。配置了BPDU Filter后,接口或交换机全局将忽略所有接收的BPDU以及不发送任何BPDU。

Root Guard(根保护):在网络发生异常时,Root Guard特性有助于避免网络中产生二层环路。该项技术可以防止周围的交换机自动选举为根交换机。下图是未使用根保护特性的网络。

传统网络根基之Spanning-Tree

若此时在中间节点交换机的下行端口配置了根保护后,当收到了更优的BPDU时候,就会阻塞连接的端口,使端口过渡到一种特殊的STP状态—“不一致根”root-inconsistent,这种状态与Lestening状态类似。处于该状态的端口不会转发任何流量。

其它技术说明

生成树中还会包含LoopGuard(环路保护)、单向链路检测、UplinkFast、BackboneFast等均在不同场景使用中为二层网络的稳定、高效运行保驾护航,在此就不逐一分析。有兴许大家可以观看各大主流网络厂商针对该类技术的使用说明。

PART-04

总结

至此,我们简单的聊了聊传统网络的根基技术-生成树,除此之外,如vrrp、hsrp、dhcp、rip、ospf、eigrp、bgp等等同样为underlay网络的常用协议。由于时间和篇幅的原因

文章作者:张旗

封面设计:Lina

原创文章,作者:EBCloud,如若转载,请注明出处:https://www.sudun.com/ask/33238.html

(0)
EBCloud's avatarEBCloud
上一篇 2024年4月2日 下午3:28
下一篇 2024年4月2日 下午3:28

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注