实战:mstp和vrrp配合

实战:MSTP和VRRP配合

项目需求:二层交换机里面,在任一路由器上面发生断路,或者交换机损坏也可以维持网络可以用的状态

image-20250603114229008

1.配置VLAN

LSW1

[Huawei]vlan batch 10 20

[Huawei]port-group 1to11
[Huawei-port-group-1to11]group-member Ethernet 0/0/1 to Ethernet 0/0/11
[Huawei-port-group-1to11]port link-type access
[Huawei-port-group-1to11]port default vlan 10
[Huawei-port-group-1to11]quit

[Huawei]port-group 12to22
[Huawei-port-group-12to22]group-member Ethernet 0/0/12 to Ethernet 0/0/22
[Huawei-port-group-12to22]port link-type access
[Huawei-port-group-12to22]port default vlan 20
[Huawei-port-group-12to22]quit

[Huawei]interface GigabitEthernet 0/0/1
[Huawei-GigabitEthernet0/0/1]port link-type trunk
[Huawei-GigabitEthernet0/0/1]port trunk allow-pass vlan 10 20
[Huawei-GigabitEthernet0/0/1]quit

[Huawei]interface GigabitEthernet 0/0/2
[Huawei-GigabitEthernet0/0/2]port link-type trunk
[Huawei-GigabitEthernet0/0/2]port trunk allow-pass vlan 10 20
[Huawei-GigabitEthernet0/0/2]return
[Huawei-GigabitEthernet0/0/2]save

LSW2

<Huawei>sys

[Huawei]vlan batch 10 20
[Huawei]interface GigabitEthernet 0/0/1
[Huawei-GigabitEthernet0/0/1]port link-type trunk
[Huawei-GigabitEthernet0/0/1]port trunk allow-pass vlan 10 20

[Huawei]interface GigabitEthernet 0/0/2
[Huawei-GigabitEthernet0/0/2]port link-type trunk
[Huawei-GigabitEthernet0/0/2]port trunk allow-pass vlan 10 20

LSW3

<Huawei>sys

[Huawei]vlan batch 10 20
[Huawei]interface GigabitEthernet 0/0/1
[Huawei-GigabitEthernet0/0/1]port link-type trunk
[Huawei-GigabitEthernet0/0/1]port trunk allow-pass vlan 10 20

[Huawei]interface GigabitEthernet 0/0/2
[Huawei-GigabitEthernet0/0/2]port link-type trunk
[Huawei-GigabitEthernet0/0/2]port trunk allow-pass vlan 10 20

2.配置MSTP

LSW2

[Huawei]stp mode mstp                     #改MSTP模式
[Huawei]stp region-configuration          #进入MSTP配置模式
[Huawei-mst-region]region-name lv         #配置域名为LV
[Huawei-mst-region]revision-level 1       #版本等级为1
[Huawei-mst-region]instance 1 vlan 10     #把VL10加入实例1
[Huawei-mst-region]instance 2 vlan 10     #把LV20加入实例2
[Huawei-mst-region]active region-configuration  #激活配置
[Huawei-mst-region]quit
[Huawei]stp instance 1 root primary       #此配置的交换机为实例1设置为主根
[Huawei]stp instance 2 root secondary     #此配置的交换机为实例2设置为备根

LSW3

[Huawei]stp mode mstp                     #改MSTP模式
[Huawei]stp region-configuration          #进入MSTP配置模式
[Huawei-mst-region]region-name lv         #配置域名为LV
[Huawei-mst-region]revision-level 1       #版本等级为1
[Huawei-mst-region]instance 1 vlan 10     #把VL10加入实例1
[Huawei-mst-region]instance 2 vlan 20     #把LV20加入实例2
[Huawei-mst-region]active region-configuration  #激活配置
[Huawei-mst-region]quit
[Huawei]stp instance 2 root primary       #此配置的交换机为实例1设置为主根
[Huawei]stp instance 1 root secondary     #此配置的交换机为实例2设置为备根

LSW1

[Huawei]stp region-configuration 
[Huawei-mst-region]region-name lv
[Huawei-mst-region]revision-level 1
[Huawei-mst-region]instance 1 vlan 10
[Huawei-mst-region]instance 2 vlan 20    
[Huawei-mst-region]active region-configuration 

查看STP的配置情况

LSW2

image-20250602164828535

LSW3

image-20250602164756818

LSW1

image-20250602165522881

3.配置VRRP

LSW2

[Huawei]interface vlanif 10
[Huawei-Vlanif10]ip address 10.0.0.254 8
[Huawei-Vlanif10]quit
[Huawei]interface vlanif 20
[Huawei-Vlanif20]ip address 20.0.0.254 8

[Huawei]interface vlanif 10
[Huawei-Vlanif10]vrrp vrid 1 virtual-ip 10.0.0.1
[Huawei-Vlanif10]vrrp vrid 1 priority 120
[Huawei-Vlanif10]vrrp vrid 1 preempt-mode timer delay 30
[Huawei-Vlanif10]quit

[Huawei]interface vlanif 20    
[Huawei-Vlanif20]vrrp vrid 1 virtual-ip 20.0.0.1
[Huawei-Vlanif20]vrrp vrid 1 priority 100
[Huawei-Vlanif20]vrrp vrid 1 preempt-mode timer delay 30

LSW3

[Huawei]interface vlanif 10
[Huawei-Vlanif10]ip address 10.0.0.253 8
[Huawei-Vlanif10]quit
[Huawei]interface vlanif 20
[Huawei-Vlanif20]ip address 20.0.0.253 8
[Huawei-Vlanif20]quit

[Huawei-Vlanif20]interface vlanif 10
[Huawei-Vlanif10]vrrp vrid 1 virtual-ip 10.0.0.1
[Huawei-Vlanif10]vrrp vrid 1 priority 100    

[Huawei-Vlanif10]interface vlanif 20
[Huawei-Vlanif20]vrrp vrid 1 virtual-ip 20.0.0.1
[Huawei-Vlanif20]vrrp vrid 1 priority 120
[Huawei-Vlanif20]vrrp vrid 1 preempt-mode timer delay 30

4.测试

image-20250603114737560

image-20250603114710320

(1)认为造成断路

image-20250603115314448

依然能通

image-20250603115402402

LSW2

image-20250603115446700

(2)关机

image-20250603115534226

依然能通

image-20250603115615848

LSW3

image-20250603115715680

5.大白话解释

核心目标:网络高可用

简单说:就是让网络像有“备胎”的车一样,主路断了或者主设备坏了,备用的路和设备能马上顶上,用户几乎感觉不到断网。


一、 配置逻辑解析(大白话版)

想象一个简单的网络:

  • **用户电脑 (PCs)**:连接到 LSW1(接入层交换机)。
  • 核心交换机:LSW2 和 LSW3:它们连接着路由器(或者本身就是三层交换机,能当网关用),是网络的“心脏”,负责不同部门(VLAN 10 和 VLAN 20)的流量进出。
  • 连接: LSW1 同时用两根线分别连到 LSW2 和 LSW3。LSW2 和 LSW3 之间也互相连着。

问题:

  1. 环路风险: LSW1-LSW2-LSW3-LSW1 形成了一个物理上的“圈”(环路)。数据包会在圈里疯狂转圈,导致网络瘫痪。
  2. 单点故障: 如果负责某个部门(比如VLAN 10)网关的核心交换机(比如LSW2)坏了,或者它连到LSW1的那根线断了,那个部门的人就上不了网了。

解决方案:MSTP + VRRP 组合拳

  1. 第一步:分部门 (VLAN)

    • 在 LSW1 上,把1-11号口划给部门A(VLAN 10),12-22号口划给部门B(VLAN 20)。这样不同部门的电脑在二层是隔离的。
    • 在 LSW2 和 LSW3 上,允许 VLAN 10 和 20 的流量通过它们的互联口(Trunk口)。
  2. 第二步:解决环路 + 负载分担 (MSTP)

    • 目标1:破环! 不能让数据包在圈里转。STP/MSTP 的作用就是自动“剪断”环路中的某条冗余链路,让网络结构变成没有环的“树”。
    • 目标2:别浪费! 传统STP会把所有VLAN的阻塞点放在同一个地方,另一条链路完全闲置。MSTP允许我们为不同的部门(VLAN组)设计不同的“树”
    • 配置精髓:
      • 把 LSW2 设置成 **部门A (VLAN 10) 的主干道 (实例1的主根)**。
      • 把 LSW2 设置成 **部门B (VLAN 20) 的备用道 (实例2的备根)**。
      • 把 LSW3 设置成 **部门B (VLAN 20) 的主干道 (实例2的主根)**。
      • 把 LSW3 设置成 **部门A (VLAN 10) 的备用道 (实例1的备根)**。
    • 结果 (看你的STP状态表):
      • 部门A (VLAN 10 / 实例1):
        • LSW1 到 LSW2 的路 (G0/0/1) 是主干道 (ROOT) – 畅通。
        • LSW1 到 LSW3 的路 (G0/0/2) 被临时封闭 (ALTE/DISCARDING) – 备用。
        • 如果 LSW2 或 LSW1-LSW2 的线坏了,MSTP 会自动“解封” LSW1-LSW3 这条路,部门A的流量就走 LSW3。
      • 部门B (VLAN 20 / 实例2):
        • LSW1 到 LSW3 的路 (G0/0/2) 是主干道 (ROOT) – 畅通。
        • LSW1 到 LSW2 的路 (G0/0/1) 被临时封闭 (ALTE/DISCARDING) – 备用。
        • 如果 LSW3 或 LSW1-LSW3 的线坏了,MSTP 会自动“解封” LSW1-LSW2 这条路,部门B的流量就走 LSW2。
    • 好处: 两条物理链路都被利用了!部门A主要走左边(LSW2),部门B主要走右边(LSW3)。任何一条设备或链路故障,另一个都能顶上。解决了二层链路的冗余和负载分担。
  3. 第三步:解决网关单点故障 (VRRP)

    • 问题: 虽然二层链路有备份了,但网关IP是配在物理设备上的。如果部门A的网关设备 LSW2 坏了,即使二层链路切到 LSW3,用户的网关IP还是指向坏掉的 LSW2,还是上不了网。


    • VRRP 的妙招:虚拟出一个“永不掉线”的网关!

      • 虚拟网关IP: 给部门A(VLAN 10)创建一个虚拟IP 10.0.0.1,给部门B(VLAN 20)创建一个虚拟IP 20.0.0.1用户的电脑网关就设成这个虚拟IP (10.0.0.120.0.0.1),而不是LSW2或LSW3的真实IP。


      • 谁是老板 (Master):

        LSW2 和 LSW3 上为同一个虚拟网关(比如VLAN 10的10.0.0.1)组成一个备份组。

        • 在 LSW2 的 VLAN 10 接口上:设置优先级120 (比默认100高),并配置抢占(等30秒再抢回Master)。LSW2 主动要求当 10.0.0.1 的老板 (Master)。
        • 在 LSW3 的 VLAN 10 接口上:设置优先级100 (默认),也配置抢占。LSW3 当 10.0.0.1 的备胎 (Backup)。
      • 工作方式:

        • 正常情况下:用户发往网关 10.0.0.1 的数据,实际是由老板 LSW2 (Master) 处理的。LSW3 虽然也在监听,但不干活(Backup状态)。
        • LSW2 挂了 (或连它的链路断了): LSW3 (Backup) 检测不到老板(LSW2)的心跳包了。LSW3 会说:“老板没了,现在我是新老板!” 并接管虚拟IP 10.0.0.1,开始处理用户的数据。用户完全不知道网关换人了,因为用的还是同一个虚拟IP 10.0.0.1
        • LSW2 恢复了: 它重新上线,发现自己优先级更高(120 > 100),但不会立刻抢班夺权(因为配置了delay 30)。它先当会儿备胎(Backup),等30秒后,再发通知说:“我优先级高,我才是正牌老板!” 然后抢回Master角色。这个过程短暂,用户可能只会感觉到轻微卡顿(就像你测试中前几个ping超时)。
      • 部门B (VLAN 20) 同理:

        • LSW3 当 20.0.0.1 的老板 (Master, 优先级120)。
        • LSW2 当 20.0.0.1 的备胎 (Backup, 优先级100)。
    • 好处: 对用户来说,网关只有一个(虚拟IP)。物理网关设备坏了或链路断了,备用设备能无缝接管网关功能。解决了三层网关的单点故障。


    • master ip 的作用: 这个配置 (vrrp vrid 1 virtual-ip 10.0.0.1) 就是定义虚拟网关IP本身。它告诉交换机:“我们这个备份组(vrid 1)要虚拟出来的那个共同网关IP就是 10.0.0.1”。用户电脑的网关必须指向这个虚拟IP (10.0.0.1),而不是 LSW2 (10.0.0.254) 或 LSW3 (10.0.0.253) 的真实IP。真实IP (10.0.0.254, 10.0.0.253) 是给VRRP协议内部通信和标识设备用的。


  4. MSTP + VRRP 配合的威力

    • 场景1:LSW2 整机故障
      • 部门A (VLAN 10):
        • MSTP:检测到LSW2挂了,立即解封 LSW1 到 LSW3 的链路。部门A流量走向 LSW3。
        • VRRP:LSW3 检测到LSW2心跳消失,立即接管虚拟网关 10.0.0.1
        • 结果: 部门A用户通过 LSW3 上网,网关还是 10.0.0.1
      • 部门B (VLAN 20):
        • MSTP:原本主路径就是 LSW1->LSW3,不受影响(除非LSW3也挂了)。
        • VRRP:LSW3 本来就是 20.0.0.1 的Master,继续工作。
    • 场景2:LSW1 到 LSW2 的线断了
      • 部门A (VLAN 10): 和上面类似,MSTP切路径到LSW3,VRRP在LSW3上接管网关。
      • 部门B (VLAN 20): 主路径LSW1->LSW3不受影响。
    • 场景3:LSW3 整机故障 (分析类似,角色互换)。
    • 场景4:LSW1 到 LSW3 的线断了
      • 部门B (VLAN 20): MSTP切路径到LSW2,VRRP在LSW2上接管 20.0.0.1 网关。
      • 部门A (VLAN 10): 主路径LSW1->LSW2不受影响。

总结逻辑链:

  1. VLAN:划分逻辑广播域(部门)。
  2. MSTP:
    • 破环,防止广播风暴。
    • 关键:为不同VLAN设计不同的主路径和备用路径。 让流量分担到两条核心链路上,并在一条链路/设备故障时自动切换到另一条。解决二层冗余和负载。
  3. VRRP:
    • 为每个VLAN创建一个虚拟网关IP
    • 让两台核心设备对这个虚拟IP进行主备备份
    • 主设备故障时,备设备无缝接管虚拟IP。用户网关设置不变(虚拟IP),解决网关单点故障。
  4. 配合效果: 无论是连接接入层的链路故障,还是作为网关的核心交换机故障,都能通过MSTP切换二层路径 + VRRP切换三层网关,实现用户业务的快速恢复,达到高可用目标。你测试中的“断路”和“关机”后网络依然能通,就是这个机制生效的表现。

二、 VRRP 原理大白话解析

核心思想: “备胎”网关。 让多个物理路由器(或三层交换机)假装成一个“永不掉线”的虚拟路由器。

  1. 虚拟出一个IP (virtual-ip): 管理员设定一个IP地址(比如 10.0.0.1)。这个IP就是告诉所有局域网内电脑:“我就是你们的网关!把数据都发给我!” 用户的默认网关都指向这个虚拟IP。
  2. 组建“备胎”小组 (VRRP Group): 多台物理路由器(比如Router A 和 Router B)加入同一个小组(同一个 vrid),共同“守护”这个虚拟IP。
  3. 选一个“老大” (Master):
    • 小组里的路由器会互相打招呼(发VRRP通告报文)。
    • 优先级 (priority) 高(默认100,可以手动调高比如120),谁就当老大(Master)。
    • 优先级一样?比谁的真实IP大。大的当老大。
  4. 老大干活,备胎待命:
    • 老大 (Master): 它负责响应局域网内所有发送到虚拟IP (10.0.0.1) 的ARP请求(告诉电脑“虚拟IP对应的MAC地址是我的物理MAC”)。它实际处理所有发送到虚拟IP的用户数据包,进行路由转发。它定期(比如每秒)向小组广播:“我还活着!我还是老大!”。
    • 备胎 (Backup): 监听老大的心跳广播。不响应虚拟IP的ARP请求(避免冲突)。不处理发送到虚拟IP的用户数据(除非老大挂了)。随时准备接班。
  5. 老大挂了怎么办?
    • 备胎们连续几次(默认3次)收不到老大的心跳广播。
    • 优先级最高的备胎(比如优先级120的)立刻站出来说:“老大没了,现在我是新老大!”。
    • 新老大 (New Master):
      • 开始响应虚拟IP的ARP请求(告诉电脑“虚拟IP对应的MAC地址现在是我的物理MAC了”)。
      • 开始处理所有发送到虚拟IP的用户数据包。
      • 开始定期广播心跳:“我活着,我是新老大!”。
    • 用户感觉: 用户电脑的网关IP (10.0.0.1) 没变!只是网络短暂卡了一下(切换时间,通常是几秒),然后就恢复了。用户不知道背后的路由器已经换了一台。
  6. 老大复活了怎么办? (抢占 preempt-mode)
    • 默认情况下(或配置了 preempt-mode),原老大(优先级120)恢复后,发现现在的新老大(优先级100)比自己优先级低。
    • 原老大会说:“我优先级更高,我才是正牌老大!” 并立刻(或等待配置的 delay 时间后)发起抢占。
    • 它重新成为Master,广播心跳,处理数据。
    • 新老大(原备胎)乖乖退位成Backup。
    • 好处: 让性能更好、优先级更高的设备尽快回到主岗位。如果配置了 delay,可以避免网络因频繁切换而不稳定。

为什么不能直接配网关?而需要 virtual-ip

  • 直接配物理网关IP (10.0.0.254) 的问题: 如果 10.0.0.254 这台路由器坏了,即使用户电脑网关指向它,数据包也发不过去,因为设备本身挂了。即使你有另一台路由器 (10.0.0.253),用户的网关设置还是指向坏掉的那台 (10.0.0.254),不会自动把数据发给 10.0.0.253用户必须手动修改网关设置才能恢复上网,这不可接受。
  • virtual-ip (10.0.0.1) 的作用:不是任何一台物理设备的真实IP。它是一个“虚拟”的、逻辑上存在的IP地址。VRRP 协议的神奇之处就在于,它让多台物理设备共同承担起响应这个虚拟IP的责任。只要小组里还有一台设备活着,这台活着的设备就会站出来说:“10.0.0.1 就是我!数据发给我!”。用户始终只需要记住这一个虚拟网关IP (10.0.0.1),背后的物理设备故障切换由VRRP协议自动、透明地完成。 这就是高可用性的关键。

简单比喻:

  • 虚拟网关IP (10.0.0.1): 就像公司的总机电话号码。


  • 物理路由器 (LSW2 10.0.0.254, LSW3 10.0.0.253): 就像接听总机电话的客服人员A和B。


  • VRRP:

    就像一套智能电话转接系统。

    • 正常情况下,客服A是“主客服”(Master),电话都转给他接。
    • 客服A生病请假(故障),系统检测到,自动把所有打进来的总机电话转给客服B。客户打电话进来,还是拨同一个总机号,感觉不到换人了。
    • 客服A病好了回来上班(恢复),系统检测到他能力更强(优先级高),过一会儿(delay)又把电话转回给客服A接。客户还是拨同一个号。
  • 直接配物理IP: 就像让客户直接记住客服A的分机号 (10.0.0.254)。客服A请假了,客户打他分机永远没人接,即使客服B闲着。客户必须知道客服B的分机号 (10.0.0.253) 并手动拨打才行。


所以,virtual-ip 是给用户用的、代表“网关服务”的虚拟入口master ip / backup ip 是物理设备的真实地址,是VRRP协议内部用来选举和通信的。用户根本不需要关心这些真实地址。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注