STP学习笔记

STP 学习笔记
网桥 = 交换机
热备份
冷备份
交换网络中存在环路时容易造成
1、  广播风暴
2、  多帧复制
3、  MAC 地址表不稳定
802.1D STP �D�D阻止环路
工作原理:
BPDU
根桥:统领整个 2 层网络
端口 ID 不等于端口号
s h   int   |  include bia( 查看所有的 MAC 地址 )
show spanning-tree
spanning-tree vlan 1 root primary
spanning-tree vlan 1 priority ?
只有根桥会产生配置 BPDU
端口优先级默认会 128 IOS 32 cataos
根桥是可以抢占的
 
spanning-tree cost
spanning-tree vlan 1 cost
spanning-tree vlan 1 ,3,5,7,9-15port-priority
bandwidth
端口状态
block(20 sec)
listening( 没有 MAC 地址表,侦听 BPDU)
learning(mac 地址学习 )
forwarding
TCN BPDU 只能从 root port 发送,一直发送直到收到 TCA
PORTFAST
PVST+
RSTP
MSTP (多个 VLAN 共用一个生成树) 802.1s
STP 增强 -PortFast-UplinkFast-BackboneFast
uplinkfast �D�D�D接入层(上行链路发生变化时加速收敛)
backbone--- 非直连检测(用在所有交换机)
spanning-tree uplinkfast
spanning-tree backbonefast
BPDU 保护 (spanning-tree bpdugruard enable 接口下 )
所有接口都启用
spanning-tree portfast bpduguard default
Port Fast 特性指连接端工作站或服务器的端口无需经过监听和学习状态 , 直接从堵塞状态进入转发状态 . 因为这些端工作站或服务器无需接收 BPDU. 这样减少了 STP 的收敛时间 , 节约了 30 ( 转发延迟 ) 的时间 . 但是在启用该特性前要确保网络无环路 .
启用快速端口特性的步骤如下 :
进入连接端工作站或服务器的端口 :
Aiko(config)#interface {interface}
启用快速端口特性 , 默认该特性只是启用在层 2 接入端口上的 ;
也可以指定在中继端口启用该特性 : Aiko(config-if)#spanning-tree portfast [trunk]
全局启用快速端口特性 . 该特性只会在层 2 接入端口上启用 . 可选 :
Aiko(config)#spanning-tree portfast default

Port Fast
对防环路的两个补偿机制 :
BPDU Guard
BPDU 过滤

uplinkfast
是用在 access layer 中的交换机上的而且用在有阻断端口的交换机上,当 RP 完蛋了,马上启动阻断端口保持通信。这样收敛时间很快,不用从新进行 STP 运算,直接从 blocking 跳到 fowarding

backbonefast
用在 distribution layer 中的交换机上。而且要求所有交换机都得启动 backbonefast 。当一台交换机的 RP 坏掉的时候,失去了和 RB 的连接,它向他的其他端口,包括阻塞端口(如果有的话)发送下级 BPDU 。收到下级 BPDU 的交换机有 3 种情况: 1 ,如果收到下级 BPDU 的端口是阻塞端口,那么阻塞端口和根端口都作为候选端口(用来到达根桥用的); 2 ,如果收到下级 BPDU 的端口是根端口,那么阻塞端口被作为候选端口,因为只能通过它到达根桥了; 3 ,如果收到下级 BPDU 的端口是根端口,并且这个交换机上没有阻塞端口,那么证明这台交换机失去了到根桥的连接,需要从新进行 STP 运算。

交换机中只要有一台处于第三种状态,就要从新进行 STP 运算。除此之外,只需花去 max age delay 的时间(就是最初的 20s )就可以收敛完毕。
 
.     缺省情况下,假定交换机的所有端口都将与交换机或者网桥连接,所以所有端口都运行 STP 算法,即如果网络发生了变化,在端口发送数据之前要等待 50s
.     而事实上许多端口会直接连接工作站或者服务器。所以我们采用 PortFast 可以让这些端口节省 Listening Learning 状态的时间,立即进入 Forwarding 状态。
.     需要注意的是: PortFast 仅仅让端口在网络环境变化的情况下直接进入 Forwarding 状态。而端口仍然运行 STP 协议,所以如果检测到环路,端口仍将由 Forwarding 状态变成 Blocking 状态。

在基于 SET 的交换机上启用: Set spantree portfast mod_num/ports_num
在基于 IOS 的交换机上启用: Spantree start-forwarding/no spantree start-forwarding
The portfast feature is a Cisco proprietary change in the STP implementation. The command is applied to specific ports and has two effects:
Ports coming up are put directly in the forwarding STP mode, instead of going through the learning and listening process.
       The switch never generates a TCN when a port configured for portfast is going up or down.

UplinkFast
(上行速)
.     背景资料: STP 确保了在拓 * 变化的情况下没有环路产生,但收敛速度慢。一些实时以及对带宽敏感的网络应用是不能接受的

.     STP 收敛速度慢的原因是收敛算法需要化时间确定一条可替代的链路,缺省时间是 50s ,即 20s Blocking Listening )+ 15s Listening Learning )+ 15s Learning Forwarding )。

.     解决的方法是一旦发现了线路 down ,马上把 Blocking port 切换到 Forwarding ,不要经过 Listening Learning 阶段。这就是 UplinkFast ,切换时间可以在 2s 4s

UplinkFast
被设计应用在接入层交换机。一般应用两条上行链路连接到分布层,一条是冗余链路。
.     UplinkFast 激活一个快速重新配置的条件:
在交换机上必须启动了 UplinkFast 功能;至少有一个处于 Blocking 的端口(即有冗余链路);链路失效必须发生在 Root Port 上。

.     交换机启动了 UplinkFast 后,由于提高了交换机上所有端口的路径开销,所以不适合作为根桥。
he spanning tree port cost and port-VLAN cost of all ports on the switch is increased by 3000.

The spanning tree bridge priority for all VLANs is set to 49152. This makes it unlikely that the switch will become the root switch.
具体来说,一个上行链路组由根端口和除自环端口之外的一组阻断端口组成,上行速链路使交换机上的一个阻断端口几乎立刻进行转发。
很重要的一点就是:上行链路只能配置在接入层交换机上,因为从根端口到其非指定备份端口的快速转发只能在生成树拓 * 结构的根端口上被确定性的完成。
配置如下:
set spantree uplinkfast enable (
基于 SET)
switch(config)uplink-fasts%b,}"D(]e+FP
但是用 set spantree uplinkfast enable 将会影响到 VLAN ,并且提高了交换机所有端口的端口开销,使它不容易成为一台根网桥。
BackboneFast
Cisco
专有。用在核心层和主干网络中。设置命令没有基于 IOS 的,只有基于 Set 命令的。
Inferior BPDU
(下级 BPDU )(全部交换机都要启用) You must enable BackboneFast on all switches in the network.
当指定网桥失去了与根桥的连接时,会就发出 Inferior BPDU ,表明自己是新的根桥。这样对方的交换机就会在自己的 Root Port 和原本处于 Blocking 状态的端口都收到 BPDU 了。
配置: switch>(enable) set spantree backbonefast
 
 
BackboneFast is a Catalyst feature that is initiated when a Root Port or blocked port on a switch receives inferior BPDUs from its Designated Bridge . An inferior BPDU identifies one switch as both the Root Bridge and the Designated Bridge . When a switch receives an inferior BPDU, it means that a link to which the switch is not directly connected (an indirect link) has failed. That is, the Designated Bridge has lost its connection to the Root Bridge . Under STP rules, the switch ignores inferior BPDUs for the configured Max Age (the default is 20 seconds).
The role of BackboneFast is essentially to cheat this 20-second delay. When the switch receives the inferior BPDU, the switch tries to determine if it has an alternative path to the Root Bridge .
backbonefast
catalyst 交换机 端口或阻塞端口在接收到一个有问题的 BPDU 的时候才启动的一个特性,之所以说他这个 BPDU 有问题,是因为在上次 STP 计算过程中它已经是指定网桥了,现在它竟然还告诉我说他是根桥,这明显有问题, 20 秒都还没有过呢?当我是傻的呀!!既然我不傻,那就说明它出问题了,问题原因可能是它的根路径发生中断了,因为没有跟我直连接,所以我不知道。跟据 STP 规则,就算它丢了根路径,我也没办法去救它,因为我必须等到我这个接口上保存的最佳 BPDU 老化了才行,这个时间是 20 秒。但是我是谁?我是 cisco 公司生出来的儿子,熟话说,虎父无犬子,更何况,它是我的兄弟,所以我必需要想办法来规避这个 20 秒的等待时间。这就是我所具有的 backbonefast 特性,跟据这个特性,我将找出一条到达根桥的备选路径出来,只要我能找到这条到达根的备选路径,那就不用管什么 20 秒的等待,我可以真接老化,一秒都不用等。

There are two cases to consider:
重新找一条到根的路径,这不难。最大的问题在于,我自己必须要有去往根的备选路径才行。那么什么情况,我有备选路径呢?其实主要有两情况,如下:
*First, if the inferior BPDU arrives on a blocked port, the Root Port and other blocked ports on the switch become alternative paths to the Root Bridge .
第一,如果这个有问题的 BPDU 到达了我的阻塞端口,那么我的根端口和其他的阻塞端口将变成到达根的备选路径。
**Second, if the inferior BPDU arrives on the Root Port , all blocked ports become potential alternative paths to the Root Bridge .
第二,如果这个有问题的 BPDU 到达了我的根端口,那么我的所有阻塞端口都将变成潜在的到达根的备选路径。
If the inferior BPDU arrives on the Root Port and there are no blocked ports the switch assumes that it has lost connectivity to the Root Bridge causing the Max Age on the root to expire, and becomes the Root Bridge according to normal STP rules. If the switch has alternative paths to the Root Bridge it uses these alternative paths to transmit a new kind of Protocol Data Unit (PDU) called the Root Link Query PDU. The switch sends the Root Link Query PDU on all potential alternative paths to the Root Bridge.
如果这个有问题的 BPDU 到达我的根端口,并且我这没任何阻塞端口,那么根据上面讲的第二种情况,就是说我根本就没有了到达根的备选路径,这说明我到根也丢了,那这下好了,还帮什么帮,再跟据 STP 规则重新计算 STP 拓朴得了。再假如我有备选路径,无论是第一种情况,还是第二种情况,只要我有,那么我就会在这些备选路径上发送一种新的协议数据报文( PDU )叫做根连路查寻 PDU ,就是说我会把这个报文从所有的潜在备选路径上发到根桥去。

If the switch determines that it still has an alternative path to the root, it causes the Max Age on the ports on which it received the inferior BPDU to expire. The switch then makes all ports on which it received an inferior BPDU its Designated Ports and moves them out of the Blocking state (if they were in the Blocking state), through the Listening and Learning states, and into the Forwarding state. On the other hand, if the switch learns via the Root Link Query process that all the alternative paths to the Root Bridge have lost connectivity to the root, the switch causes the Max Age on the ports on which it received inferior BPDUs to expire, and a new STP topology is calculated.

假如我确认了还有可以到达根的备选路径径,那么我就真接把接到问题 BPDU 的端口老化掉,让我所有接到这个问题 BPDU 的端口全部进入指定端口角色,同时改变阻塞状态(如果原来是阻塞的话),时入侦听和学习状态,并最终进入转发状态。另一种情况是,通过 RLQPDU 了解到所有备选中径都丢失了到达根的连接,那么我也会把接到问题 BPDU 的端口老化,并重新计算 STP 拓朴。
本文出自 51CTO.COM技术博客
 

你可能感兴趣的:(职场,休闲,交换)