文档库 最新最全的文档下载
当前位置:文档库 › 华为与CISCO交换机二层生成树协议互通分析v1_0

华为与CISCO交换机二层生成树协议互通分析v1_0

华为与CISCO交换机二层生成树协议互通分析

目录

第1章前言 (1)

第2章生成树原理分析 (2)

2.1 STP原理 (2)

2.1.1 STP基本概念 (2)

2.1.2 STP技术细节 (5)

2.2 RSTP原理 (7)

2.2.1 RSTP基本概念 (7)

2.2.2 RSTP技术细节 (10)

2.3 MSTP原理 (11)

2.3.1 MSTP基本概念 (11)

2.3.2 MSTP技术细节 (14)

2.4 Cisco厂家支持情况 (14)

2.4.1 PVST (14)

2.4.2 PVST+ (15)

2.4.3 Rapid-PVST+ (16)

2.4.4 MST (16)

第3章华为与PVST+/RPVST+的互通性分析 (18)

3.1 综述 (18)

3.2 CISCO报文类型分析 (19)

3.3 链路开销算法 (20)

3.4 测试结果 (20)

第4章混合组网案例介绍 (22)

4.1 案例一 MSTP互通(推荐) (22)

4.1.1 网络拓扑 (22)

4.1.2 网络配置 (22)

4.1.3 注意要点 (25)

4.2 案例二 STP与PVST+互通(透传方案) (26)

4.2.1 网络拓扑 (26)

4.2.2 网络配置 (26)

4.2.3 注意要点 (29)

4.3 案例三 STP与PVST+互通(阻塞口在华为) (30)

4.3.1 网络拓扑 (30)

4.3.2 网络配置 (30)

华为与CISCO交换机二层生成树协议互通分析

4.3.3 注意要点 (32)

4.4 案例四 STP与PVST+互通(阻塞口在CISCO) (34)

4.4.1 网络拓扑 (34)

4.4.2 网络配置 (34)

4.4.3 注意要点 (36)

第5章附录 (38)

华为与CISCO交换机二层生成树协议互通分析

关键词:生成树

摘要:企业网环境常见的几种交换机二层生成树协议互通方案进行技术和案例分析,希望能够为客户和一线员工提供一种互通解决方法及思路

缩略语清单:STP, RSTP, MSTP, PVST+, Rapid-PVST+

参考资料清单:

华为与CISCO交换机二层生成树协议互通分析

第1章前言

生成树协议是一个用于在局域网中消除环路的协议。运行该协议的交换机通过彼此交互信息而发现网络中的环路,并适当对某些端口进行阻塞以消除环路。由于局域网规模的不断增长,生成树已经成为了当前最重要的局域网协议之一。

在交换机二层网络环境里,经常会遇到与CISCO厂家设备对接的情形,由于CISCO厂家的交换机设备默认使用的是私有的生成树协议,一线服务员工在交付或规划设计项目时遇到与CISCO设备进行对接的场景,通常会显得无从下手,此文档就二层网络的典型组网交换机互通方案进行讲解,希望能够为客户和一线员工提供一种解决方法及思路。

华为与CISCO交换机二层生成树协议互通分析

第2章生成树原理分析

2.1 STP原理

2.1.1 STP基本概念

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

交换机的STP操作可以分为如下3个主要步骤:

●选举根桥

●选举根端口

●选举网段的指定端口

每一阶段都遵循以下规则:

●最小的根交换机ID

●到根交换机最小的PATH COST

●最小的发送BPDU的交换机ID

●最小的发送BPDU的端口ID

●最小的接收BPDU的端口ID

交换机之间定期发送BPDU包(根交换机产生BPDU,其他非根交换机转发),交换生成树配置信息,以便能够对网络的拓扑、花费或优先级的变化做出及时的响应。BPDU分为两种类型,包含配置信息的BPDU包称为配置BPDU(Configuration BPDU),当检测到网络拓扑结构变化时则要发送拓扑变化通知BPDU(Topology CHANGE NOTIFICATION BPDU)。

图2-1配置bpdu报文的包结构

如图2-1所示首先是以太网帧头,包括dlc头部、llc头部,接下来是bpdu字段,最后是为了补齐60

华为与CISCO交换机二层生成树协议互通分析

字节边界用的dlc填充(padding)8字节。

图2-2配置bpdu报文的报文格式拓扑变化通知BPDU报文格式

图2-3拓扑变化bpdu报文的报文格式抓包分析报文及字段解析

华为与CISCO交换机二层生成树协议互通分析

图2-4配置bpdu报文抓包分析

?bpdu采用的是多播目标mac地址:01-80-c2-00-00-00(bridge_group_addr:网桥组多

播地址)

?dlc后面所跟的802.3帧的总长度为38字节,是指除了dlc头、尾之外的所有内容的长度

?协议标识符和协议版本都是固定的0。

?bpdu类型表明是一个配置bpdu

?bpdu标志字段表明这既不是一个拓扑变更帧也不是一个拓扑变更确认帧

?随后是根网桥标识,其中:

优先级是0x8000,即10进制的32768(默认值)

mac基地址:00:e0:fc:01:39:00

?随后是根网桥代价:0(表示本交换机就是根网桥)

?随后是发送网桥id,其中:

优先级是0x8000,即10进制的32768(默认值)

mac基地址:00:e0:fc:01:39:00

?端口:发送此bpdu的交换机端口

?最后是一些定时器的值:

?消息年龄:当前为0

?消息寿命:20秒(默认值)

?根hello时间:2秒(发送bpdu的时间间隔)

?转发延迟:15秒(交换机端口处于侦听、学习状态的时间)

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

华为与CISCO交换机二层生成树协议互通分析Array表2-1拓扑变化bpdu报文的报文格式

2.1.2 STP技术细节

初始生成树的过程:

网络初始化的时候,所有网络中的STP交换机都认为自己是“根桥”。在每个端口所发出的BPDU中,根桥字段都是用各自的BID,Root Path Cost字段是累计的到根桥的开销,发送者BID是自己的BID,端口PID是发送该BPDU端口的端口ID。BPDU会按照Hello Time指定的时间间隔来发送,默认的时间为2秒。

一旦在某端口上收听到比自己发的还要“好”的BPDU,那么这个端口就提取该BPDU中的某些信息,更新自己的信息。比较BPDU的“好坏”的方式(自己的或其他交换机的),都是根据四元组来完成的,即最低桥ID、最低到累计根路径开销,最低发送者BID(有时还需要最低端口PID)。该端口会缓存最好的BPDU。当发送BPDU的时候,交换机填充Sender BID字段的总是自己的BID,而填充Root BID字段的是“当前我所认为是根桥的”BID。

根端口的选择:

每个非根桥STP交换机都要选择一个根端口,根端口对于一个交换机来说有且只有一个。其本质是“距离根桥最近的端口”,这个最近的衡量是靠累计根路径开销来判定的,即累计根路径开

销最小的端口就应该是根端口。累计根路径开销的计算方法如下:端口收到一个BPDU(从根桥

华为与CISCO交换机二层生成树协议互通分析

发送出来的BPDU,Root Path Cost字段的值总是0)后,抽取该BPDU中累计根路径开销字段的值,加上该端口本身的路径开销。所谓该端口本身的路径开销只体现直连链路的开销,这个值是端口量,可以人为配置的。如果有两个以上的端口计算得到的累计根路径开销相同,那么选择收到发送者BID最小的那个端口作为根端口。

指定端口的选择:

这是生成树协议发现环路的重要的一步,每台交换机都各自存储着一套信息,包括当前的根桥ID、Root Path Cost和自己的桥ID,此外每个端口还存储了自己的端口ID。当几个端口被一个网段连接到一起以后,他们都有机会根据所属网桥的情况发送BPDU,当这些连接到同一个网段中的网桥都接收到这些BPDU后,它会用这个BPDU中的信息和自己所属网桥所存储的信息进行对比,根据选举的规则可以得到两种结果:

●收到的BPDU信息不如设备和端口上存储的信息,说明发送BPDU的端口优先级比端口自

己的优先级低,端口在这轮比较中胜出,不做任何变化。

●收到的BPDU信息高于设备和端口上存储的信息,说明发送BPDU的端口优先级比端口自

己的优先级高,则端口在这轮比较中失败,停止向该网段中转发BPDU。

这样的结果是到了最后,这几个连接到同一个网段中的端口,只有一个会获得最终的胜出,其他的端口都失败了,他们会停止向该网段中转发BPDU。这个时候,这个获得最终胜利的端口就成为了这个网段的指定端口。其他端口成为Alternate端口进入Blocking状态,既不接受或转发数据报文,也不转发BPDU。

STP中的拓扑变更:

当交换机发现拓扑变更的时候,就会产生TCN BPDU。通常情况下,拓扑变更的原因在于链路故障、交换机故障或端口转换到转发状态。TCN BPDU的类型字段的取值是0x80。TCN将被根端口转发给根交换机。上行交换机将以TCA(Topology Change Acknowledgment,拓扑变更确认)格式的BPDU进行确认。在标记(Flag)字段中,最低有效位代表TCN,最高有效位代表TCA。交换机向上行交换机发送该报文。需要记住的是,上行交换机是距离根最近的交换机的邻接交换机(如果直接连接,那么就是根)。上行交换机将拓扑变更得确认报文发送回发送端的邻接交换机,并且将报文发送给其上行交换机。这种过程将不断重复,直到根交换机接受到该报文为止。通过上述方式,根能够了解到网络拓扑变更。

默认情况下,交换机将MAC地址在MAC地址转发表中停留5分钟。当拓扑发生变更的时候,交换机将临时把该计时器的值降低,使其等于转发延迟计时器的数值(默认值是15秒)。这将使STP网络将拓扑变更做出反应,交换机将快速重新学习链路状态变更时的MAC地址变更。

华为与CISCO交换机二层生成树协议互通分析

2.2 RSTP原理

2.2.1 RSTP基本概念

继IEEE802.1D定义了STP标准后,IEEE又推出了802.1W这个草案作为802.1D的补充,并定义了RSTP标准。在新版本的802.1D(2004)中已经接纳了RSTP标准,取代了原来的STP。RSTP保留了STP的大部分算法和计时器,只在一些细节上做了改进。但这些改进相当关键,极大的提升了STP的性能,使其能满足如今低延时高可靠性的网络要求。后续诞生的MSTP,单个实例中的算法和RSTP几乎一摸一样。可以说从STP发展到RSTP的这套算法,是整个生成树协议的精髓。

BPDU报文的变化

华为与CISCO交换机二层生成树协议互通分析

表2-2RSTP/STP bpdu报文区别

图2-5RSTP BPDU报文抓包分析

RSTP的BPDU被称作RST BPDU,和STP Config BPDU的主要区别在协议版本号,BPDU类型和Flags字段。RSTP中没有了TCN和TCA报文,在拓扑结构变化时只发送TC报文。

图2-6STP的Flags字段

TCA=Topology Change Acknowledgement

TC= Topology Change

Port role=00 unknown

01 alternate/backup

10 root

11 designated

华为与CISCO交换机二层生成树协议互通分析

图2-7RSTP的Flags字段

RSTP的Flags字段增加了端口属性和状态,BIT1和BIT6两个字段用于点到点链路端口的的快速迁移。

运行STP的设备会丢弃收到的RST BPDU,目前RSTP交换机都提供STP兼容模式,运行在STP兼容模式的端口会发送和接受Config BPDU,表现的特性也和STP类似。

RSTP的端口角色共有4种:即根端口、指定端口、Alternate端口和Backup端口。Alternate 端口和Backup端口的形象说明如图7、图8所示。从BPDU的发送上来看,Alternate端口就是由于学习到其它交换机的发送的BPDU而阻塞的端口;而Backup端口就是由于学习到自己发送的BPDU而阻塞的端口。从用户流量上来看,Alternate端口提供了从指定桥到根的另一条可切换路径,作为指定端口的备选切换;而同时Backup端口,作为根端口的备份,提供了另外一条从根桥到叶节点的可切换的通路。给一个RSTP域内所有端口分配角色的过程就是整个拓扑收敛的过程。

图2-8Alternate端口

华为与CISCO交换机二层生成树协议互通分析

图2-9Backup端口

RSTP的状态规范把原来的5种状态缩减为3种。根据端口是否转发用户流量和学习MAC地

址来划分。如果不转发用户流量也不学习MAC地址,那么就是Discarding状态;如果不转发

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

么就是Forwarding状态。表2-4显示了新的状态与STP相应状态的比较。

表2-3RSTP/STP 端口状态表

2.2.2 RSTP技术细节

根端口的快速迁移

假如设备上的旧的根端口不再有可能重新转发数据,新的根端口可以立即迁移到Forwarding状态。Alternate端口的快速迁移就符合这个条件。

指定端口的快速迁移

1. 被配置为边缘端口的指定端口可以无条件的快速迁移到Forwarding状态。

2. 在点到点以太网链路上,指定端口可以和对端通过握手协议的方式进行快速迁移。双方设备必须满足如下状态机:

proposing. 当一个指定端口处于Discarding或Learning状态的时候,该变量置位。向下游交换机传递Proposal位被置位的RST BPDU。

proposed. 当端口收到对端的指定端口发来的携带Proposal的RST BPDU的时候,该变量置位。该变量指示本网段上的指定端口希望尽的进入Forwarding状态。

sync. 当Proposed被设置以后,收到proposal的根端口会依次为自己的其他端口置位sync变量。如果端口是非边缘的指定端口是则会进入Discarding状态。

synced. 当端口完成转到Discarding后, 会设置自己的synced变量。Alternate、Backup 和边缘端口会马上设置该变量。根端口监视其他端口的synced,当所有其他端口的synced全被设置,根端口会设置自己的synced,然后传回RST BPDU,其中Agreement位被置位。

华为与CISCO交换机二层生成树协议互通分析

agreed. 当指定端口接收到一个RST BPDU时,如果该BPDU中的Agreement位被置位且端口角色字段是“根端口”,该变量被设置。Agreed变量一旦被置位,指定端口马上转入Forwarding 状态。

拓扑结构变化

RSTP判断拓扑结构变化的标准是:非边缘端口进入Forwarding状态。一旦检测到拓扑发生变化,则采取如下措施:为本交换机的所有非边缘指定端口启动一个TC While Timer,该计时器值是Hello Time的两倍。如果是根端口上有状态变化,则根端口也要启动。在这个时间内,清空这些端口上学来的MAC地址;同时,由这些端口向外发送TC BPDU,其中的TC置位。根端口总是要发送这种TC BPDU。一旦TC While Timer超时,则停止发送TC BPDU。其他交换机接收到TC BPDU,作如下工作:清空所有端口学来的MAC地址,收到TC BPDU的端口除外。然后也为所有自己的非边缘指定端口和自己的根端口启动TC While Timer,重复上述的过程。如此,网络中就会产生TC BPDU的泛洪。

2.3 MSTP原理

2.3.1 MSTP基本概念

多生成树协议MSTP是IEEE 802.1S中定义的一种新型生成树协议。MSTP中引入了“实例”(instance)和“域”(region)的概念。所谓“实例”就是多个VLAN的一个集合,这种通过多个VLAN捆绑到一个实例中去的方法可以节省通信开销和资源占用率。MSTP各个实例拓扑的计算是独立的,在这些实例上就可以实现负载均衡。使用的时候,可以把多个相同拓扑结构的VLAN映射到某一个实例中,这些VLAN在端口上的转发状态取决于对应实例在MSTP里的转发状态。

所谓“域”,由域名(Configuration Name)、修订级别(Revision level)、格式选择器(Configuration identifier Format Selector)、VLAN与实例的映射关系(Mapping of VIDs to spanning trees),其中域名、格式选择器和修订级别在BPDU报文中都有相关字段,而VLAN与实例的映射关系在BPDU报文中表现摘要信息(Configuration Digest),该摘要是根据映射关系计算得到的一个16字节签名,只有上述四者都一样且相互连接的交换机才认为在同一个域内,每个域内所有交换机都有相同的MST域配置。缺省时,域名就是交换机的桥MAC地址,修订级别等于0,格式选择器等于0,所有的VLAN都映射到实例0上。

MSTI:多生成树实例,是“MST域”内的概念,每个实例对应一个或一组VLAN,每个VLAN只能对应一个实例(映射),每个交换机可以运行那个多个实例,没有配置VLAN与实例的映射关系时,所有的VLAN都映射到实例0上。

华为与CISCO交换机二层生成树协议互通分析

CIST:公共与内部生成树,在整体上,CST和IST共同构成CIST。在一个MST域内部由IST 提供的连通性,IST可以看作CIST在MST域中的树状片断,是MST域中的实例0。而CST 是CIST的域间部分(把每个域抽象成一个节点)。

总根和域根:与STP和RSTP相比,MSTP中引入了总根和域根的概念,总根是一个全局概念,对于所有互连得运行STP/RSTP/MSTP的交换机只能有一个总根,也即是CIST的根;而域根是一个局部概念,是相对于某个域的某个实例而言的。在交换网中,总根只能有一个,而每个域所包含的域根数目与实例个数相关。

外部路径开销和内部路径开销:与STP和RSTP相比,MSTP中引入了外部路径外部路径开销和内部路径开销的概念。外部路径开销是相对于CIST而言的,同一个域内外部路径开销是相同的;内部路径开销是域内相对于某个实例而言的,同一端口对于不同实例对应不同的内部路径开销。

边缘端口、Master端口和Alternate端口:与STP和RSTP相比,MSTP中引入了域边缘端口和Master端口的概念。域边缘端口是连接不同MST域、MST域和运行STP的区域、MST域和运行RSTP的区域的端口,位于MST域的边缘;在某个不包含总根的域中,Master端口是所有边界端口中。到达总根具有最小开销的端口,也就是连接MST域到总根的端口,位于整个域到总根的最短路径上;Alternate端口是Master端口的备份端口,如果Master端口被阻塞后,Alternate端口将成为新的Master端口。

BPDU报文格式变化

图2-10STP/RSTP/MSTP BPDU报文对比

华为与CISCO交换机二层生成树协议互通分析

图2-11MSTP BPDU报文字段

华为与CISCO交换机二层生成树协议互通分析

图2-12MSTP BPDU报文抓包分析

对于MSTP BPDU报文无论是域内的MST BPDU还是域间的。其前35个字节和RST BPDU

相同。从第36个字节开始是MSTP专有段。最后的MSTI配置信息字段由若干MSTI配置信

息组连缀而成。802.1s与Legacy BPDU的格式是有区别的请注意。

2.3.2 MSTP技术细节

MSTP协议在计算生成树时使用的算法和原理与STP/RSTP大同小异,只是因为在MSTP中

引入了域和内部路径开销等参数,故MSTP中的优先级向量是7维,而STP/RSTP是5维。STP/RSTP中的优先级向量是(根桥标示符,根路径开销,桥标示符,发送BPDU报文端口

标示符,接收BPDU报文端口标示符)。MSTP中的优先级向量是(CIST根标识符,CIST

外部根路径开销,CIST指定桥标识符,CIST域根标识符,CIST内部根路径开销,CIST指定

端口标识符,CIST接收端口标识符)。

拓扑收敛

在同一个MSTI上,拓扑的收敛是和RSTP基本类似的。在CST上,每个域参与整体的拓扑

收敛是以Master Bridge为代表,根据其ERPC来计算的。在域的内部上,ISTP(Internal Sub Tree Protocol)算法(RSTP的改进)负责计算IST的拓扑。ISTP算法可以说是连接CST和MST的纽带。ISTP采用特殊的BPDU,由Master Bridge产生,携带CST信息并且封装了MSTP。快速收敛的机制略有差异:MSTP网桥上游发起协商机制proposal,下游回应agreement,然后上游还要再发个agreement,要三次握手。然后两个端口才能进入转发状态。

2.4 Cisco厂家支持情况

Cisco交换机所支持的生成树协议类型分别有:PVST(Per VLAN Spanning Tree)、PVST+(Per VLAN Spanning Tree Plus)、Rapid-PVST+(Rapid Per VLAN Spanning Tree Plus)、MISTP (Multi Instance Spanning Tree Protocol)和MST(Multiple Spanning Tree)。在使用IOS 12.2及之后版本的catalyst系列交换机中,支持PVST+、Rapid-PVST+和MST三种类型STP协议。这几种生成树协议的某些BPDU报文采用其私有的报文格式,与IEEE标准的BPDU报文格式不一样。当Cisco交换机运行PVST+或者Rapid-PVST+协议时,trunk端口在非VLAN 1中便发送私有的PVST BPDU报文,这类私有的BPDU报文的源MAC地址为端口的MAC地址,目的MAC地址为Cisco自己的保留地址01-00-0C-CC-CC-CD。

2.4.1 PVST

PVST协议可以简单地理解为在每一个VLAN上运行一个普通的STP协议,不同VLAN之间的STP状态和计算完全独立,虽然没有类似MSTP协议中的实例的概念,但也可以完成对不同

华为与CISCO交换机二层生成树协议互通分析

VLAN的数据进行负载。PVST协议报文除了在数据帧内会带有VLAN信息以外,最主要的是PVST协议的BPDU报文目的MAC地址是01-00-0C-CC-CC-CD,因此该协议无法与采用IEEE 标准生成树协议STP的设备进行互通。

目前CISCO Catalyst系列接入交换机支持的PVST实例数普遍为128个,即,支持128个VLAN 的生成树计算。运行PVST的交换机每个周期需要发送和处理大量的(与网络中业务VLAN数目相等)PVST报文,CPU计算频繁,且网络上存在大量的PVST协议报文。

2.4.2 PVST+

为解决与IEEE标准STP协议的互通问题,CISCO在PVST协议的基础上衍生出了PVST+协议。PVST+协议相对于PVST协议最大的改进是:提供了与标准STP协议互通的能力。对于一个Access端口,PVST+协议将根据此端口所在VLAN的发送标准的STP格式的BPDU报文;对于一个Trunk端口,PVST+协议仅会在VLAN 1中,发送标准格式的BPDU报文(目的MAC 地址为01-80-C2-00-00-00),而在其他允许通过的VLAN中,仍然发送其私有格式的PVST BPDU报文(目的MAC地址为01-00-0C-CC-CC-CD)。

华为交换机支持IEEE标准STP协议,能与CISCO交换机发出的标准STP协议互通计算,同时,将Cisco发出的私有格式的BPDU报文当作普通的多播报文进行转发,而不会处理这些报文。

图2-13私有PVST+ BPDU报文抓包分析

华为与CISCO交换机二层生成树协议互通分析

2.4.3 Rapid-PVST+

在PVST+协议的基础上衍生出了Rapid-PVST+协议,Rapid-PVST+协议相对于PVST+协议,采用了RSTP的机制,支持快速迁移特性。

图2-14私有RPVST+ BPDU报文抓包分析

2.4.4 MST

CISCO的MST协议具有VLAN与实例的映射关系,也有域的概念,可以理解为标准的MSTP 协议,同时,MST协议的BPDU报文格式与IEEE标准的规定完全一致。但由于华为和CISCO 两个厂家采用不同的密钥来生成MSTP的摘要信息,因此两个厂商的交换机发送的BPDU报文中的摘要信息不同。默认情况下,由于摘要信息不同,MSTP协议与MST协议只能进行域间互通(要完成MSTP域内互通,则必须要在连接Cisco交换机的华为交换机上,以及连接Cisco 交换机的华为交换机的端口上使能“摘要侦听”功能)。

华为与CISCO交换机二层生成树协议互通分析

图2-15MST BPDU报文抓包分析

相关文档
相关文档 最新文档