如果链路断开或节点故障,那么互联的设备就无法正常通信了,这类网络问题叫做单点故障。没有备份的链路或节点,出现故障会直接断网。如果要提供 7×24 小时不间断的服务,那就需要在网络中提前部署冗余。避免出现单点故障,合理的做法是在网络中的关键设备和关键链路添加冗余。所以为了提高网络可靠性,交换网络中通常会使用冗余链路。然而,冗余链路会给交换网络带来环路风险,并导致广播风暴以及MAC地址表振荡等问题,进而会影响到用户的通信质量。生成树协议STP(Spanning Tree Protocol)可以在提高可靠性的同时又能避免环路带来的各种问题。
从不同的端口收到相同的数据帧,导致 MAC 地址表项发生变化的现象,就叫做 MAC 地址漂移,这种现象说明网络中可能存在环路。
广播帧不停泛洪的现象,叫做广播风暴。
冗余链路带来的风险。重复帧、MAC 地址漂移和广播风暴,都是由一个广播帧引起的,可是网络中不可避免出现广播帧,也不能因为二层环路问题而忽略冗余链路增加网络可靠性的好处。
a)Stp通过阻塞端口来消除环路,并能够实现链路备份目的
b)消除了广播风暴
c)物理链路冗余,网络变成了层次化结构的网络
选举一个根桥 每个非根交换机选举一个根端口 每个网段选举一个指定端口 阻塞非根,非指定端口
桥id 越小,优先级越高
根桥:生成树里面的‘老大’,桥id最小 备份根桥:生成树里面的“二把手”,老大挂了的时候,我当老大,桥ID第二小。 非根交换机:干活的小弟,都有一个根端口 根端口:离根桥最近的端口 指定端口:根桥所有参与生成树选举的端口,都一定是指定端口 非根非指定端口:被阻塞的端口---备用链路的端口 路径开销:是端口Cost值,可以用来选择最优的路径,值越小越优。根路径开销是端口到达根桥的过程中累计的路径开销。 BID:桥ID:是由桥优先级和桥MAC地址构成,桥优先级为高16位,MAC地址是低48位。 PID:端口ID:是由端口优先级和端口号构成,端口优先级为高4位,端口号
根桥交换机,备份根桥交换机,非根交换机
根端口,指定端口,非根非指定端口(阻塞端口/预备端口)
第一种根桥选举因素:优先级,MAC地址
第二种端口选举因素:路径开销>桥ID>对端端口ID>本端端口ID
如果我们要改变根桥直连端口的接口属性,要修改 路径开销。
刚启动STP时,每台交换机都认为自己是根桥
根桥所有参与生成树选举的端口,都一定是指定端口
根桥交换机指定端口直连的交换机端口,都一定是指定端口
根桥:在参与生成树选举的网络里面 桥id肯定是最小的
备份根桥:在参与生成树选举的网络里面 桥id肯定是次优的存在
影响根桥选举的因素:
1)优先级(交换机默认优先级是32768)越小越优先,0的优先级最高。 2)优先级一样,看MAC地址表,最小的就是根桥。 3)两种方式:优先级最小、MAC地址最小
非根交换机在选举根端口时分别依据该端口的根路径开销、桥ID、对端PID和本端PID(接了hub的情况才会用到本端PID)
未被选举为根端口或指定端口的为预备口
disable(端口未启用状态或初始状态,端口不处理任何数据端口状态为down)禁用状态。端口即不处理和转发BPDU报文,也不转发用户流量
blocking(阻塞状态,维持20秒)阻察状态。端口仅仅能接受并处理BPDU,不能转发BPDU,也不能转发用户流量。此状态是预备端口的最终状态
listening(监听状态,参与生成树计算,接受并发送BPDU报文维持15秒)侦听状态 端口可以转发BPDU报文,但不能转发用户流量
learning(学习状态,端口不转发用户流量,学习MAC表,参与生成树计算,接受并发送BPDU报文,防止环路维持15秒)学习状态端口可以根据收到的用户流量构建MAC地址表,但不转发用户流量。增加学习状态为了防止临时环路
forwarding(转发状态)转发状态端口即可以转发用户流量也可以转发BPDU报文,只有根端口或指定端口才能进入Forwarding状态
Stp enable 关闭生成树 Display mac-address查看MAC地址表 Stp priority 设置交换机优先级(取值范围0-61440,默认优先级32768) Display STP 查看生成树日志 Display stp brief查看接口是什么端口 stp cost cost命令取决于路径开销计算方法: 使用华为的私有计算方法时,cost取值范围是1~200000。 使用IEEE 802.1d标准方法时,cost取值范围是1~65535。 使用IEEE 802.1t标准方法时,cost取值范围是1~200000000。 stp pathcost-standard { dot1d-1998 | dot1t | legacy }命令用来配置指定交换机上路径开销值的标准。 stp mode { mstp | stp | rstp }命令用来配置交换机的生成树协议模式 修改生成树优先级: Stp pri +优先级数(0-61440)必须是4096的倍数 32768 交换机默认优先级 *2得到B类地址总数 65536 B类地址总数 /2 得到交换机默认优先级
注意:想要一个交换机一定为根桥,修改优先级,优先级可以为0。 在后面加入新设备时,要使原根桥不变可以增大加入的新设备的优先级。 交换机默认情况下直连的路径开销最小,但人工修改后则修改的可以为最小。