一、生成树技术背景
交换机单线路上联,存在单点故障,上行线路及设备都不具备冗余性,一旦链路或上行设备发生故障,业务将会中断。为了使得网络更加健壮、更具有冗余性,将拓扑修改为如下图所示。接入层交换机采用双链路上联到两台汇聚设备,构成一个物理链路冗余的二层环境,解决了单链路及单设备故障问题。
但是这样也带来了一个大问题,就是二层物理环境存在环路。
二层环路的危害是严重的,有可能会导致广播风暴、多帧复制、MAC地址漂移等等多种问题。即使不是人为搭建冗余的物理环境而导致的环路,网络也有可能因为种种原因出现二层环路引发的故障,那么有没有什么办法解决环路的问题呢?生成树(Spanning-tree)协议就是用于解决这个问题的。
二、环路带来的问题 – 广播风暴
•网络中如若存在二层环路,一旦出现广播数据帧,这些数据帧帧将被交换机不断进行泛洪,从而在网络中造成广播风暴。
•广播风暴对网络的危害是非常大的,将严重消耗设备资源及网络带宽,最终导致网络瘫痪,是需要格外注意的问题。
1.PC发送数据帧给Server;
2.SW3的MAC地址表中没有匹配目的MAC的表项,于是将数据帧进行泛洪;
3.SW1及SW2都会收到这个数据帧并学习源MAC,同时将数据帧进一步泛洪;SW1及SW2又从自己另一个接口收到这个数据帧,于是MAC表又一次发生改变,如此往复。
三、Spanning-tree的基本概念
官方:
STP(Spanning Tree Protocol,生成树协议)就是把一个环形的结构改变成一个树形的结构。STP协议就是用来将物理上存在环路的网络,通过一种算法,在逻辑上阻塞一些端口,来生成一个逻辑上的树形结构。当线路发生故障时,被阻塞的线路就重新激活,使数据从这条线路正常传输。
理解:
通过在交换网络中部署生成树(Spanning-tree)技术,能够防止网络中出现二层环路。STP运行后,如果网络中存在环路,那么STP通过阻塞(Block)特定的接口从而打破环路,并且在网络出现拓扑变更时及时收敛,以保证网络的冗余性。
四、Spanning-tree的基本概念(当网络出现故障)
当拓扑发生变更的时候,生成树协议能够探测到这些变化,并且及时自动的调整接口状态,从而适应网络拓扑的变化,实现链路冗余。
五、生成树协议
1、 stp选举规则:
(1)每个交换网络选举一个根桥(Root Bridge);
(2)每个非根桥上选举一个根端口(Root Port);
(3)每个段选举一个指定端口(Designated Port);
(4)阻塞非指定端口(NonDesignated Port)。
2、 BPDU报文:
•STP的正常工作依赖于BPDU报文的泛洪(Bridge Protocol Data Unit,网桥协议数据单元) 。
STP需要网络设备相互交换消息来检测桥接环路,该消息称为网桥协议数据单元BPDU。STP之所以能够良好的工作并构建一个无环的网络,是依赖于BPDU报文的泛洪,并根据报文中相关字段计算的结果。要理解STP的工作过程,非常重要的一点是要理解BPDU中各字段的含义,因为这些都是STP赖以工作的根本。
3、 配置BPDU中的重要参数
字段 | 描述 |
---|---|
Root Identifier (根 ID) | 发送此配置BPDU的交换机所认为的根交换机的交换机标志 |
Root Path Cost (到根的路径开销) | 从发送此配置BPDU的交换机到达根交换机的最短路径总开销,含交换机根端口的开销,不含发送此配置BPDU的端口的开销 |
Bridge Identifier (桥 ID) | 发送此配置BPDU的交换机的STP交换机标识 |
Port Identifier (端口 ID) | 发送此配置BPDU的交换机端口的STP端口标识 |
比较次序:Root Identifier > Root Path Cost> Bridge Identifier>Port Identifier
值越小越优先
4、 Bridge ID
•桥ID(Bridge ID)是交换机的STP标示符,一共8个字节,由2个字节的优先级和6个字节的MAC地址构成:
•桥优先级缺省为32768,可以手工修改。
•MAC地址为交换机的背板MAC。
•网络中Bridge ID最小的交换机将成为根桥。
5、 Path Cost
•路径开销是一个端口量,是STP/RSTP协议用于选择链路的参考值。
•端口路径开销的默认值及取值范围由选定的路径开销算法决定,路径开销与端口的带宽成反比。
•华为网络设备支持的路径开销计算标准:802.1d-1998、802.1t、legacy等。
6、 Port ID
•端口ID (2字节)= 端口优先级(1字节)+ 端口编号(1字节)
•缺省优先级128,范围0-255,越小越优。
BPDU 桥协议数据单元
BPDU包含桥ID、路径开销、端口ID、计时器等参数。
根桥选举;根据桥 ID去选举 桥ID (BID)是由优先级加上mac地址组成的,桥id越小越优先成为根桥设备。
非根交换机在选举根端口时分别依据该端口的根路径开销(RPC root path cost)、对端BID、对端PID和本端PID。
PID ===端口 ID
非根交换机在选举指定端口时分别依据根路径开销、BID、PID。
未被选举为根端口或指定端口的端口为预备端口,将会被阻塞。
STP 端口状态
1.disable ------不转发数据----不学习mac地址
2.blocking ------不转发数据----不学习mac地址
3.listening 侦听状态----15s ------不转发数据----不学习mac地址
4.learning 学习—学习mac地址—15s------不转发数据----学习mac地址
5.forwarding 转发----转发数据帧 ------转发数据----学习mac地址
根桥故障
非根桥会在BPDU老化之后开始根桥的重新选举。50秒时间恢复正常