为了保证交换网络高可用性,在交换机之间使用冗余链路,由于网络中的泛洪机制可能造成二层的桥接环路,会导致
1.广播风暴(广播数据帧在环路中无休止的转发) 2.Mac地址表的不稳定 3.数据帧的重复拷贝(每次都给B)
解决思路: 打破交换网络中的环路(针对交换网络的所有环路中,关闭其中的某个接口)
生成树协议: spanning tree protocol , STP ,所有的生成树协议都在通过发送比较信息进行选举,找到环路中应该被关闭的接口(接口阻塞)。
发送的比较的信息称为BPDU,网桥协议数据单元。
生成树的类型:
STP(标准生成树,又称为802.1D)
RSTP(快速生成树,又称为802.1W)
MSTP(多生成树协议,又称为802.1S)
【1】802.1D ,标准生成树:
BPDU:网桥协议数据单元,分为
1.配置BPDU config-BPDU(用于生成树的选举以及重收敛)
2.拓扑变更BPDU TC-BPDU(通知交换网络出现了拓扑变更)
BPDU数据结构
Protocol ID:协议ID 一般为00
Version:协议版本ID 00:802.1D 02:802.1W 03:802.1S
Message type: 代表着BPDU 的类型 (0X00 配置 0X80 拓扑TC)
Flags :标记位,在802.1D 中,标识BPDU 是拓扑变更还是拓扑变更确认BPDU
Root ID :根标识符,用于标记一颗树的树根。与根网桥的BID 一致。
Bridge ID :网桥标识符, BID , 用于标识本设备在本生成树的唯一性。
Port ID :端口标识符, PID ,用于标识设备上某接口的唯一性。
Cost of path : 路径开销。在华为设备中,称作 root path cost (RPC)根路径开销。
hello时间: 默认为2s ,BPDU 发送的间隔。
Max-age : 最大时间,可以理解为hello包的超时时间。默认时间为20s
Forward delay : 转发延时,状态切换时间,默认为15s
Message age :在思科中默认为300s,就是对应的MAC地址条目的老化时间;华为中,代表着该BPDU传递的跳数(默认值为0,每经过一台交换机 值+1)
在802.1W中Message age 相当于Max-hop :默认为20 ,收到BPDU之后 将message age中的时间与max-hop进行比较,若小于,则正常使用该BPDU ,若大于,则忽略BPDU。
BID
PID
RPC:根路径开销 =RPC(转发BPDU的交换机到达跟的开销值)+PC(自己的端口开销)
端口角色
1.根端口 (RP),存在于非根网桥之上,一个非根网桥仅有一个,用于接收来自于根的BPDU
2.指定端口(DP),在一条链路中有且仅有一个,用于转发BPDU
3.阻塞端口(NDP)被逻辑上关闭的接口
端口状态
1.disable ---关闭状态 1.关闭生成树协议 2.接口物理关闭
2.blocking---阻塞状态 ,不能发送BPDU ,可以接收BPDU ,不能发送和接收数据 【替代(阻塞)(AP)和备份】
3.listening ---监听状态,可以发送并接收BPDU,不能发送和接收数据;(进行生成树选丼的)
4.learning ---学习状态,可以发送并接收BPDU,可以接收数据,不能转发数据;(学习MAC地址表)---目的:限制未知单播帧的泛洪
5.forwarding---转发状态,可以发送并接收 BPDU和数据
802.1D生成树收敛时间:30s或50s 基于计时器收敛
生成树选举:
1.选举 根网桥 (标识一颗树,在一个生成树中有且仅有一个)选举规则: 最小的BID(先比较BID优先级,再MAC地址)
2.选举端口角色
选举根端口:1.接口最小的开销值(RPC+PC)2.最小的BID(发送方的) 3.最小的PID(发送方的)
选举指定端口:1.本设备根端口的最小开销值 2.最小的BID(本交换机)3.最小的PID(本设备)
生成树配置:
选择生成树类型:
修改BID优先级:
方法一:
方法二: 设置主 备根
修改cost值:
修改PID优先级:
查看生成树:
查看生成树端口状态:
802.1D特性:
1.连接终端的接口,启用之后进入转发状态需要30s,可以加速。(在cisco中使用portfast , 华为中可以使用边缘端口)
节约时间: 30 s
查看:
2.上行链路状态切换 ,切换时间为30s ,思科中可以使用uplink-fast 进行加速(节约30s)
3.骨干链路故障切换,思科中默认为50s(20+15+15;思科中可以使用backbone-fast进行加速,节约时间20s)。华为切换时间默认为30s
802.1D 生成树的重收敛:
802.1D总结:
1.收敛时间慢 (30s或50s)
2.不支持负载分担
3.不支持上行链路加速
【2】802.1W : RSTP 快速生成树 解决收敛速度慢 的问题
802.1W 基于PA机制进行收敛(请求 同意),可以在2-3 s之内完成收敛。基于BPDU flags字段内容进行分布式收敛。
生成树选举:与802.1D完全一致
端口状态:
Discarding ---丢弃状态( disable blocking listening ),可以发送并接收BPDU,但是不能发送接收数据
Learning ---学习状态
Forwarding ---转发状态
端口角色:
根端口
指定端口
替代端口:阻塞,同一个交换机上使用阻塞端口替代根端口(替换时间0s,相当于自动集成uplink-fast)
备份端口:阻塞,同一个交换机上针对同一条链路备份指定端口(备份端口切换时间30s,因为出现备份端口一定存在 hub,hub是半双工的,不能使用802.1W的机制)
边缘端口: 边缘端口 、非边缘端口 ,一般在连接终端的接口上实施(access)
作用:
1.自动启用端口加速(节约30s)
2.若收到 proposal 置位的BPUD,边缘端口不会同步
3.若收到了TC位置位的配置BPDU,不通过边缘端口转发
4.若启用边缘端口的接口收到了BPDU,则边缘端口特性失效
5.若收到TC位置位的BPDU,边缘端口学习到的MAC地址时间不变化(依然为300s)
链路类型: 802.1W中存在两种链路类型
1.point-to-point 点对点类型 (全双工) 可以进行PA协商
2.shared 共享型(接口是半双工模式)不能进行PA机制,基于计时器生成树收敛
强制链路类型为point-to-point :
802.1W特性(以及与802.1D区别):
1.收敛机制:PA机制
2.端口状态:3个
3.端口角色:4
4.支持边缘端口(但默认不启用的)
5.自动集成上行链路加速(节约30s)
6.自动集成骨干链路加速 (节约50s)
7.在802.1W中所有的交换机都有发送BPDU的能力,BPDU超时时间为6s
配置: 与802.1D一致
【3】802.1S : MST 多生成树 采用PA机制
instance 实例 多生成树的配置:
1.域名 name
2.reversion leave 版本等级
3.instance 实例映射
配置:
启用MSTP
MSTP 配置
修改instance 1 的BID 优先级
修改instance 1 的PID 或COST值
查看:
查看接口状态:
生成树的弹性(特性):
1.portfast (边缘端口)
2.uplink fast (上行链路加速 )
3.backbone fast (骨干链路加速)
4.BPDU 防护 思科中BPDU-guard 华为中BPDU-protection ----若启用了BPDU防护的接口收到BPDU ,则会导致接口 down(error-down)
默认在华为BPDU 防护只能全局设置,并且仅仅针对边缘端口
在思科中BPDU guard 可以针对接口也可以针对全局
查看错误日志信息
恢复由于BPDU 防护导致接口shutdown(error-down)
1.手工(先物理关闭接口 再重新开启)
2.自动(开启自动恢复)
查看:
5.BPDU-fitter BPDU 过滤 ,开启之后,该接口不发送也不接收BPDU信息,若接收到了BPDU ,则直接忽略可以全局启用也可以接口启用,全局启用同样仅仅针对边缘端口,接口启用无所谓全局做法:
接口:
6.root-protection 根防护
一般建议在连接新交换机的接口上启用,若该接口收到了优质根的BPDU信息,则接口进入discarding
查看:
7.loop-protection 环路防护
防止当出现单向链路故障时,导致生成树出现转发环路,所以可以在阻塞端口上启用loop-protection ,使阻塞接口可以发送BPDU ,进行链路双向检测