华为与CISCO交换机二层生成树协议互通分析文档格式.docx
- 文档编号:21255454
- 上传时间:2023-01-28
- 格式:DOCX
- 页数:40
- 大小:1.40MB
华为与CISCO交换机二层生成树协议互通分析文档格式.docx
《华为与CISCO交换机二层生成树协议互通分析文档格式.docx》由会员分享,可在线阅读,更多相关《华为与CISCO交换机二层生成树协议互通分析文档格式.docx(40页珍藏版)》请在冰豆网上搜索。
增加MSTP与CISCO生成树协议的优劣对比
增加PVST/PVST+/RPVST+向MSTP迁移的操作指导
关键词:
生成树
摘要:
企业网环境常见的几种交换机二层生成树协议互通方案进行技术和案例分析,希望能够为客户和一线员工提供一种互通解决方法及思路
缩略语清单:
STP,RSTP,MSTP,PVST+,Rapid-PVST+
参考资料清单:
第1章前言
生成树协议是一个用于在局域网中消除环路的协议。
运行该协议的交换机通过彼此交互信息而发现网络中的环路,并适当对某些端口进行阻塞以消除环路。
由于局域网规模的不断增长,生成树已经成为了当前最重要的局域网协议之一。
在交换机二层网络环境里,经常会遇到与CISCO厂家设备对接的情形,由于CISCO厂家的交换机设备默认使用的是私有的生成树协议,一线服务员工在交付或规划设计项目时遇到与CISCO设备进行对接的场景,通常会显得无从下手,此文档就二层网络的典型组网交换机互通方案进行讲解,希望能够为客户和一线员工提供一种解决方法及思路。
第2章生成树原理分析
2.1STP原理
2.1.1STP基本概念
STP协议通过在交换机之间传递特殊的消息BPDU报文并进行分布式的计算,来决定一个有环路的网络中,哪台交换机的哪个端口应该被阻塞(Blocking),用这种方法来剪切掉环路。
IEEEstd802.1D协议文档的第8章描述了STP。
交换机的STP操作可以分为如下3个主要步骤:
●选举根桥
●选举根端口
●选举网段的指定端口
每一阶段都遵循以下规则:
●最小的根交换机ID
●到根交换机最小的PATHCOST
●最小的发送BPDU的交换机ID
●最小的发送BPDU的端口ID
●最小的接收BPDU的端口ID
交换机之间定期发送BPDU包(根交换机产生BPDU,其他非根交换机转发),交换生成树配置信息,以便能够对网络的拓扑、花费或优先级的变化做出及时的响应。
BPDU分为两种类型,包含配置信息的BPDU包称为配置BPDU(ConfigurationBPDU),当检测到网络拓扑结构变化时则要发送拓扑变化通知BPDU(TopologyCHANGENOTIFICATIONBPDU)。
图2-1配置bpdu报文的包结构
如图2-1所示首先是以太网帧头,包括dlc头部、llc头部,接下来是bpdu字段,最后是为了补齐60字节边界用的dlc填充(padding)8字节。
图2-2配置bpdu报文的报文格式
拓扑变化通知BPDU报文格式
图2-3拓扑变化bpdu报文的报文格式
抓包分析报文及字段解析
图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,其中:
⏹端口:
发送此bpdu的交换机端口
⏹最后是一些定时器的值:
⏹消息年龄:
当前为0
⏹消息寿命:
20秒(默认值)
⏹根hello时间:
2秒(发送bpdu的时间间隔)
⏹转发延迟:
15秒(交换机端口处于侦听、学习状态的时间)
STP端口有5种状态,如表2-1所示
状态
说明
Forwarding
在这种状态下,端口转发用户流量的状态,只有根端口或指定端口才有这种状态。
Learning
这是一种过渡状态。
在这种状态下,交换机会根据收到的用户流量(但仍然不转发流量)构建MAC地址表,所以叫做学习“状态”。
Listening
在这种状态下,上述的三步选择(根桥、根端口、指定端口)就是在该状态内完成。
Blocking
在这种状态下,端口仅仅接收并处理BPDU,不转发用户流量。
Disabled
或Down,认为阻断或物理上断掉。
表2-1拓扑变化bpdu报文的报文格式
2.1.2STP技术细节
初始生成树的过程:
网络初始化的时候,所有网络中的STP交换机都认为自己是“根桥”。
在每个端口所发出的BPDU中,根桥字段都是用各自的BID,RootPathCost字段是累计的到根桥的开销,发送者BID是自己的BID,端口PID是发送该BPDU端口的端口ID。
BPDU会按照HelloTime指定的时间间隔来发送,默认的时间为2秒。
一旦在某端口上收听到比自己发的还要“好”的BPDU,那么这个端口就提取该BPDU中的某些信息,更新自己的信息。
比较BPDU的“好坏”的方式(自己的或其他交换机的),都是根据四元组来完成的,即最低桥ID、最低到累计根路径开销,最低发送者BID(有时还需要最低端口PID)。
该端口会缓存最好的BPDU。
当发送BPDU的时候,交换机填充SenderBID字段的总是自己的BID,而填充RootBID字段的是“当前我所认为是根桥的”BID。
根端口的选择:
每个非根桥STP交换机都要选择一个根端口,根端口对于一个交换机来说有且只有一个。
其本质是“距离根桥最近的端口”,这个最近的衡量是靠累计根路径开销来判定的,即累计根路径开销最小的端口就应该是根端口。
累计根路径开销的计算方法如下:
端口收到一个BPDU(从根桥发送出来的BPDU,RootPathCost字段的值总是0)后,抽取该BPDU中累计根路径开销字段的值,加上该端口本身的路径开销。
所谓该端口本身的路径开销只体现直连链路的开销,这个值是端口量,可以人为配置的。
如果有两个以上的端口计算得到的累计根路径开销相同,那么选择收到发送者BID最小的那个端口作为根端口。
指定端口的选择:
这是生成树协议发现环路的重要的一步,每台交换机都各自存储着一套信息,包括当前的根桥ID、RootPathCost和自己的桥ID,此外每个端口还存储了自己的端口ID。
当几个端口被一个网段连接到一起以后,他们都有机会根据所属网桥的情况发送BPDU,当这些连接到同一个网段中的网桥都接收到这些BPDU后,它会用这个BPDU中的信息和自己所属网桥所存储的信息进行对比,根据选举的规则可以得到两种结果:
●收到的BPDU信息不如设备和端口上存储的信息,说明发送BPDU的端口优先级比端口自己的优先级低,端口在这轮比较中胜出,不做任何变化。
●收到的BPDU信息高于设备和端口上存储的信息,说明发送BPDU的端口优先级比端口自己的优先级高,则端口在这轮比较中失败,停止向该网段中转发BPDU。
这样的结果是到了最后,这几个连接到同一个网段中的端口,只有一个会获得最终的胜出,其他的端口都失败了,他们会停止向该网段中转发BPDU。
这个时候,这个获得最终胜利的端口就成为了这个网段的指定端口。
其他端口成为Alternate端口进入Blocking状态,既不接受或转发数据报文,也不转发BPDU。
STP中的拓扑变更:
当交换机发现拓扑变更的时候,就会产生TCNBPDU。
通常情况下,拓扑变更的原因在于链路故障、交换机故障或端口转换到转发状态。
TCNBPDU的类型字段的取值是0x80。
TCN将被根端口转发给根交换机。
上行交换机将以TCA(TopologyChangeAcknowledgment,拓扑变更确认)格式的BPDU进行确认。
在标记(Flag)字段中,最低有效位代表TCN,最高有效位代表TCA。
交换机向上行交换机发送该报文。
需要记住的是,上行交换机是距离根最近的交换机的邻接交换机(如果直接连接,那么就是根)。
上行交换机将拓扑变更得确认报文发送回发送端的邻接交换机,并且将报文发送给其上行交换机。
这种过程将不断重复,直到根交换机接受到该报文为止。
通过上述方式,根能够了解到网络拓扑变更。
默认情况下,交换机将MAC地址在MAC地址转发表中停留5分钟。
当拓扑发生变更的时候,交换机将临时把该计时器的值降低,使其等于转发延迟计时器的数值(默认值是15秒)。
这将使STP网络将拓扑变更做出反应,交换机将快速重新学习链路状态变更时的MAC地址变更。
2.2RSTP原理
2.2.1RSTP基本概念
继IEEE802.1D定义了STP标准后,IEEE又推出了802.1W这个草案作为802.1D的补充,并定义了RSTP标准。
在新版本的802.1D(2004)中已经接纳了RSTP标准,取代了原来的STP。
RSTP保留了STP的大部分算法和计时器,只在一些细节上做了改进。
但这些改进相当关键,极大的提升了STP的性能,使其能满足如今低延时高可靠性的网络要求。
后续诞生的MSTP,单个实例中的算法和RSTP几乎一摸一样。
可以说从STP发展到RSTP的这套算法,是整个生成树协议的精髓。
BPDU报文的变化
BPDU内容
RSTP
STP
ProtocolIdentifier
0000
ProtocolVersion
02
BPDUType
00(ConfBPDU)0x80(TCN)
Flags
2c
0001(TC)80(TCA)
RootIdentifier
80.00.00.00.e0.fc.01.39.00
RootPathCost
BridgeIdentifier
PortIdentifier
80.20
MessageAge
MaxAge
20
HelloTime
2
ForwardDelay
15
Version1Length
表2-1RSTP/STPbpdu报文区别
图2-2RSTPBPDU报文抓包分析
RSTP的BPDU被称作RSTBPDU,和STPConfigBPDU的主要区别在协议版本号,BPDU类型和Flags字段。
RSTP中没有了TCN和TCA报文,在拓扑结构变化时只发送TC报文。
Bit7
Bit6
Bit5
Bit4
Bit3
Bit2
Bit1
Bit0
TCA
Reserved
TC
图2-3STP的Flags字段
Agreement
Portrole
Proposal
TCA=TopologyChangeAcknowledgement
TC=TopologyChange
Portrole=00unknown
01alternate/backup
10root
11designated
图2-4RSTP的Flags字段
RSTP的Flags字段增加了端口属性和状态,BIT1和BIT6两个字段用于点到点链路端口的的快速迁移。
运行STP的设备会丢弃收到的RSTBPDU,目前RSTP交换机都提供STP兼容模式,运行在STP兼容模式的端口会发送和接受ConfigBPDU,表现的特性也和STP类似。
RSTP的端口角色共有4种:
即根端口、指定端口、Alternate端口和Backup端口。
Alternate端口和Backup端口的形象说明如图7、图8所示。
从BPDU的发送上来看,Alternate端口就是由于学习到其它交换机的发送的BPDU而阻塞的端口;
而Backup端口就是由于学习到自己发送的BPDU而阻塞的端口。
从用户流量上来看,Alternate端口提供了从指定桥到根的另一条可切换路径,作为指定端口的备选切换;
而同时Backup端口,作为根端口的备份,提供了另外一条从根桥到叶节点的可切换的通路。
给一个RSTP域内所有端口分配角色的过程就是整个拓扑收敛的过程。
图2-5Alternate端口
图2-6Backup端口
RSTP的状态规范把原来的5种状态缩减为3种。
根据端口是否转发用户流量和学习MAC地址来划分。
如果不转发用户流量也不学习MAC地址,那么就是Discarding状态;
如果不转发用户流量但是学习MAC地址,那么就是Learning状态;
如果既转发用户流量又学习地址,那么就是Forwarding状态。
表2-4显示了新的状态与STP相应状态的比较。
表2-1RSTP/STP端口状态表
2.2.2RSTP技术细节
根端口的快速迁移
假如设备上的旧的根端口不再有可能重新转发数据,新的根端口可以立即迁移到Forwarding状态。
Alternate端口的快速迁移就符合这个条件。
指定端口的快速迁移
1.被配置为边缘端口的指定端口可以无条件的快速迁移到Forwarding状态。
2.在点到点以太网链路上,指定端口可以和对端通过握手协议的方式进行快速迁移。
双方设备必须满足如下状态机:
proposing.当一个指定端口处于Discarding或Learning状态的时候,该变量置位。
向下游交换机传递Proposal位被置位的RSTBPDU。
proposed.当端口收到对端的指定端口发来的携带Proposal的RSTBPDU的时候,该变量置位。
该变量指示本网段上的指定端口希望尽的进入Forwarding状态。
sync.当Proposed被设置以后,收到proposal的根端口会依次为自己的其他端口置位sync变量。
如果端口是非边缘的指定端口是则会进入Discarding状态。
synced.当端口完成转到Discarding后,会设置自己的synced变量。
Alternate、Backup和边缘端口会马上设置该变量。
根端口监视其他端口的synced,当所有其他端口的synced全被设置,根端口会设置自己的synced,然后传回RSTBPDU,其中Agreement位被置位。
agreed.当指定端口接收到一个RSTBPDU时,如果该BPDU中的Agreement位被置位且端口角色字段是“根端口”,该变量被设置。
Agreed变量一旦被置位,指定端口马上转入Forwarding状态。
拓扑结构变化
RSTP判断拓扑结构变化的标准是:
非边缘端口进入Forwarding状态。
一旦检测到拓扑发生变化,则采取如下措施:
为本交换机的所有非边缘指定端口启动一个TCWhileTimer,该计时器值是HelloTime的两倍。
如果是根端口上有状态变化,则根端口也要启动。
在这个时间内,清空这些端口上学来的MAC地址;
同时,由这些端口向外发送TCBPDU,其中的TC置位。
根端口总是要发送这种TCBPDU。
一旦TCWhileTimer超时,则停止发送TCBPDU。
其他交换机接收到TCBPDU,作如下工作:
清空所有端口学来的MAC地址,收到TCBPDU的端口除外。
然后也为所有自己的非边缘指定端口和自己的根端口启动TCWhileTimer,重复上述的过程。
如此,网络中就会产生TCBPDU的泛洪。
2.3MSTP原理
2.3.1MSTP基本概念
多生成树协议MSTP是IEEE802.1S中定义的一种新型生成树协议。
MSTP中引入了“实例”(instance)和“域”(region)的概念。
所谓“实例”就是多个VLAN的一个集合,这种通过多个VLAN捆绑到一个实例中去的方法可以节省通信开销和资源占用率。
MSTP各个实例拓扑的计算是独立的,在这些实例上就可以实现负载均衡。
使用的时候,可以把多个相同拓扑结构的VLAN映射到某一个实例中,这些VLAN在端口上的转发状态取决于对应实例在MSTP里的转发状态。
所谓“域”,由域名(ConfigurationName)、修订级别(Revisionlevel)、格式选择器(ConfigurationidentifierFormatSelector)、VLAN与实例的映射关系(MappingofVIDstospanningtrees),其中域名、格式选择器和修订级别在BPDU报文中都有相关字段,而VLAN与实例的映射关系在BPDU报文中表现摘要信息(ConfigurationDigest),该摘要是根据映射关系计算得到的一个16字节签名,只有上述四者都一样且相互连接的交换机才认为在同一个域内,每个域内所有交换机都有相同的MST域配置。
缺省时,域名就是交换机的桥MAC地址,修订级别等于0,格式选择器等于0,所有的VLAN都映射到实例0上。
MSTI:
多生成树实例,是“MST域”内的概念,每个实例对应一个或一组VLAN,每个VLAN只能对应一个实例(映射),每个交换机可以运行那个多个实例,没有配置VLAN与实例的映射关系时,所有的VLAN都映射到实例0上。
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-1STP/RSTP/MSTPBPDU报文对比
图2-2MSTPBPDU报文字段
图2-3MSTPBPDU报文抓包分析
对于MSTPBPDU报文无论是域内的MSTBPDU还是域间的。
其前35个字节和RSTBPDU相同。
从第36个字节开始是MSTP专有段。
最后的MSTI配置信息字段由若干MSTI配置信息组连缀而成。
802.1s与LegacyBPDU的格式是有区别的请注意。
2.3.2MSTP技术细节
MSTP协议在计算生成树时使用的算法和原理与STP/RSTP大同小异,只是因为在MSTP中引入了域和内部路径开销等参数,故MSTP中的优先级向量是7维,而STP/RSTP是5维。
STP/RSTP中的优先级向量是(根桥标示符,根路径开销,桥标示符,发送BPDU报文端口标示符,接收BPDU报文端口标示符)。
MSTP中的优先级向量是(CIST根标识符,CIST外部根路径开销,CIST指定桥标识符,CIST域根标识符,CIST内部根路径开销,CIST指定端口标识符,CIST接收端口标识符)。
拓扑收敛
在同一个MSTI上,拓扑的收敛是和RSTP基本类似的。
在CST上,每个域参与整体的拓扑收敛是以MasterBridge为代表,根据其ERPC来计算的。
在域的内部上,ISTP(InternalSubTreeProtocol)算法(RSTP的改进)负责计算IST的拓扑。
ISTP算法可以说是连接CST和MST的纽带。
ISTP采用特殊的BPDU,由MasterBridge产生,携带CST信息并且封装了MSTP。
快速收敛的机制略有差异:
MSTP网桥上游发起协商机制proposal,下游回应agreement,然后上游还要再发个agreement,要三次握手。
然后两个端口才能进入转发状态。
2.4Cisco厂家支持情况
Cisco交换机所支持的生成树协议类型分别有:
PVST(PerVLANSpanningTree)、PVST+(PerVLANSpanningTreePlus)、Rapid-PVST+(RapidPerVLANSpanningTreePlus)、MISTP(MultiInstanceSpanningTreeProtocol)和MST(MultipleSpanningTree)。
在使用IOS12.2及之后版本的catalyst系列交换机中,支持PVST+、Rapid-PVST+和MST三种类型STP协议。
这几种生成树协议的某些BPDU报文采用其私有的报文格式,与IEEE标准的BPDU报文格式不一样。
当Cisco交换机运行PVST+或者Rapid-PVST+协议时,trunk端口在非VLAN1中便发送私有的PVSTBPDU报文,这类私有的BPDU报文的源MAC地址为端口的MAC地址,目的MAC地址为Cisco自己的保留地址01-00-0C-CC-CC-CD。
2.4.1PVST
PVST协议可以简单地理解为在每一个VLAN上运行一个普通的STP协议,不同VLAN之间的STP状态和计算完全独立,虽然没有类似MSTP协议中的实例的概念,但也可以完成对不同VLAN的数据进行负载。
PVST协议报文除了在数据帧内会带有VLAN信息以外,最主要的是PVST协议的BPDU报文目的MAC地址是01-00-0C-CC-CC-CD,因此该协议无法与采用IEEE标准生成树协议STP的设备进行互通。
目前CISCOCatalyst系列接入交换
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 华为 CISCO 交换机 生成 协议 互通 分析