Stp:
根桥选举:
有一个桥id 桥id有桥优先级16位65535默认32768和48位mac构成 越小越好 先比较优先级 再比较mac开始都认为自己是根桥 端口短时指定端口 后来比较就知道了
根端口选举:
计算路径开销RPC(出口带宽等因素)小的就是离根桥近那个端口 相同就选接受报文端口小的PID(0-240长度为16默认128还有端口号)
指定端口选举:
每一个网段都有一个指定端口 根桥的端口都是指定端口 非根桥选指定端口先比较路径开销 小的好 相同就比较所在端口的桥id 小的好 如果桥id相同就比较 端口id 小的好
简述:先看路径开销 开销相同在看桥id 桥id相同在看端口id
Stp的5种状态;
Disabled:禁用状态 bpdu和用户流量都不转发
Blocking:阻塞状态 接受并处理bpdu不转发bpdu和用户流量
Listening:侦听状态 可以转发bpdu不能转发用户流量
Learning:学习状态 可以收到用户流量构建mac表 但不转发流量 为了防止临时环路
Forwarding:转发状态 bpdu和用户流量都可以转发 只有跟端口和指定端口可以
Stp拓扑变化处理流程:
发现拓扑变化后会不间断的向上层设备发送TCN BPDU报文 当上层确定收到后会把bpdu的flags的TCA标为1叫下游交换机不要发了 然后再向根桥发TCN告诉拓扑变了 根桥收到后把flags的TC标为1通知修改mac老化时间为forwarding delay 默认15s 15s后mac回清除
所以整个改变过程理论需要 2倍的forwarding delay+ 1倍的maxage时间
stp的配置:
Stp enable
Stp mode ?
Stp priority ?
Stp pathcost-standard ? .....
Rstp 三种状态
Discarding 不转发流量 不学习mac
Learning 不转发流量 学习mac
Forwarding 转发流量 学习mac
边缘端口看情况设置 端口保护只能在指定端口上 攻击来了后变listening 后来恢复正常
命令 stp edged-port ? Stp bpdu-protection
为了防止出现故障后 根端口变成指定端口后形成环路 接口下可以启用环路保护 stp loop-protection
BPDU 报文格式
DMAC | SMAC | LENGTH | DATA | FCS |
初始DMAC为
01-80-c2-00-00-00 |
RSTP的链路拓扑发生改变后是通过proposal-agreement协商机制来通知的而stp是通过TCN TCA TCC 来协商的拓扑改变的。不过proposal-agreement要求链路为点到点 一面产生环路
RSTP 的基本类型配置如stp 点到点的链路配置 接口模式下stp point-to-point force-true
Mstp
基于vlan的生成树实例
Fd+hello<maxage