STP
拓扑:
1、端口角色分析
SW1为根桥、G0/0/21、G0/0/23、G0/0/24为指定端口(DP)
SW2的G0/0/21 为根端口(RP);G0/0/22为指定端口
SW3的G0/0/23为根端口;G0/0/22、G0/0/23为阻塞端口(block)
2、过程分析
SW1为root;sw2stp优先级为4096;其他默认配置;确保SW3的g0/0/22为block状态;SW2的g0/0/22为DP;当SW2的g0/0/21down;默认的sw3的接口会从block状态到forwarding过程
- 当sw2给g0/0/21down时;sw2没有会认为自己是根桥成为“伪根”;并向g0/0/22发送本机bpdu;
//发送本机配置bpdu - sw3g0/0/22收到次级bpdu后会立即发送优级的bpdu参与竞选;g0/0/22改变端口角色成为DP(listening)经过一个forwarding delay 时间 (默认15s)角色变化为DP(learning);再经过一个forwarding delay 时间 (默认15s)角色变化为DP(forwarding)。
- 此时sw2收到优质bpdu后;g0/0/22口会由DP--->RP 同样由discarding---15s---learning---15s---forwarding
此时 stp完成收敛;sw3的g0/0/22接口从block到forwarding一共需要30s(两个forwardding-delay时间);sw2同理。
stp的TCM机制(拓扑变更机制)
1、当下游链路(如sw2下接设备)发生动荡后;下游设备会不间断向根端口发送TCN bpdu
2、上游设备接收到下游设备发来的TCN bpdu后;只有指定端口会接收;当个设备接收到TCN bpdu;该设备会把配置BPDU报文中的Flag的TCA置为为1;发送给下游设备;告知下游设备停止发送TCN bpdu;
3、上游设备复制一份bpdu继续向根桥转发;重复以上动作直至传递至根桥
4、根桥接收到TCN bpdu后会向下游发送TC与TCA置位为1的flag;TC置位为1是为了通告下游设备删除桥mac地址;TCA置位为1是为了让下游设备停止发送TCN bpdu报文。
问题:stp收敛需要30s;有链路震荡就需要30s;这样会导致网络使用不流畅或者不可中断业务中断;
解决办法 RSTP
RSTP
1、端口角色变化
根端口(RP):转发数据;发送bpdu
指定端口(DP):转发数据;接收bpdu
新增端口角色
交替端口(AP):不转发数据;接收bpdu
代替RP的端口称为AP
定义:收到对端最优bpdu的端口
备份端口(BP):不转发数据;接收bpdu
代替DP的端口称为BP
定义:收到本端最优bpdu的端口
边缘端口(EP):转发数据;发送数据
- 边缘端口调过discarding、learning状态;直接转发
- EP端口收到bpdu;会丧失EP的功能,变成正常的stp端口
- EP不受同步的影响
- EP不触发TC
- EP不转发TC
- EP不受TC影响
2、端口状态变化
rstp只有三种端口角色
discarding
learning
forwarding
3、rstp快速切换原理
- 连接终端端口:EP
- 直连RP切换;快速切换;AP和BP
- 非直连链路切换导致本端端口状态切换,依靠PA机制来判断是否快速切换
PA机制
P:proposal 提议
A:agreement 同意
通过主动协商来达到快速转发
P=1 前提条件 端口为DP discarding
A=1 前提条件 端口链路类型为P2P
问题:PA机制快速切换导致临时环路
解决办法:”同步“机制
同步机制是将部分端口变成DP discarding
同步机制触发条件:RP端口发生变化
4、实验论证
拓扑
1、当SW2的g0/0/21发生故障;SW2会认为自己是”伪根“;并从g0/0/22发送次级bpdu;
2、sw3收到次级bpdu;g0/0/22变为DP discarding 发送优级bpdu;此时P=1;A=1
3、SW2g0/0/22收到优级bpdu;g0/0/22成为RP discarding 此时P=0;A=1
4、此时端口角色变化完成;开始forwarding dely时间;因为sw3发送的P=1; SW2的A=1;PA机制协商成功;进行同步机制
5、SW2会将部分端口(DP)都变成 DP discarding;g0/0/22 直接进入转发;EP不受影响;变成DP discarding的端口重新计算;从discarding----15s----learning---15s---forwarding。