HCIA学习记录(四)[STP生成树]
一、STP生成树解决的问题
以太网交换网络中为了进行链路备份,提高网络可靠性,通常会使用冗余链路。
1. 二层环路带来影响
1)、广播风暴:影响网络带宽资源,造成网络瘫痪。
2)、MAC地址漂移:多个接口收到广播报文,学习相同源MAC,会造成多个接口MAC地址来回漂移。
3)、导致用户通信质量较差,甚至通信中断
2. STP生成树解决的问题
STP是一种用于局域网中消除环路的协议。
生成树主要是为了解决网络链路冗余设计从而产生的二层环路,交换机二层帧结构决定了二层帧没有防环机制。
- STP协议就是为解决交换网络中的环路问题
- STP协议的设备通过彼此交互信息发现网络中的环路
RSTP(Rapid Spanning Tree Protocol)协议基于STP协议,对原有的STP协议进行了更加细致的修改和补充,实现了网络拓扑快速收敛。
3. BUM
BUM 指三种帧:交换机泛洪转发
BUM (broadcast, unknown destination address, multicast) 流量
-
B(broadcast):广播
-
U(unknown destination address):目标MAC地址未知单播帧(交换机收到一个帧目标MAC在自己MAC地址表不存在)
-
M(multicast):组播帧
4. STP生成树解决问题的方法
STP生成树:
在交换机之间进行生成树报文的交互,进行无环拓扑计算,最终阻塞单个或多个接口,从而打破环路,网络从一个环,变成一棵树。
交换机上运行的生成树协议会持续监控网络的拓扑结构,当网络拓扑结构发生变化时,生成树能感知到这些变化,并且自动做出调整。
因此,生成树既能解决二层环路问题,也能为网络的冗余性提供一种方案。
二、STP的基本概念及工作原理
1. STP基本概念
1.1 桥ID(Bridge ID,BID)
- IEEE 802.1D标准中规定BID由16位的
桥优先级
(Bridge Priority)与48位的桥MAC地址
构成。 - 每一台运行STP的交换机都拥有一个唯一的BID。
- BID桥优先级占据高16bit,其余的低48bit是桥MAC地址。
- 在STP网络中,BID最小的设备会被选举为根桥。
1.2 根桥(Root Bridge)
根桥是一个STP交换网络中的“树根”,桥ID最小的设备会被选举为根桥。
比较过程:
- 先比较桥优先级大小,优先级最小的为根桥
- 桥优先级相同情况下,比较桥MAC地址大小,最小的MAC地址为根桥
1.3 开销(Cost)
- 每一个激活了STP的接口都维护着一个Cost值,接口的Cost主要用于计算根路径开销,也就是到达根的开销。
- 接口的缺省Cost除了与其速率、工作模式有关,还与交换机使用的STP Cost计算方法有关。
- 接口带宽越大,则Cost值越小。
- 用户也可以根据需要通过命令调整接口的Cost。
现版本IEEE 802.1t标准更优
1.4 根路径开销(Root Path Cost)
一台设备从某个接口到达根桥的RPC等于从根桥到该设备沿途所有入方向接口的Cost累加。
如图,SW3从GE0/0/1接口到达根桥的RPC等于接口1的Cost加上接口2的Cost。
1.5 接口ID(Port ID,PID)
- 运行STP的交换机使用接口ID来标识每个接口,接口ID主要用于在特定场景下选举指定接口。
- 接口ID由两部分构成的,高4 bit是接口优先级,低12 bit是接口编号(接口编号就是物理口)。
- 激活STP的接口会维护一个缺省的接口优先级,在华为交换机上,该值为128。用户可以根据实际需要,通过命令修改该优先级。
1.6 BPDU(Bridge Protocol Data Unit,网桥协议数据单元)
- BPDU是STP的协议报文
- STP交换机之间会交互BPDU报文,STP的正常工作依赖于此
- BPDU分为两种类型:
- 配置BPDU(Configuration BPDU)
- TCN BPDU(Topology Change Notification BPDU)
- 配置BPDU是STP进行拓扑计算的关键;
- TCN BPDU只在网络拓扑发生变更时才会被触发。
STP按照如下顺序选择最优的配置BPDU:
(选举根桥)
- 最小的根桥ID
(选举根接口及指定接口)
- 最小的RPC
- 最小的网桥ID
- 最小的接口ID
2. STP的计算过程
2.1 选举根桥
在交换网络中选举一个根桥
(选择最优的路由设备,有且只有一个)
- STP在交换网络中开始工作后,每个交换机都会向网络中发送配置BPDU。配置BPDU中包含交换机自己的桥ID。
- 网络中拥有最小桥ID的交换机成为根桥。
- 在一个连续的STP交换网络中只会存在一个根桥。
- 根桥的角色是可抢占的。
- 为了确保交换网络的稳定,建议提前规划STP组网,并将规划为根桥的交换机的桥优先级设置为最小值0。
2.2 选举根接口
在每台非根桥上选举一个根接口
(非根桥交换机上的接口,与根桥直连最近的非根桥交换机的接口,有几个交换机,就有几个根接口)
- 每一台非根桥交换机都会在自己的接口中选举出一个接口。
- 非根桥交换机上有且只会有一个根接口。
- 当非根桥交换机有多个接口接入网络中时,根接口是其收到
最优配置BPDU
的接口。 - 可以形象地理解为,根接口是每台非根桥上“朝向”根桥的接口。
2.3 选举指定接口
在每条链路上选举一个指定接口
(根桥或者非根桥交换机上的接口)
- 根接口选举出来后,非根桥会使用其在该接口上收到的最优BPDU进行计算,然后将计算得到的配置BPDU与除了根接口之外的其他所有接口所收到的配置BPDU进行比较:
- 如果前者更优,则该接口为指定接口;
- 如果后者更优,则该接口为非指定接口。
- 一般情况下,根桥的所有接口都是指定接口
2.4 阻塞非指定接口
非指定接口被阻塞
- 一台交换机上,既不是根接口,又不是指定接口的接口被称为非指定接口。
- STP操作的最后一步是阻塞网络中的非指定接口。这一步完成后,网络中的二层环路就此消除。
3. STP的接口状态
状态名称 | 状态描述 |
---|---|
禁用(Disable) | 该接口不能收发BPDU,也不能收发业务数据帧,例如接口为down |
阻塞(Blocking) | 该接口被STP阻塞。处于阻塞状态的接口不能发送BPDU,但是会持续侦听BPDU,而且不能收发业务数据帧,也不会进行MAC地址学习 |
侦听(Listening) | 当接口处于该状态时,表明STP初步认定该接口为根接口或指定接口,但接口依然处于STP计算的过程中,此时接口可以收发BPDU,但是不能收发业务数据帧,也不会进行MAC地址学习 |
学习(Learning) | 当接口处于该状态时,会侦听业务数据帧(但是不能转发业务数据帧),并且在收到业务数据帧后进行MAC地址学习 |
转发(Forwarding) | 处于该状态的接口可以正常地收发业务数据帧,也会进行BPDU处理。接口的角色需是根接口或指定接口才能进入转发状态 |
STP的接口状态迁移
三、STP的基础配置
STP的基础配置命令
// 配置生成树工作模式
// 交换机支持STP、RSTP和MSTP(Multiple Spanning Tree Protocol)三种生成树工作模式,默认情况工作在MSTP模式。
[Huawei] stp mode { stp | rstp | mstp }
//(可选)配置根桥
// 配置当前设备为根桥。缺省情况下,交换机不作为任何生成树的根桥。配置后该设备优先级数值自动为0,并且不能更改设备优先级。
[Huawei] stp root primary
//(可选)备份根桥
// 配置当前交换机为备份根桥。缺省情况下,交换机不作为任何生成树的备份根桥。配置后该设备优先级数值为4096,并且不能更改设备优先级。
[Huawei] stp root secondary
//(可选)配置交换机的STP优先级
// 缺省情况下,交换机的优先级取值是32768(2^15)。
[Huawei] stp priority priority
// (可选)配置接口路径开销
// 配置接口路径开销计算方法。缺省情况下,路径开销值的计算方法为IEEE 802.1t(dot1t)标准方法。
同一网络内所有交换机的接口路径开销应使用相同的计算方法。
[Huawei] stp pathcost-standard { dot1d-1998 | dot1t | legacy }
// 设置当前接口的路径开销值。
[Huawei-GigabitEthernet0/0/1] stp cost cost
//(可选)配置接口优先级
// 配置接口的优先级。缺省情况下,交换机接口的优先级取值是128。
[Huawei-intf] stp priority priority
// 启用STP/RSTP/MSTP
// 使能交换机的STP/RSTP/MSTP功能。缺省情况下,设备的STP/RSTP/MSTP功能处于启用状态。
[Huawei] stp enable
四、RSTP对STP的其他改进
- 配置BPDU的处理发生变化:
- 拓扑稳定后,配置BPDU报文的发送方式进行了优化
- 使用更短的BPDU超时计时
- 对处理次等BPDU的方式进行了优化
- 配置BPDU格式的改变,充分利用了STP协议报文中的Flag字段,明确了接口角色
- RSTP拓扑变化处理:相比于STP进行了优化,加速针对拓扑变更的反应速度
文章评论