生成树协议STP.docx

上传人:b****7 文档编号:25279271 上传时间:2023-06-06 格式:DOCX 页数:23 大小:31.58KB
下载 相关 举报
生成树协议STP.docx_第1页
第1页 / 共23页
生成树协议STP.docx_第2页
第2页 / 共23页
生成树协议STP.docx_第3页
第3页 / 共23页
生成树协议STP.docx_第4页
第4页 / 共23页
生成树协议STP.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

生成树协议STP.docx

《生成树协议STP.docx》由会员分享,可在线阅读,更多相关《生成树协议STP.docx(23页珍藏版)》请在冰豆网上搜索。

生成树协议STP.docx

生成树协议STP

一.STP(SpanningTreeProtocol)(IEEE802.1D)生成树协议

1.在一个交换网络中有可能会出现单点失效的故障,所谓单点失效,指的是由于网络中某一台设备的故障,而影响整个网络的通信。

为了避免单点失效,提高网络的可靠性,可以通过构建一个冗余拓扑来解决。

但是,一个冗余的拓扑,又会给我们的网络造成环路,而产生其它的影响。

为了解决二层环路问题,而设计了SPT协议。

2.当2个Segment之间,只有一个物理设备连接时,就有可能“单点失效”。

3.Segment:

(段的概念)

  a.STP:

一段网络介质(网线/光纤)。

  b.数据封装:

携带4层报头的用户数据。

  c.路由:

一个逻辑子网。

4.避免单点失效的方法就是构造冗余网络。

5.但冗余网络会导致新的问题:

 a.多帧复制

 b.MAC地址表的翻动

 c.广播风暴

6.STP是为克服冗余网络中透明桥接的环路问题而创建的。

 STP通过判断网络中存在环路的地方,并阻断冗余链路来实现无环网络。

7.STP采用STA(SpanningTreeArithmetic)算法。

 STA会在冗余链路中选择一个参考点(生成树的根),将选择到达要的单条路径,同时阻断其他冗余路径。

一旦已选路径失效,将启用其他路径。

二.BPDU(BridgeProtocolDataUnit)

1.STP的各种选举是通过交换BPDU报文来实现的,BPDU是直接封装在以太网帧中的。

2.对于参与STP的所有SW,它们都通过数据消息的交换来获取网络中其他SW的信息,这种消息就被称为BPDU。

3.BPDU是直接封装在二层的协议,其MAC地址最后封装数为:

00。

(01:

80:

c2:

00:

00:

00)

4.BPDU的功能:

 a.选举根桥

 b.确定冗余路径的位置

 c.通过阻塞特定端口来避免环路

 d.通告网络的拓扑变更

 e.监控生成树的状态

5.BPDU每2S由根桥发送一次。

 最初的网络,每个SW都认为自己是根桥,都会发送BPDU,比较LowestBID,选举出一个根桥,当根桥选出来以后。

此时就只有根桥发送BPDU到每个非根桥的根端口上。

非根桥的根端口只进行转发。

6.BPDU分两种类型:

a.配置BPDU--通常由根网桥以周期性间隔发出,包括了STP参数,用于进行各种选举。

b.TCN(topologychangenotification拓扑变更通告)BPDU--这种BPDU是当交换机检测到拓扑发生变更时所产生。

7.配置BPDU包含以下的字段

a.ProtocolID:

固定为0

b.Version:

802.1D(0)

c.MessageType:

(ConfigBPDU=0x00/TCNBPDU=0x80)

d.Flags

e.RootID:

根桥的桥ID

f.CostofPath

g.BridgeID

h.PortID

i.Messageage

j.Maxage

k.Hellotime

l.Forwarddelay

8.TCN(TopologyChangeNotification)BPDU

 这种BPDU是交换机检测到拓扑变更时产生的。

只包含下列三个字段

a.ProtocolID

 b.Version

c.MessageType:

(ConfigBPDU=0x00/TCNBPDU=0x80)

三.STP的4大工作流程(STP里选举参数都是越小越优)

Onerootbridgepernetwork

Onerootportpernonrootbridge

Onedesignatedportpersegment

Nondesignatedportsareblocked

1.Onerootbridgepernetwork(每个网络只有一个根桥)

a.根桥的选举:

LowestBID(最小的BID)

b.STP为每台SW分配唯一的一个标识符,称为BID(BridgeID)。

 BID的组成:

2(BridgePriority优先级)+6(MAC)=8Bytes

 默认Priority:

32768(0x8000)

2950以上的交换机会在这个值上再加上VLAN号,因为CISCO默认启用PVST

c.每个交换机都有一个基准的MAC地址,用下面的命令可以看到

Sw2#showversion

 BaseethernetMACAddress:

00:

0D:

28:

61:

35:

00

交换机的每一个端口都有一个MAC地址,就是以Base(基准)MAC地址加上端口号得到的。

Showinterfacef0/1这一命令可以看到交换机端口的MAC地址

d.查看STP信息--

Sw2#showspanning-tree

Sw3#showspanning-treebrief(低版本用)2900以下的交换机用这一命令

e.PVST(PerVlanStp)

 CiscoSW默认为每个VLAN生成一个STP,互不影响。

由于是为不同的VLAN生成不同的生成树。

所以每一台交换机需要为不同的VLAN生成一个不同的桥优先级,所以在CISCO交换机上,交换机在每一个VLAN中的优先级是默认的32768再加上VLAN的号码。

f.可通过以下命令指定一台交换要为根桥:

Sw1(config)#spanning-treevlan1-10rootprimary(24576=0x6000)(建立优先级,成为根桥)

Sw2(config)#spanning-treevlan1-10rootsecondary(28672=0x7000)(备份根桥,防止优先级根桥showdown了)

Sw1(config)#spanning-treevlan1-10priority4096(设置必须是4096的倍数)

2.Onerootportpernonrootbridge(每个非根桥都要选出一个根端口)

a.根端口(RP):

每个非根桥有且只有一个根端口

b.选举RP/DP的方法:

(a).LowestRID(最小的RID)是SW1(根桥)的BID是在网络中没有选出根桥的时候用的

(b).Lowestpathcosttorootbridge(到达根的最小路径开销)交换机上所有接口自己收到的bpdu中包含的路径开销值

(c).lowestsenderBID(最小的发送BID)交换机上的接口收到的bpdu中包含的桥ID最小的

(d).LowestsenderportID当两台交换机之间有两条线路直连时会用到这一项来选

c.PathCost:

根桥发出的COST值是0,在下一交换机的入口处才加上COST值,出口处COST值不变。

 10Mbps:

100/ 100Mbps:

19/ 1Gbps:

4/ 10Gbps:

2

Sw1#showinterfacesstatus

Sw1#showspanning-tree

d.Sw1(config-if)#spanning-tree(vlan1)cost22每个VLAN都能生成一个自已的生成树,通过改动每个VLAN的COST值可以达到让每个VLAN选择不同的根端口,产生不同的生成树,充分利用了链路

Sw1(config-if)#spanning-treecost22修改所有Vlan的Cost值

e.PortID是由优先级+端口号组成

修改端口优先级:

默认情况下是128

Sw1(config-if)#spanning-treeport-priority16注意:

必须是16的倍数才行

3.Onedesignatedportpersegment(每个Segment只有一个指定端口)

a.选举RP/DP的方法:

(a).LowestRID(最小的RID)是SW1(根桥)的BID

(b).Lowestpathcosttorootbridge(到达根的最小路径开销)

(c).lowestsenderBID(最小的发送BID)

(e).LowestsenderportID

b.根桥的所有端口都是指定端口(DP)。

4.Nondesignatedportsareblocked(非指定端口将被堵塞)

最后,既不是根端口,又不是指定端口的哪些接口被称为非指定端口,这些端口将被block掉。

从而达到防环的目的。

四.生成树的收敛

当网络出现故障导致拓朴发生变化时,生成树要进行收敛,在收敛过程中,一个block接口变到forward状态时会经历以下四种状态变化。

生成树端口状态:

1、blocking--阻塞状态,不转发帧,监听流入的BPDU,不学习MAC地址

2、listening--监听状态,不转发帧,不学习MAC地址,能够决定端口角色

3、learning--学习状态,不转发帧,能学习MAC地址

4、forwarding--转发状态,能够进行正常的帧转发

当拓扑发生变化时,端口从阻塞状态过渡到正常转发状态的时间是30-50S

如果是直连接口down掉,端口状态过渡最大需要30S

如果是非直连故障,最大需要50S

五.二层MAC地址表的收敛

注意:

在网络拓朴发生改变后,不仅会有STP的收敛,还会导致二层MAC地址表的收敛。

1.当发生如下事件时,SW会发送TCN:

 a.链路故障(FWD->BLK)

 b.端口进入转发状态,并且SW已经拥有DP

 c.非根桥从它的DP接收到TCN,并将其转发

2.MAC地址表的收敛过程如下:

a、拓扑发生改变的交换机向RP端口发出TCN的BPDU

b、上级交换机做两件事:

先回应一个TCA置位的BPDU,再继续向自已的RP接口发出TCN的BPDU

c、TCN的BPDU就这样一跳跳的传到根交换机上

d、然后根交换机将自已MAC地址表的老化时间由默认的300S改为转发延迟时间(15S)。

e、根交换机再向网络中发出TC置位的BPDU

f、网络中的其他交换机收到TC置位的BPDU后,也将自已MAC地址表的老化时间由默认的300S改为15S。

这样,每台交换机就快速的老化了MAC地址表,清除掉了已经失效的MAC地址条目。

六.BPDU Timer

1.三个计时器:

MessageAge:

最大存活时间(20S)

 HelloTime:

根桥连续发送BPDU的间隔(2S)

 ForwardTime:

SW在监听和学习状态所停留的时间(15S)

spanning-treevlan1-10hello-time3修改发送BPDU的时间间隔

spanning-treevlan1-10forward-time13修改forward时间

spanning-treevlan1-10max-age33修改最大存活时间

注意:

必须在根桥上修改,否则不起作用。

老化时间(blocking)(lossofBPDUdetected)maxage=20s

监听时间(listening)forwarddelay=15s

学习时间(learning)forwarddelay=15s

      监听BPDU 学习MAC 帧转发

Blocking   √    ×   ×

Listening  √    ×   ×(选举Root/RP/DP)

Learning   √    √   ×

Forwarding  √    √   √

七.STP和802.1Q

1.CISCO交换机上,在采用802.1Q的Trunk中,SW为Trunk中所允许的每个VLAN维护一个STP。

(PVST)

2.对于不支持802.1Q的SW,所有VLAN维护一个STP。

(SSTP)

3.在交换网络中,STP是始终运行的,如果链路没有Trunking.STP只维护VLAN1的信息。

4.PerVLANSpanningTree

优点:

1.基于Vlan的负载均衡;

缺点:

1.BPDU是基于Vlan的基础上运行的;

八.STP的一些增强特性

1.802.1DSTP设计初衷:

网络中断后能够在1分钟之内(Max=50S)恢复。

 伴随着LAN出现3层交换,很多的路由协议(OSPF/EIGRP)都能在几秒之内收敛。

2.Cisco为加快收敛时间,提出了一些私有的优化特性来加速STP的收敛:

 a、PortFast

b、UpLinkFast

c、BackboneFast

3.PortFast:

 

 能够让2层的接入端口(接host)跳过LIS/LRN状态立即进入FWD。

30S->0S

 基于接口,用于接非交换机接口,不要设置在接SW的端口。

Sw1#showspanning-tree

 Type:

Edge[Shr/P2p]

测试:

把交换机的端口shutdown,再noshutdown,观察状态。

启用前和启有后是不一样的。

Sw1(config)#spanning-treeportfastdefault(所有接口启用)全局下用

一般用在接入层的交换机上。

Sw1(config-if)#spanning-treeportfast接口下单独启用

Sw1(config-if)#spanning-treeportfastdisable(某个口禁用,通常是连接另一台交换机的口)

4.UplinkFast:

 在接入层SW上配置,用于检测直连到分布层SW的链路故障,并加速STP的收敛速度。

也可以在分布层交换机上配置,用于检测直连到核心层交换机的链路故障

30S->0S

Sw2(config)#spanning-treeuplinkfast

(Uplinkfast是一个全局命令,将影响SW上的所有VLAN)

Debugspanning-treeevents

测试:

将有效链路口shut,原来BLK口立即转发,

Uplinkfast将网桥PRI增加到49152,将端口Cost增加3000

 使SW不能成为Root。

所以一般配置在接入层SW。

Sw2#showspanning-tree

  ........Uplinkfastenabled

Sw2#showspanning-treeuplinkfast可以看到哪些接口成为备份

Sw2(config)#spanning-treeuplinkfastmax-update-rate200

(每秒所发包的数目,默认值150)

5.BackboneFast:

 BackboneFast是对UplinkFast的一种补充。

用于检测主干SW间的链路故障。

(50S->30S)

要求BackboneFast应用在所有SW上。

当交换机检测到次级BPDU后,将使用替代路径发送RLQBPDU(根链路查询BPDU),RLQBPDU通过中间交换机向根交换机传播,并且根交换机将最终响应。

Sw1(config)#spanning-treebackbonefast

Sw1#showspanning-treebackbonefast可以查看RLQ消息和次级BPDU

如果看到Backbonefastisenable就说明做好了

九.RSTP(RapidSTP) 802.1w当前主流技术

1.RSTP的基本工作原理与STP相同,要经历四个工作流程,也有相同的四个选举规则。

2.当网络拓扑发生改变时,快速生成树协议能够明显地加快重新计算生成树的速度。

启用命令:

spanning-treemoderapid-pvst//理论一大把,命令就一条

3.RSTP的特点:

RSTP中,将接口的链路类型分为两种:

a.共享链路如果接口工作在半双工则是share类型的链路

b.点到点链路如查接口工作在全双工则是point-to-point类型的链路

注意:

仅仅只在点到点链路上RSTP才能实现快速收敛

4.RSTP中定义了3种端口状态:

 Discarding/Learning/Forwarding

5.RSTP中的端口角色:

 RP:

根端口

 DP:

指定端口

 AlternatePort:

替代端口

 BackupPort:

备份端口

6.默认集成backbonefast

将portfast也集成了,改名为边缘端口,要手工加载,加载的方法都和portfast一样。

7.RSTP中BPDU的格式:

 在Flag字段总共8bit,STP中只用到2bit,

 RSTP用到其他6bit来完成端口状态和角色的编码。

 Version:

2

 MessageType:

2

8.在802.1D中,只有当SW从根端口收到BPDU时,非根桥才能转发BPDU。

 在802.1w中,每个SW会每隔2S就发送一次包含当前信息的BPDU。

9.定义了Proposal和agreement消息用来做快速收敛

10.关于拓朴变更后MAC地址表的收敛过程:

注意:

在RSTP中,只有当非边缘端口进入转发状态的时候才会导致拓扑变更,才会产生TCBPDU,连接的丢失不会导致拓扑变更,也不会产生TCBPDU。

在RSTP中,每台交换机都可以下发TC置位的configBPDU,这样也实现了快速收敛,除非网络有老式设备,否则RSTP不需要使用TCNBPDU。

11.STP优缺点:

业内标准

优点:

交换机负载小

缺点:

收敛时间长、负载均衡

12.PVST优缺点:

cisco

优点:

负载均衡

缺点:

收敛时间长、交换机负载大

13.RSTP优缺点:

业内标准

优点:

收敛速度快、多个vlan公用一个生成树,交换机执行效率较高

缺点:

不能负载均衡

14.RPVST:

cisco

优点:

负载均衡、收敛速度快

缺点:

交换机负载大

十.MST(MultipleSpanningTree) 802.1s

1.CST(CommonSpanningTree)

缺点:

所有的Vlan都是按照同一个STP来工作的。

优点:

开销小。

2.PVST

优点:

可以为每个Vlan配置一个STP。

可以实现基于Vlan.L2的负载分担。

缺点:

SW维护很多的STP,开销大。

Vlan改变,波及大。

3.MST(对CST和PVST的折衷方案)

a.MST对vlan分组(Instance)

b.每个分组可以有独立的STP,实现L2负载分担。

spanning-treemodemst(启用MST)

spanning-treemstconfiguration

nameWOLF

revision10

instance1vlan1-5

instance2vlan6-10

spanning-treemst1priority4096修改本交换机在这一大堆VLAN中的优先级

intf0/5

spanning-treemst1cost19修改本接口在这一组中的开销

showspanning-treemst

showspanning-treemstconfiguration

showcurrent

showspending

有一个默认组0,没划分的VLAN就在这里面

MST不能和PVST共存,可以和RSTP共存

十一.优化STP

1.BPDU防护:

 对于设置了PortFast接口,却收到了BPDU,如果设置了BPDU防护,就能将此接口关闭,而不会进入生成树状态。

spanning-treeportfastbpduguarddefault(全局开启)

intf0/1

spanning-treebpduguardenable(接口开启)

showspanning-treesummary[totals]

Showerrdisablerecovery显示可导致接口errdisable的选项

设置自动恢复:

errdisablerecoverycausebpduguard设置300S(默认)后自动修复bpduguard所导致的errdisable

errdisablerecoveryinterval30修改默认的修复时间

2.BPDU过滤:

不发也不收

 通过使用BPDU过滤,能够防止在启用portfast的端口上向host发送不必要的BPDU。

注意:

如果在全局下配置,从端口收到BPDU的话,不会禁掉端口,会转为正常的STP状态。

如果在接口下配置,从端口收到BPDU的话,会丢弃。

如果在同一接口设置Guard/Filter, F优于G

BPDU过滤只是一种优化技术,在接口上配置BPDU过滤有可能导致桥接环路,所以不推荐使用。

spanning-treeportfastbpdufilterdefault(全局开启)

intf0/9

spanning-treebpdufilterenable(接口开启)

showspanning-treesummarytotals

3.根保护:

 能够将接口强制设为DP,进而防止对端SW成为Root。

设置了根保护的端口如果收到了一个优于原BPDU的新的BPDU,它将把本端口设为blocking禁止状态,过一段时间,如果没再收到BPDU,它会恢复端口,这一点不同于BPDU的防护。

intf0/5

spanning-treeguardroot

测试:

将其他SW变成根桥,看原来根桥的现象:

showspanning-treeinconsistentports

Showspanning-treeinterfacef0/2detail

showspanning-tree

Fa0/2DesgBKN*19128.2P2p*ROOT_Inc

4.环路保护:

对于软件故障处理得更好

 当STP中的BLK端口错误的过渡到FWD状态,有可能出现环路。

 启用Loopguard的接口,如果原来的BPDU老化了,不会转到listening状态,而将自动转为inconsistent状态

在inconsistent状态下,会再根据对端交换机发过来的BPDU进行决定端口状态。

如果是出现了单向链路失效的现象,对端交换机是不会有BPDU过来的,所以接口将一直保持inconsistent。

 默认情况下是禁用的。

spanning-treeloopguarddefault(全局)

intf0/9

spanning-treeguardloop(接口)

5.UDLD单向链路失效检测:

对于硬件故障处理得更好

 单向链路失效是比较常见的现象,以太网线缆的收发出现问题。

当链路保持“UP”的时候,接口却没有流量收到。

UDLD是一种二层协议,它与第一层机制协同工作来确定链路的物理状态。

 启用UDLD能使得这种接口自动进入“err-disable”状态。

启用了UDLD的交换机之间会互相发送UDLD协议包来保持联系,默认间隔15S

Sw1(config)#udldenable也可在接口下配

showudld

积极模式的UDLD--当端口停

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1