背景
STP协议是解决⼆层交换机环路(Loop)问题(把图形结构变成树形结构)。树形结构中任意两个节点,有且只有⼀条路径,所以可以消除环路。如何快速⽣成⼀颗最优的树是问题关键。 环路可以提⾼⽹络连接的可靠性,但会带来问题。
MAC地址表漂移: MAC地址映射的端⼝号在不断地变换。
⼴播风暴: 数据帧在环路中不停的兜圈,数据帧被交换机泛洪,环路中的帧成指数型增长。 多帧复制:⼴播风暴区会有数据帧不断地向外⾯泄露,设备会不停的接收泛洪的数据帧(设备不停的接收数据帧的拷贝)。
大侦探西门
STP协议术语
桥(Bridge): 早期的交换机只有两个转发端⼝,像桥,所以叫做桥。桥泛指交换机。
桥MAC地址(Bridge MAC Address): 桥有多个转发⼝,每个端⼝有⼀个MAC地址。把端⼝编号最⼩的
端⼝MAC地址作为桥的MAC地址。
桥ID(Bridage Identifier BID): 桥优先级(2个字节,缺省值0x8000 32768,值⼩优先级⾼)+桥MAC地址(6个字节)
端⼝ID(Port Identifier, PID): 两个字节, 端⼝优先级(1字节或4位)+端⼝编号。
BPDU(Bridge Protocol Data Unit): BPDU是STP协议帧的载荷数据,但它不是⽹络层数据单元。
RPC: 根端⼝到达根桥的路径开销,与链路的带宽有关。 STP原理
⼯作流程: 选取根桥(Root Bridge)->选取根端⼝(Root Port,RP)-> 选取指定端⼝(Designated Port,AP)->阻塞备⽤端⼝(Alternate Port,AP)
1.确定根桥: 根据BID最⼩的桥确定是根桥 。十字墓
2.确定根端⼝: 1.⽐较到达根桥的路径开销RPC(root path cost), 2. ⽐较上⾏设备BID
3. ⽐较上⾏设备的PID。
3.确定指定端⼝: 1.⽐较RPC 2. ⽐较端⼝所在的交换机BID 3. ⽐较端⼝PID
4.确定备⽤端⼝: 交换机上剩余的其他端⼝。不能转发数据帧,不能转发STP协议帧,只能接收STP协议帧。
STP报⽂格式
STP协议帧采⽤IEEE 802.3封装格式,其载荷数据称为BPDU。 BPDU有两种类型:
configuration BPDU ( BPDU Type: 0x00) 和 TNC BPDU(BPDU Type: 0x80)
图1 configuration BPDU
科技情报检索
图2 TNC BPDU (故障点交互机发出)
兰州交通大学学报图3 拓扑改变configuration BPDU(根桥发出,通告全部交换机) 图4 拓扑改变确认configuration BPDU
时间参数字段
Hello Time : 缺省2s, 交换机发送configuration BPDU的周期。当STP树稳定时,全⽹使⽤根桥的hello time。在⽣成STP树的过程中,各个交换机都说⾃⼰是⽼⼤(根桥),会周期性发configuration BPDU; 在⽣成STP树后,只有根桥才会周期性发出configuration BPDU;
迪布韦克Forward Delay: 缺省15s;新选出来的根端⼝和指定端⼝需要经过2倍的forward delay后才能进⼊数据
帧转发状态。
Message Age: configuration BPDU ,每“经过”⼀个桥,Message Age 增加1。根桥发出的configuration BPDU Message为0
Max Age : 缺省20s , Message Age ⼤于Max Age 的BPDU 会被交换机丢弃。只有Message Age⼩于或等于Max Age的BPDU才会触发交换机发送新的BPDU。
计算参数字段
Root Identifier , Root Path Cost , Bridge Identifier , Port Identifier
BPDU说明字段
Protocol Identifier , Protocol Version Identifier ,
BPDU Type: 0x00 configuration BPDU ; 0x80 TNC BPDU。
Flags: ⽹络拓扑变换标识,仅使⽤最低位(Topology Change 标记)和最⾼位(TC Acknowledgment 标记)。
TNC BPDU
TNC BPDU 只有三个字段:协议标识,版本号,BPDU类型0x80
感知到⽹络拓扑改变的交换机以Hello Time位周期通过其根端⼝向上游交换机发送TNC BPDU,直到上游交换机发送TCA标志为1的configuration BPDU。上游交换机重复此动作,把拓扑改变的消息向上传。直到根桥收到TCN BPDU。根桥收到了TCN BPDU 时,发送TC置1的configuration BPDU,通告交换机⽹络拓扑改变。当交换机知道⽹络拓扑改变,就会加速MAC地址表⽼化,地址表的⽼化时间(缺省300s)缩短为forward delay(缺省15s)时间。
当交换机根端⼝down了,它就是认为⾃⼰是⽼⼤。。。。。
STP端⼝状态
转发(forwarding) : 可以接收发送STP协议帧,可以学习MAC地址,可以转发数据帧
学习(learning): 可以学习MAC地址,不能转发数据帧, 可以接收发送STP协议帧。
侦听(listening): 可以接收发送STP协议帧,不能学习MAC地址
阻塞(Blocking): 只能接受STP协议帧
去能 (disables): 端⼝处于关闭状态
常⽤命令移动万花筒
stp mode stp 配置stp⼯作模式
stp priority 0设置桥的优先级 步长4096
stp root primary 设置根桥
stp root secondary 设置备份桥
stp pathcost-standard dotld-1998 设置路径开销标准
stp cost 2000 设置端⼝路径开销