马太效应:强者愈强,弱者愈弱。
bpdu 每2s刷新一下mac地址表的老化计时器;
BPDU的四个关键参数:RID RPC BID PID
实现防环和链路的冗余备份
1、工作原理:
通过生成树协议的算法在逻辑上阻塞冗余链路的接口,将一个有环路的桥接网络修剪成一个无环路的树形拓扑结构。实现数据帧在某一时刻从一个源出发,到达网络中任何一个目标的路径只有一条,而其他的路径都处于非激活状态(不能进行业务数据的转发 ),当网络 中的链路(含有冗余备份的链路)出现故障时,运行生成树协议的交换机会自动激活之前逻辑阻塞的冗余链路接口,恢复曾经断开的链路,确保网络的连通性实现正常环境下的冗余和防环。
2、生成树类型:
(1)STP----802.1D----1998----IEEE()美国电气和电子工程师协会)制定的公有版(所有vlan对应唯一的生成树实例)
802.1D----2004
开销
端口角色----RP----根端口;
DP----指定接口;
NDP----非指定端口
端口状态
PVST/PVST±—cisco私有协议,是802.1D的改进版本(生成树工作特性----每个vlan一个实例),每个vlan都有一个生成树实例PVST+兼容标准的802.1D。
VBST华为私有协议,每个vlan运行一个生成树协议(对设备的资源消耗巨大,高端SW会支持此协议)
(2)RSTP----802.1W----RSTP快速生成树协议
R-PVST+ cisco私有,对RSTP兼容(PVST+的增强)
(3)802.1S----MSTP,大型园区网通用协议,也是不同厂商设备直接对接常用的生成树实例之一。
环路现象,交换机灯快速齐闪;
SW判断环路的依据:从指定端口收到BPDU,就认为存在环路,会立刻阻塞接口。
1、通过生成树协议,在逻辑上将特定端口进行block(阻塞)、(有别于shutdown,所有的接口无法自行完成no shutdown。shutdown具有更大的权限),实现在当正在运行链路故障,这条block链路就会自动启用,这样实现了链路冗余而又防止环路。当拓扑发生变更的时候,生成树协议能探测到这些变化并及时自动调整接口状态,从而适应网络的拓扑变化,实现链路的冗余。当现行环境不存在环路时依然要运行环STP生成树协-------管理员的误操作,或者其他设备(存储–聚合口对交换机非聚合的2条链路)的接入都会导致环路出现。
2、什么是单点故障,当拓扑上呈现出单链路状态时,如果这条链路故障则导致整个网络或部分网络出现中断,这就是单点故障。 尤其是在汇聚层出现单点故障会导致下行接入层中断。
1、修改此环境中所有SW的生成树模式为标准STP----801.1D
[LSW-1]stp mode stp // 配置生成树协议类型为stp
2、指定SW-1为此交换网根桥,SW-3桥优先级为4096
指定生成树协议类型(STP/RSTP/MSTP)
[LSW-1]stp root primary //指定交换机成为根桥
stp root secondary //修改本SW的桥优先级仅次于root(比RooT大4096),为全网第二优。
[LSW-3]stp priority 4096 //修改本SW的优先级为4096(默认36728,修改范围0-61440,修改参数为4096的倍数)
其他设备类似
3、观察与描述,端口角色
RP-root port:非根桥去往根桥开销最小的接口,接收BPDU,转发数据,学习MAC
DP-desg port:链路上去往根桥开销最小的接口,发送BPDU,转发数据,学习MAC
AP-alth port:非根桥去往根桥开销次优的接口,接收BPDU,不转发数据,不学习MAC,RP的备份接口
BP-back port:链路上同DP处于一端的次优接口,接收BPDU,不转发数据,不学习MAC,BP的备份接口
根桥-root bridge
根端口-RP:root port
指定端口-DP:Designated port
非指定端口-N-DP:Non-designated port
替代端口-AP:Alternate Port(RSTP MSTP所特有)
备份端口-BP:Backup Port(RSTP MSTP所特有)
(1)root----根桥----每个域选举一个root根;root根是最中心节点类似BOSS。
(2)RP----根端口----每台非根桥选举一个根端口;去往root–根桥路径开销最小的接口,也是接收root-根BPDU的接口。
(3)DP----指定端口-----交换机之间每条链路到root-根路径开销最短的接口同时转发root-根发来的BPDU。
(4)NDP----非指定端口----被阻塞防止环路产生,起到冗余备份的接口。
端口角色为DESI为指定端口,
若是写ROOT则是根端口,
ALTE(Alternate替代端口)
BACK
[LSW-2]display stp brief //查看当前处于up状态的生成树的接口状态,接口角色,生成树特性信息
4、标识出此环境中所有的接口角色
5、请分析和指出SW-4的RP–根端口是哪个接口,如何选举出来的?
(1)比较桥ID,桥ID由2字节优先级和6字节MAC地址组成;
(2)先比较桥ID中的优先级,具有最小优先级的,此交换机定为根桥;
(3)如果优先级一样,再比较桥ID中的MAC地址,MAC地址最小的确定为根桥。
RP–根端口是G0/0/4接口
根桥选举:
桥ID:桥优先级(32768)+MAC
优先级:桥ID越小越优
先比较优先级,再比较MAC(优先级一样的话,就比较MAC,MAC地址最小的确定为根桥。)
默认优先级都是32768,g0/0/4的mac比较小。
接收根桥方向的BPDU,选取一个离根桥最近的接口来接收BPDU
6、请分析SW-4连接SW-5链路的接口角色并分析这些接口角色如何选举出的,
通过调整接口优先级,使得SW-4与SW-5连接线路被阻塞的接口变为转发状态,之前处于转发的接口变为阻塞状态
① 比较开销,取开销最小的Root Path Cost=RPC
② 比较桥ID(比较BPDU发送者PID)
③ 比较对端设备PID
④ 比较本端设备的PID
[SW-4]int g0/0/3
[SW-4-GigabitEthernet0/0/3]stp port priority 144
dis stp brief
dis stp brief
G0/0/2由转发状态变为阻塞状态,阻塞状态变为转发状态
G0/0/3由转发状态变为阻塞状态
1、基于以上接口状态特性,总结出RP,DP,AP,BP这些接口角色的最终接口状态
RP:Forwarding
DP:Forwarding
AP:Discarding
BP:Discarding
2、全网端口角色选举完成后,准备好计时器,断开SW-1与Hub连接的线路后开始计时,查看SW-3需要多长时间才会将AP接口启用为RP
50S
STP State:Forwarding–>Discarding–>LEARNING–> FORWARDING
G0/0/4 由DP转变为RP
3、完成上述观察后恢复SW-1与Hub的线路连接,刷新好计时器,使用PC-2持续ping PC-1,ping通后断开SW-1与Hub的线路并开始计时,(或者停止hub然后开启)
请结合生成树的工作机制和计时器,预估PC-2与PC-1的通信在多长时间后会恢复?计时器记录的恢复通信时间为多长?
30S
bpdu 每2s刷新一下mac地址表的老化计时器;
4、完成上述实验后恢复SW-1与Hub的线路连接,刷新好计时器,使用PC-1持续ping PC-3,ping通后断开SW-1与SW-2连接的线路并开始计时;请判断这个操作会影响PC-1与PC-3的通信吗? 查看计时器,PC-1与PC-2恢复通信时间多长?并解释出现此现象的原因。
会影响PC-1与PC-3的通信;
恢复通信时间多长:35S;
因为SW-1为此交换网根桥,断开SW-1与SW-2连接的线路之后,接口角色会重新选举
5、选举过程
网络初始化环境下,所有的SW的都BPDU,携带自己桥ID信息,互相交互从而确认当前网络中优先级最好的SW为RooT
选举完成后,只有根桥主动发送BPDU;非根桥转发根桥发送的BPDU。
6、端口选举
PID----接口优先级(128) +接口编号
(1)根瑞口
作用:
① 接收根桥方向的BPDU,选取一个离根桥最近的接口来接收BPDU
② 转发数据(作为级联接口)
选举:
① 比较开销,取开销最小的Root Path Cost=RPC
② 比较桥ID(比较BPDU发送者PID)
③ 比较对端设备PID
④ 比较本端设备的PID
(2)指定端口
作用:
① 发送、转发BPDU
② 转发数据(作为级联链路数据转发,作为接入端口的数据转发)
(3)非指定端口
替代端口----A口
备份端口----B口
作用:
① 被阻塞,接收BPDU
② 作为链路的冗余接口
端口状态
Disable----关闭状态;接口down,不做任何数据处理,包括BPDU的处理
Discarding----丢弃状态:可以收发BPDU,不转发数据,不学习MAC地址
Learning----学习状态:可以收发BPDU,不转发数据,可以学习MAC地址
Forwarding----转发状态:可以收发BPDU,可以转发数据,可以学习MAC地址
5状态(一般说4个状态)
1、Disable
就是物理连接但是处于shutdown状态的时候,不处理任何数据。
2、blocking
不接收也不转发数据帧,只接收但不发送BPDU,不学习MAC地址(20S)。
bloacking直接到Forwarding造成的问题:
(1)因为没有MAC地址,数据多了就会累加,有溢出危险;
(2)为了获得地址进行大规模的泛洪,增加SW负载。
3、Listening
不接收也不转发数据帧,接收且发送BPDU,不学习MAC地址。(15S)
4、Learning
不接收也不转发数据帧,接收并发送BPDU,学习MAC地址-------学习全部的MAC地址(15S)。
5、Forwarding
接收并转发数据帧,接收并且发送BPDU,学习MAC地址。
blocking------->Forwarding的流程
(1)当本SW冗余链路N-DP–非指定接口在20S内没有收到BPDU,就由Blocking就进入Listening。
(2)Listeing–侦听状态持续一个Forward Delay-15S时间接收并发送BPDU,在此期间RP–根端口任未收到BPDU,由Listeing进入到Learning状态。
(3)在Learning–学习状态持续一个Forward Delay-15S时间接受并发送BPDU,开始学习MAC地址,准备数据的发送工作;在此期间RP–根端口任未收到BPDU,15S倒计时结束后此接口会进入Forwarding状态。
(4)Forwarding–转发状态接口进行正常的业务数据转发,并且接收和发送BPDU。
STP802.1d感知到拓扑变更(接口处于Forwarding。接口进入bloacking或者shutdown)
华为 STP当感知到接口处于Forwarding
1、什么情况会发送TCN-BDU?
当网络拓扑出现变更的时候,最先意识到变化的交换机会发送TCN-BPDU。
2、网络拓扑发生变化的判断
(1)SW的接口状态切换为Forwarding或者Blocking,只要接口状态转变为这两个状态就会触发TCN-BPDU。
Forwarding:up这个接口
discarding: down这个接口,切断线路;因为环路进入discarding
(2)SW的接口变为down(等同于触发接口进入Blocking/discarbing状态)
3、流程:
(1)下行SW感知到它下属的SW链路出现故障,网络拓扑发生变化。
(2)下行SW通过根端口向上行SW发送 TCN-BPDU(用来告知网络拓扑发生变化的BPDU)
(3)
①上行SW从它的指定端口收到此TCN-BPDU,并向下行SW回复一个TCN-ACK;
②上行SW同时从它的根端口发送出TCN-BPDU向他的上行SW,依次发送至root;
(4)根桥收到此TCN-BPDU回向它直接给它此报文的SW回复一条TCN-ACK;
(5)同时向全网发送标志位TC的BPDU,置位时间为35S=MAX age+forwarding delay,用来告诉其他SW全网拓扑发生变化了。
(6)当其他SW收到根桥发出的TC置位的BPDU会迅速将CAM表的老化时间调整为15S(默认300S),CAM表一老化,意味者重新对CAM表进行刷新以适应更新新的网络。
为什么要更新CAM表。
当一个根端口下连接一台SW,那就回在此接口下形成众多的MAC对应此接口,一但此接口的这条链路down了,新的链路还未生成,处于(block或者lisen,)这时去往这台故障链路的数据依然会发往我SW,导致数据丢失。迅速老化CAM表能晶亮避免这种问题。但是丢包是无法避免的,尤其是实时高负载的情况下。
(1)30S SW直接感知到根端口或者根桥发生变化
(2)50S SW间接感知到去往根桥或者根桥发生变化
本人所有文章都受版权保护,著作权归艺博东所有!未经授权,转载必究或附上其原创链接。