Bootstrap

【网络协议详解】——MSTP技术(学习笔记)

背景:

RSTP在STP基础上进行了改进,实现了网络拓扑快速收敛。但在划分VLAN的网络中运行RSTP/STP,局域网内所有的VLAN共享一棵生成树,被阻塞后的链路将不承载任何流量,无法在VLAN间实现数据流量的负载均衡存在二层次优路径导致链路带宽利用率、设备资源利用率较低。

为了弥补RSTP/STP的缺陷,IEEE于2002年发布的802.1S标准定义了MSTP(Multiple Spanning Tree Protocol,多生成树协议)。MSTP兼容STP和RSTP,通过建立多棵无环路的树,解决广播风暴并实现冗余备份。

学习任务:

  1. 描述MSTP的各种概念
  2. 描述MSTP的工作过程
  3. Mstp和stp/rstp的不同点
  4. 实验任务

目录

描述MSTP的各种概念

MSTP的网络层次

MST域(MST Region)

VLAN映射表

CST

IST

SST

CIST

域根

总根

主桥

MSTP的端口角色

MSTP的端口状态

MSTP报文

描述MSTP的工作过程

MSTP拓扑计算

CIST的计算

MSTI的计算

MSTI的特点

MSTP快速收敛机制

Mstp和stp/rstp的不同点

实验配置:

组网需求

配置思路

描述MSTP的各种概念

MSTP的网络层次

MSTP网络中包含1个或多个MST域(MST Region),每个MST Region中包含一个或多个MSTI。组成MSTI的是运行STP/RSTP/MSTP的交换设备,MSTI是所有运行STP/RSTP/MSTP的交换设备经MSTP协议计算后形成的树状网络。

MST域(MST Region)

MST域是多生成树域(Multiple Spanning Tree Region),由交换网络中的多台交换设备以及它们之间的网段所构成。同一个MST域的设备具有下列特点:

  1. 都启动了MSTP。
  2. 具有相同的域名。
  3. 具有相同的VLAN到生成树实例映射配置。
  4. 具有相同的MSTP修订级别配置。

一个局域网可以存在多个MST域,各MST域之间在物理上直接或间接相连。用户可以通过MSTP配置命令把多台交换设备划分在同一个MST域内。

VLAN映射表

VLAN映射表是MST域的属性,它描述了VLAN和MSTI之间的映射关系。

MST Region 4的VLAN映射表是:

VLAN1映射到MSTI1

VLAN2映射到MSTI2

其余VLAN映射到MSTI3

CST

公共生成树CST(Common Spanning Tree)是连接交换网络内所有MST域的一棵生成树。

如果把每个MST域看作是一个节点,CST就是这些节点通过STP或RSTP协议计算生成的一棵生成树。

IST

内部生成树IST(Internal Spanning Tree)是各MST域内的一棵生成树。

IST是一个特殊的MSTI,MSTI的ID为0,通常称为MSTI0。

IST是CIST在MST域中的一个片段。

SST

构成单生成树SST(Single Spanning Tree)有两种情况:

运行STP或RSTP的交换设备只能属于一个生成树。

MST域中只有一个交换设备,这个交换设备构成单生成树。

CIST

公共和内部生成树CIST(Common and Internal Spanning Tree)是通过STP或RSTP协议计算生成的,连接一个交换网络内所有交换设备的单生成树。

域根

域根(Regional Root)分为IST域根和MSTI域根。

一个MST域内可以生成多棵生成树,每棵生成树都称为一个MSTI。MSTI域根是每个多生成树实例的树根。

总根

总根是CIST(Common and Internal Spanning Tree)的根桥。

主桥

主桥(Master Bridge)也就是IST Master,它是域内距离总根最近的交换设备。如果总根在MST域中,则总根为该域的主桥。

MSTP的端口角色

MSTP中定义的所有端口角色包括:

根端口、指定端口、Alternate端口、Backup端口、Master端口、域边缘端口和边缘端口。

说明:

除边缘端口外,其他端口角色都参与MSTP的计算过程。

同一端口在不同的生成树实例中可以担任不同的角色。

表1 端口角色

端口角色

说明

根端口

在非根桥上,离根桥最近的端口是本交换设备的根端口。根交换设备没有根端口。

根端口负责向树根方向转发数据。

指定端口

对一台交换设备而言,它的指定端口是向下游交换设备转发BPDU报文的端口。

Alternate端口

从配置BPDU报文发送角度来看,Alternate端口就是由于学习到其它网桥发送的配置BPDU报文而阻塞的端口。

从用户流量角度来看,Alternate端口提供了从指定桥到根的另一条可切换路径,作为根端口的备份端口

Backup端口

从配置BPDU报文发送角度来看,Backup端口就是由于学习到自己发送的配置BPDU报文而阻塞的端口。

从用户流量角度来看,Backup端口作为指定端口的备份,提供了另外一条从根节点到叶节点的备份通路。

Master端口

Master端口是MST域和总根相连的所有路径中最短路径上的端口,它是交换设备上连接MST域到总根的端口

Master端口是域中的报文去往总根的必经之路。

Master端口是特殊域边缘端口,Master端口在CIST上的角色是Root Port,在其它各实例上的角色都是Master端口。

域边缘端口

域边缘端口是指位于MST域的边缘并连接其它MST域或SST的端口。

边缘端口

如果指定端口位于整个域的边缘,不再与任何交换设备连接,这种端口叫做边缘端口。

边缘端口一般与用户终端设备直接连接

端口使能MSTP功能后,会默认启用边缘端口自动探测功能,当端口在(2 × Hello Timer + 1)秒的时间内收不到BPDU报文,自动将端口设置为边缘端口,否则设置为非边缘端口。

MSTP的端口状态

MSTP定义的端口状态与RSTP协议中定义相同,如表2所示。

表2 端口状态

端口状态

说明

Forwarding

在这种状态下,端口既转发用户流量又处理BPDU报文。

Learning

这是一种过渡状态。在Learning下,交换设备会根据收到的用户流量,构建MAC地址表,但不转发用户流量,所以叫做学习状态。

Learning状态的端口处理BPDU报文,不转发用户流量。

Discarding

Discarding状态的端口只处理BPDU报文。

说明:

根端口、Master端口、指定端口和域边缘端口支持Forwarding、Learning和Discarding状态,Alternate端口和Backup端口仅支持Discarding状态。

MSTP报文

MSTP使用多生成树桥协议数据单元MST BPDU(Multiple Spanning Tree Bridge Protocol Data Unit)作为生成树计算的依据。MST BPDU报文用来计算生成树的拓扑、维护网络拓扑以及传达拓扑变化记录。

描述MSTP的工作过程

MSTP拓扑计算

MSTP可以将整个二层网络划分为多个MST域,各个域之间通过计算生成CST。域内则通过计算生成多棵生成树,每棵生成树都被称为是一个多生成树实例。其中实例0被称为IST,其他的多生成树实例为MSTI。MSTP同STP一样,使用配置消息进行生成树的计算,只是配置消息中携带的是设备上MSTP的配置信息。

MSTP可以将整个二层网络划分为多个MST域,各个域之间通过计算生成CST,域内生成IST,CST和IST构成了整个交换设备网络的CIST。

域内还可以基于实例计算生成多棵生成树,每棵生成树都被称为是一个MSTI。

CIST和MSTI都是根据优先级向量来计算的,这些优先级向量信息都包含在MST BPDU中。各交换设备互相交换MST BPDU来生成CIST和MSTI 。

参与CIST计算的优先级向量为:

{ 根交换设备ID,外部路径开销,域根ID,内部路径开销,指定交换设备ID,指定端口ID,接收端口ID }

参与MSTI计算的优先级向量为:

{ 域根ID,内部路径开销,指定交换设备ID,指定端口ID,接收端口ID }

注意:括号中的向量的优先级从左到右依次递减。

比较原则

同一向量比较,值最小的向量具有最高优先级。

优先级向量比较原则如下。

  1. 首先,比较根交换设备ID。
  2. 如果根交换设备ID相同,再比较外部路径开销。
  3. 如果外部路径开销相同,再比较域根ID。
  4. 如果域根ID仍然相同,再比较内部路径开销。
  5. 如果内部路径仍然相同,再比较指定交换设备ID。
  6. 如果指定交换设备ID仍然相同,再比较指定端口ID。
  7. 如果指定端口ID还相同,再比较接收端口ID。
  8. 如果端口接收到的BPDU内包含的配置消息优于端口上保存的配置消息,则端口上原来保存的配置消息被新收到的配置消息替代。端口同时更新交换设备保存的全局配置消息。反之,新收到的BPDU被丢弃。

CIST的计算

经过比较配置消息后,在整个网络中选择一个优先级最高的交换设备作为CIST的树根。在每个MST域内MSTP通过计算生成IST;同时MSTP将每个MST域作为单台交换设备对待,通过计算在MST域间生成CST。CST和IST构成了整个交换设备网络的CIST。

MSTI的计算

在MST域内,MSTP根据VLAN和生成树实例的映射关系,针对不同的VLAN生成不同的生成树实例。每棵生成树独立进行计算,计算过程与STP计算生成树的过程类似,

MSTI的特点

  1. 每个MSTI独立计算自己的生成树,互不干扰。
  2. 每个MSTI的生成树计算方法与STP基本相同。
  3. 每个MSTI的生成树可以有不同的根,不同的拓扑。
  4. 每个MSTI在自己的生成树内发送BPDU。
  5. 每个MSTI的拓扑通过命令配置决定。
  6. 每个端口在不同MSTI上的生成树参数可以不同。
  7. 每个端口在不同MSTI上的角色、状态可以不同。

在运行MSTP协议的网络中,一个VLAN报文将沿着如下路径进行转发:

在MST域内,沿着其对应的MSTI转发。

在MST域间,沿着CST转发。

MSTP快速收敛机制

MSTP支持普通方式和增强方式两种P/A(Proposal/Agreement)机制:

普通方式

MSTP支持普通方式的P/A机制实现与RSTP支持的P/A机制实现相同,RSTP支持的P/A机制请见RSTP技术细节中的P/A机制。

增强方式

图1 增强方式的P/A机制

图1所示,在MSTP中,P/A机制工作过程如下:

  1. 协商开始时,每一台设备都认为自己是根桥,根桥上的端口是指定端口,端口状态为Discarding,端口的synced变量置位,触发Proposal和Agreement同时置位。上游设备发送Proposal报文,请求进行快速迁移。下游设备接收到后,把与上游设备相连的端口设置为根端口,并阻塞所有非边缘端口。
  2. 上游设备继续发送Agreement报文。下游设备接收到后,根端口转为Forwarding状态。
  3. 下游设备回应Agreement报文。上游设备接收到后,把与下游设备相连的端口设置为指定端口,指定端口进入Forwarding状态。

缺省情况下,华为数据通信设备使用增强的快速迁移机制。如果华为数据通信设备和其他制造商的设备进行互通,而其他制造商的设备P/A机制使用普通的快速迁移机制,此时,可在华为数据通信设备上通过设置P/A机制为普通的快速迁移机制,从而实现华为数据通信设备和其他制造商的设备进行互通。

Mstp和stp/rstp的不同点

实验配置:

图1 配置MSTP功能组网图

组网需求

在一个复杂的网络中,由于冗余备份的需要,网络规划者一般都倾向于在设备之间部署多条物理链路,其中一条作为主用链路,其他作为备份链路。这样就难免会形成环路,若网络中存在环路,可能会引起广播风暴和MAC表项被破坏。为此,可以在网络中部署MSTP协议预防环路。MSTP可阻塞二层网络中的冗余链路,将网络修剪成树状,达到消除环路的目的。

图1所示,SwitchA、SwitchB、SwitchC和SwitchD都运行MSTP。为实现VLAN2~VLAN10和VLAN11~VLAN20的流量负载分担,MSTP引入了多实例。MSTP可设置VLAN映射表,把VLAN和生成树实例相关联。

配置思路

采用以下思路配置MSTP功能:

  1. 在处于环形网络中的交换设备上配置MSTP基本功能。与PC相连的端口不用参与MSTP计算,将其设置为边缘端口。
  2. 配置保护功能,实现对设备或链路的保护。例如:在各实例的根桥设备指定端口配置根保护功能。
  3. 配置设备的二层转发功能。

SwitchA的配置文件

#
sysname SwitchA
#
vlan batch 2 to 20
#
stp instance 1 root primary
stp instance 2 root secondary
#
stp region-configuration
 region-name RG1
 instance 1 vlan 2 to 10
 instance 2 vlan 11 to 20
 active region-configuration
#
interface Eth-Trunk1
 port link-type trunk
 port trunk allow-pass vlan 2 to 20
#
interface GigabitEthernet0/0/1
 port link-type trunk
 port trunk allow-pass vlan 2 to 20
 stp root-protection
#
interface GigabitEthernet0/0/2
 eth-trunk 1
#
interface GigabitEthernet0/0/3
 eth-trunk 1
#
return

SwitchB的配置文件

#
sysname SwitchB
#
vlan batch 2 to 20
#
stp instance 1 root secondary
stp instance 2 root primary
#
stp region-configuration
 region-name RG1
 instance 1 vlan 2 to 10
 instance 2 vlan 11 to 20
 active region-configuration
#
interface Eth-Trunk1
 port link-type trunk
 port trunk allow-pass vlan 2 to 20
#
interface GigabitEthernet0/0/1
 port link-type trunk
 port trunk allow-pass vlan 2 to 20
 stp root-protection
#
interface GigabitEthernet0/0/2
 eth-trunk 1
#
interface GigabitEthernet0/0/3
 eth-trunk 1
#
return

SwitchC的配置文件

#
vlan batch 2 to 20
#
stp bpdu-protection
#
stp region-configuration
 region-name RG1
 instance 1 vlan 2 to 10
 instance 2 vlan 11 to 20
 active region-configuration
#
interface GigabitEthernet0/0/1
 port link-type access
 port default vlan 2
  stp edged-port enable 
#
interface GigabitEthernet0/0/2
 port link-type trunk
 port trunk allow-pass vlan 2 to 20
 stp instance 2 cost 20000
#
interface GigabitEthernet0/0/3
 port link-type trunk
 port trunk allow-pass vlan 2 to 20
#
return

SwitchD的配置文件

#
sysname SwitchD
#
vlan batch 2 to 20
#
stp bpdu-protection
#
stp region-configuration
 region-name RG1
 instance 1 vlan 2 to 10
 instance 2 vlan 11 to 20
 active region-configuration
#
interface GigabitEthernet0/0/1
 port link-type access
 port default vlan 11
 stp edged-port enable 
#
interface GigabitEthernet0/0/2
 port link-type trunk
 port trunk allow-pass vlan 2 to 20
 stp instance 1 cost 20000
#
interface GigabitEthernet0/0/3
 port link-type trunk
 port trunk allow-pass vlan 2 to 20
#
return

注意: active region-configuration  激活实例,如果没有这条命令则在mstp实例下的配置不生效。

我们在接入交换机CD处配置了bpdu保护,在连接pc处做了边缘端口

在交换AB连接CD接口做了 根保护

使用此命令查看各个端口的状态:

display stp interface brief

;