STP协议

背景

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 IdentifierPort 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 modestp         配置stp工作模式

stp priority  0        设置桥的优先级 步长4096

stp root primary    设置根桥

stp root secondary 设置备份桥

stp pathcost-standarddotld-1998 设置路径开销标准

stp cost2000             设置端口路径开销

 


版权声明:本文为qq_38263696原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。