STPRSTPMSTP教材.docx

上传人:b****2 文档编号:1575498 上传时间:2023-05-01 格式:DOCX 页数:66 大小:2.04MB
下载 相关 举报
STPRSTPMSTP教材.docx_第1页
第1页 / 共66页
STPRSTPMSTP教材.docx_第2页
第2页 / 共66页
STPRSTPMSTP教材.docx_第3页
第3页 / 共66页
STPRSTPMSTP教材.docx_第4页
第4页 / 共66页
STPRSTPMSTP教材.docx_第5页
第5页 / 共66页
STPRSTPMSTP教材.docx_第6页
第6页 / 共66页
STPRSTPMSTP教材.docx_第7页
第7页 / 共66页
STPRSTPMSTP教材.docx_第8页
第8页 / 共66页
STPRSTPMSTP教材.docx_第9页
第9页 / 共66页
STPRSTPMSTP教材.docx_第10页
第10页 / 共66页
STPRSTPMSTP教材.docx_第11页
第11页 / 共66页
STPRSTPMSTP教材.docx_第12页
第12页 / 共66页
STPRSTPMSTP教材.docx_第13页
第13页 / 共66页
STPRSTPMSTP教材.docx_第14页
第14页 / 共66页
STPRSTPMSTP教材.docx_第15页
第15页 / 共66页
STPRSTPMSTP教材.docx_第16页
第16页 / 共66页
STPRSTPMSTP教材.docx_第17页
第17页 / 共66页
STPRSTPMSTP教材.docx_第18页
第18页 / 共66页
STPRSTPMSTP教材.docx_第19页
第19页 / 共66页
STPRSTPMSTP教材.docx_第20页
第20页 / 共66页
亲,该文档总共66页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

STPRSTPMSTP教材.docx

《STPRSTPMSTP教材.docx》由会员分享,可在线阅读,更多相关《STPRSTPMSTP教材.docx(66页珍藏版)》请在冰点文库上搜索。

STPRSTPMSTP教材.docx

STPRSTPMSTP教材

三康技术有限公司

Huawei-3ComTechnologiesCo.,Ltd.

文档编号DocumentID

密级Confidentialitylevel

内部公开

文档状态DocumentStatus

共81页Total81pages

Draft1.00

STP/RSTP/MSTP基础

 

拟制

Preparedby

边江02193

Date

日期

2005-02-26

评审人

Reviewedby

Date

日期

批准

Approvedby

Date

日期

 

华为三康技术有限公司

Huawei-3ComTechnologiesCo.,Ltd.

版权所有XX

Allrightsreserved

目录TableofContents

1STP/RSTP基础5

1.1培训目标5

1.2STP出现的背景6

1.3STP的基本概念8

1.3.1基本思想8

1.3.2一个根桥10

1.3.3二种度量11

1.3.4三要素选举13

1.3.5四个比较原则15

1.3.6五种端口状态19

1.4STP技术细节21

1.4.1初始化生成树的过程21

1.4.2拓扑稳定之后25

1.4.3STP协议报文26

1.4.4端口的状态迁移29

1.4.5STP拓扑变化30

1.4.63个计时器31

1.4.7拓扑变化32

1.5RSTP对STP的改进36

1.5.1端口角色的增补38

1.5.2端口状态的重新划分40

1.5.3BPDU格式的改变41

1.5.4BPDU的处理方式42

1.5.5快速收敛机制43

1.5.6我司交换机的其他实现特性44

1.6RSTP技术细节45

1.6.1P/A协商:

快速收敛机制45

1.6.2RSTP的拓扑变化处理48

1.6.3RSTP与STP的互操作49

1.7Cisco的STP特性50

1.7.1PVST和PVST+50

1.7.2PortFast51

1.7.3UplinkFast和BackboneFast52

2MSTP基础53

2.1培训目标53

2.2协议产生背景54

2.2.1RSTP回顾54

2.3协议基本内容58

2.3.1MSTP基本思想58

2.3.2MSTI60

2.3.3IST和CST61

2.3.4CIST和SST62

2.3.5MST域63

2.3.6角色修改65

2.4协议具体行为67

2.4.1MSTP基本原则67

2.4.2MSTP消息优先级向量69

2.4.3BPDU格式变化71

2.4.4拓扑收敛75

2.5配置实例76

2.5.1配置命令列举76

2.5.2组网实例78

2.6更多探讨82

推荐阅读84

参考资料84

表目录TableofForms

表1IEEE802.1t路径开销列表12

表2STP端口五种状态19

表3配置BPDU基本格式26

表4Flag字段格式26

表5RSTPFlag字段格式40

表6MSTBPDU和RSTBPDU相同的前35字节70

表7MST专有字段71

表8MSTI配置信息71

 

STP/RSTP/MSTP基础教材

1STP/RSTP基础

1.1培训目标

生成树协议(Spanning-TreeProtocol,以下简称STP)是一个用于在局域网中消除环路的协议。

运行该协议的交换机通过彼此交互信息而发现网络中的环路,并适当对某些端口进行阻塞以消除环路。

由于局域网规模的不断增长,STP已经成为了当前最重要的局域网协议之一。

完成本教程,读者应该能够描述STP、RSTP的基本原理、交换机行为、端口状态、角色以及具体组网应用,大体了解在网络拓扑发生变化后收敛的过程;能够描述STP的一些不足,以及RSTP对STP的改进。

1.2STP出现的背景

提及生成树协议的由来,我们先来看看没有生成树的网络。

如图1展示了现在普遍采用的多交换机来实现冗余的局域网结构。

 

在图1所示的网络中,可能产生如下的两种情况:

´广播环路(BroadcastLoop)

显然,当PCA发出一个DMAC为广播地址的数据帧时,该广播会被无休止的转发。

´MAC地址表震荡(BridgeTableFlapping)

在图1中,即使是单播,也有可能导致异常。

交换机SW1可以在端口B上学习到PCB的MAC地址,但是由于SW2会将PCB发出的数据帧向自己其它的端口转发,所以SW1也可能在端口A上学习到PCB的MAC地址。

如此SW1会不停的修改自己的MAC地址表。

这样就引起了MAC地址表的抖动(Flapping)。

1.3STP的基本概念

1.3.1基本思想

STP可以消除网络中的环路。

其基本理论依据是根据网络拓扑构建(生成)无回路的连通图(就是树),从而保证数据传输路径的唯一性,避免出现环路报文流量增生和循环。

STP是工作在OSI第二层(DataLinkLayer)的协议。

STP协议通过在交换机之间传递特殊的消息并进行分布式的计算,来决定一个有环路的网络中,哪台交换机的哪个端口应该被阻塞(Blocking),用这种方法来剪切掉环路。

IEEEstd802.1D协议文档的第8章描述了STP。

 

1.3.2一个根桥

树形的网络结构,必须要有根,于是STP引入了根桥(RootBridge)的概念。

对于一个STP网络,根桥有且只有一个。

它是整个网络的逻辑中心,但不一定是物理中心。

但是根据网络拓扑的变化,根桥可能改变。

而且一旦网络收敛之后,只有根桥按照一定的时间间隔产生并且向外发送一种称为“配置消息”的协议报文,其他的交换机仅对该种报文进行“接力”,这样来保证拓扑的稳定。

1.3.3二种度量

生成树的生成计算有两大基本度量依据:

ID和路径开销(PC,PathCost)。

ID又分为两种:

BID和PID。

BID即BridgeID,或称为桥ID。

IEEE802.1D标准对这个值的规定是由16位的桥优先级(BridgePriority)与桥MAC地址构成。

BID桥优先级占据高16位,其余的低48位是MAC地址。

在STP网络中,桥ID最小的交换机会被选举为根桥。

在我司设备上,桥优先级可以手工配置0–61440(默认为32768)。

PID即PortID,或称为端口ID。

也是由两部分构成的,高8位是端口优先级,低位是端口号。

PID只在某些情况下对选择指定端口有作用。

在我司设备上,端口优先级可以手工配置0–240(默认为128)。

路径开销(PathCost)是一个端口量,反映了本端口所连接网络的开销。

该值越低,表示这个端口连接的网络越好。

在一个STP网络中,某端口到根桥累计的路径开销就是通过所经过的各个桥上的各端口的路径开销累加而成,这个值叫做根路径开销(RootPathCost)。

根路径开销的作用将在后文介绍。

IEEE802.1t中规定的路径开销如表1所示,而各厂商采用的路径开销标准不尽相同。

表1IEEE802.1t路径开销列表

带宽

STP路径开销

4Mbps

250

10Mbps

100

16Mbps

62

45Mbps

39

100Mbps

19

155Mbps

14

622Mbps

6

1Gbps

4

10Gbps

2

1.3.4三要素选举

从一个初始的有环拓扑生成树状拓扑,总体来说有三个要素:

根桥、根端口和指定端口。

根桥是全网意义上的。

通过交换特殊的协议报文,网络中很快就会对最小的BID达成一致。

所谓根端口,是指一个非根桥的STP交换机上离根桥最近的端口,这个端口的选择标准就是上面提过的根路径开销。

在本交换机上所有使能STP的端口中,根路径开销最小者,就是根端口。

很显然,在一个STP交换机上根端口有且只有一个。

指定端口的概念是针对于某网段的,是流量从根桥方向来而从这个端口转发“出去”。

从一个连接到STP交换机的网段来说,该网段通过指定端口接收到根桥方向过来数据。

根桥上的所有端口都是指定端口。

在每一个网段上,指定端口有且只有一个。

在拓扑稳定状态,只有根端口和指定端口转发流量,其他的非根非指定端口都处于阻塞(Blocking)状态,它们只接收STP协议报文而不转发用户流量。

一旦根桥、根端口、指定端口选举成功,则整个树形拓扑就建立完毕了。

图2展示了STP的树形拓扑。

1.3.5四个比较原则

BPDU分为两类:

配置BPDU(配置BPDU)和TCNBPDU(TopologyChangeNotificationBPDU)。

配置BPDU用来生成树拓扑的配置BPDU,维护网络拓扑;TCNBPDU则只在拓扑发生变化的时候发出,用来通知相关的交换机网络发生变化。

配置BPDU主要携带如下页表中所示的几个重要信息。

STP交换机接收配置BPDU,并处理上述字段。

最低BID。

用来选根桥。

STP交换机之间根据上页表中所示根桥BID字段选择最低的BID。

最小的累计根路径开销。

用来在非根桥上选择根端口。

在根桥上,每个端口到根桥的根路径开销都是0。

在接收到BPDU后,端口会根据BPDU中携带的RPC加上自己的PC,计算出自己到根的累计根路径开销。

 

最小发送者BID。

如上页图,假设SW2的BID小于SW3的BID,如果在SW4的A、B两个接收到的BPDU里面的根路径开销相等,那么端口B将成为根端口。

最小PID。

只有在如下图所示的情况下,PID才起到了作用。

SW1的端口A的PID小于端口B的PID。

由于两个端口上收到的BPDU中,根路径开销、发送交换机BID都相同,所以消除环路的依据就剩下PID了。

在STP的所有的比较量中,都遵循“数值越低就越好”的原则,如BID、PID和路径开销等等都是这样的。

1.3.6五种端口状态

 

STP端口有5种状态,如表2所示。

表2STP端口五种状态

状态

说明

Forwarding

在这种状态下,端口转发用户流量的状态,只有根端口或指定端口才有这种状态。

Learning

这是一种过渡状态。

在这种状态下,交换机会根据收到的用户流量(但仍然不转发流量)构建MAC地址表,所以叫做学习“状态”。

Listening

这是一种过渡状态。

在这种状态下,上述的三步选择(根桥、根端口、指定端口)就是在该状态内完成。

Blocking

在这种状态下,端口仅仅接收并处理BPDU,不转发用户流量。

Disabled

或Down,认为阻断或物理上断掉。

端口处于Listening和Learning状态的时间是由ForwardDelayTimer来统一控制的,这两个时间总是一样长的。

这5种状态在相应条件下的相互转化。

1.4STP技术细节

1.4.1初始化生成树的过程

此时通过交换BPDU,进行选举的工作:

即选根桥,选根端口,选指定端口。

如图5中,用“{}”标注的四元组表示了由根桥BID(图中以SW1_MAC和SW2_MAC代表两个交换机的BID)、累计根路径开销、发送者BID、发送端口PID构成的有序组。

由于每个桥都认为自己是根桥,所以在每个端口所发出的BPDU中,根桥字段都是用各自的BID,RootPathCost字段是累计的到根桥的开销,发送者BID是自己的BID,端口PID是发送该BPDU端口的端口ID。

BPDU会按照HelloTime指定的时间间隔来发送,默认的时间为2秒。

 

一旦在某端口上收听到比自己发的还要“好”的BPDU,那么这个端口就提取该BPDU中的某些信息,更新自己的信息。

再次强调一下,比较BPDU的“好坏”的方式(自己的或其他交换机的),都是根据上面提到的四元组来完成的,即最低桥ID、最低到累计根路径开销,最低发送者BID(有时还需要最低端口PID,见前文)。

该端口缓存他人BPDU后,自己则立即停止发送BPDU。

当发送BPDU的时候,交换机填充SenderBID字段的总是自己的BID,而填充RootBID字段的是“当前我所认为是根桥的”BID。

如图4所示,SW2的端口B由于接收到了更好的BPDU,从而认为此时SW1是根桥,然后SW2的其他端口再发送BPDU的时候,在根桥字段里面填充的就是SW1_BID了。

此过程不断交互进行,直到所有交换机的所有端口都认为根桥是相同的,就说明根桥已经选择完毕了。

每个非根桥STP交换机都要选择一个根端口,根端口对于一个交换机来说有且只有一个。

其本质是“距离根桥最近的端口”,这个最近的衡量是靠累计根路径开销来判定的,即累计根路径开销最小的端口就应该是根端口。

累计根路径开销的计算方法如下:

端口收到一个BPDU后,抽取该BPDU中累计根路径开销字段的值,加上该端口本身的路径开销。

所谓该端口本身的路径开销只体现直连链路的开销,这个值是端口量,可以人为配置的。

如果有两个以上的端口计算得到的累计根路径开销相同,那么选择收到发送者BID最小的那个端口作为根端口。

在网段上抑制其他端口(无论是自己的还是其他交换机的)发送BPDU的端口,就是该网段的指定端口。

如图4,假定SW1的MAC地址小于SW2的MAC地址,则SW1的端口A会成为指定端口。

根桥的所有端口都是指定端口(根桥物理上环路这种情况除外)。

在收敛后,只有指定端口和根端口可以处于转发状态。

其他端口都是Blocking状态,即收听BPDU而不转发用户流量。

在一个网段上拥有指定端口的交换机被称作该网段的指定桥。

如图4中,SW1-SW2间网段的指定桥为SW1。

 

1.4.2拓扑稳定之后

1.4.3STP协议报文

本节我们来详细的看一下STP的协议报文,如下页表3、表4所示。

总结上文,可知配置BPDU在是一种“心跳”报文,只要端口上使能了STP,则配置BPDU就会按照HelloTimer所规定的时间间隔发出。

在初始化过程中,每个桥都主动发出配置BPDU;但在网络拓扑稳定以后,只有根桥主动发送配置BPDU,其他桥在收到上游传来的配置BPDU后,才触发发送自己的配置BPDU。

配置BPDU的长度至少要35个字节,而且如果当且仅当发送者BID或发送端口PID两个字段中至少有一个和本桥本接收端口不同,才会被处理,否则丢弃,这样避免了处理和本端口信息一致的BPDU。

 

表3配置BPDU基本格式

字节

说明

协议号

2

总是0

版本

1

总是0

类型

1

当前BPDU的类型

0=配置BPDU,0x80=TCNBPDU

标志

1

最低位=TC(TopologyChange,拓扑变化)标志

最高位=TCA(TopologyChangeAcknowledgment,拓扑变化确认)标志

根桥BID

8

当前根桥的BID

根路径开销

4

本端口累计到根桥的开销

发送者BID

8

本交换机的BID

发送端口PID

2

发送该BPDU的端口ID

MessageAge

2

该BPDU的消息年龄

MaxAge

2

消息老化年龄

HelloTime

2

发送两个相邻BPDU间的时间间隔

ForwardDelay

2

控制Listening和Learning状态的持续时间

表4Flag字段格式

Bit7

Bit6

Bit5

Bit4

Bit3

Bit2

Bit1

Bit0

TCA

保留未使用

TC

TCNBPDU内容比较简单,只有表3种列出的前3个字段。

且类型字段为0x80。

TCA位只有在回应TCNBPDU的配置BPDU中置1,后面会详细进行说明。

1.4.4端口的状态迁移

STP端口状态的迁移是STP协议中非常重要的一部分。

端口状态机是整个协议的核心。

1.4.5STP拓扑变化

RSTP中拓扑变化的这两个标准有所变化,被简化成一个标准。

1.4.63个计时器

对于STP,一共有3个计时器影响着端口状态以及网络的收敛,如下所述:

1HelloTimer:

STP交换机发送BPDU的时间间隔。

当网络拓扑稳定之后,该计时器的修改只有在根桥修改才有效。

根桥会在之后发出的BPDU中填充适当的字段以向其他非根桥传递该计时器修改信息。

但当拓扑变化之后,TCNBPDU的发送不受这个计时器的管理。

2ForwardingDelayTimer:

指一个端口Listening和Learning的各自时间,默认为15秒,即Listening状态持续15秒,随后Learning状态再持续15秒。

这两个状态下的端口会处于Blocking状态,这是STP用于避免临时环路的关键。

3MaxAge:

端口的BPDU老化的时间,前文已经探讨过。

端口会根据接收到的BPDU存储所接收到的最好的四个信息(根桥BID、累计根路径开销、发送者BID和发送端口PID)。

每次接收到合适的BPDU,端口都会启动这个MaxAge计时器。

超过这个MaxAge时间端口接收不到合适BPDU,就会认为网络直径过大。

这个时间默认为20秒。

我们在以下的几小节中将列举几种STP拓扑变化的情况来探讨。

1.4.7拓扑变化

如果非根桥交换机的指定端口断掉,则交换机会立即通过根端口以一定速率发送TCNBPDU给上游交换机,上游交换机收到该TCNBPDU后会立刻向下游交换机回应TCABPDU(即把标志字段的TCA位置位的配置BPDU)并继续向上游传递TCNBPDU。

下游交换机收到TCA消息的交换机会停止发送TCNBPDU。

如此不断的传递,直到传到根桥。

然后,根桥将自己的MAC地址表老化时间改为ForwardDelay。

其后会持续ForwardDelay+MaxAge长的时间内在发出的配置BPDU中把TC位置位。

其下游任何交换机接收到根桥传递过来的TC置位的配置BPDU都会将自己的MAC地址表老化时间修改为ForwardDelay那么长时间。

该过程如图7描述。

以图7为例,稳定后的拓扑如图所示。

如果SW2的B端口连接网络断掉,则SW2会从端口A发送TCNBPDU。

SW1收到后立刻发回TCA消息,同时,由于SW1是根桥,其发出的BPDU也直接将TC置位。

SW2接收到TC置位的BPDU,马上将自己的MAC地址标的老化时间修改为ForwardDelay。

SW3由于也收到了TC置位的配置BPDU,MAC地址表也会在ForwardDelay时间后老化。

与此同时,SW3的端口A会开始等待MaxAge+Listening+Learning后进入Forwarding状态。

思考:

SW3会不会发TCN?

答案:

会的,在等待MaxAge以后发出。

拓扑变化后的BPDU发送处理过程。

图中1~7标志先后的七个步骤。

对于非指定端口(根端口或者Blocking端口),在收到比自己当前端口信息更优或者一样好的BPDU,则会更新MaxAge计时器。

如果超过这个时间仍然收不到满足条件的BPDU,端口便会迁移到Listening状态,准备重新进行选择。

如图7,如果SW2的A端口连接网络断掉,则其B端口会发出认为自己为根桥的BPDU,然而SW3端口A由于不是指定端口,所以会等待MaxAge时间,则会继续再经历Listening+Learning时间后转入指定端口进入Forwarding,整个转换时间默认要20+15+15=50秒。

指定端口收到次等BPDU时,会立刻发出自己的更好的配置BPDU回应。

 

1.5RSTP对STP的改进

事实上,STP的设计有一些细节考虑的并不周全,而本身采用的计时器机制又十分笨拙。

此外,没有对一些特殊的情况进行设计,导致了协议整体上比较粗糙。

而RSTP则是局域网中最精细的协议之一。

 

STP协议虽然能够解决环路问题,但是还是有很多不足之处。

首先,STP并没有细致区分端口状态和端口角色。

网络协议的优劣往往取决于协议是否对各种情况加以细致区分。

事实上,从用户角度上看Listening、Learning和Blocking状态是没有区别的,都同样不转发用户流量。

从使用和配置上来讲,端口之间最本质的区别并不在于端口状态,而是在于端口扮演的角色。

根端口和指定端口也可能处于Listening状态,也可能都处于Forwarding状态。

其次,STP算法是被动的算法,对网络是否已经达到收敛没有一种反馈机制。

对待拓扑变化的基本的方法是通知根桥,修改MAC地址表老化时间,自动学习,确立新路径。

这种以计时器来等待的方式显然是浪费时间,响应迟缓。

再次,STP的算法要求在稳定拓扑里,根桥主动发出BPDU而其他交换机进行中继,这样整个STP网络

 

1.5.1端口角色的增补

根据STP的不足,RSTP新增加了端口的角色概念。

并且把端口属性充分的按照状态和角色解耦,使得可以更加精确的描述端口。

RSTP的端口角色共有4种:

即根端口、指定端口、Alternate端口和Backup端口。

Alternate端口和Backup端口的形象说明如图9、图10所示。

从BPDU的发送上来看,Alternate端口就是由于学习到其它交换机的发送的BPDU而阻塞的端口;而Backup端口就是由于学习到自己发送的BPDU而阻塞的端口。

从用户流量上来看,Alternate端口提供了从指定桥到根的另一条可切换路径,作为指定端口的备选切换;而同时Backup端口,作为根端口的备份,提供了另外一条从根桥到叶节点的可切换的通路。

给一个RSTP域内所有端口分配角色的过程就是整个拓扑收敛的过程。

 

1.5.2端口状态的重新划分

RSTP的状态规范把原来的5种状态缩减为3种。

根据端口是否转发用户流量和学习MAC地址来划分。

如果不转发用户流量也不学习MAC地址,那么就是Discarding状态;如果不转发用户流量但是学习MAC地址,那么就是Learning状态;如果既转发用户流量又学习地址,那么就是Forwarding状态。

上表显示了新的状态与STP相应状态的比较。

注意,我们这里由于已经将端口状态和端口角色解耦,所以状态和是什么样的端口没有必然联系。

(stp中只有根端口和指定端口有forwarding状态)

1.5.3BPDU格式的改变

在BPDU的格式上,除了保证和STP格式基本一致之外,RSTP作了一些小的变化。

一个是在Type字段,配置BPDU类型不再是0而是2,版本号也变成了2。

所以运行STP的交换机收到该类BPDU时会丢弃。

另一个变化是在Flag字段,把原来保留的中间6位使用起来。

这样改变了的配置BPDU叫做RSTBPDU。

RSTBPDU的Flag字段格式如表5所示。

表5 RSTPFlag字段格式

端口角色=00未知

01根端口

10Alternate/Backup

11指定端口

Bit7

Bit6

Bit5

Bit4

Bit3

Bit2

Bit1

Bit0

TCA

Agreement

Forwarding

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

当前位置:首页 > PPT模板 > 动态背景

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2