stp(spanning tree protocol,生成树协议)不能使端口状态快速迁移,即使是在点对点链路或边缘端口,也必须等待2倍的forward delay的时间延迟,端口才能迁移到转发状态。
rstp(rapid spanning tree protocol,快速生成树协议)可以快速收敛,但是和stp一样存在以下缺陷:局域网内所有网桥共享一棵生成树,不能按vlan阻塞冗余链路,所有vlan的报文都沿着一棵生成树进行转发。
mstp(multiple spanning tree protocol,多生成树协议)将环路网络修剪成为一个无环的树型网络,避免报文在环路网络中的增生和无限循环,同时还提供了数据转发的多个冗余路径,在数据转发过程中实现vlan数据的负载均衡。
mstp兼容stp和rstp,并且可以弥补stp和rstp的缺陷。它既可以快速收敛,也能使不同vlan的流量沿各自的路径分发,从而为冗余链路提供了更好的负载分担机制。
1.1.1 mstp的协议报文
bpdu(bridge protocol data unit,桥协议数据单元)是生成树协议采用的协议报文,也称为配置消息。
bpdu在交换机之间传递来确定网络的拓扑结构,它包含了足够的信息来保证交换机完成生成树计算。
bpdu在stp协议中分为两类:
配置bpdu(configuration bpdu):用来维护生成树拓扑的报文。
tcn bpdu(topology change notification bpdu):当拓扑发生变化时,用来通知相关交换机网络发生变化的报文。
mstp同stp/rstp一样,使用bpdu进行生成树的计算,只是mstp的bpdu中还携带了交换机上的mstp的配置信息。
1.1.2 mstp的基本概念
在图1-1中的每台交换机都运行mstp。下面结合图1-1解释mstp的一些基本概念。
1. mst域
mst域(multiple spanning tree regions,多生成树域)是由交换网络中的多台交换机以及它们之间的网段构成。这些交换机都启动了mstp、具有相同的域名、相同的vlan到生成树映射配置和相同的mstp修订级别配置,并且物理上有链路连通。
一个交换网络可以存在多个mst域。用户可以通过mstp配置命令把多台交换机划分在同一个mst域内。例如图1-1中的区域a0,域内所有交换机都有相同的mst域配置:域名相同,vlan与生成树的映射关系相同(vlan1映射到生成树实例1,vlan2映射到生成树实例2,其余vlan映射到cist),相同的mstp修订级别(此配置在图中没有体现)。
2. msti
msti(multiple spanning tree instance,多生成树实例)是指mst域内的生成树。
一个mst域内可以通过mstp生成多棵生成树,各棵生成树之间彼此独立。例如图1-1中,每个域内可以存在多棵生成树,每棵生成树和相应的vlan对应。这些生成树都被称为msti。
3. vlan映射表
vlan映射表是mst域的一个属性,用来描述vlan和msti的映射关系。例如图1-1中,域a0的vlan映射表就是:vlan 1映射到生成树实例1,vlan 2映射到生成树实例2,其余vlan映射到cist。mstp就是根据vlan映射表来实现负载分担的。
4. ist
ist(internal spanning tree,内部生成树)是mst域内的一棵生成树。
ist和cst(common spanning tree,公共生成树)共同构成整个交换机网络的生成树cist(common and internal spanning tree,公共和内部生成树)。ist是cist在mst域内的片段,是一个特殊的多生成树实例。例如图1-1中,cist在每个mst域内都有一个片段,这个片段就是各个域内的ist。
5. cst
cst是连接交换网络内所有mst域的单生成树。如果把每个mst域看作是一个“交换机”,cst就是这些“交换机”通过stp协议、rstp协议计算生成的一棵生成树。例如图1-1中,红色线条描绘的就是cst。
6. cist
cist是连接一个交换网络内所有交换机的单生成树,由ist和cst共同构成。例如图1-1中,每个mst域内的ist加上mst域间的cst就构成整个网络的cist。
7. 域根
域根是指mst域内ist和msti的树根。mst域内各棵生成树的拓扑不同,域根也可能不同。例如图1-1中,区域d0中,生成树实例1的域根为交换机b,生成树实例2的域根为交换机c。
8. 总根
总根(common root bridge)是指cist的树根。例如图1-1中,总根为区域a0内的某台交换机。
9. 端口角色
在mstp的计算过程中,端口角色主要有根端口、指定端口、master端口、域边缘端口、alternate端口和backup端口。
根端口是负责向树根方向转发数据的端口。
指定端口是负责向下游网段或交换机转发数据的端口。
master端口是连接mst域到总根的端口,位于整个域到总根的最短路径上。
域边缘端口是连接不同mst域、mst域和运行stp的区域、mst域和运行rstp的区域的端口,位于mst域的边缘。
alternate端口是master端口的备份端口,如果master端口被阻塞后,alternate端口将成为新的master端口。
当同一台交换机的两个端口互相连接时就存在一个环路,此时交换机会将其中一个端口阻塞,backup端口是被阻塞的那个端口。
在图1-2中,交换机a、b、c、d构成一个mst域。交换机a的端口1、2向总根方向连接,交换机c的端口5和端口6构成了环路,交换机d的端口3、4则向下连接其他的mst域,各个端口的角色如图1-2所示。
端口在不同的生成树实例中可以担任不同的角色。
域边缘端口在生成树实例上的角色与在cist的角色保持一致。如图1-2所示,交换机a的端口1是域边缘端口,它在cist上的角色是master端口,则它在mst域内所有生成树实例上的角色也是master端口。
10. 端口状态
mstp中,根据端口是否转发用户流量、接收/发送bpdu报文,端口状态划分为三种:
forwarding状态:既转发用户流量又接收/发送bpdu报文;
learning状态:接收/发送bpdu报文;
discarding状态:只接收bpdu报文。
端口状态和端口角色是没有必然联系的,表1-1给出了各种端口角色能够具有的端口状态。
1.1.3 mstp的基本原理
mstp将整个二层网络划分为多个mst域,各个域之间通过计算生成cst;域内则通过计算生成多棵生成树,每棵生成树都被称为是一个msti。mstp同rstp一样,使用配置消息进行生成树的计算,只是配置消息中携带的是交换机上mstp的配置信息。
1. cist生成树的计算
经过比较配置消息后,在整个网络中选择一个优先级最高的交换机作为cist的树根。在每个mst域内mstp通过计算生成ist;同时mstp将每个mst域作为单台交换机对待,通过计算在mst域间生成cst。cst和ist构成了整个交换机网络的cist。
2. msti的计算
在mst域内,mstp根据vlan和生成树实例的映射关系,针对不同的vlan生成不同的生成树实例。每棵生成树独立进行计算,计算过程与stp/rstp计算生成树的过程类似。
3. 生成树协议算法实现过程
在初始时,每台交换机的各个端口会生成以自身交换机为根桥的配置消息,其中根路径开销为0,指定桥id为自身交换机id,指定端口为本端口。
(1)每台交换机都向外发送自己的配置消息,并在接收到其他配置消息后进行如下处理:
当端口收到比自身的配置消息优先级低的配置消息时,交换机把接收到的配置消息丢弃,对该端口的配置消息不作任何处理;
当端口收到比本端口配置消息优先级高的配置消息时,交换机把接收到的配置消息中的内容替换该端口的配置消息中的内容;然后交换机将该端口的配置消息和交换机上的其它端口的配置消息进行比较,选出最优的配置消息。
(2)配置消息的比较原则如下:
树根id较小的配置消息优先级高;
若树根id相同,则比较根路径开销。比较方法为:计算配置消息中的根路径开销与本端口对应的路径开销之和(设为s),s较小的配置消息优先级较高;
若根路径开销也相同,则依次比较指定桥id、指定端口id、接收该配置消息的端口id等。
(3)计算生成树的步骤如下:
选出根桥。
比较所有交换机发送的配置消息,其中树根id最小的交换机为根桥。
选出根端口。
每台交换机把接收最优配置消息的那个端口定为自身交换机的根端口。
确定指定端口。
首先,交换机根据根端口的配置消息和根端口的路径开销,为每个端口计算一个指定端口配置消息:树根id替换为根端口的配置消息的树根id;根路径开销替换为根端口的配置消息的根路径开销加上根端口的路径开销;指定桥id替换为自身交换机的id;指定端口id替换为自身端口id。
然后,交换机使用计算出来的配置消息和对应端口上原来的配置消息进行比较。如果端口上原来的配置消息更优,则交换机将此端口阻塞,端口的配置消息不变,并且此端口将不再转发数据,只接收配置消息;如果计算出来的配置消息更优,则交换机就将该端口设置为指定端口,端口上的配置消息替换成计算出来的配置消息,并周期性向外发送。
1.1.4 mstp在交换机上的实现
mstp同时兼容stp、rstp。stp、rstp两种协议报文都可以被运行mstp的交换机识别并应用于生成树计算。h3c系列以太网交换机除了提供mstp的基本功能外,还从用户的角度出发,提供了许多便于管理的特殊功能,如下所示:
根桥保持;
根桥备份;
root保护功能;
bpdu保护功能;
环路保护功能。
rstp(rapid spanning tree protocol,快速生成树协议)可以快速收敛,但是和stp一样存在以下缺陷:局域网内所有网桥共享一棵生成树,不能按vlan阻塞冗余链路,所有vlan的报文都沿着一棵生成树进行转发。
mstp(multiple spanning tree protocol,多生成树协议)将环路网络修剪成为一个无环的树型网络,避免报文在环路网络中的增生和无限循环,同时还提供了数据转发的多个冗余路径,在数据转发过程中实现vlan数据的负载均衡。
mstp兼容stp和rstp,并且可以弥补stp和rstp的缺陷。它既可以快速收敛,也能使不同vlan的流量沿各自的路径分发,从而为冗余链路提供了更好的负载分担机制。
1.1.1 mstp的协议报文
bpdu(bridge protocol data unit,桥协议数据单元)是生成树协议采用的协议报文,也称为配置消息。
bpdu在交换机之间传递来确定网络的拓扑结构,它包含了足够的信息来保证交换机完成生成树计算。
bpdu在stp协议中分为两类:
配置bpdu(configuration bpdu):用来维护生成树拓扑的报文。
tcn bpdu(topology change notification bpdu):当拓扑发生变化时,用来通知相关交换机网络发生变化的报文。
mstp同stp/rstp一样,使用bpdu进行生成树的计算,只是mstp的bpdu中还携带了交换机上的mstp的配置信息。
1.1.2 mstp的基本概念
在图1-1中的每台交换机都运行mstp。下面结合图1-1解释mstp的一些基本概念。
1. mst域
mst域(multiple spanning tree regions,多生成树域)是由交换网络中的多台交换机以及它们之间的网段构成。这些交换机都启动了mstp、具有相同的域名、相同的vlan到生成树映射配置和相同的mstp修订级别配置,并且物理上有链路连通。
一个交换网络可以存在多个mst域。用户可以通过mstp配置命令把多台交换机划分在同一个mst域内。例如图1-1中的区域a0,域内所有交换机都有相同的mst域配置:域名相同,vlan与生成树的映射关系相同(vlan1映射到生成树实例1,vlan2映射到生成树实例2,其余vlan映射到cist),相同的mstp修订级别(此配置在图中没有体现)。
2. msti
msti(multiple spanning tree instance,多生成树实例)是指mst域内的生成树。
一个mst域内可以通过mstp生成多棵生成树,各棵生成树之间彼此独立。例如图1-1中,每个域内可以存在多棵生成树,每棵生成树和相应的vlan对应。这些生成树都被称为msti。
3. vlan映射表
vlan映射表是mst域的一个属性,用来描述vlan和msti的映射关系。例如图1-1中,域a0的vlan映射表就是:vlan 1映射到生成树实例1,vlan 2映射到生成树实例2,其余vlan映射到cist。mstp就是根据vlan映射表来实现负载分担的。
4. ist
ist(internal spanning tree,内部生成树)是mst域内的一棵生成树。
ist和cst(common spanning tree,公共生成树)共同构成整个交换机网络的生成树cist(common and internal spanning tree,公共和内部生成树)。ist是cist在mst域内的片段,是一个特殊的多生成树实例。例如图1-1中,cist在每个mst域内都有一个片段,这个片段就是各个域内的ist。
5. cst
cst是连接交换网络内所有mst域的单生成树。如果把每个mst域看作是一个“交换机”,cst就是这些“交换机”通过stp协议、rstp协议计算生成的一棵生成树。例如图1-1中,红色线条描绘的就是cst。
6. cist
cist是连接一个交换网络内所有交换机的单生成树,由ist和cst共同构成。例如图1-1中,每个mst域内的ist加上mst域间的cst就构成整个网络的cist。
7. 域根
域根是指mst域内ist和msti的树根。mst域内各棵生成树的拓扑不同,域根也可能不同。例如图1-1中,区域d0中,生成树实例1的域根为交换机b,生成树实例2的域根为交换机c。
8. 总根
总根(common root bridge)是指cist的树根。例如图1-1中,总根为区域a0内的某台交换机。
9. 端口角色
在mstp的计算过程中,端口角色主要有根端口、指定端口、master端口、域边缘端口、alternate端口和backup端口。
根端口是负责向树根方向转发数据的端口。
指定端口是负责向下游网段或交换机转发数据的端口。
master端口是连接mst域到总根的端口,位于整个域到总根的最短路径上。
域边缘端口是连接不同mst域、mst域和运行stp的区域、mst域和运行rstp的区域的端口,位于mst域的边缘。
alternate端口是master端口的备份端口,如果master端口被阻塞后,alternate端口将成为新的master端口。
当同一台交换机的两个端口互相连接时就存在一个环路,此时交换机会将其中一个端口阻塞,backup端口是被阻塞的那个端口。
在图1-2中,交换机a、b、c、d构成一个mst域。交换机a的端口1、2向总根方向连接,交换机c的端口5和端口6构成了环路,交换机d的端口3、4则向下连接其他的mst域,各个端口的角色如图1-2所示。
端口在不同的生成树实例中可以担任不同的角色。
域边缘端口在生成树实例上的角色与在cist的角色保持一致。如图1-2所示,交换机a的端口1是域边缘端口,它在cist上的角色是master端口,则它在mst域内所有生成树实例上的角色也是master端口。
10. 端口状态
mstp中,根据端口是否转发用户流量、接收/发送bpdu报文,端口状态划分为三种:
forwarding状态:既转发用户流量又接收/发送bpdu报文;
learning状态:接收/发送bpdu报文;
discarding状态:只接收bpdu报文。
端口状态和端口角色是没有必然联系的,表1-1给出了各种端口角色能够具有的端口状态。
1.1.3 mstp的基本原理
mstp将整个二层网络划分为多个mst域,各个域之间通过计算生成cst;域内则通过计算生成多棵生成树,每棵生成树都被称为是一个msti。mstp同rstp一样,使用配置消息进行生成树的计算,只是配置消息中携带的是交换机上mstp的配置信息。
1. cist生成树的计算
经过比较配置消息后,在整个网络中选择一个优先级最高的交换机作为cist的树根。在每个mst域内mstp通过计算生成ist;同时mstp将每个mst域作为单台交换机对待,通过计算在mst域间生成cst。cst和ist构成了整个交换机网络的cist。
2. msti的计算
在mst域内,mstp根据vlan和生成树实例的映射关系,针对不同的vlan生成不同的生成树实例。每棵生成树独立进行计算,计算过程与stp/rstp计算生成树的过程类似。
3. 生成树协议算法实现过程
在初始时,每台交换机的各个端口会生成以自身交换机为根桥的配置消息,其中根路径开销为0,指定桥id为自身交换机id,指定端口为本端口。
(1)每台交换机都向外发送自己的配置消息,并在接收到其他配置消息后进行如下处理:
当端口收到比自身的配置消息优先级低的配置消息时,交换机把接收到的配置消息丢弃,对该端口的配置消息不作任何处理;
当端口收到比本端口配置消息优先级高的配置消息时,交换机把接收到的配置消息中的内容替换该端口的配置消息中的内容;然后交换机将该端口的配置消息和交换机上的其它端口的配置消息进行比较,选出最优的配置消息。
(2)配置消息的比较原则如下:
树根id较小的配置消息优先级高;
若树根id相同,则比较根路径开销。比较方法为:计算配置消息中的根路径开销与本端口对应的路径开销之和(设为s),s较小的配置消息优先级较高;
若根路径开销也相同,则依次比较指定桥id、指定端口id、接收该配置消息的端口id等。
(3)计算生成树的步骤如下:
选出根桥。
比较所有交换机发送的配置消息,其中树根id最小的交换机为根桥。
选出根端口。
每台交换机把接收最优配置消息的那个端口定为自身交换机的根端口。
确定指定端口。
首先,交换机根据根端口的配置消息和根端口的路径开销,为每个端口计算一个指定端口配置消息:树根id替换为根端口的配置消息的树根id;根路径开销替换为根端口的配置消息的根路径开销加上根端口的路径开销;指定桥id替换为自身交换机的id;指定端口id替换为自身端口id。
然后,交换机使用计算出来的配置消息和对应端口上原来的配置消息进行比较。如果端口上原来的配置消息更优,则交换机将此端口阻塞,端口的配置消息不变,并且此端口将不再转发数据,只接收配置消息;如果计算出来的配置消息更优,则交换机就将该端口设置为指定端口,端口上的配置消息替换成计算出来的配置消息,并周期性向外发送。
1.1.4 mstp在交换机上的实现
mstp同时兼容stp、rstp。stp、rstp两种协议报文都可以被运行mstp的交换机识别并应用于生成树计算。h3c系列以太网交换机除了提供mstp的基本功能外,还从用户的角度出发,提供了许多便于管理的特殊功能,如下所示:
根桥保持;
根桥备份;
root保护功能;
bpdu保护功能;
环路保护功能。
转载于:https://blog.51cto.com/54master/168312