学习笔记——交换——STP(生成树)简介

一、技术背景

1、生成树技术背景

交换机单线路组网,存在单点故障(上左图),上行线路及设备都不具备冗余性,一旦链路或上行设备发生故障,业务将会中断。

为了使得网络更加健壮、更具有冗余性,将拓扑修改为(上右图)接入层交换机采用双链路,联到两台汇聚设备,构成一个物理链路冗余的二层环境,解决了单链路及单设备故障问题。

但是这样也带来了一个大问题,就是二层物理环境存在环路。

2、二层环路带来的问题

(1)典型问题一:广播风暴

网络中如若存在二层环路,一旦出现广播数据帧,这些数据帧将被交换机不断进行泛洪,从而在网络中造成广播风暴。(上左图)

**广播风暴对网络的危害:**将严重消耗设备资源及网络带宽,最终导致网络瘫痪。

(2)典型问题二:MAC地址漂移

1.PC发送数据帧给Server;

2.SW3的MAC地址表中没有匹配目的MAC的表项,于是将数据帧进行泛洪;

3.SW1及SW2都会收到这个数据帧并学习源MAC,同时将数据帧进一步泛洪;SW1及SW2又从自己另一个接口收到这个数据帧,于是MAC表又一次发生改变,如此往复。

(上右图)以SW1为例,5489-98EE-788A会不断的在GE0/0/1与GE0/0/2接口之间来回切换,这被称为MAC地址漂移 现象。

即使不是人为搭建冗余的物理环境而导致的环路,网络也有可能因为种种原因出现二层环路引发的故障。

交换机环路带来的问题: 广播风暴、mac地址表不稳定、网络卡顿、网络不稳定、过多占用交换机的cpu和内存等等。

3、有没有什么办法解决环路的问题呢?

生成树(Spanning-tree)协议就是用于解决环路这个问题的。

什么是生成树?

1、解决二层环路。

2、防止广播风暴。 广播风暴造成的结果是什么? 造成广播风暴的原因是什么?

广播报文在两个或多个交换机间大量的、重复的、无休止的传递。洪范、冗余链路。

3、防止MAC地址表的不稳定。

4、防止数据帧的重复拷贝。

通过在交换网络中部署生成树(Spanning-tree)技术,能够防止网络中出现二层环路。

STP运行后,如果网络中存在环路,那么STP通过阻塞(Block)特定的接口从而打破环路 ,并且在网络出现拓扑变更时及时收敛,以保证网络的冗余性。(如上边左图所示)

当拓扑发生变更的时候,生成树协议能够探测到这些变化,并且及时自动的调整接口状态,从而适应网络拓扑的变化,实现链路冗余。(如上边右图所示)

4、生成树协议在园区网络中的应用位置

5、二层环路与三层环路

**常见环路主要分为:**二层环路和三层环路。

(1)三层环路 (2)二层环路

常见原因 :路由环路 **常见原因:**网络中部署了二层冗余环境,或人为的误接线缆导致;

防环方法: 防环方法:

1、通过动态路由协议防环。 1、需借助特定的协议或机制实现二层防环;

2、IP报文头部中的TTL字段用于防止报 2、二层帧头中并没有任何信息可用于防止数据帧被无

文被无止尽地转发。 止尽地转发。

二、STP简介

1、STP概述

STP(spanning tree protocol,生成树协议) STP是一个用于局域网中消除数据链路层物理环路的协议,标准名称是 802.1D

运行该协议的设备通过彼此交互信息而发现网络中的环路,对某些接口进行阻塞以消除环路。

STP在网络中运行后会持续监控网络的状态,当网络出现拓扑变更时,STP能够感知并且进行自动响应,从而使得网络状态适应新的拓扑结构,保证网络可靠性。(下左图)

注意: 在华为的交换机上,开机默认自动运行。

2、STP(生成树)作用

STP通过阻塞端口来消除二层交换机环路(交换机与交换机间),并能够实现链路备份的目的。

**消除环路:**通过阻塞冗余链路消除网络中可能存在的网络通信环路。

**链路备份:**当前活动的路径发生故障时,激活冗余备份链路,恢复网络连通性。

**解决方案:**逻辑性阻塞某个接口. 使用STP来逻辑的阻塞某一个接口,使其只接收流量,不发送流量从而防止环路。

3、标准STP的缺陷

(1)收敛时间长

在默认情况下,STP的收敛时间为30s(侦听(Listening)+学习(learning)各15s),在某些场景下,收敛时间更是长达50s(例如根桥故障,不向外发送BPDU,交换机需要先等待20s的老化时间,再加上30s的侦听(Listening)+学习(learning)),在这个时间段内,会导致网络长时间的中断。

(2)拓扑变化时收敛机制不灵活

当企业上下班时间,每个员工将自己的PC进行开关机的操作,现网当中就会出现大量的TCN(拓扑变更) BPDU,影响设备的性能,而PC机器其实不需要参加到生成树计算当中。

BPDU转发时,唯一不变的是根桥的ID。

交换机只有在发送BPDU时,才会算上自己的开销,接受BPDU时,不会算上自己的开销(cost)。

**指定端口(DP):**发送最优的BPDU

**根端口(RP):**收最优的BPDU

**阻塞端口(AP):**既不是指定端口,又不是根端口,则为阻塞端口


整个华为数通学习笔记系列中,本人是以网络视频与网络文章的方式自学的,并按自己理解的方式总结了学习笔记,某些笔记段落中可能有部分文字或图片与网络中有雷同,并非抄袭。完处于学习态度,觉得这段文字更通俗易懂,融入了自己的学习笔记中。如有相关文字涉及到某个人的版权利益,可以直接联系我,我会把相关文字删除。【VX:czlingyun 暗号:CSDN】

相关推荐
时光追逐者19 分钟前
MongoDB从入门到实战之MongoDB快速入门(附带学习路线图)
数据库·学习·mongodb
一弓虽24 分钟前
SpringBoot 学习
java·spring boot·后端·学习
晓数1 小时前
【硬核干货】JetBrains AI Assistant 干货笔记
人工智能·笔记·jetbrains·ai assistant
我的golang之路果然有问题2 小时前
速成GO访问sql,个人笔记
经验分享·笔记·后端·sql·golang·go·database
genggeng不会代码2 小时前
用于协同显著目标检测的小组协作学习 2021 GCoNet(总结)
学习
lwewan2 小时前
26考研——存储系统(3)
c语言·笔记·考研
搞机小能手2 小时前
六个能够白嫖学习资料的网站
笔记·学习·分类
nongcunqq3 小时前
爬虫练习 js 逆向
笔记·爬虫
汐汐咯3 小时前
终端运行java出现???
笔记
The_cute_cat5 小时前
25.4.22学习总结
学习