写在开头 以下STP内容均是笔者自己的经验记录,难免会有疏漏与错误。仅供参考,当然,日后经验丰富后我也会过来修正不足。
什么是STP? STP是一种由交换机运行的,用来解决交换机网络中环路问题的数据链路层协议。
为什么会有环路? 我的理解是,在二层网络中,某个交换机上面有多条路径可以到达根桥(暂且理解为需要转发的目的地址),这时候就会发生我们不希望看到的现象。
1:地址翻摆
我们都知道二层交换机里面的MAC地址表记录的是,进入某个端口的源MAC地址和端口的映射,按需来进行,泛洪、转发、丢弃的二层操作。
那么,当某个交换机有环路时,假如发送的是广播帧,那么源MAC至少有两条或者以上路径转发,(假设分别是port1和porT2)假设这台电脑是PC1,MAC是MAC1,
那么有一条路径的里面的MAC表里的记录是MAC1-port1,紧接着另一条从port2进入,那么MAC地址表又会被刷新为:MAC1-port2
多条路径,顺时针和逆时针不停的转发,MAC地址表不断翻摆震荡,地址翻摆会大量消耗交换机处理资源,导致交换机瘫痪。
2:广播风暴
PC1的帧由于顺时针逆时针高速旋转,局域网的每台交换机不停的收到PC1帧的拷贝,不停的泛洪,就产生了广播风暴。计算机收到广播帧后,都会送给网络层处理,大量广播帧袭来,导致计算机瘫痪
3:多帧复制
由于多转发路径的存在,且数据帧按MAC地址表,可能会出现多点转发,即源地址发出的数据帧可能会被多个交换机转发导致目的计算机收到了多个PC1帧,这样被称为多帧复制。
环路的优点和缺点 环路的存在,会导致上述三个问题,地址翻摆,广播风暴,多帧复制,这些问题对交换机或者网络资源来说都是致命的。但是,环路却能提高网络的连接可靠性。
因为又环路的存在,即使两台交换机之间的链路因为故障断掉了,整个网络会依然保持连通性,这是无环网络无法做到的。
生成树里面的一些专业术语 桥:早期交换机性能原因,可能只有两个转发端口,那时的交换机被称为“网桥”,现在这个术语一直沿用至今。
桥MAC:一个交换机(桥)有多个转发端口,通常吧编号最小的那个端口MAC作为整个交换机的MAC。
桥ID(BID):2字节优先级+6字节(交换机MAC地址),可以人为设定值,默认32768.
端口ID(PID):不同厂商定义不同,组成结构是:端口优先级+端口编号。
局域网可以不需要生成树吗? 当然需要,很多人说,我们公司的网络架构本身就是无环的网络架构,根本不用担心什么环路问题。
其实不然,任意简单的一个小交换机环路会导致你整个局域网震荡,这是企业中绝对不允许出现的,也许别人无心插环,但是会给网络管理者带来大量不便。所以,我们从合规和安全来说,很有必要进行生成树的配置。
生成树的工作过程 我们首先要知道的是,为什么要有生成树,最终结果是什么样?
粗略来进,交换机的二层接口,通过发送BPDU(网桥协议数据单元)报文,根据优先级等,最后计算出一颗无环的网络生成树
,并阻塞了一些端口进行备用。当有故障链路时,另一条链路可以快速进入转发状态,增强网络稳定性。
工作过程 1:选举根桥
2:选举根端口
3:选举指定端口
4:阻塞剩余端口
注:选举时,其实都是不同交换机的不同端口或者同一交换机的不同端口的竞选,会通过一些人为干预,或者自然选举,从而完美的产生空闲端口,即进选剩下的端口,生成树协议则会吧这些剩下的端口系统的阻塞,从而形成无环的网络。
常会用的一种保证网络稳定性的命令
【浅谈STP中的那些事儿】