08-MSTP操作
本章节下载 (759.94 KB)
STP(Spanning Tree Protocol,生成树协议)是一个用于在局域网中消除环路的协议。运行该协议的设备通过彼此交互信息而发现网络中的环路,并适当对某些端口进行阻塞以消除环路,将环路网络修剪成无环路的树型网络,从而避免报文在环路网络中的不断增生和无限循环。
STP采用的协议报文是BPDU(Bridge Protocol Data Unit,桥协议数据单元),也称为配置消息。
STP通过在设备之间传递BPDU来确定网络的拓扑结构。BPDU中包含了足够的信息来保证设备完成生成树的计算过程。
BPDU在STP协议中分为两类:
l 配置BPDU(Configuration BPDU):用来维护生成树拓扑的报文。
l TCN BPDU(Topology Change Notification BPDU):当拓扑发生变化时,用来通知相关设备网络发生变化的报文。
(1) 根桥
树形的网络结构,必须要有树根,于是STP引入了根桥(Root Bridge)的概念。
根桥在全网中只有一个,而且根桥会根据网络拓扑的变化而改变,因此根桥并不是固定的。
网络收敛后,根桥会按照一定的时间间隔产生并向外发送配置消息,其他的设备仅对该配置消息进行转发,从而保证拓扑的稳定。
(2) 根端口
所谓根端口,是指一个非根桥的设备上离根桥最近的端口。根端口负责向根桥方向转发数据。对于一个非根桥设备来说根端口有且只有一个。根桥上没有根端口。
(3) 指定桥与指定端口
指定桥与指定端口的含义,请参见表1-1的说明。
表1-1 指定桥与指定端口的含义
分类 |
指定桥 |
指定端口 |
对于一台设备而言 |
与本机直接相连并且负责向本机转发配置消息的设备 |
指定桥向本机转发配置消息的端口 |
对于一个局域网而言 |
负责向本网段转发配置消息的设备 |
指定桥向本网段转发配置消息的端口 |
指定桥与指定端口的示意如图1-1所示,AP1、AP2、BP1、BP2、CP1、CP2分别表示设备SwitchA、SwitchB、SwitchC的端口。
l SwitchA通过端口AP1向SwitchB转发配置消息,则SwitchB的指定桥就是SwitchA,指定端口就是SwitchA的端口AP1;
l 与局域网LAN相连的有两台设备:SwitchB和SwitchC,如果SwitchB负责向LAN转发配置消息,则LAN的指定桥就是SwitchB,指定端口就是SwitchB的BP2。
& 说明:
根桥上的所有端口都是指定端口。
STP通过在设备之间传递BPDU报文(Bridge Protocol Data Unit,桥协议数据单元,在IEEE 802.1D中这种协议报文被称为“配置消息”)来确定网络的拓扑结构。
配置消息中包含了足够的信息来保证设备完成生成树的计算过程。配置消息中主要包括以下内容:
l 根桥ID:由根桥的优先级和MAC地址组成;
l 指定桥ID:由指定桥的优先级和MAC地址组成;
l 指定端口ID:由指定端口的优先级和端口号组成;
l 配置消息的生存期:Message Age;
l 配置消息的最大生存期:Max Age;
l 配置消息发送的周期:Hello Time;
l 端口状态迁移的延时:Forward Delay。
& 说明:
为描述方便,在描述及举例中仅给出配置消息的其中四项内容:
l 根桥ID(以设备的优先级表示);
l 根路径开销;
l 指定桥ID(以设备的优先级表示);
l 指定端口ID(以端口号表示)。
(1) STP算法实现的具体过程
l 初始状态
各台设备的各个端口在初始时会生成以本设备为根的配置消息,其中的根桥ID为本设备ID,根路径开销为0,指定桥ID也为本设备ID,指定端口为本端口。
l 最优配置消息的选择
各台设备都向外发送自己的配置消息,同时也会收到其他设备发送的配置消息。
最优配置消息的选择过程如表1-2所示。
表1-2 最优配置消息的选择过程
步骤 |
内容 |
1 |
每个端口收到配置消息后的处理过程如下: l 当端口收到的配置消息比本端口配置消息的优先级低时,设备会将接收到的配置消息丢弃,对该端口的配置消息不作任何处理。 l 当端口收到的配置消息比本端口配置消息的优先级高时,设备就用接收到的配置消息中的内容替换该端口的配置消息中的内容。 |
2 |
设备将所有端口的配置消息进行比较,选出最优的配置消息。 |
& 说明:
配置消息的比较原则如下:
l 根桥ID较小的配置消息优先级高;
l 若根桥ID相同,则比较根路径开销,比较方法为:用配置消息中的根路径开销加上本端口对应的路径开销,假设两者之和为S,则S较小的配置消息优先级较高;
l 若根路径开销也相同,则依次比较指定桥ID、指定端口ID、接收该配置消息的端口ID等,上述值较小的配置消息优先级较高。
l 根桥的选择
网络初始化时,网络中所有的STP设备都认为自己是“根桥”,根桥ID为自身设备ID。通过交换配置消息,设备之间比较根桥ID,网络中根桥ID最小的设备被选为根桥。
l 根端口、指定端口的选择
表1-3 根端口和指定端口的选择过程
步骤 |
内容 |
1 |
设备将接收最优配置消息的那个端口定为根端口 |
2 |
设备根据根端口的配置消息和根端口的路径开销,为其他端口计算一个指定端口配置消息: l 根桥ID替换为根端口的配置消息的根桥ID; l 根路径开销替换为根端口配置消息的根路径开销加上根端口对应的路径开销; l 指定桥ID替换为自身设备的ID; l 指定端口ID替换为自身端口ID。 |
3 |
设备使用计算出来的配置消息和其他端口上的配置消息进行比较,并根据比较结果进行不同的处理: l 如果端口上原有的配置消息优,则设备将此端口阻塞,端口配置消息不变,此端口将不再转发数据,并且只接收但不发送配置消息; l 如果计算出来的配置消息优,则设备就将该端口定为指定端口,端口上的配置消息被计算出来的配置消息替换,并周期性向外发送。 |
& 说明:
在拓扑稳定状态,只有根端口和指定端口转发流量,其他的端口都处于阻塞状态,它们只接收STP协议报文而不转发用户流量。
一旦根桥、根端口、指定端口选举成功,则整个树形拓扑就建立完毕了。
下面结合例子说明STP算法实现的计算过程。具体的组网如图1-2所示。图中,Switch A的优先级为0,Switch B的优先级为1,Switch C的优先级为2,各个链路的路径开销分别为5、10、4。
l 各台设备的初始状态
各台设备的初始状态如表1-4所示。
表1-4 各台设备的初始状态
设备 |
端口号 |
端口的配置消息 |
Switch A |
AP1 |
{0,0,0,AP1} |
AP2 |
{0,0,0,AP2} |
|
Switch B |
BP1 |
{1,0,1,BP1} |
BP2 |
{1,0,1,BP2} |
|
Switch C |
CP1 |
{2,0,2,CP1} |
CP2 |
{2,0,2,CP2} |
l 各台设备的比较过程及结果
各台设备的比较过程及结果如表1-5所示。
表1-5 各台设备的比较过程及结果
设备 |
比较过程 |
比较后端口的配置消息 |
SwitchA |
l 端口AP1收到SwitchB的配置消息{1,0,1,BP1},SwitchA发现本端口的配置消息{0,0,0,AP1}优于接收到的配置消息,就把接收到的配置消息丢弃。 l 端口AP2收到SwitchC的配置消息{2,0,2,CP1},SwitchA发现本端口的配置消息{0,0,0,AP2}优于接收到的配置消息,就把接收到的配置消息丢弃。 l SwitchA发现自己各个端口的配置消息中根桥和指定桥都是自己,则认为自己是根桥,各个端口的配置消息都不作任何修改,以后周期性的向外发送配置消息。 |
AP1:{0,0,0,AP1} AP2:{0,0,0,AP2} |
SwitchB |
l 端口BP1收到来自SwitchA的配置消息{0,0,0,AP1},SwitchB发现接收到的配置消息优于本端口的配置消息{1,0,1,BP1},于是更新端口BP1的配置消息。 l 端口BP2收到来自SwitchC的配置消息{2,0,2,CP2},SwitchB发现本端口的配置消息{1,0,1,BP2}优于接收到的配置消息,就把接收到的配置消息丢弃。 |
BP1:{0,0,0,AP1} BP2:{1,0,1,BP2} |
l SwitchB对各个端口的配置消息进行比较,选出端口BP1的配置消息为最优配置消息,然后将端口BP1定为根端口,它的配置消息不作改变。 l SwitchB根据根端口BP1的配置消息和根端口的路径开销5,为BP2端口计算一个指定端口配置消息{0,5,1,BP2}。 l SwitchB使用计算出来的配置消息{0,5,1,BP2}和端口BP2上的配置消息进行比较,比较的结果是计算出来的配置消息较优,则SwitchB将端口BP2定为指定端口,它的配置消息被计算出来的配置消息替换,并周期性向外发送。 |
根端口BP1: {0,0,0,AP1} 指定端口BP2: {0,5,1,BP2} |
|
SwitchC |
l 端口CP1收到来自SwitchA的配置消息{0,0,0,AP2},SwitchC发现接收到的配置消息优于本端口的配置消息{2,0,2,CP1},于是更新端口CP1的配置消息。 l 端口CP2收到来自SwitchB端口BP2更新前的配置消息{1,0,1,BP2},SwitchC发现接收到的配置消息优于本端口的配置消息{2,0,2,CP2},于是更新端口CP2的配置消息。 |
CP1:{0,0,0,AP2} CP2:{1,0,1,BP2} |
l 经过比较: l 端口CP1的配置消息被选为最优的配置消息,端口CP1就被定为根端口,它的配置消息不作改变。 l 将计算出来的指定端口配置消息{0,10,2,CP2}和端口CP2的配置消息进行比较后,端口CP2转为指定端口,它的配置消息被计算出来的配置消息替换。 |
根端口CP1: {0,0,0,AP2} 指定端口CP2: {0,10,2,CP2} |
|
l 接着端口CP2会收到SwitchB更新后的配置消息{0,5,1,BP2},由于收到的配置消息比原配置消息优,则SwitchC触发更新过程。 l 同时端口CP1收到SwitchA周期性发送来的配置消息,比较后SwitchC不会触发更新过程。 |
CP1:{0,0,0,AP2} CP2:{0,5,1,BP2} |
|
l 经过比较: l 端口CP2的根路径开销9(配置消息的根路径开销5+端口CP2对应的路径开销4)小于端口CP1的根路径开销10(配置消息的根路径开销0+端口CP1对应的路径开销10),所以端口CP2的配置消息被选为最优的配置消息,端口CP2就被定为根端口,它的配置消息就不作改变。 l 将端口CP1的配置消息和计算出来的指定端口配置消息比较后,端口CP1被阻塞,端口配置消息不变,同时不接收从SwitchA转发的数据,直到新的情况触发生成树的计算,比如从SwitchB到SwitchC的链路down掉。 |
阻塞端口CP1: {0,0,0,AP2} 根端口CP2: {0,5,1,BP2} |
经过上表的比较过程,此时以Switch A为根桥的生成树就确定下来了,拓扑结构如图1-3所示。
& 说明:
为了便于描述,本例简化了生成树的计算过程,实际的过程要更加复杂。
(2) STP的配置消息传递机制
l 当网络初始化时,所有的设备都将自己作为根桥,生成以自己为根的配置消息,并以Hello Time为周期定时向外发送。
l 接收到配置消息的端口如果是根端口,且接收的配置消息比该端口的配置消息优,则设备将配置消息中携带的Message Age按照一定的原则递增,并启动定时器为这条配置消息计时,同时将此配置消息从设备的指定端口转发出去。
l 如果指定端口收到的配置消息比本端口的配置消息优先级低时,会立刻发出自己的更好的配置消息进行回应。
l 如果某条路径发生故障,则这条路径上的根端口不会再收到新的配置消息,旧的配置消息将会因为超时而被丢弃,设备重新生成以自己为根的配置消息并向外发送,从而引发生成树的重新计算,得到一条新的通路替代发生故障的链路,恢复网络连通性。
不过,重新计算得到的新配置消息不会立刻就传遍整个网络,因此旧的根端口和指定端口由于没有发现网络拓扑变化,将仍按原来的路径继续转发数据。如果新选出的根端口和指定端口立刻就开始数据转发的话,可能会造成暂时性的环路。为此,STP采用了一种状态迁移的机制,新选出的根端口和指定端口要经过2倍的Forward Delay延时后才能进入转发状态,这个延时保证了新的配置消息已经传遍整个网络。
(1) STP、RSTP存在的不足
STP不能快速迁移,即使是在点对点链路或边缘端口(边缘端口指的是该端口直接与用户终端相连,而没有连接到其它设备或共享网段上),也必须等待2倍的Forward Delay的时间延迟,端口才能迁移到转发状态。
RSTP(Rapid Spanning Tree Protocol,快速生成树协议)是STP协议的优化版。其“快速”体现在,当一个端口被选为根端口和指定端口后,其进入转发状态的延时在某种条件下大大缩短,从而缩短了网络最终达到拓扑稳定所需要的时间。
& 说明:
l RSTP中,根端口的端口状态快速迁移的条件是:本设备上旧的根端口已经停止转发数据,而且上游指定端口已经开始转发数据。
l RSTP中,指定端口的端口状态快速迁移的条件是:指定端口是边缘端口或者指定端口与点对点链路相连。如果指定端口是边缘端口,则指定端口可以直接进入转发状态;如果指定端口连接着点对点链路,则设备可以通过与下游设备握手,得到响应后即刻进入转发状态。
RSTP可以快速收敛,但是和STP一样存在以下缺陷:局域网内所有网桥共享一棵生成树,不能按VLAN阻塞冗余链路,所有VLAN的报文都沿着一棵生成树进行转发。
(2) MSTP的特点
MSTP(Multiple Spanning Tree Protocol,多生成树协议)可以弥补STP和RSTP的缺陷,它既可以快速收敛,也能使不同VLAN的流量沿各自的路径转发,从而为冗余链路提供了更好的负载分担机制。
MSTP的特点如下:
l MSTP设置VLAN映射表(即VLAN和生成树的对应关系表),把VLAN和生成树联系起来。
l MSTP把一个交换网络划分成多个域,每个域内形成多棵生成树,生成树之间彼此独立。
l MSTP将环路网络修剪成为一个无环的树型网络,避免报文在环路网络中的增生和无限循环,同时还提供了数据转发的多个冗余路径,在数据转发过程中实现VLAN数据的负载均衡。
l MSTP兼容STP和RSTP。
在图1-4中有四个MST域(Multiple Spanning Tree Regions,多生成树域),每个域都由四台设备构成。设备都运行MSTP。下面将结合图形解释MSTP的几个概念。
(1) MST域
MST域:多生成树域,是由交换网络中的多台设备以及它们之间的网段所构成。这些设备具有下列特点:
l 都启动了MSTP;
l 具有相同的域名;
l 具有相同的VLAN到生成树映射配置;
l 具有相同的MSTP修订级别配置;
l 这些设备之间在物理上有链路连通。
例如图1-4中的区域A0,域内所有设备都有相同的MST域配置:域名相同,VLAN与生成树的映射关系相同(VLAN1映射到生成树实例1,VLAN2映射到生成树实例2,其余VLAN映射到CIST),相同的MSTP修订级别(此配置在图中没有体现)。
一个交换网络可以存在多个MST域。用户可以通过MSTP配置命令把多台设备划分在同一个MST域内。
(2) VLAN映射表
MST域的一个属性,是描述VLAN和生成树实例关系的对应表。例如图1-4中,域A0的VLAN映射表就是:VLAN1映射到生成树实例1,VLAN2映射到生成树实例2,其余VLAN映射到CIST。
(3) IST
IST(Internal Spanning Tree,内部生成树)是MSTP域内的一棵生成树,为MST域内的0号实例,它和CST(Common Spanning Tree,公共生成树)共同构成整台设备网络的生成树CIST(Common and Internal Spanning Tree,公共和内部生成树)。IST是CIST在一个MST域中的片段。例如图1-4中CIST在每个MST域内都有一个片段,这个片段就是各个域内的IST。
(4) CST
CST是连接交换网络内所有MST域的单生成树。如果把每个MST域看作是一个“设备”,CST就是这些“设备”通过MSTP协议计算生成的一棵生成树。例如图1-4中红色线条描绘的就是CST。
(5) CIST
CIST由IST和CST共同构成,是连接一个交换网络内所有设备的单生成树。例如图1-4中,每个域内的IST加上域间的CST就构成整个网络的CIST。
(6) MSTI
一个MST域内可以通过MSTP生成多棵生成树,各棵生成树之间彼此独立。每棵生成树都称为一个MSTI(Multiple Spanning Tree Instance,多生成树实例)。例如图1-4中,每个域内可以存在多棵生成树,每棵生成树和相应的VLAN对应。这些生成树就被称为MSTI。
(7) 域根
MST域内IST和MSTI的根桥就是域根。MST域内各棵生成树的拓扑不同,域根也可能不同。例如图1-4中,区域D0中,生成树实例1的域根为设备B,生成树实例2的域根为设备C。
(8) 总根
CIST的根桥就是Common Root Bridge,即总根。例如图1-4中,总根为区域A0内的某台设备。
(9) 域边缘端口
域边缘端口是指位于MST域的边缘,用于连接不同MST域、MST域和运行STP的区域、MST域和运行RSTP的区域的端口。
在进行MSTP计算的时候,域边缘端口在MST实例上的角色和CIST的角色保持一致,即如果边缘端口在CIST上的角色是Master端口,则它在域内所有MST实例上的角色也是Master端口。例如图1-4中,如果区域A0的一台设备和区域D0的一台设备的某一个端口相连,整个交换网络的总根位于A0内,则区域D0中这台设备上的这个端口就是区域D0的域边缘端口。
(10) 端口的角色
在MSTP的计算过程中,端口的角色有指定端口、根端口、Master端口、Alternate端口、Backup端口等。
l 根端口:负责向根桥方向转发数据的端口。
l 指定端口:负责向下游网段或设备转发数据的端口。
l Master端口:位于整个域到总根的最短路径上,它是连接域到总根的端口。
l Alternate端口:根端口和Master端口的备份端口。如果根端口或Master端口被阻塞,Alternate端口将成为新的根端口或Master端口。
l Backup端口:当同一台设备的两个端口互相连接时就存在一个环路,此时设备会将其中一个端口阻塞,Backup端口是被阻塞的那个端口。
端口在不同的生成树实例中可以担任不同的角色。
请参考图1-5理解上述概念。图中:
l 设备A、B、C、D构成一个MST域。
l 设备A的端口1、端口2向总根方向连接。
l 设备C的端口5、端口6构成了环路。
l 设备D的端口3、端口4向下连接其他的MST域。
MSTP将整个二层网络划分为多个MST域,各个域之间通过计算生成CST;域内则通过计算生成多棵生成树,每棵生成树都被称为是一个多生成树实例。其中实例0被称为IST,其他的多生成树实例为MSTI。MSTP同RSTP一样,使用配置消息进行生成树的计算,只是配置消息中携带的是设备上MSTP的配置信息。
(1) CIST生成树的计算
通过“配置消息”的比较在整个网络中选择一个优先级最高的设备作为CIST的根桥。在每个MST域内MSTP通过计算生成IST;同时MSTP将每个MST域作为单台设备对待,通过计算在域间生成CST。CST和IST构成了整个网络的CIST。
(2) MSTI的计算
在MST域内,MSTP根据VLAN和生成树实例的映射关系,针对不同的VLAN生成不同的生成树实例,即MSTI。
每棵生成树独立进行计算,计算过程与STP计算生成树的过程类似,请参见“1.1.1 4. STP的基本原理”
MSTP中,一个VLAN报文将沿着如下路径进行转发:
l 在MST域内,沿着其对应的MSTI转发;
l 在MST域间,沿着CST转发。
MSTP同时兼容STP、RSTP。STP、RSTP两种协议报文都可以被运行MSTP的设备识别并应用于生成树计算。
设备除了提供MSTP的基本功能外,还从用户的角度出发,提供了许多便于管理的特殊功能,如下所示:
l 根桥保持;
l 根桥备份;
l ROOT保护功能;
l BPDU保护功能;
l 环路保护功能;
用户在配置前需要明确各设备在每个生成树实例中所处的地位:根桥地位或者叶子节点地位。每个生成树实例中只有一个设备处于根桥地位,其余设备均处于叶子节点地位。
表1-6 配置MSTP配置任务简介
配置任务 |
说明 |
详细配置 |
|
配置根桥 |
配置MST域 |
必选 |
|
指定当前设备为根桥或备份根桥 |
可选 |
||
配置MSTP的工作模式 |
可选 |
||
配置当前设备的优先级 |
可选 |
||
配置MST域的最大跳数 |
可选 |
||
配置交换网络的网络直径 |
可选 |
||
配置MSTP的时间参数 |
可选 |
||
配置超时时间因子 |
可选 |
||
配置端口的最大发送速率 |
可选 |
||
配置端口为边缘端口 |
可选 |
||
配置端口是否与点对点链路相连 |
可选 |
||
配置端口使用的MSTP报文格式 |
可选 |
||
开启MSTP特性 |
必选 |
||
配置叶子节点 |
配置MST域 |
必选 |
|
配置MSTP的工作模式 |
可选 |
||
配置超时时间因子 |
可选 |
||
配置端口的最大发送速率 |
可选 |
||
配置端口为边缘端口 |
可选 |
||
配置端口的Path Cost |
可选 |
||
配置端口的优先级 |
可选 |
||
配置端口是否与点对点链路相连 |
可选 |
||
配置端口使用的MSTP报文格式 |
可选 |
||
开启MSTP特性 |
必选 |
||
执行mCheck操作 |
可选 |
||
配置摘要侦听特性 |
可选 |
||
配置快速迁移特性 |
可选 |
||
配置设备的保护功能 |
可选 |
注意:
当GVRP和MSTP同时在设备上启动时,GVRP报文将沿着生成树实例CIST进行传播。因此在GVRP和MSTP同时在设备上启动的情况下,如果用户希望通过GVRP在网络中发布某个VLAN,则用户在配置MSTP的VLAN映射表时要保证把这个VLAN映射到CIST(CIST即生成树实例0)上。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入MST域视图 |
stp region-configuration |
- |
配置MST域的域名 |
region-name name |
必选 缺省情况下,MST域的域名为设备的MAC地址 |
配置VLAN映射表 |
instance instance-id vlan vlan-list |
二者必选其一 缺省情况下,MST域内所有的VLAN都映射到生成树实例0 |
vlan-mapping modulo modulo |
||
配置MST域的MSTP修订级别 |
revision-level level |
可选 缺省情况下,MSTP域的修订级别为0 |
手动激活MST域的配置 |
active region-configuration |
必选 |
显示MST域的所有配置信息 |
check region-configuration |
可选 |
显示已经生效的MST域的配置信息 |
display stp region-configuration |
display命令可以在任意视图执行 |
注意:
只有两台设备上配置的MST域的域名相同、MST域内配置的所有生成树实例对应的VLAN映射表完全相同、MST域的修订级别相同,且设备之间有链路相通,这两台设备才属于同一个MST域。
用户在配置MST域的相关参数,特别是配置VLAN映射表时,会引起MSTP重新计算生成树,从而引起网络拓扑震荡。为了减少这种由于配置引起的震荡,MSTP在处理用户关于域的相关配置时,并不会马上触发生成树重新计算,而是在满足下列条件之一的情况下,这些域的配置才会真正的生效:
l 使用命令active region-configuration手工激活配置的MST域相关参数。
l 使用命令stp enable使能MSTP功能。
# 配置MST域名为info,MSTP修订级别为1,VLAN映射关系为VLAN2~VLAN10映射到生成树实例1上,VLAN20~VLAN30映射生成树实例2上。
[Sysname] stp region-configuration
[Sysname-mst-region] region-name info
[Sysname-mst-region] instance 1 vlan 2 to 10
[Sysname-mst-region] instance 2 vlan 20 to 30
[Sysname-mst-region] revision-level 1
[Sysname-mst-region] active region-configuration
MSTP可以通过计算来确定生成树的根桥。用户也可以通过设备提供的命令来指定当前设备为根桥。
表1-8 指定当前设备为特定生成树的根桥
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
指定设备为特定生成树的根桥 |
stp [ instance instance-id ] root primary [ bridge-diameter bridgenum ] [ hello-time centi-seconds ] |
必选 缺省情况下,设备不作为根桥 |
表1-9 指定当前设备为特定生成树的备份根桥
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
指定设备为特定生成树的备份根桥 |
stp [ instance instance-id ] root secondary [ bridge-diameter bridgenum ] [ hello-time centi-seconds ] |
必选 缺省情况下,设备不作为备份根桥 |
l 设置当前设备为根桥或者备份根桥之后,用户不能再修改设备的优先级。
l 用户可以将当前设备指定为生成树实例(由参数instance instance-id确定)的根桥或备份根桥。如果instance-id取值为0,当前设备将被指定为CIST的根桥或备份根桥。
l 当前设备在各棵生成树实例中的角色互相独立,它可以作为一棵生成树实例的根桥或备份根桥,同时也可以作为其他生成树实例的根桥或备份根桥;在同一棵生成树实例中,同一台设备不能既作为根桥,又作为备份根桥。
l 在一棵生成树实例中,生效的根桥只有一个;两台或两台以上的设备被指定为同一棵生成树实例的根桥时,MSTP将选择MAC地址最小的设备作为根桥。
l 用户可以给同一棵生成树指定多个备份根桥,即可以在两台或两台以上的设备上使用命令给同一棵生成树实例指定备份根桥。
l 当根桥出现故障或被关机时,备份根桥可以取代根桥成为指定生成树实例的根桥;但是此时如果用户设置了新的根桥,则备份根桥将不会成为根桥。如果用户为一棵生成树实例配置了多个备份根桥,当根桥失效时,MSTP将选择MAC地址最小的那个备份根桥作为根桥。
l 在设置根桥和备份根桥时,用户可以同时指定交换网络的网络直径和Hello Time参数,但这两个参数只对实例0(即CIST)有效,当用户为其他实例配置这两个参数时,可以配置成功,但实际并不起作用。关于网络直径和Hello Time的描述,可以参见配置任务 “1.3.6 配置交换网络的网络直径”和“1.3.7 配置MSTP的时间参数”。
# 指定当前设备为生成树实例1的根桥,生成树实例2的备份根桥。
<Sysname> system-view
[Sysname] stp instance 1 root primary
[Sysname] stp instance 2 root secondary
MSTP和RSTP能够互相识别对方的协议报文,可以互相兼容。而STP无法识别MSTP的报文,MSTP为了实现和STP设备的混合组网,同时完全兼容RSTP,设定了三种工作模式:STP兼容模式、RSTP模式、MSTP模式。
l 在STP兼容模式下,设备的各个端口将向外发送STP BPDU报文;
l 在RSTP模式下,设备的各个端口将向外发送RSTP BPDU报文,当发现与运行STP的设备相连时,该端口会自动迁移到STP兼容模式下工作;
l 在MSTP模式下,设备的各个端口将向外发送MSTP BPDU报文,当发现与运行STP的设备相连时,该端口会自动迁移到STP兼容模式下工作。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置MSTP的工作模式 |
stp mode { stp | rstp | mstp } |
可选 缺省情况下,工作模式为MSTP模式 |
# 配置MSTP的工作模式为STP兼容模式。
<Sysname> system-view
[Sysname] stp mode stp
设备的优先级的大小决定了这台设备是否能够被选作生成树的根桥。数值越小表示优先级越高,通过配置较小的优先级,可以达到指定某台设备成为生成树根桥的目的。支持MSTP的设备在不同的生成树实例中可以拥有不同的优先级。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置当前设备的优先级 |
stp [ instance instance-id ] priority priority |
可选 缺省情况下,设备优先级取值为32768 |
注意:
l 使用命令指定当前设备为根桥或者备份根桥之后,用户不能再对设备的优先级进行配置。
l 在生成树根桥的选择过程中,如果设备的优先级取值相同,则MAC地址最小的那台设备将被选择为根。
# 配置设备在生成树实例1中的优先级为4096。
<Sysname> system-view
[Syaname] stp instance 1 priority 4096
MST域的最大跳数限制了MST域的规模。配置在域根上的最大跳数将作为MST域的最大跳数。
从域内的生成树的根桥开始,域内的配置消息(即BPDU报文)每经过一台设备的转发,跳数就被减1;设备将丢弃收到的跳数为0的配置消息,使处于最大跳数外的设备无法参与生成树的计算,从而限制了MST域的规模。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置MST域的最大跳数 |
stp max-hops hops |
可选 缺省情况下,MST域的最大跳数为20 |
& 说明:
MST域的最大跳数越大,说明MST域的规模越大。只有配置在作为域根的设备上的MST域的最大跳数才能限制MST域的规模。
# 配置MST域的最大跳数为30。
<Sysname> system-view
[Sysname] stp max-hops 30
交换网络中任意两台主机都通过特定路径彼此相连,这些路径由一系列设备构成。网络直径指的是这些路径中设备个数最多的那条路径,用路径经过的设备个数来表征。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置交换网络的网络直径 |
stp bridge-diameter bridgenumber |
可选 缺省情况下,交换网络的网络直径为7 |
注意:
l 网络直径是表征网络规模的一个参数,网络直径越大,说明一个网络的规模越大。
l 当用户配置设备的网络直径参数时,MSTP通过计算自动将设备的Hello Time、 Forward Delay以及Max Age三个时间参数设置为一个较优的值。
l 设置网络直径只对CIST有效,对MSTI(多生成树实例)无效。
# 配置交换网络的网络直径为6。
<Sysname> system-view
[Sysname] stp bridge-diameter 6
MSTP中涉及三个时间参数:Forward Delay、Hello Time和Max Age。
l Forward Delay时间为设备状态迁移的延迟时间。链路故障会引发网络重新进行生成树的计算,生成树的结构将发生相应的变化。不过重新计算得到的新配置消息无法立刻传遍整个网络,如果新选出的根端口和指定端口立刻就开始数据转发的话,可能会造成暂时性的环路。为此协议采用了一种状态迁移的机制,新选出的根端口和指定端口要经过2倍的Forward Delay时间的延时后才能进入转发状态,这个延时保证了新的配置消息已经传遍整个网络。
l Hello Time用于设备检测链路是否存在故障。设备每隔Hello Time时间会向周围的设备发送Hello报文,以确认链路是否存在故障。
l Max Age时间是用来判断配置消息是否“过时”的参数,设备会将“过时”的配置消息丢弃。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置Forward Delay时间参数 |
stp timer forward-delay centi-seconds |
可选 缺省情况下,Forward Delay时间为1500厘秒(即15秒) |
配置Hello Time时间参数 |
stp timer hello centi-seconds |
可选 缺省情况下,Hello Time时间为200厘秒(即2秒) |
配置Max Age时间参数 |
stp timer max-age centi-seconds |
可选 缺省情况下,Max Age时间为2000厘秒(即20秒) |
整个交换网络中所有的设备采用CIST的根桥上的三个时间参数。
注意:
l 设备的Forward Delay时间参数的长短与交换网络的网络直径有关。一般来说,网络直径越大,Forward Delay时间就应该配置得越长。需要注意的是,如果Forward Delay时间配置的过小,可能会引入临时的冗余路径;如果Forward Delay时间配置的过大,网络可能会较长时间不能恢复连通。建议用户采用缺省值。
l 合适的Hello Time时间值可以保证设备能够及时发现网络中的链路故障,又不会占用过多的网络资源。如果用户设置的Hello Time时间值过长,在链路发生丢包时,设备会误以为链路出现了故障,从而引发网络设备重新计算生成树;如果用户设置的Hello Time时间值过短,设备将频繁发送重复的配置消息,增加了设备的负担,浪费了网络资源。建议用户采用缺省值。
l 如果用户配置的Max Age时间过小,网络设备会频繁地计算生成树,而且有可能将网络拥塞误认成链路故障;如果用户配置的Max Age时间过大,网络设备很可能不能及时发现链路故障,不能及时重新计算生成树,从而降低网络的自适应能力。建议用户采用缺省值。
根桥的Hello Time、Forward Delay以及Max Age三个时间参数取值之间应该满足如下公式,否则网络会频繁震荡:
l 2 ×(Forward Delay - 1 second)¦ Max Age
l Max Age ¦ 2 ×(Hello Time + 1 second)
建议用户使用stp root primary命令指定交换网络的网络直径,MSTP会自动计算出这三个时间参数的比较优的取值。
# 配置Forward Delay为1600厘秒,Hello Time为300厘秒,Max Age为2100厘秒。
<Sysname> system-view
[Sysname] stp timer forward-delay 1600
[Sysname] stp timer hello 300
[Sysname] stp timer max-age 2100
设备每隔Hello Time时间会向周围设备发送协议报文,以确认链路是否存在故障。通常如果设备在9倍的Hello Time时间内没有收到上游设备发送的协议报文,就会认为上游设备已经故障,从而重新进行生成树的计算。
在非常稳定的网络中,可能由于上游设备的繁忙而导致这种生成树的重新计算。在这种情况下,用户可以通过配置来延长超时时间,从而避免这种无谓的生成树计算。
表1-15 配置超时时间因子
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置特定设备的超时时间因子 |
stp timer-factor number |
可选 缺省情况下,设备的超时时间因子为3 |
& 说明:
l 超时时间=超时时间因子×3×Hello Time。
l 一般情况下,在稳定的网络中,推荐用户将超时时间因子设置为5、6或者7。
# 配置超时时间因子为6。
<Sysname> system-view
[Sysname] stp timer-factor 6
端口的最大发送速率是指:每Hello Time时间内端口最多能够发送的MSTP报文个数。
以太网端口的最大发送速率与端口的物理状态和网络结构有关,用户可以根据实际的网络情况对其进行配置。
表1-16 配置端口的最大发送速率
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
进入以太网接口视图或端口组视图 |
进入以太网接口视图 |
interface interface-type interface-number |
二者必选其一 进入以太网接口视图后,下面进行的配置只在当前端口生效;进入端口组视图后,下面进行的配置将在端口组中的所有端口生效 |
进入端口组视图 |
port-group { manual port-group-name | aggregation agg-id } |
||
配置端口的最大发送速率 |
stp transmit-limit packet-number |
可选 缺省情况下,设备上所有以太网端口的最大发送速率为10 |
& 说明:
如果端口的最大发送速率被配置得过大,每个Hello Time内发送的MSTP报文数会很多,从而占用过多的网络资源。建议用户采用缺省值。
# 配置GigabitEthernet1/0/1的最大发送速率为5。
<Sysname> system-view
[Sysname] interface GigabitEthernet1/0/1
[Sysname-GigabitEthernet1/0/1] stp transmit-limit 5
当端口直接与用户终端相连,而没有连接到其它设备或共享网段上,则该端口被认为是边缘端口。网络拓扑变化时,边缘端口不会产生临时环路。因此,用户如果将某个端口指定为边缘端口,那么当该端口由堵塞状态向转发状态迁移时,这个端口可以实现快速迁移,而无需等待延迟时间。
表1-17 配置端口为边缘端口
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
进入以太网接口视图或端口组视图 |
进入以太网接口视图 |
interface interface-type interface-number |
二者必选其一 进入以太网接口视图后,下面进行的配置只在当前端口生效;进入端口组视图后,下面进行的配置将在端口组中的所有端口生效 |
进入端口组视图 |
port-group { manual port-group-name | aggregation agg-id } |
||
配置端口为边缘端口 |
stp edged-port enable |
必选 缺省情况下,设备所有以太网端口均被配置为非边缘端口 |
& 说明:
l 在设备没有使能BPDU保护的情况下,如果被设置为边缘端口的端口上收到来自其它端口的BPDU报文,则该端口会重新变为非边缘端口。此时,只有重启端口才能将该端口恢复为边缘端口。
l 对于直接与终端相连的端口,请将该端口设置为边缘端口,同时启动BPDU保护功能。这样既能够使该端口快速迁移到转发状态,也可以保证网络的安全。
# 配置GigabitEthernet1/0/1为边缘端口。
<Sysname> system-view
[Sysname] interface GigabitEthernet1/0/1
[Sysname-GigabitEthernet1/0/1] stp edged-port enable
点对点链路是两台设备之间直接连接的链路。以点对点链路相连的两个端口如果为根端口或者指定端口,则端口可以通过传送同步报文快速迁移到转发状态,减少了不必要的转发延迟时间。
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
进入以太网接口视图或端口组视图 |
进入以太网接口视图 |
interface interface-type interface-number |
二者必选其一 进入以太网接口视图后,下面进行的配置只在当前端口生效;进入端口组视图后,下面进行的配置将在端口组中的所有端口生效 |
进入端口组视图 |
port-group { manual port-group-name | aggregation agg-id } |
||
配置端口是否与点对点链路相连 |
stp point-to-point { auto | force-false | force-true } |
可选 缺省情况下,该参数被配置为auto,即采用自动方式检测与该以太网端口相连的链路是否是点对点链路 |
& 说明:
l 对于汇聚端口,所有端口都可以被配置成与点对点链路相连;如果一个端口工作在自协商模式,协商出来的工作模式是全双工,可以将此端口配置为点对点链路。
l 当端口被设置为与点对点链路相连,则该端口在所有生成树实例上均被设置为与点对点链路相连。如果端口实际物理链路不是点对点链路,用户错误配置为强制点对点链路,则有可能会引入临时环路。
# 配置GigabitEthernet1/0/1和点对点链路相连。
<Sysname> system-view
[Sysname] interface GigabitEthernet1/0/1
[Sysname-GigabitEthernet1/0/1] stp point-to-point force-true
端口可以使用的MSTP报文格式有两种:
l 符合802.1s协议的标准格式;
l 与非标准格式兼容的格式。
端口报文格式的默认配置为自动识别方式,即端口可以自动识别这两种格式的MSTP报文。用户也可以通过命令行配置端口所使用的MSTP报文格式为标准格式或与非标准格式兼容的格式,此时MSTP模式下,端口只收发端口所配置的格式的MSTP报文。
表1-19 配置端口使用的MSTP报文格式
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
进入以太网接口视图或端口组视图 |
进入以太网接口视图 |
interface interface-type interface-number |
二者必选其一 进入以太网接口视图后,下面进行的配置只在当前端口生效;进入端口组视图后,下面进行的配置将在端口组中的所有端口生效 |
进入端口组视图 |
port-group { manual port-group-name | aggregation agg-id } |
||
配置端口使用的MSTP报文格式 |
stp compliance { auto | dot1s | legacy } |
可选 缺省情况下,该参数被配置为auto,即采用自动检测方式 |
& 说明:
l 如果配置了端口报文格式为非自动检测方式,MSTP模式下如果收到的报文格式与端口使用的报文格式配置不一致,则端口将成为指定端口,端口状态保持在Discarding状态,以防止出现环路。
l 设备在运行过程中,如果端口收到的MSTP报文格式有频繁变化现象,则表明组网中MSTP报文格式的配置出现了错误,此时在MSTP模式下会把该端口关闭加以保护。被关闭的端口只能由网络管理人员恢复。
# 配置端口MSTP报文格式为标准格式。
<Sysname> system-view
[Sysname] interface GigabitEthernet1/0/1
[Sysname-GigabitEthernet1/0/1] stp compliance dot1s
表1-20 开启MSTP特性
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
开启设备MSTP特性 |
stp enable |
必选 缺省情况下,设备运行MSTP |
|
进入以太网接口视图或端口组视图 |
进入以太网接口视图 |
interface interface-type interface-number |
二者必选其一 进入以太网接口视图后,下面进行的配置只在当前端口生效;进入端口组视图后,下面进行的配置将在端口组中的所有端口生效 |
进入端口组视图 |
port-group { manual port-group-name | aggregation agg-id } |
||
开启端口的MSTP特性 |
stp enable |
可选 缺省情况下,设备MSTP特性开启后所有端口上的MSTP特性都是开启的 |
|
关闭端口的MSTP特性 |
stp disable 或undo stp |
可选 为了灵活地控制MSTP工作,可以关闭设备上特定以太网端口的MSTP特性,使这些端口不参与生成树计算,节省设备的CPU资源 |
& 说明:
只有开启了设备的MSTP特性,MSTP的其他配置才能生效。
# 开启设备的MSTP特性,并关闭GigabitEthernet1/0/1上的MSTP特性。
<Sysname> system-view
[Sysname] stp enable
[Sysname] interface GigabitEthernet1/0/1
[Sysname-GigabitEthernet1/0/1] stp disable
详细配置请参考1.3.3 配置MSTP的工作模式
详细配置请参考1.3.9 配置端口的最大发送速率。
Path Cost即路径开销,是与端口相连的链路速率相关的参数。在支持MSTP的设备上,端口在不同的生成树实例中可以拥有不同的路径开销。设置合适的路径开销可以使不同VLAN的流量沿不同的物理链路转发,从而实现按VLAN负载分担的功能。
设备可以自动计算端口的缺省Path Cost,用户也可以直接配置端口的Path Cost。
在设备自动计算端口的缺省Path Cost时,用户可以指定计算时所采用的标准。设备提供如下三种标准:
l dot1d-1998:设备按照IEEE 802.1D-1998标准来计算端口的缺省Path Cost。
l dot1t:设备按照IEEE 802.1t标准来计算端口的缺省Path Cost。
l legacy:设备按照私有标准来计算端口的缺省Path Cost。
表1-21 指定设备计算缺省Path Cost所采用的标准
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
设定设备在计算与设备相连的链路的缺省Path Cost时采用的标准 |
stp pathcost-standard { dot1d-1998 | dot1t | legacy } |
可选 缺省情况下,设备采用的计算标准与设备的型号有关,请以设备的实际情况为准 |
表1-22 端口速率与cost值对应表
链路速率 |
双工状态 |
802.1D-1998 |
802.1t |
私有标准 |
0 |
- |
65535 |
200,000,000 |
200,000 |
10Mbit/s |
Single Port Aggregated Link 2 Ports Aggregated Link 3 Ports Aggregated Link 4 Ports |
100 100 100 100 |
2,000,000 1,000,000 666,666 500,000 |
2,000 1,800 1,600 1,400 |
100Mbit/s |
Single Port Aggregated Link 2 Ports Aggregated Link 3 Ports Aggregated Link 4 Ports |
19 19 19 19 |
200,000 100,000 66,666 50,000 |
200 180 160 140 |
1000Mbit/s |
Single Port Aggregated Link 2 Ports Aggregated Link 3 Ports Aggregated Link 4 Ports |
4 4 4 4 |
20,000 10,000 6,666 5,000 |
20 18 16 14 |
10Gbit/s |
Single Port Aggregated Link 2 Ports Aggregated Link 3 Ports Aggregated Link 4 Ports |
2 2 2 2 |
2,000 1,000 666 500 |
2 1 1 1 |
& 说明:
在计算聚合链路Path Cost值时,802.1D-1998标准不考虑该聚合链路的链路数量。802.1T标准则考虑聚合链路的链路数量,计算公式为Path Cost = 200,000,000/link speed in 100Kbps,公式中链路速率为聚合链路中处于非阻塞状态的端口速率之和。
表1-23 配置端口的Path Cost
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
进入以太网接口视图或端口组视图 |
进入以太网接口视图 |
interface interface-type interface-number |
二者必选其一 进入以太网接口视图后,下面进行的配置只在当前端口生效;进入端口组视图后,下面进行的配置将在端口组中的所有端口生效 |
进入端口组视图 |
port-group { manual port-group-name | aggregation agg-id } |
||
配置端口的Path Cost |
stp [ instance instance-id ] cost cost |
必选 缺省情况下,由MSTP计算各个端口的Path Cost |
注意:
l 如果用户改变计算缺省Path Cost值采用的标准,则之前通过stp cost命令设置的端口Path Cost会失去作用。
l 端口Path Cost改变时,MSTP会重新计算端口的角色并进行状态迁移。instance-id为0时表示设置为CIST的路径开销。
# 配置GigabitEthernet1/0/1在生成树实例1中的路径开销为2000。
<Sysname> system-view
[Sysname] interface GigabitEthernet1/0/1
[Sysname-GigabitEthernet1/0/1] stp instance 1 cost 2000
# 配置GigabitEthernet1/0/1在生成树实例1中的路径开销由MSTP自动计算,采用的标准为IEEE 802.1D-1998。
[Sysname] interface GigabitEthernet1/0/1
[Sysname-GigabitEthernet1/0/1] undo stp instance 1 cost
[Sysname-GigabitEthernet1/0/1] quit
[Sysname] stp pathcost-standard dot1d-1998
Cost configuration of every port will be reset and auto-calculation is available
after changing current pathcost standard. Continue? [Y/N]y
Cost of every port has been recalculated.
端口优先级是确定该端口是否会被选为根端口的重要依据,同等条件下优先级高的端口将被选为根端口。
在支持MSTP的设备上,端口可以在不同的生成树实例中拥有不同的优先级,同一端口可以在不同的生成树实例中担任不同的角色,从而使不同VLAN的数据沿不同的物理路径传播,实现按VLAN进行负载分担的功能。用户可以根据组网的实际需要来设置端口的优先级。
表1-24 配置端口的优先级
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
进入以太网接口视图或端口组视图 |
进入以太网接口视图 |
interface interface-type interface-number |
二者必选其一 进入以太网接口视图后,下面进行的配置只在当前端口生效;进入端口组视图后,下面进行的配置将在端口组中的所有端口生效 |
进入端口组视图 |
port-group { manual port-group-name | aggregation agg-id } |
||
配置端口的优先级 |
stp [ instance instance-id ] port priority priority |
可选 缺省情况下,设备所有以太网端口的优先级为128 |
& 说明:
l 端口优先级改变时,MSTP会重新计算端口的角色并进行状态迁移。
l 一般情况下,配置的值越小,端口的优先级就越高。如果设备所有的以太网端口采用相同的优先级参数值,则以太网端口的优先级高低就取决于该以太网端口的索引号。改变以太网端口的优先级会引起生成树重新计算。
# 配置GigabitEthernet1/0/1在生成树实例1中的端口优先级为16。
[Sysname] interface GigabitEthernet1/0/1
[Sysname-GigabitEthernet1/0/1] stp instance 1 port priority 16
详细配置请参考1.3.11 配置端口是否与点对点链路相连。
详细配置请参考1.3.12 配置端口使用的MSTP报文格式。
在支持MSTP的设备上端口有三种工作模式:STP兼容模式、RSTP模式和MSTP模式。
假设在一个交换网络中,运行MSTP(或RSTP)的设备的端口连接着运行STP的设备,该端口会自动迁移到STP兼容模式下工作;但是此时如果运行STP协议的设备被拆离,该端口不能自动迁移到MSTP(或RSTP)模式下运行,仍然会工作在STP兼容模式下。此时可以通过执行mCheck操作迫使其迁移到MSTP(或RSTP)模式下运行。
可以通过下面两种途径在端口上执行mCheck操作,两种方法的效果相同。
MSTP在设备上已经正确配置。
表1-25 执行全局mCheck操作
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
执行mCheck操作 |
stp mcheck |
必选 |
表1-26 在以太网接口视图下执行mCheck操作
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入以太网接口视图 |
interface interface-type interface-number |
- |
执行mCheck操作 |
stp mcheck |
必选 |
注意:
stp mcheck命令必须在设备运行MSTP(或RSTP)的情况下进行配置,如果设备的协议运行模式被配置为STP兼容模式,该命令无效。
# 对GigabitEthernet1/0/1执行mCheck操作。
(1) 执行全局mCheck操作实现该配置。
<Sysname> system-view
[Sysname] stp mcheck
(2) 在以太网端口视图下实现该配置。
[Sysname] interface GigabitEthernet1/0/1
[Sysname-GigabitEthernet1/0/1] stp mcheck
根据IEEE 802.1s规定,只有在域配置(包括域名、修订级别、VLAN与实例映射关系)完全一致的情况下,相连的设备才被认为是在同一个域内。当设备开启MSTP功能以后,设备之间通过识别BPDU数据报文内的配置ID来判断相连的设备是否与自己处于相同的MST域内;配置ID包含域名、修订级别、配置摘要等内容,其中配置摘要长16字节,是由HMAC-MD5算法将VLAN实例映射关系加密计算而成。
在网络中,由于一些厂商的设备在对MSTP协议的实现上存在差异,即用加密算法计算配置摘要时采用私有的密钥,从而导致即使MST域配置相同,不同厂商的设备之间也不能实现在MSTP域内的互通。
通过在设备上与对MSTP协议的实现存在私有性差异的厂商设备相连的端口开启摘要侦听特性,可以实现与厂商设备在MST域内的完全互通。
与厂商设备相连,网络配置正确,MSTP正常运行。
表1-27 配置摘要侦听特性
配置步骤 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
进入以太网接口视图或端口组视图 |
进入以太网接口视图 |
interface interface-type interface-number |
二者必选其一 进入以太网接口视图后,下面进行的配置只在当前端口生效;进入端口组视图后,下面进行的配置将在端口组中的所有端口生效 |
进入端口组视图 |
port-group { manual port-group-name | aggregation agg-id } |
||
在端口上开启摘要侦听特性 |
stp config-digest-snooping |
必选 缺省情况下,摘要侦听特性在端口上处于关闭状态 |
|
退回系统视图 |
quit |
- |
|
全局开启摘要侦听特性 |
stp config-digest-snooping |
必选 缺省情况下,摘要侦听特性在设备上处于关闭状态 |
|
显示配置的信息 |
display stp |
display命令可以在任意视图下执行 |
注意:
l 当且仅当与对MSTP协议的实现存在私有性差异的厂商设备(采用私有密钥来计算配置摘要)互连时才有必要开启摘要侦听特性。
l 摘要侦听特性在端口生效后,由于不再通过配置摘要的比较计算来判断是否在同一个域内,因此需要保证互连设备的域配置中的VLAN实例映射关系配置相同。
l 全局开启摘要侦听特性后,禁止修改MST域配置中VLAN与实例的映射关系,禁止执行undo stp region-configuration命令取消当前域配置,但可以修改域配置中的域名和修订级别。
l 必须同时在端口和全局同时开启摘要侦听特性,该特性才会生效。建议先在与厂商设备相连的所有端口开启摘要侦听特性,然后再全局开启摘要侦听特性,一次性让所有端口的配置生效,从而减少对网络的冲击;而要关闭所有端口的摘要侦听特性时,不必逐个端口关闭,只需要全局关闭即可。
l 建议不要在MST域边界端口开启摘要侦听特性,否则可能会导致环路。
l 建议摘要侦听特性配置完毕后再使能MSTP协议。在网络稳定的情况下不要进行摘要侦听特性的配置以免造成临时的流量中断。
l SwitchA、SwitchB与对MSTP协议的实现存在私有性差异的厂商设备互联并配置在同一域内。
l 在SwitchA、SwitchB上开启摘要侦听特性,实现与厂商设备在MSTP域内的互通。
图1-6 配置摘要侦听特性组网图
(1) 在SwitchA上开启摘要侦听特性
# 在端口GigabitEthernet1/0/1上开启摘要侦听特性。
<Sysname> system-view
[Sysname] interface GigabitEthernet1/0/1
[Sysname-GigabitEthernet1/0/1] stp config-digest-snooping
# 全局开启摘要侦听特性。
[Sysname-GigabitEthernet1/0/1] quit
[Sysname] stp config-digest-snooping
(2) 在SwitchB上开启摘要侦听特性(与上相同,略)
RSTP和MSTP的指定端口快速迁移机制使用两种协议报文:
l proposal报文:指定端口请求快速迁移的报文。
l agreement报文:同意对端进行快速迁移的报文。
RSTP和MSTP均要求上游设备的指定端口在接收到下游设备的agreement报文后才能进行快速迁移。不同之处如下:
l 对于MSTP,上游设备先向下游设备发送agreement报文,而下游设备的根端口只有在收到了上游设备的agreement报文后才会向上游设备回应agreement报文。
l 对于RSTP,下游设备无需等待上游设备发送agreement报文就可向上游设备发送agreement报文。
图1-8和图1-7说明了MSTP和RSTP的指定端口快速迁移机制。
图1-7 MSTP指定端口快速迁移机制
图1-8 RSTP指定端口快速迁移机制
当设备与作为上游设备且对MSTP协议的实现存在私有性差异的厂商设备互联时,二者在快速迁移的配合上可能会存在一定的限制。例如:上游设备指定端口的状态迁移实现机制与RSTP类似;而下游设备运行MSTP并且不工作在RSTP兼容模式时,由于下游设备的根端口接收不到上游设备的agreement报文,它不会向上游设备发agreement报文,所以上游设备的指定端口无法实现状态的快速迁移,只能在2倍的Forward Delay延时后变成转发状态。
通过在设备上与对MSTP协议的实现存在私有性差异的上游厂商设备相连的端口开启no agreement check特性,可避免这种情况的出现,使得上游厂商设备的指定端口能够进行状态的快速迁移。
l 设备与作为上游设备且支持MSTP的厂商设备互连,并且端口之间为点对点链路。
l 为设备和厂商设备配置相同的域名、域配置修订级别和VLAN与实例映射关系,以确保它们在同一个域内。
表1-28 配置快速迁移特性
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
进入以太网接口视图或端口组视图 |
进入以太网接口视图 |
interface interface-type interface-number |
二者必选其一 进入以太网接口视图后,下面进行的配置只在当前端口生效;进入端口组视图后,下面进行的配置将在端口组中的所有端口生效 |
进入端口组视图 |
port-group { manual port-group-name | aggregation agg-id } |
||
开启no agreement check特性 |
stp no-agreement-check |
必选 缺省情况下,no agreement check特性处于关闭状态 |
& 说明:
当且仅当在根端口或Alternate端口上开启no agreement check特性时,此特性才会生效。
l SwitchA与对MSTP协议的实现存在私有性差异的厂商设备互连并配置在同一域内;
l 厂商设备作为域根,SwitchA作为下游设备。
图1-9 配置快速迁移特性组网图
# 在SwitchA端口GigabitEthernet1/0/1上开启快速迁移特性。
<Sysname> system-view
[Sysname] interface GigabitEthernet1/0/1
[Sysname-GigabitEthernet1/0/1] stp no-agreement-check
支持MSTP的设备提供了四种保护功能:
l BPDU保护功能;
l Root保护功能;
l 环路保护功能;
l 防止TC-BPDU报文攻击的保护功能。
& 说明:
l BPDU保护、Root保护、环路保护这三种保护功能的支持情况与设备的型号有关,请以设备的实际情况为准。
l 在对一个端口进行配置的时候,在环路保护功能、Root保护功能或者边缘端口设置三个配置中,同一时刻只能有一个配置生效。
各保护功能的作用如下:
l BPDU保护功能
对于接入层设备,接入端口一般直接与用户终端(如PC机)或文件服务器相连,此时接入端口被设置为边缘端口以实现这些端口的快速迁移;当这些端口接收到配置消息(BPDU报文)时系统会自动将这些端口设置为非边缘端口,重新计算生成树,引起网络拓扑的震荡。这些端口正常情况下应该不会收到STP的配置消息。如果有人伪造配置消息恶意攻击设备,就会引起网络震荡。
MSTP提供BPDU保护功能来防止这种攻击:设备上启动了BPDU保护功能后,如果边缘端口收到了配置消息,系统就将这些端口关闭,同时通知网管这些端口被MSTP关闭。被关闭的端口只能由网络管理人员恢复。
l Root保护功能
生成树的根桥及备份根桥应该处于同一个域内,特别是对于CIST的根桥和备份根桥,网络设计时一般会把CIST的根桥和备份根桥放在一个高带宽的核心域内。但是,由于维护人员的错误配置或网络中的恶意攻击,网络中的合法根桥有可能会收到优先级更高的配置消息,这样当前根桥会失去根桥的地位,引起网络拓扑结构的错误变动。这种不合法的变动,会导致原来应该通过高速链路的流量被牵引到低速链路上,导致网络拥塞。
为了防止这种情况发生,MSTP提供Root保护功能对根桥进行保护:对于设置了Root保护功能的端口,其在所有实例上的端口角色只能保持为指定端口。一旦该端口收到某实例优先级更高的配置消息,立即将该实例端口设置为侦听状态,不再转发报文(相当于将此端口相连的链路断开)。当在足够长的时间内没有收到更优的配置消息时,端口会恢复原来的正常状态。
l 环路保护功能
依靠不断接收上游设备发送的BPDU报文,设备可以维持根端口和其他阻塞端口的状态。但是由于链路拥塞或者单向链路故障,这些端口会收不到上游设备的BPDU报文,此时下游设备会重新选择端口角色,收不到BPDU报文的下游设备端口会转变为指定端口,而阻塞端口会迁移到转发状态,从而交换网络中会产生环路。环路保护功能会抑制这种环路的产生。
对于配置了环路保护的端口,当接收不到上游设备发送的BPDU报文,环路保护生效时,如果该端口参与了STP计算,则不论其角色如何,该端口上的所有实例将一直被设置为Discarding状态。
l 防止TC-BPDU报文攻击功能
正常情况下,当交换机收到TC-BPDU报文后,会先删除本机的MAC地址表,然后根据更新后的MAC地址表按照STP实例更新ARP地址表。因此当有人故意伪造TC-BPDU报文恶意攻击交换机时,短时间内交换机会收到大量的TC-BPDU报文,造成交换机频繁的删除本机的MAC地址表,导致ARP地址表不停的刷新,影响STP生成树的计算并占用大量的网络带宽,还造成交换机CPU占用率居高不下。
使能防止TC-BPDU报文攻击功能后,交换机会在收到TC-BPDU报文后,进行一次删除MAC地址表的操作,并同时启动周期为10秒的定时器。在此周期时间内,如果交换机再次收到TC-BPDU报文,则交换机可以进行1次删除MAC地址表项的操作,并重新开始计时。从而避免频繁的删除MAC地址表,给交换机进行STP计算以及网络稳定性带来恶劣的影响。
MSTP在设备上已经正确配置。
& 说明:
建议用户启动BPDU保护功能。
表1-29 配置BPDU保护功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
启动设备的BPDU保护功能 |
stp bpdu-protection |
必选 缺省情况下,设备不启动BPDU保护功能 |
# 启动BPDU保护功能。
<Sysname> system-view
[Sysname] stp bpdu-protection
& 说明:
建议用户启动Root保护功能。
表1-30 配置Root保护功能
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
进入以太网接口视图或端口组视图 |
进入以太网接口视图 |
interface interface-type interface-number |
二者必选其一 进入以太网接口视图后,下面进行的配置只在当前端口生效;进入端口组视图后,下面进行的配置将在端口组中的所有端口生效 |
进入端口组视图 |
port-group { manual port-group-name | aggregation agg-id } |
||
启动端口的Root保护功能 |
stp root-protection |
必选 缺省情况下,端口不启动Root保护功能 |
# 启动端口GigabitEthernet1/0/1的Root保护功能。
<Sysname> system-view
[Sysname] interface GigabitEthernet1/0/1
[Sysname-GigabitEthernet1/0/1] stp root-protection
& 说明:
建议用户启动环路保护功能。
表1-31 配置环路保护功能
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
进入以太网接口视图或端口组视图 |
进入以太网接口视图 |
interface interface-type interface-number |
二者必选其一 进入以太网接口视图后,下面进行的配置只在当前端口生效;进入端口组视图后,下面进行的配置将在端口组中的所有端口生效 |
进入端口组视图 |
port-group { manual port-group-name | aggregation agg-id } |
||
启动端口的环路保护功能 |
stp loop-protection |
必选 缺省情况下,端口不启动环路保护功能 |
# 启动端口GigabitEthernet1/0/2的环路保护功能。
<Sysname> system-view
[Sysname] interface GigabitEthernet 1/0/2
[Sysname-GigabitEthernet1/0/2] stp loop-protection
表1-32 配置防止TC-BPDU报文攻击的保护功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
启动防止TC-BPDU报文攻击的保护功能 |
stp tc-protection enable |
可选 缺省情况下,设备启动本保护功能 |
& 说明:
建议用户不要将此保护功能关闭。
# 启动防止TC-BPDU报文攻击的保护功能。
<Sysname> system-view
[Sysname] stp tc-protection enable
在完成上述配置后,在任意视图下执行display命令都可以显示配置后MSTP的运行情况,通过查看显示信息验证配置的效果。
在用户视图下执行reset命令可以清除MSTP统计信息。
操作 |
命令 |
显示MSTP的状态信息与统计信息 |
display stp [ instance instance-id ] [ interface interface-list | slot slot-num ] [ brief ] |
显示域的配置信息 |
display stp region-configuration |
清除MSTP的统计信息 |
reset stp [ interface interface-list ] |
使用MSTP使组网图中不同VLAN的报文按照不同的生成树转发。具体配置为:
l 网络中所有设备属于同一个MST域。
l VLAN10的报文沿着实例1转发,VLAN30沿着实例3转发,VLAN40沿着实例4转发,VLAN20沿着实例0转发。
l Switch A和Switch B为汇聚层设备,Switch C和Switch D为接入层设备。VLAN10、VLAN30在汇聚层设备终结,VLAN40在接入层设备终结,因此配置实例1和实例3的根桥分别为Switch A和Switch B,实例4的根桥为Switch C。
& 说明:
图中链路上的说明“permit”表示该链路允许哪些VLAN的报文通过。
(1) 配置Switch A
# 配置MST域。
<Sysname> system-view
[Sysname] stp region-configuration
[Sysname-mst-region] region-name example
[Sysname-mst-region] instance 1 vlan 10
[Sysname-mst-region] instance 3 vlan 30
[Sysname-mst-region] instance 4 vlan 40
[Sysname-mst-region] revision-level 0
# 手工激活MST域的配置。
[Sysname-mst-region] active region-configuration
# 定义Switch A为实例1的根桥。
[Sysname] stp instance 1 root primary
# 显示已经生效的MST域的配置信息。
[Sysname] display stp region-configuration
Oper configuration
Format selector :0
Region name :example
Revision level :0
Instance Vlans Mapped
0 1 to 9, 11 to 29, 31 to 39, 41 to 4094
1 10
3 30
4 40
(2) 配置Switch B
# 配置MST域。
<Sysname> system-view
[Sysname] stp region-configuration
[Sysname-mst-region] region-name example
[Sysname-mst-region] instance 1 vlan 10
[Sysname-mst-region] instance 3 vlan 30
[Sysname-mst-region] instance 4 vlan 40
[Sysname-mst-region] revision-level 0
# 手工激活MST域的配置。
[Sysname-mst-region] active region-configuration
# 定义Switch B为实例3的根桥。
[Sysname] stp instance 3 root primary
# 显示已经生效的MST域的配置信息。
[Sysname] display stp region-configuration
Oper configuration
Format selector :0
Region name :example
Revision level :0
Instance Vlans Mapped
0 1 to 9, 11 to 29, 31 to 39, 41 to 4094
1 10
3 30
4 40
(3) 配置Switch C
# 配置MST域。
<Sysname> system-view
[Sysname] stp region-configuration
[Sysname-mst-region] region-name example
[Sysname-mst-region] instance 1 vlan 10
[Sysname-mst-region] instance 3 vlan 30
[Sysname-mst-region] instance 4 vlan 40
[Sysname-mst-region] revision-level 0
# 手工激活MST域的配置。
[Sysname-mst-region] active region-configuration
# 定义Switch C为实例4的根桥。
[Sysname] stp instance 4 root primary
# 显示已经生效的MST域的配置信息。
[Sysname] display stp region-configuration
Oper configuration
Format selector :0
Region name :example
Revision level :0
Instance Vlans Mapped
0 1 to 9, 11 to 29, 31 to 39, 41 to 4094
1 10
3 30
4 40
(4) 配置Switch D
# 配置MST域。
<Sysname> system-view
[Sysname] stp region-configuration
[Sysname-mst-region] region-name example
[Sysname-mst-region] instance 1 vlan 10
[Sysname-mst-region] instance 3 vlan 30
[Sysname-mst-region] instance 4 vlan 40
[Sysname-mst-region] revision-level 0
# 手工激活MST域的配置。
[Sysname-mst-region] active region-configuration
# 显示已经生效的MST域的配置信息。
[Sysname] display stp region-configuration
Oper configuration
Format selector :0
Region name :example
Revision level :0
Instance Vlans Mapped
0 1 to 9, 11 to 29, 31 to 39, 41 to 4094
1 10
3 30
4 40
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!