STP 生成树协议
工作原理:
在冗余的环境中,首先确定网络中的最优路径和次优路径,通过阻塞次优路径来消除链路中可能出现的环路,并实时监测链路状态;当最优路径出现故障时,通过激活次优路径来使网络恢复连通性。
stp中的各种参数:
PID(协议ID)
PVI(协议版本)
BPDU Type(配置BPDU/TCN -BPDU)
Flags (特殊标识,共8位,可以区分TCA-BPDU、TC-BPDU)
根桥ID(root ID):由根桥的优先级和MAC地址组成,每个STP网络中有且仅有一个根桥
根路径开销(RPC):到根交换机的最短路径开销
指定桥ID(bridge ID):由指定桥的优先级和MAC地址组成(指定桥的优先级可以手工方式修改前4bit值,修改后的数值必须为4096的倍数,以小为优)
扩展系统ID :使用优先级字段中的后12bit,取值范围 0 - 4095
指定端口 ID (port ID):由指定端口的优先级和端口号组成(指定端口的优先级可以手工方式修改,修改后的数值必须为16的倍数,以下为优)
Message age :配置BPDU在网络中传播的距离,最大20跳(功能类似TTL)
MAX age :配置BPDU在设备中能够保存的最大生存期,默认值20秒
hello time :配置BPDU 发送的周期,默认时间2秒
forward delay :端口状态迁移的延时,默认时间15秒
以下三个端口以及单词必须熟记
根端口 root
替代端口 alte
指定端口 desi
接下来介绍一下生成树协议的选举过程: 根桥(核心)、指定端口(发送)、根端口(接收)
第一步:
根桥选举 Root bridge (最核心的交换机,首发配置BPDU消息)
根桥选举依据是 根桥 ID ,ID 的值越小越优先
补充:桥ID由16位的桥优先级和48位的mac地址构成,桥优先级是可以配置的,取值范围是0 ~65535,默认值是32768。如果优先级相同,则比较MAC地址,同样是地址越小越优先。
第二步:
指定端口选举/DP ↓
指定端口用于发送BPDU消息,在链路两端,指定端口有且只有一个,指定端口是链路两端去往根桥最优路径的接口;根桥的所有端口都是指定端口,除非根桥在物力上存在的环路
选举步骤如下:
1.比较链路两端接口发送BPDU消息中的Root ID
2.比较链路两端接口发送BPDU消息中的根路径开销RPC;思科设备的cost 值以带宽来计算的,如:100M/19;1000M/4
3.比较链路两端接口发送BPDU消息中的Bridge ID(转发者的Bridge ID)
4.比较链路两端接口发送BPDU消息中的Port ID(交换机运行STP的Port ID)
第三步:
根端口选举 RP
根端口用于接受BPDU消息,在非根桥设备上,根端口有且只有一个,根端口是非分桥设备去往根桥最优路径的接口;
选举步骤如下:
1.比较这些接口接收到的BPDU消息总的Root ID
2.比较这些接口接收到BPDU消息中的累加的根路径开销RPC (思科设备的cost值用带宽来计算的)
3.比较这些接口接受到BPDU消息中的Port ID
5.比较交换机自身接口Port ID
运行STP的设备上端口状态有5种:
Forwarding:转发状态。端口既可以转发用户流量也可以转发BPDU报文,只有根端口或指定端口才能进入 Forwarding状态 DP/RP
Learning: 学习状态(过渡状态)端口可以根据收到的用户流量构建MAC地址表,但不转发用户流量。增加Learning状态是为防止临环路 DP/RP
Listenini:侦听状态(过渡状态)。端口可以转发BPDU报文,但不能转发用户流量 DP/RP
Blocking :阻塞状态。端口仅仅能接受并处理BPDU,不能转发BPDU,也不能转发用户流量---NDP
Disabled :禁用状态。端口既不处理和转发报文,也不转发用户流量(一般情况下是被管理员禁用的端口)