天啊!看完这篇STP(思科)别在说不会生成树了 您所在的位置:网站首页 交换机端口forwarding 天啊!看完这篇STP(思科)别在说不会生成树了

天啊!看完这篇STP(思科)别在说不会生成树了

#天啊!看完这篇STP(思科)别在说不会生成树了| 来源: 网络整理| 查看: 265

本系列按照思科CCNP学习教程写的,CCNP的学习PDF-----链接

文章目录 生成树生成树基础简介:生成树类型生成树简介-参数 802.1DBPDUBPDU数据格式STP端口类型STP工作原理举例分析端口角色STP端口状态计时器STP端口状态转化过程STP拓扑变化机制 生成树特性1-Port Fast2-BPDUguard:3-BPDUFilter:4-UplinkFast5-BackboneFast PVST+和RSTPPVST+简介配置PVST+ RSTP简介RSTP的端口RSTP快速转发:链路类型Link types:RSTP拓扑改变机制拓扑改变机制(检查)拓扑改变机制(传递) RSTP+配置 MSTMST简介特点MST域MST实例MST配置

生成树 生成树基础 简介: 如果接入层交换机单链路上联,任意一个汇聚设备宕机,将会直接导致下联的接入网络挂掉;与是接入层交换机采用双链路上联到两台汇聚设备,构成一个物理链路冗余的二层环境,解决了单链路故障问题。但是二层环境存在环路。

STP解决方案:

生成树用于解决这个问题;通过生成树协议,在逻辑上将特定端口进行Block,从而实现物理上存在冗余环境,而二层上又阻止环路的产生;当拓扑发生变更时,生成树协议能够探测到这些变化,并且及时自动的调整接口状态,从而适应网络拓扑的变化,实现链路冗余。 生成树类型 协议范围标准描述STP公有802.1QPVST+Cisco私有Port Fast、Uplinkfast、BackboneFastRSTP公有802.1Q快速生成树,集成了一些PVST的功能特性MST公有802.1Q 生成树简介-参数 网桥ID(BID): 网桥优先级Mac地址2字节6字节

网桥优先级范围为:0~65535;其中前4bit表示优先级,后12bit为扩展系统ID,其中,优先级取值为4096的倍数,网桥优先级越小越优先

端口ID(PID): 端口ID由一个字节的端口优先级和一个字节的端口组成;表示形式如:128.1、128.2端口优先级范围0~255,越小越优先,IOS交换机默认为128;Catalyst交换机默认为32;

路径开销

本交换机到达根交换机路径的总开销,越小越好,开销与接口带宽有关。

端口速率开销(old)开销(new)10Gb/s121Gb/s14100Mb/s101910Mb/s100100 802.1D BPDU 网桥协议数据单元(Bridge Protocol Data Unit),是一种生成树协议

数据包,它可以配置的发送的间隔,用来在网络的网桥间进行信息交换。生成树的所有信息交互都需要依靠BPDU.

STP使用BPDU来交换信息,默认情况下交换机每2秒发送一次BPDU,BPDU分为两种: 配置BPDU:用来计算STPTCN BPDU:用来通告网络拓扑发生变化 BPDU与STP: 在网络运行最初,所有的交换机认为自己是根桥,并向邻居发送BPDU,其中包含自身的桥ID(BID),同时也会收到邻居发送过来的BPDU报文,这个过程为BPDU的泛洪。交换机每收到一个BPDU报文就会和自己的进行比较,如果优于自身的,交换机意识到自己不是根桥,否则它还会持续发送自己的BPDU。最后所有的交换机会选举出一台作为生成树的根桥,我们称之为Root。根桥选举出来后,根桥默认每2s发送BPDU。非根桥的交换会根据根桥的BPDU选举自己的根端口。它从自己的根端口接收BPDU,再从自己其他具有发送功能的端口转发出去。部分交换机的端口会被阻塞,阻塞端口不转发流量,但是会侦听BPDU,如果一段时间内没有收到,则认为链路出现了问题。 BPDU数据格式 字段大小(byte)描述协议2代表为BPDU,该值总为0版本1802.1D为0;RSTP为2TYPE1BPDU为0x00,TCN BPDU为0x80标志FLAG1用来响应TCN BPDU根ID8根网桥ID路径开销4到达root的STP Cost网桥ID8BPDU发送BID端口ID2BPDU发送的网桥的端口IDMessage Age2从根网桥发出BPDU后的秒数,没经过一个网桥都减1,本质上是达到根网桥的跳数。Max Age2BPDU的最大寿命,默认为20秒,在一段时间内未收到任何BPDU,生存时间到达Max时。为端口链路出现了问题Hello时间2根网桥连续发送的BPDU之间的间隔,默认为2s转发延迟2在监听和学习状态所停留的时间。默认为15s STP端口类型

端口类型描述根端口RP该端口属于非根网桥(root)交换机。它到达root的路径最优,每台非根交换机只有一个根端口。指定端口DP每台链路上只有一个指定端口,根网桥的所有接口都是指定端口,指定端口处于转发状态,可以发送和接收数据帧非指定端口非指定端口是处于阻塞状态的交换机端口,它不会转发数据帧。禁用端口指被手工关闭的交换机端口 STP工作原理

在交换网络中选举一个root bridge: 具有最低BID的交换机将成为根网桥既具有最小网桥优先级的交换机成为root,如果网桥优先级一致,则具有最小MAC地址的交换机成为root。 在每个非根网桥上选举出一个接口 根端口是交换机到达根网桥Cost最小的端口;如果多个端口Cost相同,则选择BPDU发送者BID最小的端口;如果Cost和BID都相同,则选择BPDU发送者端口ID最小的一个; 为每个链路选举一个指定端口: root的所有端口都是指定端口;非根交换机比较它们的端口到root的Cost,小的为指定端口;如果两个端口的COst相同,则比较BID,小的为指定端口。 阻塞非指定端口 既不是根端口,又不是指定端口的端口会被阻塞 举例分析端口角色

STP端口状态 状态描述Disable不发送任何报文Blocking不接收也不转发帧,接收但是不转发BPDU,不学习MAC地址Listening不接收也不转发帧,接收且转发BPDU,不学习MAC地址Learning不接收也不转发帧,接收且转发BPDU,学习MAC地址Forwarding接收并且转发帧,接收并且转发BPDU,学习MAC地址 计时器

网络中的生成树拓扑依附于网桥的计时器,root将BPDU中的计时器传递给第二层的所有交换机。

Hello时间:根网桥发送配置BPDU的时间间隔,默认为2s;转发延迟时间:侦听到学习状态,或者学习状态所需要经过的时间,默认为15s;最大存活时间:在丢弃BPDU之前,网桥用来存储BPDU的时间,默认为20s。如果连续收不到10个BPDU开始进入listening状态;

注意:当一个拥塞的端口进入到转发状态通常需要30-50秒时间。

STP端口状态转化过程

STP拓扑变化机制 拓扑改变机制(检查)

STP中,当某个端口变成了转发状态或拥塞状态,意味着STP发生了变化。

拓扑改变机制(传递)

交换机通过根端口发送TCN BPDU通知拓扑发生变化。

根桥收到TCN BPDU后,会先发送TCA BPDU,来确认收到了信息

根桥随后会将配置BPDU中设置TC位。并通过广播发送给其他的交换机。

收到此BPDU的交换机会将CAM表的老化时间从300s缩短到15s。

三类拓扑变更:

直连拓扑变更:端口可以直接检测到的变更;

**间接拓扑变更:**链路仍为UP,但是无法传输数据,因为端口检测不到,需要等20s,接收不到根桥的BPDU才能发现拓扑改变;

无意义拓扑变更:例如交换机连接的PC关机。虽然实际拓扑没有改变,但是如果大量的PC关机,会生成大量的TCN,对交换机有影响;

生成树特性 1-Port Fast 正常情况,端口从启动进入到转发默认需要30秒时间。Portfast端口一旦接了设备,接口可绕过listening和learning状态直接进入forwarding状态。Portfast不能直接配置在Trunk模式的端口上,即使配置上去了思科IOS也不会生效。

注意:配置了portfast的接口,如果连的是交换机,这个接口仍然要接受生成树的计算结果。如果计算结果是block,那么这个接口仍然被block。这就是为什么你在CISCO IOS上敲入该条命令,IOS会提示你,说可能会造成短暂的桥接环路。

全局配置模式: Switch(config)#spanning-tree portfast default 全局配置命令,将所有非Trunk接口激活postfast特性 接口配置模式: Switch(config)#int f0/1 Switch(config-if)#spanning-tree portfast [trunk] 2-BPDUguard: 该接口在收到BPDU报文后,会立即切换到err-disable状态。通常与Portfast配合使用,防止交换机错误连接后产生环路。可以全局配置开启,也可以在单个端口上配置,起到的效果不同。端口进入的err-disable状态需要手动关闭在打开才能使用,但是可以使用方法让其自动恢复,默认恢复间隔为300s。 全局配置模式: Switch(config):spanning-tree portfast bpduguard default 接口配置模式: Switch(config)#int f0/1 Switch(config-if)#spanning-tree bpduguard enable 全局模式配置err-disable自动恢复 Switch(config)#errdisable recovery cause bpduguard Switch(config)#reedisable recovery interval 100 3-BPDUFilter: BPDUFilter又称为BPDU过滤。在一些情况下,可以实现阻止向外发送BPDU。开启BPDUFilter之后,对应端口接收到的配置BPDU都会被丢弃。在运营商环境中非常有用。如果为用户提供二层接入,可以过滤自身的BPDU,忽略用户的BPDU,保持内部生成树拓扑的稳定。

全局配置模式: Switch(config)#spanning-tree portfast bpdufilter default 启用了portfast的接口将激活bpdufilter特性上述接口在link up后瞬间发送BPDU,此后不在发送任何BPDU上述接口在收到BPDU后立即丢失portfast及bpdufilter特性,成为一个普通的spanning-tree接口。 接口配置模式: Switch(config)#int f0/1 Switch(config-if)#spanning-tree bpdufilter enable 该接口不会发送BPDU,也忽略接收到的BPDU;在接口上配置,不一定必须portfast特性,可独立实施。当然,建议搭配portfast特性使用。 4-UplinkFast 对于接入层的交换机,一旦转发链路失效,其他备选链路至少需要30-50秒的收敛时间才能启用UplinkFast是思科私有的特性,如果Forwarding链路故障,上线链路组内最低开销的端口会立刻选举新的根端口,直接变成Forwarding状态;

配置UPlinkfast的交换机需要为末梢交换机,或者三层结构中的接入层交换机,不能为根桥激活Uplinkfast特性后,交换机会自动调正一些参数 交换机的默认优先级会增加比默认32768更高(一般设置为49152),使得该交换机不会成为根桥;交换机端口的默认Cost会增加3000,以使得该交换机的端口不被选举为指定端口;如果曾经手工修改了优先级或端口的Cost,修改的值保持不变; 全局配置: Switch(config)#spanning-tree uplinkfast 检查STP Uplinkfast状态 Switch#show spanning-tree uplinkfast 5-BackboneFast

SW-3有一个端口处于阻塞状态,不会发送任何BPDU报文SW-1和SW-2中的链路发生故障。这时SW-2无法收到BPDU,它认为它是root,并向SW-3发送BPDU(次优BPDU)。SW-3收到这个报文后,发现这个BPDU并没有比自己存储的BPDU更优,于是就丢弃SW-2的BPDU;经过20秒后,SW-3的fa0/1存储的BPDU老化了,这个端口处于侦听状态,接收并发送BPDUSW-2接收到SW-3发送的BPDU后,发现SW-1才是根网桥,于是停止发送BPDU。最后SW-3的f0/1端口变为Forwarding状态,用时为20+15+15=50s;

如果配置了BackboneFast,SW-3一旦收到SW-2的次优BPDU,会即刻进行一系列步骤以重新计算根端口。SW-3会从根端口向根桥发送根链路请求RLQ。SW1收到RLQ请求,立刻以RLQ响应进行回复,告知自己仍然存活。SW3立即老化掉存储在Fa0/3上的BPDU,端口fa0/3进入listeing状态并开始发送BPDU,SW2从SW3收到BPDU,经过计算出自己的根端口。 全局配置: Switch(config)#spanning-tree backbonefast PVST+和RSTP PVST+简介

传统生成树CST是所有的VLAN运行一个生成树实例,即所有的VLAN拥有相同的root,每台交换机对于所有的VLAN的端口角色都是一样的。

PVST+即Per VLAN Spanning-tree,是思科私有的生成树技术。它可以为每一个vlan单独配置一个生成树实例。这样就允许交换机的冗余链路对分担不同VLAN的流量。

PVST+是思科交换机默认启用的STP协议

为了实现对VLAN的配置,PVST+将桥ID中12比特的扩展系统ID字段来携带VLAN ID。

桥优先级扩展系统IDMAC地址4bit12bit6字节

​ 注意!使用show spanning-tree命令查看交换机的生成树情况时,经常发现优先级并不是4096的倍数。这是因为现实的优先级实际为桥优先级+VLANID。

配置PVST+ Switch(config)#spanning-tree mode pvst 开启PVST模式 Switch(config)#spanning-tree vlan priority 针对指定的VLAN,修改交换机的桥优先级。 SW-1(config)#spanning-tree vlan 1 root primary SW-1(config)#spanning-tree vlan 2 root secondary 针对指定的VLAN,修改交换机的桥优先级。

注意!这条命令实际是检测网络中其他设备的优先级,来调整自己的优先级保持最低。

默认32768的情况下,primary调整为24576;secondary调整为28672;

如果网络中存在最低优先级为4096的交换交换,则这条命令也没有效果

Switch(config-if)#sapnning-tree vlan cost 设置接口的Cost Switch(config-if)#spanning-tree vlan port-priority 设置接口的优先级,IOS默认为128;Catos默认为32 Switch(config)#spanning-tree vlan hello-time Switch(config)#spanning-tree vlan forward-time Switch(config)#spanning-tree vlan max-age 设置PVST+的计时器 RSTP简介 RSTP即为快速生成树协议,在网络拓扑变更时能显著提升STP重新计算的速度RSTP将端口状态缩短为三种: 状态描述Learning不接收也不转发帧,接收且转发BPDU,学习MAC地址Forwarding接收并转发帧,接收并且转发BPDU,学习MAC地址Discarding阻止数据帧的转发,可以理解为禁用、拥塞、侦听的合并 RSTP额外定义了两种端口角色:代替端口(alternate)、备份端口(backup)思科PVST+也有快速的版本,称为RPVST+。可以理解为每个VLAN生成树的RSTP版本。所以对于RSTP+我们不做过多的讨论 RSTP的端口

RSTP定义了两个新的端口角色代替端口(alternate):相当于802.1D的非指定端口,该端口会处于Discarding状态。当链路发生故障,它会过渡为指定端口。备份端口(backup):指定交换机上的额外交换机端口,为交换机提供一条备份冗余链路,处于Discarding状态。 STP端口角色STP状态RSTP端口角色RSTP状态Root portForwardingRoot portForwardingDesinated portForwardingDesinated portForwardingNondesinated portBlockingAlternate port /Backup portDiscardingDisabled-DisabledDiscard ing过滤状态Listening Learning过滤状态Learning RSTP快速转发: 边缘端口edge portRSTP可以将端口分为边缘端口与非边缘端口。边缘端口的类型与Portfast十分相似,可以直接过渡到转发状态。主要用于连接主机、服务器等终端设备;边缘端口一旦收到BPDU,立即失去边缘端口特征,变成一个普通的生成树端口;边缘端口可以使用portfast命令中的关键字来手工配置。 链路类型Link types: RSTP能过在边缘端口及point-to-point链路上快速过渡;如果链路状态是全双工工作的,会假设此链路即为点对点链路;链路类型是通过接口的双工状态是自动获取的,也可以通过命令进行修改。

RSTP拓扑改变机制 拓扑改变机制(检查) RSTP中,只有当非边缘端口过渡到forwarding状态才会触发拓扑变更。也就是说,一个端口如果丢失了连接,则不认为是一次拓扑变更,这与802.1D是有区别的。 拓扑改变机制(传递)

一台交换机收到TC BPDU,它将: 清除从所有接口学习到的MAC表项,除了收到TC BPDU的那个接口。这个动作虽然有可能导致网络中存在短暂的突发性泛洪,但是也有利于刷新CAM表。从所有的**非边缘指定端口及根端口往外发送TC置位的BPDU。**通过这种方式,拓扑变更信息会迅速在网络中泛洪。通过这种方式,TC消息会迅速的泛洪到整个网络。而不用像802.1D那样,把消息传递到root,再由root来通知拓扑变更。 RSTP+配置 Switch(config)#spanning-tree mode rapid-pvst 开启RSTP+模式 Switch(config-if)#spanning-tree link-type point-to-pint 将交换机端口链路设置为点对点模式 MST MST简介

传统生成树CST是所有的VLAN运行一个生成树实例,PVST+为每一个VLAN单独配置一个生成树实例。这两种方式一个无法基于物理拓扑进行区分效率太低;另一个过于极端,需要消耗较多的系统资源。

MST多实例生成树则正好介于两者之间。它可以将一个或多个VLAN放入一个生成树实例进行计算。这样减少了拓扑中生成树实例的数量,降低了交换机CPU的开销。

特点 因为VLAN被分配了不同STP实例中,所以可以实现的负载均衡;交换机只需要运行几个实例,资源小于PVST+;一个MST域中,不同实例的VLAN分组,在所有交换机内需要保持一致,否则会出现问题。 MST域 MST可以将多个VLAN组合放入一个逻辑生成树中。VLAN与实例的关系通过BPDU来确定。因此接收设备可以通过BPDU来是被出这些实例及对应的VLAN。运行MST的交换机在配置中必须包含以下三种MST属性: 包含数字和字母的域名称一个配置修订号将设备支持的VLAN关联到特定的实例中。 交换机必须配置相同MST属性才能进入同一个MST域中。BPDU只会携带VLAN与实例的映射表的摘要信息,配置修订号、域名如果VLAN和实例的映射摘要信息不一致,交换机则认为端口为域的边缘(不属于同一个域) MST实例

MST使用实例(instance)来承载STP信息。每一个实例设置编号,其实实例0用做内部生成树(IST),它包含了所有STP相关的信息。MST域内,每个实例单独进行STP计算,优先级、Cost规则等等与STP一样

MST与其他的STP协议也兼容。对于域外的交换机,IST(实例0)对外呈现出整个MST域为一台虚拟的交换机。

MST配置 Switch(config)#spanning-tree mst configuration 进入到MST配置模式 Switch(config)#spanning-tree mst configuration Switch(config-mst)#name CCNP Switch(config-mst)#revision 1 配置MST域名和修订号,注意同一个域内的交换机配置必须一致 Switch(config)#spanning-tree mst configuration Switch(config-mst)#instance 1 vlan 10,20,30 Sswitch(config-mst)#instance 2 vlan 100-200 配置MST实例与VLAN的映射关系。 注意:1-4086的VLAN,默认属于实例0. SW-1(config)#spanning-tree mst 1 root primary SW-1(config)#spanning-tree mst 2 root secondary SW-2(config)#spanning-tree mst 2 root primary SW-2(config)#spanning-tree mst 1 root secondary 不同的交换机对不同的实例设置主根桥和次根桥 Switch(config)#spanning-tree mst 1 priority 4096 Switch(config)#spanning-tree mst 2 priority 8192 修改交换机MST实例的优先级 Switch(config)#spanning-tree mode mst Switch(config-if)#spanning-tree mst 1 cost 2000 修改交换机端口的MST实例的Cost值 Switch(config-if)#spanning-tree mst 1 port=priority 64 修改交换机端口的MST实例的端口优先级 Switch#show spanning-tree 查看MST生成树配置 Switch#show spanning-tree summary 查看MST生成树配置简要情况 Switch#show spanning-tree mst 查看MST实例映射关系,同时还可以看到实例对于交换机端口的状态。 Switch#show spanning-tree configuration 查看MST的配置信息


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有