用于计算生成树的各种信息和参数被封装在配置BPDU(Configuration Bridge Protocol Data Unit)中在交换机之间发送。
配置BPDU使用标准LLC格式封装在以太网数据帧中。
配置BPDU只在指定端口(Designated Port)上发送。
DMAC:目的MAC地址。发送配置BPDU的数据帧使用保留的组播MAC地址01-80-C2-00-00-00,此地址标识所有交换机,但是不能被交换机转发,也即只在本地链路有效。
LLC Header:目的服务访问点(Destination Service Access Point, DSAP)和源服务访问点(Source Service Access Point, SSAP)的值都设为二进制01000010。Control字段的值设为3。
服务访问点,简称SAP,实际就是逻辑接口,是一个层次系统的上下层之间进行通信的接口,N层的SAP就是N+1层可以访问N层服务的地方,服务访问点就是邻层实体之间的逻辑接口.从物理层开始,每一层都向上层提供服务访问点.在连接因特网的普通微机上,数据链路层的服务访问点TYPE中的类型说明,(例如0800代表上层是IP),网络层的服务访问点是IP头部中的protocol字段(17表示上层是UDP,6是TCP,89是OSPF,88是EIGRP,1是ICMP等),传输层的服务访问点是端口号。
配置BPDU中的重要参数:
Root Identifier | 发送此配置BPDU的交换机所认为的根交换机的交换机标识 |
---|---|
Root Path Cost | 从发送此配置BPDU的交换机到达根交换机的最短路径总开销,含交换机根端口的开销,不含发送此配置BPDU的端口的开销 |
Bridge Identifier | 发送此配置BPDU的交换机的交换机标识 |
Port Identifier | 发送此配置BPDU的交换机端口的端口标识 |
交换机全局参数:
Designated Root | 此交换机所认为的根交换机的交换机标识,用于设置此交换机所发送的配置BPDU中的Root Identifier参数 |
---|---|
Root Path Cost | 从此交换机到达根交换机的最短路径总开销,含此交换机的根端口的端口开销,用于设置此交换机所发送的配置BPDU中的Root Path Cost参数 |
Root Port | 根端口的端口标识 |
Bridge Identifier | 该交换机的交换机标识 |
收到更优配置BPDU并记录在端口参数中:
比较次序 | 比较内容 |
---|---|
1 | 比较所接收到的配置BPDU中Root Identifier和端口参数中记录的Designated Root,如果二者相等则进入第二步 |
2 | 比较所接收到的配置BPDU中Root Path Cost和端口参数中记录的Designated Cost,如果二者相等则进入第三步 |
3 | 比较所接收到的配置BPDU中Bridge Identifier和端口参数中记录的Designated Bridge,如果二者相等则进入第四步 |
4 | 比较所接收到的配置BPDU中Port Identifier和端口参数中记录的Designated Port |
从端口上收到一个更优的配置BPDU之后,重新计算根交换机、根端口和根路径开销的过程将被启动。
计算过程为:
1.根据所有的端口上记录的参数,依次比较Designated Root,Designated Cost和端口Cost之和,Designated Bridge和Designated Port,从中选出一个记录了最优参数的端口,并且此端口上记录的Designated Root要比交换机自身的Bridge Identifier(交换机标识)更优先,此端口即为根端口;
2.选择出此端口之后,更新交换机全局参数Designated Root为根端口记录的Designated Root;更新交换机全局参数Root Path Cost为根端口记录的Designated Cost与根端口的Port Cost之和;
3.如果任何端口记录的Designated Root参数都不比交换机自身的Bridge Identifier更优先,则交换机全局参数Designated Root设置为交换机自身的Bridge Identifier;交换机全局参数Root Path Cost设置为0。
本例中:E2端口记录了最优的参数,因此更新全局参数如图所示,Designated Root为E2端口记录的Designated Root;Root Path Cost为E2端口记录的Designated Cost(200)和E2端口的Port Cost(200)之和(400)。
BPDU类型:
在向整网泛洪拓扑改变信息的过程中,共涉及三种BPDU:
1.拓扑改变通知BPDU:Topology Change Notification BPDU。用于非根交换机在根端口上向上行交换机通告拓扑改变信息,并且每隔Hello Time(2秒)发送一次,直到收到上行交换机的拓扑改变确认配置BPDU或者拓扑改变配置BPDU。
2.拓扑改变确认配置BPDU:Topology Change Acknowledgment Configuration BPDU。配置BPDU的一种,和普通配置BPDU不同的是此配置BPDU设置了一个Flag位。用于非根交换机在接收到拓扑改变通知BPDU的指定接口上向下行交换机发送拓扑改变通知的确认信息。
3.拓扑改变配置BPDU:Topology Change Configuration BPDU。此配置BPDU设置了另外一个Flag位。用于从根交换机向整网泛洪拓扑改变信息,所有交换机都在自己所有的指定端口上泛洪此BPDU。
生成树协议如何在网络中计算出一棵无环的树?
在网络中选出一个根交换机,为每个非根交换机选择一个根端口,为每个网段选择一个指定端口,将既不是根端口也不是指定端口的端口设为阻塞状态。
生成树协议如何解决临时环路问题?
当一个端口从不转发状态转为转发状态之前,要经过两个Forward Delay间隔,以确保网络中其它交换机完成生成树计算。
生成树协议如何解决拓扑改变引起的MAC地址表错误问题?
拓扑改变之后,拓扑改变信息在整网内泛洪,交换机将MAC地址表生存期设置为一个较短的数值,拓扑结构稳定之后,交换机再恢复MAC地址表的生存期。