HCIA-Datacom 生成数协议
HCIA-Datacom 生成数协议
Mr.ZhangHCIA-Datacom 生成数协议
- 以太网交换网络中为了进行链路备份,提高网络可靠性,通常会使用冗余链路。但是使用冗余链路会在交换机网络上产生环路,引发广播风暴以及MAC地址表不稳定等故障现象,从而导致用户通信质量差,甚至通信中断。为了解决交换机网络中的环路问题,提出了生成树协议STP(Spanning Tree Protocol)
- 运行STP协议的设备通过彼此交互信息法系那网路中的环路,并有选择的对某个接口进行阻塞,最终将环形网络结构修剪成无环路的树形接网络结构,从而防止报文在环形网络中不断循环,避免设备由于重复接收相同的报文造成处理能力下降
- RSTP(Rapid Spanning Tree Protocol)协议基于STP协议,对原有的STP协议进行了更加细致的修改和补充,实习了网络拓扑快速收敛
生成树
生成数概念
- 技术背景
- 二层交换机网络的冗余性与环路
- 人为错误导致的二层环路
- 错误的链接设备之间的互联线缆等
- 人为的配置错误导致
- 二层环路带来的问题
- 广播风波
- MAC地址漂移
初识生成树协议
- 在网络中部署生成树后,交换机之间会进行生成树协议报文的交互并进行无环拓扑计算,最终将网络中的某个(或某些)接口进行阻塞(BLOCK),从而打破环路
- 生成树能够动态响应网络拓扑变化调节阻塞接口
- 交换机上运行的生成树协议会持续监控网络的拓扑接口,当网络拓扑结构发生变化时,生成树能感知到这些变化,并且自动作出调整
三层环路 | 二层环路 |
---|---|
常见根因:路由环路 | 常见根因:网络中部署了二层冗余环境,或人为误接线缆导致 |
动态路由协议有一定的防环能力 | 需要借助特定的协议或机制实现二层防环 |
IP报文头部的TTL字段可用于防止报文被无止尽的转发 | 二层帧头中并没有任何信息可用于防止数矩帧被无止尽地转发 |
- STP概述
- STP是一个用于局域网中消除环路的协议
- 运行该协议的设备通过彼此交互信息而发现网络中的环路,并对某些接口进行阻塞以消除环路
- STP在网络中运行后会持续监控网路状态,当网络拓扑变更时,STP能够感知并且进行自动响应,从而使网络状态适应新的拓扑结构,保证网络可靠性
- 由于局域网规模不断增长,生成树协议已经成为当前最重要的局域网协议之一
STP基本概念及工作原理
桥ID
桥ID,Bridge ID,BID
- IEEE 802.1D标准中规定BID由16位的桥优先级(Bridge Priority)与桥MAC地址构成
- 每一台运行STP的交换机都拥有一个唯一的BID
- BID桥优先级占据最高16bit,其余的低48bit是桥MAC地址
- 在STP网络中,BID最小的设备会被选举位跟桥
跟桥
- STP的最重要作用之一时在整个交换网络中计算出一棵无环的树
- 跟桥是一个STP交换网络中的树根
- STP开始工作后,会在交换网络中选举一个跟桥,跟桥时生成树进行拓扑计算的重要参考点,是STP计算得出的无环拓扑的树根
- 在STP网络中,桥ID最小的设备会被选为跟桥
- 在BID的比较过程中,首先比较优先级,优先级的值越小,则越优先,拥有的最小优先级值的交换机会成为跟桥;如果优先级相等,那么在比较MAC地址,拥有最小MAC地址的交换机会成为跟桥
Cost
开销Cost
- 每一个激活了STP的接口都维护着一个Cost值,接口的Cost主要用于计算跟路径开销,也就是到达跟的开销
- 接口的缺省Cost除了与其速率、工作模式有关,还与交换机使用的STP Cost计算方法有关
- 接口带宽越大,则Cost值越小
- 用户可以根据需要通过命令调整接口的Cost
Cost计算方法
接口速率 | 接口模式 | IEEE 802.1d-1998标准 | IEEE 802.1t标准 | 华为计算方法 |
---|---|---|---|---|
100Mbps | Half-Duplex | 19 | 200,000 | 200 |
FULL-Duplex | 18 | 199,999 | 199 | |
Aggregared Link 2 Ports | 15 | 100,000 | 180 | |
1000Mbps | Full-Duplex | 4 | 20,000 | 20 |
Aggregated Link 2 Ports | 3 | 10,000 | 18 | |
10Gbps | Full-Duplex | 2 | 2000 | 2 |
Aggregated Link 2 Ports | 1 | 1000 | 1 | |
40Gbps | Full-Duplex | 1 | 500 | 1 |
Aggregated Link 2 Ports | 1 | 250 | 1 | |
100Gbps | Full-Duplex | 1 | 200 | 1 |
Aggregated Link 2 Ports | 1 | 100 | 1 |
RPC
跟路径开销(Root Path Cost)
在STP的拓扑计算过程中,一个非常重要的环节就是“丈量”交换机某个接口到跟桥的“成本”也即RPC
一台设备从某个接口到达跟桥的RPC等于从跟桥到该设备沿途所有入方向接口的Cost累加
Prot ID
- 运行STP的交换机使用接口ID来标识每个接口,接口ID主要用于在特定场景下选举接口
- 接口ID由两部分构成,高4bit是接口优先级,低12bit是接口编号
- 激活STP的接口会维护一个缺省的接口优先级,在华为交换机上,该值为128,用户可以根据实际需要,通过命令修改该优先级
BPDU
BPDU(Bridge Protocol Data Unit,网桥协议数据单元)
- BPDU是STP能够正常工作的根本。BPDU是STP的协议报文
- STP交换机之间会交互BPDU报文,这些报文携带着一些重要信息,正是基于这些信息,STP才能够顺利工作
- BPDU分为两种:
- 配置BPDU(Configuration BPDU)
- TCN BPDU(Topology Change Notification BPDU)
- 配置BPDU是STP进行拓扑计算的关键;TCN BPDU只在网络拓扑发生变更时才会被触发
配置BPDU的报文格式
字节 字段 描述 2 PID 协议ID,对于STP而言,该字段的值总为0 1 PVI 协议版本ID。对于STP而言,该字段的值总为0 1 BPDU Type 指示本BPDU类型,若值为0X00,则表示本报文配置BPDU;若值为0X80,则为Tcn BPDU 1 Flags 标志,STP只使用了该字段的最高及最低两个比特位,最低位是TC(Topology Change 拓扑变更)标志,最高位是TCA(Topology Change Acknowledgement,拓扑变更确认)标志 8 Root ID 根网桥的桥ID 4 RPC 根路径开销,到达根桥的STP Cost 8 Bridge ID BPDU发送桥的ID 2 Prot ID BPDU发送网桥的接口ID(优先级+接口号) 2 Message Age 消息寿命,从根网桥发出BPDU之后的秒数,每经过一个网桥都减1,所以它本质上是到达根桥的跳数 2 Max Age 最大寿命,当一段时间未收到任何BPDU,生存期到达最大寿命时,网桥认为该接口连接的链路发生故障。默认20s 2 Hello Time 根网桥连续发送的BPUD之间的时间间隔,默认2S 2 Forward Delay 转发延迟,在侦听和学习状态所停留的时间间隔,默认15S 配置BPDU的比较原则
- 对于STP而言,最重要的工作就是在交换网络中计算出一个无环拓扑。在拓扑计算的过程中,一个非常重要的内容就是配置BPDU的比较。在配置BPDU中,有4各字段非常关键,它们是根桥ID、根路径开销、网桥ID以及接口ID
- STP按照如下顺序选择最优的配置BPDU
- 最小的根桥ID
- 最小的RPC
- 最小的网桥ID
- 最小的接口ID
STP的计算过程
在交换网络中选举一个根桥
STP在交换网路中开始工作后,每个交换机都会向网络中发送配置BPDU。配置BPDU中包含交换机自己的桥ID
网络中拥有的最小桥ID的交换机成为根桥
在一个连续的STP交换网路中只会存在一个根桥
根桥的角色是可抢占的
为了确保交换机网络的稳定,建议提前规划STP组网,并将规划根桥的交换机的桥优先级设置为最小值0
在每台非根桥上选举一个根接口
- 每一台非根桥交换机都会在自己的接口中选举一个接口
- 非根桥交换机上有且只有一个根接口
- 当非根桥交换机有多个接口接入网络中时,根接口是其收到最优配置BPDU的接口
- 可以形象的理解为,根接口是每台非根桥上朝向根桥的接口
在每条链路上选举一个指定接口
- 根接口选举出来后,非根桥会使用其在该接口上收到的最优BPDU进行计算,然后将计算得到的配置BPDU与除了根接口之外的其他所有接口所收到的配置BPDU进行比较
- 如果前者更优,则该接口为指定接口
- 如果后者更优,则该接口为非指定接口
- 一般情况下,根桥的所有接口都是指定接口
- 根接口选举出来后,非根桥会使用其在该接口上收到的最优BPDU进行计算,然后将计算得到的配置BPDU与除了根接口之外的其他所有接口所收到的配置BPDU进行比较
非指定接口被阻塞
- 一台交换机上,既不是根接口,又不是指定接口的接口被成为非指定接口
- STP操作的最后一步是阻塞网络中的非指定接口。这一步完成后,网络中的二层环路就此消除
STP的接口状态
状态名称 | 状态描述 |
---|---|
禁用Disable | 该接口不能收发BPDU,也不能收发业务数据帧,例如接口为Down |
阻塞Blocking | 该接口被STP阻塞。处于阻塞状态的接口不能发BPDU,但是会持续侦听BPDU,而且不能收发业务数据帧,也不会进行MAC地址学习 |
侦听Lsitening | 当接口处于该状态时,表明STP初步认定该接口为根接口或指定接口,但接口依然处于STP计算的过程中,此时接口可以收发BPDU,但是不能收发业务数据帧,也不会进行MAC地址学习 |
学习Learning | 当接口处于该状态时,会侦听业务数据帧(但是不能转发业务数据帧),并且在收到业务数据帧后进行MAC地址学习 |
转发Forwarding | 处于该状态的接口可以正常地收发业务数据帧,也会进行BPDU处理。接口的角色需是根接口或指定接口才能进入转发状态 |
STP的接口状态迁移
- 接口初始化或激活,自动进入阻塞状态
- 接口被选举为根接口或指定接口,自动进入侦听状态
- 转发延迟计时器超时且接口依然为根接口或指定接口
- 接口不再是根接口或指定接口或指定状态
- 接口被禁用或者链路失效
拓扑变化
- 根桥故障(50 S)
- 直连链路故障(30S)
- 非直连链路故障(50S)
- 拓扑改变导致MAC地址表错误
- TCN BPDU在网络拓扑变化时产生
- 报文格式:协议表示、版本号和类型
- 拓扑变化:会使用到配置BPDU中的Flags的TCA和TC位
STP的基础配置
- 配置生成树工作模式
- stp mode { stp | rstp | mstp }
- 交换机支持Stp、Rstp、Mstp三种生成树工作模式,默认情况工作模式在MSTP
- 配置根桥
- stp root primary
- 配置当前设备为根桥。缺省情况下,交换机不作为任何生成树的根桥。配置后该设备优先级数值自动为0,并且不能更改设备优先级
- 备份根桥
- stp root secondary
- 配置当前交换机为备份根桥。缺省情况下,交换机不作为任何生成树的备份根桥。配置后该设备优先级数值为4096,并且不能更改设备优先级
- 配置交换机的STP优先级
- stp priority prioirty
- 缺省情况下,交换机优先级取值为32768
- 配置接口路径开销
- stp pathcost-standard { dot1d-1998 | dot1t | degacy }
- 配置接口路径开销计算方法。缺省情况下,路径开销值的计算方法为IEEE 802.1t(dot1t)标准方法。同一网络内所有交换机的接口路径开销应使用相同的计算方法
- stp cost cost
- 设置当前接口的路径开销值
- 配置接口优先级
- stp prioirty priority
- 配置接口的优先级。缺省接口下,交换机接口的优先级取值是128
- 启用STP/RSTP/MSTP
- stp enable
RSTP对STP的改进
//TO DO
生成树技术进阶
//TO DO
Comment
匿名评论隐私政策
✅ 你无需删除空行,直接评论以获取最佳展示效果