赞
踩
背景作用:避免广播风暴,需要网络中不能存在环路。防止环路导致网络中产生的大量的广播报文,导致网络拥塞。
生成树协议主要是解决2层环路的
三层环路是根据许多的路由协议去解决的。
如果两台交换机多余两条链路能够到达,就有环。
如果交换机没有环,要不要开启生成树?
要开启,原因是:防止自身成环。
STP,
交换机通过发送BPDU来传递生成参选信息
通过计算,来选举闭塞端口,来隔断环路
协议:BPDU,包含信息完成生成树的计算,BPDU(默认=每2秒发送一次),根桥=网桥ID最小的网桥
配置BPDU:用来计算和维护生成树的报文
TCN BPDU:当拓扑发生变化时,用来通知上层网络设备:网络拓扑发生了变化
1、根桥ID:根桥的优先级+MAC地址,网桥ID=2Byte 网桥优先级+6Byte MAC地址(网桥优先级可以人工更改)
2、根路径开销(RPC):到根桥最小的路径开销,根桥RPC=0,非根桥,则是到达根桥的最短路径上所有路径的开销之和。
3、指定桥ID:生产或者转发BPDU的桥ID,桥优先级+桥mac
4、指定端口ID:发送BPDU端口ID,端口优先级+端口索引号。
(1)在整个网络中选举唯一的一台根桥,
(2)每台非根桥选举一个根端口
(3)每个物理段上选举一个指定端口。
1、根桥的选举:
桥ID,优先级+桥MAC,唯一标识一台设备。BID最小的被选举为根网桥。
BID=优先级+MAC地址
优先级默认是32768,所有交换机的优先级都是32768,看MAC地址,MAC地址全球唯一,各不相同,通过MAC地址可以找出根网桥,MAC地址最小的。
先比较桥优先级,优先级值越小越优;若优先级相等,比较桥MAC地址,地址越小越优。
根桥的所有端口都是指定端口(DP)
2、确定端口角色:(使用RPC来选择端口角色)
指定端口:根桥上所有的端口(指定端口:发送的BPDU比接收的BPDU要优)
在每段线路上找指定端口, 每个物理网段都选举一个指定端口。
(1) 该条链路两端所连交换机,谁到根桥的开销小,谁上的端口就是指定端口。
(2) 该条链路两端所连交换机,谁的网桥ID小,谁上的端口就是指定端口
(3) 该条链路两端,谁的端口ID小,谁就是指定端口。
根端口:(非根网桥上选择),非根桥都选举一个唯一的根端口
开销值直接和链路带宽相关,开销值越小带宽越大。开销值越小到达根网桥越快。
(1)到达网桥开销最小的优先
开销就是数据s到达一个目的耗费的资源和代价
(2) 流经的上游交换机BID小的优先
(3) 端口ID小的优先
(1)非根桥上到根桥,路径开销最小的端口。
(2)若开销相等,则选择:端口对端所连交换机网桥ID最小的端口。
阻塞端口:将既不是根桥端口也不是指定端口的端口阻塞
接口状态的作用:防止stp开启前,链路中存在临时环路的产生
端口状态 | 描述 |
---|---|
Disable | 失效状态,不转发数据,不接收,不发送报文(物理端口Down) |
Blocking | 有效状态,接收报文,不发送报文 |
Listening | 不转发数据,不学习地址,接收,发送BPDU消息 |
Learning | 不转发数据,开始地址学习,接收,处理,发送BPDU消息 |
Forwarding | 转发任何数据,地址学习,接收,处理,发送BPDU消息 |
1、发送TCN BPDU给上游设备
2、上游设备收到该BPDU后,上游不是根桥,把下一个配置BPDU的TCA置位,发送给下游网桥,
3、上游网桥从根端口发送TCN BPDU
4、根桥收到BPDU后,将下一个要发送的配置BPDU中的TCA 置位。作为收到TCN的确认
5、根桥同时也会将该配置BPDU中的 TC置位,发送给网络中的网桥,,拓扑发生了变化。
在STP的环境中网桥的MAC地址为老化300s,配置BPDU老化时间为20s,
根桥收到TcN置位的BPDU后,将下一个bpdu中的TCA置位发送给下游设备做为TCN的确认,
同时发送TC置位的BPDU给所有的邻居,
20s+15s:根桥将bpdu中的TC置位
各个网桥收到TC置位的bpdu,将自己的mac地址的老化时间变为15s
相比STP算法一样,只是对收敛速度做了优化
减少了端口状态
discarding
learning
forwarding
在RSTP环境下:
拆分端口(ap端口拆分为ap和backup端口)
AP端口时备份根端口的(替换端口)
备份根端口对端的DP是UP状态,则立马进入转发状态,但是在stp中则会等待2个forwording时间才能进行转发状态
backup端口是共享环境内的备份指定端口的(被自己的bpdu给抑制了)
SWB下的线段了,backup立即转为转发状态
flag字段用到了全8位
0:tc
1:p位
2,3:端口角色
4,5:端口状态
6:A位
7:TCA位
网桥自动产生配置BPDU,不需要来自根桥的配置BPDU,发送周期为hello time 2s
RSTP,MSTP:老化时间为3个连续的hello time时间 6s,stp的bpdu的老化时间为20s
STP的AP端口收到低优先级的配置BPDU,忽略该BPDU
RSTP的AP端口收到低优先级的配置BPDU,立即回应最优的BPDU给对端交换机
AP端口时备份根端口的(替换端口)
备份根端口对端的DP是UP状态,则立马进入转发状态,但是在stp中则会等待2个forwording时间才能进行转发状态
指定端口,连接主机的端口。不是端口角色
特性:是一种快速收敛的机制
1、边缘端口指网桥上直接和终端相连的端口
2、边缘端口可以直接进入转发状态,不需要延时,
3、端口的变化并且不会触发拓扑改变,不会触发mac地址表
4、边缘端口收到BPDU后,(下面连接一个交换机)会转变为非边缘端口
5、边缘端口下的主机上下线不会触发拓扑改变
(1)共享环境内:backup端口备份指定端口的(被自己的bpdu给抑制了)
(2)在点对点链路上:(点对点链路是设备和主机)
进行P/A机制的协商,协商完成后。实现指定端口的快速收敛
P/A协商:
I. 指定端口(SWA)向下发送P置位配置BPDU
II. 接收交换机(SWB)检查接收到P置位BPDU的端口是否为根端口,是,则进行同步。否则不做处理
III.同步是阻塞本网桥除边缘端口外的其他指定端口,然后SWB根端口进入转发状,同时向上游SWA发送A置位BPDU,上层收到,上层交换机的DP进入转发状态
IV. 下层SW阻塞DP的原因是: 防止临时环路的产生,如何打开?答:往下层继续P/A协商。
V. P/A不依赖任何的定时器,能在新增链路或者链路恢复时实现快速的收敛
拓扑触发条件:非边缘端口状态变成forwarding状态
1、没有使用TCN BPDU,谁接收到拓扑改变信息后在2倍的hello time时间内,直接发送TC置位的bPDU,不会发送TCN BPDU通知根桥发TC BPDU,
2、交换机接收到TC BPDU后,交换机清除所有DP端口和RP端口学来的mac地址,除接收到TC报文端口学到的MAC
然后直接刷新MAC地址表,改刷新时间为15s,而不是像STP缩短老化时间。
TC报文时书刷新mac地址表的。
阻塞端口对于次优BPDU能做处理,目的是让发送次优BPDU的设备能进快确定角色进入转发状态
处理方式:从所有DP和RP发送TC置位BPDU,和STP设备混合使用会失去快速收敛特性,注意是该接口
STP和RSTP都是单树的,不能实现在2层网络中实现负载分担 ,只能是链路的备份,浪费了带宽资源
MSTP基于实例构建多棵树,不但能够实现备份和快速收敛,还能够实现数据的负载分担
MSTP可以构建多个MST域如果要保证网桥在同一个MST的域
(1)域名一致:默认是以交换机的MAC地址做为域名
(2) 修订级别:默认是0 没实际含义 可以修改
(3)映射关系:VLAN和实例的映射关系一致
(公共生成树,内部生成树,公共和内部生成树)
把域逻辑成网桥,逻辑网桥之间构建的生成树是CST
域内实例0的树指的是IST的树
域内和域间的网桥构建的树是CIST
总根:所有交换机中桥ID最小的交换机是
域根:域内IST的交换机去往总根开销最小的设备为域根
(其他域的域根不一定是桥ID最小的交换机)
选举过程:
1、初始环境下,,每一个域内的交换机交互BPDU,选举根桥。
2、域间比较整个CIST的交换机的桥id,最小的为总跟
3、所有域内离总根开销最小的
什么是msti和msti的域根?
非实例0的树为msti的树
msti树的根桥为msti的域根
不同msti的树一般对应不同的拓扑结构,也可以是相同的。
总根比较桥id,IST根比较去往总共开销,MSTI域根比较桥id
MSTP中的端口角色:master端口
IST域内可以存在2个或者多个域边界端口,
域根指向总根的端口为master端口 (可以理解为CST的RP)
连接其他域的边界端口可以理解为CST的DP
如果没有master,那这些交换机在同一个域内
MSTP的计算包括 CST的计算,IST的计算,MSTI的计算,但是在完成收敛的时候是同时进行的
CST计算:把域逻辑成网桥,逻辑网桥的代表是域根,总根所在域的代表为总根。总根所在的域在CST计算时可以理解为根桥,其余为非根桥,算法和标准的算法一样
IST的计算:域根比较的不是桥ID,而是去往总根最近的。算法和STP一样
MSTI计算,域根比较的桥ID小的算法和STP算法一样
H3C设备和其他设备混合使用要保证网桥工作在同一个MST域需要开启摘要侦听。直接复制收到的摘要发给对端设备,不做摘要计算
MSTP收敛和RSTP一样,和RSTP结合使用的时候,如果RSTP是上游设备,MSTP是下游设备,要在MSTP的设备开启不检查A置位的BPDU。因为MSTP要检查P.A同时置位才同步
1、首先比较CIST总根的ID,ID小的为优
2、若总根的ID相同,则比较CIST的外部路径开销,开销小的为优
3、若开销一定,则比较域根的id,id小者为优
4、如果域根的id相同,则比较CIST的内部路径开销,开销小的为优
5、若内部开销相同,则比较CIST的指定桥ID,指定桥ID小者为优
6、指定桥id相同,则比较CIST指定端口id,端口id小的为优
7、如果上述都相同,则比较CIST的接收端口ID,接收端口id小的为优
MSTP的PA机制:
对于MSTP,下游设备在收到上游设备的proposal和Agreement消息后,回应一个Agreement的置位的BPDU
RSTP的PA机制:
对于RSTP,下游设备在收到上游设备的proposal消息后,回应一个Agreement的置位的BPDU
1、BPDU保护
交换机一般把连接终端的端口设置为边缘端口
防止从边缘端口发起的请求对网络进行攻击,开启后边缘端口收到BPDU后,关闭端口
配置:
[H3C]stp bpdu-protection (bpdu的保护)
[H3C]int gi1/0/1
[H3C-GigabitEthernet1/0/1]stp edged-port
2、根桥保护
为了防止新加入的设备影响根桥的地位,比如新加入的交换机优先级较为优,抢占核心根桥的位置,导致根桥到接入设备。开启后如果接口收到其他更优的BPDU该接口状态设为discarding状态。
配置代码:
[H3C-GigabitEthernet1/0/2]stp root-protection
[H3C-GigabitEthernet1/0/2]%Aug 2 10:06:39:103 2021 H3C STP/4/STP_ROOT_PROTECTION:
Instance 2's ROOT-Protection port GigabitEthernet1/0/2 received superior BPDUs.
3、环路保护:
接口UP但是数据发送不出去:
原因:1、可能是网路拥塞
配置了环路保护的端口,当接收不到上游设备发送的BPDU报文时,环路保护生效。
如果该端口参与了STP计算,则不论其角色如何,该端口在所有实例都将处于
Discarding状态"
配置:在接入交换机的上行端口配置。
在有阻塞端口的交换机上配置就行了
[H3C-GigabitEthernet1/0/2]stp loop-protection
[H3C-GigabitEthernet1/0/3]stp loop-protection
TC-保护:
TC-BPDU的作用:
通知其他的交换机的mac地址表的老化时间为15s,
一旦主机持续发送伪造的TC-BPDU,造成交换机持续收到,并刷新mac地址表,导致交换机中mac地址表是空的,发送单播帧时,一直在洪泛,
RSTP、MSTP中:运行RSTP和MSTP的交换机接收到TC-BPDU后,马上刷自己接口收到的MAC地址表,
[H3C]stp tc-protection
[H3C]stp tc-protection threshold 15
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。