目录
MSTP简介
定义
目的
MSTP基本概念
MSTP的网络层次
MST域(MST Region)
MSTP报文
MSTP报文格式
MSTP拓扑计算
优先级向量
CIST的计算
MSTI的计算
MSTP快速收敛机制
配置MSTP+VRRP组合组网示例
配置思路
操作步骤
多生成树协议MSTP(Multiple Spanning Tree Protocol)是IEEE 802.1s中定义的生成树协议,通过生成多个生成树,来解决以太网环路问题。
在以太网中部署MSTP协议后可实现如下功能:
如图1所示,MSTP网络中包含1个或多个MST域(MST Region),每个MST Region中包含一个或多个MSTI。组成MSTI的是运行STP/RSTP/MSTP的交换设备,MSTI是所有运行STP/RSTP/MSTP的交换设备经MSTP协议计算后形成的树状网络。
MST域是多生成树域(Multiple Spanning Tree Region),由交换网络中的多台交换设备以及它们之间的网段所构成。同一个MST域的设备具有下列特点:
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域中的一个片段。
如图1所示,深蓝色线条在域中连接该域的所有交换设备构成IST。
SST
构成单生成树SST(Single Spanning Tree)有两种情况:
CIST
公共和内部生成树CIST(Common and Internal Spanning Tree)是通过STP或RSTP协议计算生成的,连接一个交换网络内所有交换设备的单生成树。
如图1所示,所有MST域的IST加上CST就构成一棵完整的生成树,即CIST。
域根
域根(Regional Root)分为IST域根和MSTI域根。
IST域根如图1所示,在MST域中IST生成树中距离总根(CIST Root)最近的交换设备是IST域根。
一个MST域内可以生成多棵生成树,每棵生成树都称为一个MSTI。MSTI域根是每个多生成树实例的树根。
总根
总根是CIST(Common and Internal Spanning Tree)的根桥。如图1中的S1。
主桥
主桥(Master Bridge)也就是IST Master,它是域内距离总根最近的交换设备。如图1中的黄色交换机。
如果总根在MST域中,则总根为该域的主桥。
端口角色
根端口、指定端口、Alternate端口、Backup端口和边缘端口的作用同RSTP协议中定义,MSTP中定义的所有端口角色如表1所示。
MSTP使用多生成树桥协议数据单元MST BPDU(Multiple Spanning Tree Bridge Protocol Data Unit)作为生成树计算的依据。MST BPDU报文用来计算生成树的拓扑、维护网络拓扑以及传达拓扑变化记录。
STP中定义的配置BPDU、RSTP中定义的RST BPDU、MSTP中定义的MST BPDU及TCN BPDU差异对比如表1所示。
版本 |
类型 |
名称 |
---|---|---|
0 |
0x00 |
配置BPDU |
0 |
0x80 |
TCN BPDU |
2 |
0x02 |
RST BPDU |
3 |
0x02 |
MST BPDU |
MST BPDU报文结构如图1所示。
无论是域内的MST BPDU还是域间的,前36个字节和RST BPDU相同。
从第37个字节开始是MSTP专有字段。最后的MSTI配置信息字段由若干MSTI配置信息组连缀而成。
MST BPDU中的主要信息如表2所示。
字段内容 |
字节 |
说明 |
---|---|---|
Protocol Identifier |
2 |
协议标识符。 |
Protocol Version Identifier |
1 |
协议版本标识符,STP为0,RSTP为2,MSTP为3。 |
BPDU Type |
1 |
BPDU类型:
|
CIST Flags |
1 |
CIST标志字段。 |
CIST Root Identifier |
8 |
CIST的总根交换设备ID。 |
CIST External Path Cost |
4 |
CIST外部路径开销指从本交换设备所属的MST域到CIST根交换设备所属的MST域的累计路径开销。CIST外部路径开销根据链路带宽计算。 |
CIST Regional Root Identifier |
8 |
CIST的域根交换设备ID,即IST Master的ID。如果总根在这个域内,那么域根交换设备ID就是总根交换设备ID。 |
CIST Port Identifier |
2 |
本端口在IST中的指定端口ID。 |
Message Age |
2 |
BPDU报文的生存期。 |
Max Age |
2 |
BPDU报文的最大生存期,超时则认为到根交换设备的链路故障。 |
Hello Time |
2 |
Hello定时器,缺省为2秒。 |
Forward Delay |
2 |
Forward Delay定时器,缺省为15秒。 |
Version 1 Length |
1 |
Version1 BPDU的长度,值固定为0。 |
Version 3 Length |
2 |
Version3 BPDU的长度。 |
MST Configuration Identifier |
51 |
MST配置标识,表示MST域的标签信息,包含4个字段。 |
CIST Internal Root Path Cost |
4 |
CIST内部路径开销指从本端口到IST Master交换设备的累计路径开销。CIST内部路径开销根据链路带宽计算。 |
CIST Bridge Identifier |
8 |
CIST的指定交换设备ID。 |
CIST Remaining Hops |
1 |
BPDU报文在CIST中的剩余跳数。 |
MSTI Configuration Messages(may be absent) |
16 |
MSTI配置信息。每个MSTI的配置信息占16 bytes,如果有n个MSTI就占用n×16bytes。 |
MSTP报文格式可配置
目前MSTP的BPDU报文存在两种格式:
dot1s:IEEE802.1s规定的报文格式。
legacy:私有协议报文格式。
如果端口收发报文格式为默认支持dot1s或者legacy,这样就存在一个缺点:需要人工识别对端的BPDU报文格式,然后手工配置命令来决定支持哪种格式。人工识别报文格式比较困难,且一旦配置错误,就有可能导致MSTP计算错误,出现环路。
华为技术有限公司采用的端口收发MSTP报文格式可配置(stp compliance)功能,能够实现对BPDU报文格式的自适应:
auto
dot1s
legacy
这样报文收发不但支持dot1s和legacy格式,还能通过auto方式根据收到的BPDU报文格式自动切换端口支持的BPDU报文格式,使报文格式与对端匹配。在自适应的情况下,端口初始支持dot1s格式,收到报文后,格式则和收到的报文格式保持一致。
每个Hello Time时间内端口最多能发送BPDU的报文数可配置
Hello Time用于生成树协议定时发送配置消息维护生成树的稳定。如果交换设备在一段时间内没有收到BPDU报文,则会由于消息超时而对生成树进行重新计算。
当交换设备成为根交换设备时,该交换设备会按照该设置值为时间间隔发送BPDU报文。非根交换设备采用根交换设备所设置的Hello Time时间值。
华为技术有限公司数据通信设备提供的每个Hello Time时间内端口最多能够发送的BPDU报文个数可配置(Max Transmitted BPDU Number in Hello Time is Configurable)功能,可以设定当前端口在Hello Time时间内配置BPDU的最大发送数目。
用户配置的数值越大,表示每Hello Time时间内发送的报文数越多。适当的设置该值可以限制端口每Hello Time时间内能发送的BPDU数目,防止在网络拓扑动荡时,BPDU占用过多的带宽资源。
MSTP可以将整个二层网络划分为多个MST域,各个域之间通过计算生成CST。域内则通过计算生成多棵生成树,每棵生成树都被称为是一个多生成树实例。其中实例0被称为IST,其他的多生成树实例为MSTI。MSTP同STP一样,使用配置消息进行生成树的计算,只是配置消息中携带的是设备上MSTP的配置信息。
MSTI和CIST都是根据优先级向量来计算的,这些优先级向量信息都包含在MST BPDU中。各交换设备互相交换MST BPDU来生成MSTI和CIST。
优先级向量简介
参与CIST计算的优先级向量为:
{ 根交换设备ID,外部路径开销,域根ID,内部路径开销,指定交换设备ID,指定端口ID,接收端口ID }
参与MSTI计算的优先级向量为:
{ 域根ID,内部路径开销,指定交换设备ID,指定端口ID,接收端口ID }
括号中的向量的优先级从左到右依次递减。
表1对每个优先级向量进行解释。
向量名 |
说明 |
---|---|
根交换设备ID |
根交换设备ID用于选择CIST中的根交换设备。根交换设备ID = Priority(16bits) + MAC(48bits)。 其中Priority为MSTI0的优先级。 |
外部路径开销(ERPC) |
从CIST的域根到达总根的路径开销。MST域内所有交换设备上保存的外部路径开销相同。若CIST根交换设备在域中,则域内所有交换设备上保存的外部路径开销为0。 |
域根ID |
域根ID用于选择MSTI中的域根。域根ID = Priority(16bits) + MAC(48bits)。 其中Priority为MSTI0的优先级。 |
内部路径开销(IRPC) |
本桥到达域根的路径开销。域边缘端口保存的内部路径开销大于非域边缘端口保存的内部路径开销。 |
指定交换设备ID |
CIST或MSTI实例的指定交换设备是本桥通往域根的最邻近的上游桥。如果本桥就是总根或域根,则指定交换设备为自己。 |
指定端口ID |
指定交换设备上同本设备上根端口相连的端口。Port ID = Priority(4位) + 端口号(12位)。端口优先级必须是16的整数倍。 |
接收端口ID |
接收到BPDU报文的端口。Port ID = Priority(4位) + 端口号(12位)。端口优先级必须是16的整数倍。 |
比较原则
同一向量比较,值最小的向量具有最高优先级。
优先级向量比较原则如下。
首先,比较根交换设备ID。
如果根交换设备ID相同,再比较外部路径开销。
如果外部路径开销相同,再比较域根ID。
如果域根ID仍然相同,再比较内部路径开销。
如果内部路径仍然相同,再比较指定交换设备ID。
如果指定交换设备ID仍然相同,再比较指定端口ID。
如果指定端口ID还相同,再比较接收端口ID。
如果端口接收到的BPDU内包含的配置消息优于端口上保存的配置消息,则端口上原来保存的配置消息被新收到的配置消息替代。端口同时更新交换设备保存的全局配置消息。反之,新收到的BPDU被丢弃。
经过比较配置消息后,在整个网络中选择一个优先级最高的交换设备作为CIST的树根。在每个MST域内MSTP通过计算生成IST;同时MSTP将每个MST域作为单台交换设备对待,通过计算在MST域间生成CST。CST和IST构成了整个交换设备网络的CIST。
在MST域内,MSTP根据VLAN和生成树实例的映射关系,针对不同的VLAN生成不同的生成树实例。每棵生成树独立进行计算,计算过程与STP计算生成树的过程类似,请参见STP拓扑计算。
MSTI的特点:
每个MSTI独立计算自己的生成树,互不干扰。
每个MSTI的生成树计算方法与STP基本相同。
每个MSTI的生成树可以有不同的根,不同的拓扑。
每个MSTI在自己的生成树内发送BPDU。
每个MSTI的拓扑通过命令配置决定。
每个端口在不同MSTI上的生成树参数可以不同。
每个端口在不同MSTI上的角色、状态可以不同。
在运行MSTP协议的网络中,一个VLAN报文将沿着如下路径进行转发:
MSTP对拓扑变化的处理
MSTP拓扑变化处理与RSTP拓扑变化处理过程类似,请参见RSTP技术细节中的RSTP拓扑变化处理。
MSTP支持普通方式和增强方式两种P/A(Proposal/Agreement)机制:
普通方式
MSTP支持普通方式的P/A机制实现与RSTP支持的P/A机制实现相同,RSTP支持的P/A机制请见RSTP技术细节中的P/A机制。
增强方式
图1 增强方式的P/A机制
如图1所示,在MSTP中,P/A机制工作过程如下:
协商开始时,每一台设备都认为自己是根桥,根桥上的端口是指定端口,端口状态为Discarding,端口的synced变量置位,触发Proposal和Agreement同时置位。上游设备发送Proposal报文,请求进行快速迁移。下游设备接收到后,把与上游设备相连的端口设置为根端口,并阻塞所有非边缘端口。
上游设备继续发送Agreement报文。下游设备接收到后,根端口转为Forwarding状态。
下游设备回应Agreement报文。上游设备接收到后,把与下游设备相连的端口设置为指定端口,指定端口进入Forwarding状态。
缺省情况下,华为数据通信设备使用增强的快速迁移机制。如果华为数据通信设备和其他制造商的设备进行互通,而其他制造商的设备P/A机制使用普通的快速迁移机制,此时,可在华为数据通信设备上通过设置P/A机制为普通的快速迁移机制,从而实现华为数据通信设备和其他制造商的设备进行互通。
如图1所示,主机通过SwitchC接入网络,SwitchC通过双上行连接SwitchA和SwitchB来接入Internet。由于接入备份的需要,用户部署了冗余链路。冗余备份链路的存在导致出现环网,可能会引起广播风暴和MAC地址表项被破坏。
用户希望在存在冗余备份链路的同时消除网络中的环路,在一条上行链路断开的时候,流量能切换到另外一条上行链路转发,还能合理利用网络带宽。
此时可以在网络中部署MSTP解决环路问题。MSTP可阻塞二层网络中的冗余链路,将网络修剪成树状,达到消除环路的目的。同时在SwitchA和SwitchB上配置VRRP,HostA以SwitchA为默认网关接入Internet,SwitchB作为备份网关;HostB以SwitchB为默认网关接入Internet,SwitchA作为备份网关,以实现可靠性及流量的负载分担。
采用以下思路配置:
配置MST域并创建多实例,配置VLAN2映射到MSTI1,VLAN3映射到MSTI2,实现流量的负载分担。
在MST域内,配置各实例的根桥与备份根桥。
配置各实例中某端口的路径开销值,实现将该端口阻塞。
设备全局使能MSTP。
除与终端设备相连的端口外,其他端口使能MSTP。
配置保护功能,实现对设备或链路的保护。例如:在各实例的根桥设备指定端口配置根保护功能。
配置设备的二层转发功能。
配置SwitchA、SwitchB、SwitchC到域名为RG1的域内,创建实例MSTI1和实例MSTI2
# 配置SwitchA的MST域。
system-view [HUAWEI] sysname SwitchA [SwitchA] stp region-configuration [SwitchA-mst-region] region-name RG1 [SwitchA-mst-region] instance 1 vlan 2 [SwitchA-mst-region] instance 2 vlan 3 [SwitchA-mst-region] active region-configuration [SwitchA-mst-region] quit
# 配置SwitchB的MST域。
system-view [HUAWEI] sysname SwitchB [SwitchB] stp region-configuration [SwitchB-mst-region] region-name RG1 [SwitchB-mst-region] instance 1 vlan 2 [SwitchB-mst-region] instance 2 vlan 3 [SwitchB-mst-region] active region-configuration [SwitchB-mst-region] quit
# 配置SwitchC的MST域。
system-view [HUAWEI] sysname SwitchC [SwitchC] stp region-configuration [SwitchC-mst-region] region-name RG1 [SwitchC-mst-region] instance 1 vlan 2 [SwitchC-mst-region] instance 2 vlan 3 [SwitchC-mst-region] active region-configuration [SwitchC-mst-region] quit
在域RG1内,配置MSTI1与MSTI2的根桥与备份根桥
配置MSTI1的根桥与备份根桥
# 配置SwitchA为MSTI1的根桥。
[SwitchA] stp instance 1 root primary
# 配置SwitchB为MSTI1的备份根桥。
[SwitchB] stp instance 1 root secondary
配置MSTI2的根桥与备份根桥
# 配置SwitchB为MSTI2的根桥。
[SwitchB] stp instance 2 root primary
# 配置SwitchA为MSTI2的备份根桥。
[SwitchA] stp instance 2 root secondary
配置实例MSTI1和MSTI2中将要被阻塞端口的路径开销值大于缺省值
说明:端口路径开销值取值范围由路径开销计算方法决定,这里选择使用华为计算方法为例,配置实例MSTI1和MSTI2中将被阻塞端口的路径开销值为20000。
同一网络内所有交换设备的端口路径开销应使用相同的计算方法。
# 配置SwitchA的端口路径开销计算方法为华为计算方法。
[SwitchA] stp pathcost-standard legacy
# 配置SwitchB的端口路径开销计算方法为华为计算方法。
[SwitchB] stp pathcost-standard legacy
# 配置SwitchC的端口路径开销计算方法为华为计算方法,将端口GE0/0/1在实例MSTI2中的路径开销值配置为20000,将端口GE0/0/4在实例MSTI1中的路径开销值配置为20000。
[SwitchC] stp pathcost-standard legacy [SwitchC] interface gigabitethernet 0/0/1 [SwitchC-GigabitEthernet0/0/1] stp instance 2 cost 20000 [SwitchC-GigabitEthernet0/0/1] quit [SwitchC] interface gigabitethernet 0/0/4 [SwitchC-GigabitEthernet0/0/4] stp instance 1 cost 20000 [SwitchC-GigabitEthernet0/0/4] quit
使能MSTP,实现破除环路
设备全局使能MSTP
# 在SwitchA上启动MSTP。
[SwitchA] stp enable
# 在SwitchB上启动MSTP。
[SwitchB] stp enable
# 在SwitchC上启动MSTP。
[SwitchC] stp enable
将与Host相连的端口设置为边缘端口
# 配置SwitchC端口GE0/0/2和GE0/0/3为边缘端口。
[SwitchC] interface gigabitethernet 0/0/2 [SwitchC-GigabitEthernet0/0/2] stp edged-port enable [SwitchC-GigabitEthernet0/0/2] quit [SwitchC] interface gigabitethernet 0/0/3 [SwitchC-GigabitEthernet0/0/3] stp edged-port enable [SwitchC-GigabitEthernet0/0/3] quit
(可选)配置SwitchC的BPDU保护功能。
[SwitchC] stp bpdu-protection
将与Router相连的端口设置为边缘端口
# 配置SwitchA端口GE0/0/3为边缘端口。
[SwitchA] interface gigabitethernet 0/0/3 [SwitchA-GigabitEthernet0/0/3] stp edged-port enable [SwitchA-GigabitEthernet0/0/3] quit
(可选)配置SwitchA的BPDU保护功能。
[SwitchA] stp bpdu-protection
# 配置SwitchB端口GE0/0/3为边缘端口。
[SwitchB] interface gigabitethernet 0/0/3 [SwitchB-GigabitEthernet0/0/3] stp edged-port enable [SwitchB-GigabitEthernet0/0/3] quit
(可选)配置SwitchB的BPDU保护功能。
[SwitchB] stp bpdu-protection
# 在SwitchA端口GE0/0/1上启动根保护。
[SwitchA] interface gigabitethernet 0/0/1 [SwitchA-GigabitEthernet0/0/1] stp root-protection [SwitchA-GigabitEthernet0/0/1] quit
# 在SwitchB端口GE0/0/1上启动根保护。
[SwitchB] interface gigabitethernet 0/0/1 [SwitchB-GigabitEthernet0/0/1] stp root-protection [SwitchB-GigabitEthernet0/0/1] quit
在交换设备SwitchA、SwitchB、SwitchC上创建VLAN2~3
# 在SwitchA上创建VLAN2~3。
[SwitchA] vlan batch 2 to 3
# 在SwitchB上创建VLAN2~3。
[SwitchB] vlan batch 2 to 3
# 在SwitchC上创建VLAN2~3。
[SwitchC] vlan batch 2 to 3
将交换设备上接入环路中的端口加入VLAN
# 将SwitchA端口GE0/0/1加入VLAN。
[SwitchA] interface gigabitethernet 0/0/1 [SwitchA-GigabitEthernet0/0/1] port link-type trunk [SwitchA-GigabitEthernet0/0/1] port trunk allow-pass vlan 2 to 3 [SwitchA-GigabitEthernet0/0/1] quit
# 将SwitchA端口GE0/0/2加入VLAN。
[SwitchA] interface gigabitethernet 0/0/2 [SwitchA-GigabitEthernet0/0/2] port link-type trunk [SwitchA-GigabitEthernet0/0/2] port trunk allow-pass vlan 2 to 3 [SwitchA-GigabitEthernet0/0/2] quit
# 将SwitchB端口GE0/0/1加入VLAN。
[SwitchB] interface gigabitethernet 0/0/1 [SwitchB-GigabitEthernet0/0/1] port link-type trunk [SwitchB-GigabitEthernet0/0/1] port trunk allow-pass vlan 2 to 3 [SwitchB-GigabitEthernet0/0/1] quit
# 将SwitchB端口GE0/0/2加入VLAN。
[SwitchB] interface gigabitethernet 0/0/2 [SwitchB-GigabitEthernet0/0/2] port link-type trunk [SwitchB-GigabitEthernet0/0/2] port trunk allow-pass vlan 2 to 3 [SwitchB-GigabitEthernet0/0/2] quit
# 将SwitchC端口GE0/0/1加入VLAN。
[SwitchC] interface gigabitethernet 0/0/1 [SwitchC-GigabitEthernet0/0/1] port link-type trunk [SwitchC-GigabitEthernet0/0/1] port trunk allow-pass vlan 2 to 3 [SwitchC-GigabitEthernet0/0/1] quit
# 将SwitchC端口GE0/0/2加入VLAN。
[SwitchC] interface gigabitethernet 0/0/2 [SwitchC-GigabitEthernet0/0/2] port link-type access [SwitchC-GigabitEthernet0/0/2] port default vlan 2 [SwitchC-GigabitEthernet0/0/2] quit
# 将SwitchC端口GE0/0/3加入VLAN。
[SwitchC] interface gigabitethernet 0/0/3 [SwitchC-GigabitEthernet0/0/3] port link-type access [SwitchC-GigabitEthernet0/0/3] port default vlan 3 [SwitchC-GigabitEthernet0/0/3] quit
# 将SwitchC端口GE0/0/4加入VLAN。
[SwitchC] interface gigabitethernet 0/0/4 [SwitchC-GigabitEthernet0/0/4] port link-type trunk [SwitchC-GigabitEthernet0/0/4] port trunk allow-pass vlan 2 to 3 [SwitchC-GigabitEthernet0/0/4] quit
经过以上配置,在网络计算稳定后,执行以下操作,验证配置结果。
# 在SwitchA上执行display stp brief命令,查看端口状态和端口的保护类型,结果如下:
[SwitchA] display stp brief MSTID Port Role STP State Protection 0 GigabitEthernet0/0/1 DESI FORWARDING ROOT 0 GigabitEthernet0/0/2 DESI FORWARDING NONE 1 GigabitEthernet0/0/1 DESI FORWARDING ROOT 1 GigabitEthernet0/0/2 DESI FORWARDING NONE 2 GigabitEthernet0/0/1 DESI FORWARDING ROOT 2 GigabitEthernet0/0/2 ROOT FORWARDING NONE
在MSTI1中,由于SwitchA是根桥,SwitchA的端口GE0/0/2和GE0/0/1成为指定端口。在MSTI2中,SwitchA的端口GE0/0/1成为指定端口,端口GE0/0/2成为根端口。
# 在SwitchB上执行display stp brief命令,结果如下:
[SwitchB] display stp brief MSTID Port Role STP State Protection 0 GigabitEthernet0/0/1 DESI FORWARDING ROOT 0 GigabitEthernet0/0/2 ROOT FORWARDING NONE 1 GigabitEthernet0/0/1 DESI FORWARDING ROOT 1 GigabitEthernet0/0/2 ROOT FORWARDING NONE 2 GigabitEthernet0/0/1 DESI FORWARDING ROOT 2 GigabitEthernet0/0/2 DESI FORWARDING NONE
在MSTI2中,由于SwitchB是根桥,端口GE0/0/1和GE0/0/2在MSTI2中成为指定端口。在MSTI1中,SwitchB的端口GE0/0/1成为指定端口,端口GE0/0/2成为根端口。
# 在SwitchC上执行display stp interface brief命令,结果如下:
[SwitchC] display stp interface gigabitethernet 0/0/1 brief MSTID Port Role STP State Protection 0 GigabitEthernet0/0/1 ROOT FORWARDING NONE 1 GigabitEthernet0/0/1 ROOT FORWARDING NONE 2 GigabitEthernet0/0/1 ALTE DISCARDING NONE
[SwitchC] display stp interface gigabitethernet 0/0/4 brief MSTID Port Role STP State Protection 0 GigabitEthernet0/0/4 ALTE DISCARDING NONE 1 GigabitEthernet0/0/4 ALTE DISCARDING NONE 2 GigabitEthernet0/0/4 ROOT FORWARDING NONE
SwitchC的端口GE0/0/1在MSTI1中为根端口,在MSTI2中被阻塞。SwitchC的另一个端口GE0/0/4,在MSTI1中被阻塞,在MSTI2中为根端口。
# 配置设备各端口的IP地址,以SwitchA为例。SwitchB的配置与SwitchA类似,详见配置文件。
[SwitchA] vlan batch 4 [SwitchA] interface gigabitethernet 0/0/3 [SwitchA-GigabitEthernet0/0/3] port link-type trunk [SwitchA-GigabitEthernet0/0/3] port trunk allow-pass vlan 4 [SwitchA-GigabitEthernet0/0/3] quit [SwitchA] interface vlanif 2 [SwitchA-Vlanif2] ip address 10.1.2.102 24 [SwitchA-Vlanif2] quit [SwitchA] interface vlanif 3 [SwitchA-Vlanif3] ip address 10.1.3.102 24 [SwitchA-Vlanif3] quit [SwitchA] interface vlanif 4 [SwitchA-Vlanif4] ip address 10.1.4.102 24 [SwitchA-Vlanif4] quit
# 配置SwitchA、SwitchB和路由器间采用OSPF协议进行互连。以SwitchA为例,SwitchB的配置与SwitchA类似,详见配置文件。
[SwitchA] ospf 1 [SwitchA-ospf-1] area 0 [SwitchA-ospf-1-area-0.0.0.0] network 10.1.2.0 0.0.0.255 [SwitchA-ospf-1-area-0.0.0.0] network 10.1.3.0 0.0.0.255 [SwitchA-ospf-1-area-0.0.0.0] network 10.1.4.0 0.0.0.255 [SwitchA-ospf-1-area-0.0.0.0] quit [SwitchA-ospf-1] quit
# 在SwitchA和SwitchB上创建VRRP备份组1,配置SwitchA的优先级为120,抢占延时为20秒,作为Master设备;SwitchB的优先级为缺省值,作为Backup设备。
[SwitchA] interface vlanif 2 [SwitchA-Vlanif2] vrrp vrid 1 virtual-ip 10.1.2.100 [SwitchA-Vlanif2] vrrp vrid 1 priority 120 [SwitchA-Vlanif2] vrrp vrid 1 preempt-mode timer delay 20 [SwitchA-Vlanif2] quit
[SwitchB] interface vlanif 2 [SwitchB-Vlanif2] vrrp vrid 1 virtual-ip 10.1.2.100 [SwitchB-Vlanif2] quit
# 在SwitchA和SwitchB上创建VRRP备份组2,配置SwitchB的优先级为120,抢占延时为20秒,作为Master设备;SwitchA的优先级为缺省值,作为Backup设备。
[SwitchB] interface vlanif 3 [SwitchB-Vlanif3] vrrp vrid 2 virtual-ip 10.1.3.100 [SwitchB-Vlanif3] vrrp vrid 2 priority 120 [SwitchB-Vlanif3] vrrp vrid 2 preempt-mode timer delay 20 [SwitchB-Vlanif3] quit
[SwitchA] interface vlanif 3 [SwitchA-Vlanif3] vrrp vrid 2 virtual-ip 10.1.3.100 [SwitchA-Vlanif3] quit
# 配置主机HostA的缺省网关为备份组1的虚拟IP地址10.1.2.100,配置主机HostB的缺省网关为备份组2的虚拟IP地址10.1.3.100。
# 完成上述配置后,在SwitchA上执行display vrrp命令,可以看到SwitchA在备份组1中作为Master设备,在备份组2中作为Backup设备。
[SwitchA] display vrrp Vlanif2 | Virtual Router 1 State : Master Virtual IP : 10.1.2.100 Master IP : 10.1.2.102 PriorityRun : 120 PriorityConfig : 120 MasterPriority : 120 Preempt : YES Delay Time : 20 s TimerRun : 1 s TimerConfig : 1 s Auth type : NONE Virtual MAC : 0000-5e00-0101 Check TTL : YES Config type : normal-vrrp Backup-forward : disabled Create time : 2012-05-11 11:39:18 Last change time : 2012-05-26 11:38:58 Vlanif3 | Virtual Router 2 State : Backup Virtual IP : 10.1.3.100 Master IP : 10.1.3.103 PriorityRun : 100 PriorityConfig : 100 MasterPriority : 120 Preempt : YES Delay Time : 0 s TimerRun : 1 s TimerConfig : 1 s Auth type : NONE Virtual MAC : 0000-5e00-0102 Check TTL : YES Config type : normal-vrrp Backup-forward : disabled Create time : 2012-05-11 11:40:18 Last change time : 2012-05-26 11:48:58
# 在SwitchB上执行display vrrp命令,可以看到SwitchB在备份组1中作为Backup设备,在备份组2中作为Master设备。
[SwitchB] display vrrp Vlanif2 | Virtual Router 1 State : Backup Virtual IP : 10.1.2.100 Master IP : 10.1.2.102 PriorityRun : 100 PriorityConfig : 100 MasterPriority : 120 Preempt : YES Delay Time : 0 s TimerRun : 1 s TimerConfig : 1 s Auth type : NONE Virtual MAC : 0000-5e00-0101 Check TTL : YES Config type : normal-vrrp Backup-forward : disabled Create time : 2012-05-11 11:39:18 Last change time : 2012-05-26 11:38:58 Vlanif3 | Virtual Router 2 State : Master Virtual IP : 10.1.3.100 Master IP : 10.1.3.103 PriorityRun : 120 PriorityConfig : 120 MasterPriority : 120 Preempt : YES Delay Time : 20 s TimerRun : 1 s TimerConfig : 1 s Auth type : NONE Virtual MAC : 0000-5e00-0102 Check TTL : YES Config type : normal-vrrp Backup-forward : disabled Create time : 2012-05-11 11:40:18 Last change time : 2012-05-26 11:48:58
配置文件
SwitchA的配置文件
# sysname SwitchA # vlan batch 2 to 4 # stp instance 1 root primary stp instance 2 root secondary stp bpdu-protection stp pathcost-standard legacy # stp region-configuration region-name RG1 instance 1 vlan 2 instance 2 vlan 3 active region-configuration # interface Vlanif2 ip address 10.1.2.102 255.255.255.0 vrrp vrid 1 virtual-ip 10.1.2.100 vrrp vrid 1 priority 120 vrrp vrid 1 preempt-mode timer delay 20 # interface Vlanif3 ip address 10.1.3.102 255.255.255.0 vrrp vrid 2 virtual-ip 10.1.3.100 # interface Vlanif4 ip address 10.1.4.102 255.255.255.0 # interface GigabitEthernet0/0/1 port link-type trunk port trunk allow-pass vlan 2 to 3 stp root-protection # interface GigabitEthernet0/0/2 port link-type trunk port trunk allow-pass vlan 2 to 3 # interface GigabitEthernet0/0/3 port link-type trunk port trunk allow-pass vlan 4 stp edged-port enable # ospf 1 area 0.0.0.0 network 10.1.2.0 0.0.0.255 network 10.1.3.0 0.0.0.255 network 10.1.4.0 0.0.0.255 # return
SwitchB的配置文件
# sysname SwitchB # vlan batch 2 to 3 5 # stp instance 1 root secondary stp instance 2 root primary stp bpdu-protection stp pathcost-standard legacy # stp region-configuration region-name RG1 instance 1 vlan 2 instance 2 vlan 3 active region-configuration # interface Vlanif2 ip address 10.1.2.103 255.255.255.0 vrrp vrid 1 virtual-ip 10.1.2.100 # interface Vlanif3 ip address 10.1.3.103 255.255.255.0 vrrp vrid 2 virtual-ip 10.1.3.100 vrrp vrid 2 priority 120 vrrp vrid 2 preempt-mode timer delay 20 # interface Vlanif5 ip address 10.1.5.103 255.255.255.0 # interface GigabitEthernet0/0/1 port link-type trunk port trunk allow-pass vlan 2 to 3 stp root-protection # interface GigabitEthernet0/0/2 port link-type trunk port trunk allow-pass vlan 2 to 3 # interface GigabitEthernet0/0/3 port link-type trunk port trunk allow-pass vlan 5 stp edged-port enable # ospf 1 area 0.0.0.0 network 10.1.2.0 0.0.0.255 network 10.1.3.0 0.0.0.255 network 10.1.5.0 0.0.0.255 # return
SwitchC的配置文件
# sysname SwitchC # vlan batch 2 to 3 # stp bpdu-protection stp pathcost-standard legacy # stp region-configuration region-name RG1 instance 1 vlan 2 instance 2 vlan 3 active region-configuration # interface GigabitEthernet0/0/1 port link-type trunk port trunk allow-pass vlan 2 to 3 stp instance 2 cost 20000 # interface GigabitEthernet0/0/2 port link-type access port default vlan 2 stp edged-port enable # interface GigabitEthernet0/0/3 port link-type access port default vlan 3 stp edged-port enable # interface GigabitEthernet0/0/4 port link-type trunk port trunk allow-pass vlan 2 to 3 stp instance 1 cost 20000 # return