Home / Notes / VRRP Dual-Master & Failover Faults
NOTES · VRRP TROUBLESHOOTING

VRRP in Production: Dual-Master, Slow Failover and the Duplicate VRID Trap

VRRP looks simple until it isn't: two routers both claiming Master at once, a switchover that technically works but takes twenty minutes to actually recover, or two sites that silently generate the exact same virtual MAC. Three real field cases, the commands that pinned down each root cause, and what to check the next time VRRP misbehaves.

By the AtlasCommTech engineering team — 13 years of carrier & enterprise network deployments · Updated July 2026

Three Ways VRRP Breaks That Have Nothing To Do With VRRP Itself

In all three cases below, the VRRP configuration itself was fine — the fault was sitting one layer away, in MSTP, in ARP handling, or in a second site nobody had cross-checked.

VRRP itself is a simple protocol: priority decides who's Master, and a well-known virtual MAC derived from the VRID makes the failover invisible to hosts on the segment. That simplicity is exactly why, when VRRP misbehaves, re-reading the VRRP configuration line by line is usually the wrong first move. The three field cases below all trace back to something adjacent to VRRP — a loop that STP hadn't actually blocked, an ARP-hardening feature interacting badly with a link failure, and a virtual MAC collision between two sites that were never checked against each other.

What follows is each case broken down — the network it happened on, the symptom, the commands that pinned down the cause, and the fix — plus the FAQ answers on VRRP master election and dual-master causes that come up whenever these tickets get discussed.

Where To Look First — Three Very Different Symptoms

Dual-master, a slow recovery, and total silence between two sites look like the same protocol misbehaving — they aren't the same fault, and they aren't fixed the same way.

Placing the symptom on this tree first tells you which case below is actually the one you're looking at, and which feature outside VRRP itself you should go check.

VRRP Symptom Both Routers Show Master(Dual-Master) Failover Happens, RecoveryIs Slow (~20 min) Two Sites Can'tCommunicate At All Case 1 · MSTP-side loopdisplay cpu-defend statistics all showsmass VRRP drops; display trapbuffershows a MAC-move alarm — the alarm'sOriginal-Port / Flapping port fieldspoint straight at the loop→ layer2-loop-storm-troubleshooting Case 2 · ARP fixationarp anti-attack entry-check fixed-allenable + arp learning strict lock theBackup's ARP entry to the heartbeatinterface; it can't re-point to the newactive link until the entry ages out Case 3 · Duplicate VRIDdisplay mac-address on the transitswitch shows the same virtual MAC00-00-5E-00-01-{VRID} learned fromboth directions — two independentsites configured the same VRID

Diagram labels are kept in English for engineering clarity.

None of these three faults are VRRP protocol bugs — they're VRRP exposing a problem that was already sitting in the network: an unblocked loop, an ARP-hardening feature that assumed the topology would never change, and a VRID that was never coordinated across sites. Fixing the adjacent feature fixes VRRP.

Three Field Cases, Worked Through

Same protocol, three completely different root causes — and three different sets of commands to confirm each one.

Case 1 — Dual-Master Under VRRP + MSTP

SwitchA and SwitchB both showed VRRP state Master at the same time; wired and wireless clients on part of the network lost internet access. The cause wasn't VRRP — it was a loop MSTP hadn't actually blocked.

  1. Check display cpu-defend statistics all for the vrrp packet type. A large Pass count together with a large Drop count on VRRP control packets means far more VRRP traffic is hitting the CPU than two routers exchanging hellos would ever generate — that's the first sign of a loop flooding VRRP packets, not a VRRP configuration fault.
  2. Check display trapbuffer for a MAC-move alarm (MFLPVLANALARM). The alarm's Original-Port and Flapping port fields name the exact ports the same MAC address is bouncing between.
  3. Trace those two ports down to the access switch beneath them — in this case a downstream switch with a loop that MSTP was supposed to be blocking but wasn't.
  4. Break the loop at the access layer. Once the loop clears, the MAC-move alarm stops, VRRP's drop counters stop climbing, and the dual-master state resolves on its own — nothing on SwitchA or SwitchB itself needs to change.
<HUAWEI> display cpu-defend statistics all
 Statistics on slot 2:
--------------------------------------------------------------------------------
 Packet Type           Pass(Packet/Byte)      Drop(Packet/Byte)      Last-dropping-time
--------------------------------------------------------------------------------
 vrrp                   47876567               1856471019            2017-06-21 10:46:18
                         3255606556             126240029k
// huge pass+drop counts on vrrp -> far more VRRP traffic than two routers should generate

<HUAWEI> display trapbuffer
#Jun 21 2017 10:36:14 HX-1 L2IFPPI/4/MFLPVLANALARM:OID 1.3.6.1.4.1.2011.5.25.160.3.7 MAC move
detected, VLANID = 28, MacAddress = 12b7-c3d0-9070, Original-Port = XGE2/0/0, Flapping port =
XGE2/0/10 and XGE2/0/6. Please check the network accessed to flapping port.
// Original-Port / Flapping port -> trace these down to the downstream switch with the loop

Case 2 — Failover Works, But Recovery Takes 20 Minutes

SwitchA (Master) and SwitchB (Backup) were linked by a heartbeat cable; a dual-homed server sat on both. When the server's link to SwitchA failed, traffic did move to the backup path — but service didn't actually recover for 20 minutes.

  1. Understand the normal path first: SwitchA learns the server's ARP directly off its own link; SwitchB, normally idle for this traffic, learns the same server's ARP indirectly through the heartbeat interface via SwitchA.
  2. When the server-to-SwitchA link fails, the server starts sending over the backup path to SwitchB, and SwitchB's replies reach the server fine — but SwitchB's ARP entry for the server still points at the heartbeat interface, so SwitchB keeps forwarding return traffic back toward SwitchA, which no longer has a working path to the server.
  3. Check for arp anti-attack entry-check fixed-all enable and arp learning strict force-enable on both switches. With ARP fixation active in fixed-all mode, an existing ARP entry's interface won't update just because traffic starts arriving from a different port — it only updates once the old entry naturally ages out, which is what actually consumes the 20 minutes.
  4. Disable the two commands that are fighting the topology change, or pick a fixation mode that matches how this network actually behaves (see the gotcha below for the three modes and where each one is meant to be used).
[SwitchB] undo arp anti-attack entry-check fixed-all enable
[SwitchB] undo arp learning strict
// server's ARP entry is now free to re-learn against the new inbound interface
// instead of waiting up to ~20 minutes for the old heartbeat-interface entry to age out

Case 3 — Two Sites, Same Virtual MAC

Site1 and Site2 talked to each other through a backbone; each site's firewall pair ran its own VRRP cluster. SW-1 could ping SW-2 across the backbone, but the two sites' firewalls could not reach each other at all.

  1. Apply a traffic-classifier + traffic-policy with statistic enable on the inbound interface, matching the ICMP traffic between the two firewalls, and check display traffic policy statistics. A non-zero Matched/Passed count with zero Dropped confirms the ICMP is genuinely arriving — the problem is downstream of this switch, not a filter here.
  2. Check display mac-address for the firewall's known virtual MAC (0000-5e00-0136 in this case) on the transit switch. Seeing the identical MAC learned from two different directions — one toward Site1, one toward Site2 — means either there's a loop, or two independent VRRP instances are generating the exact same virtual MAC.
  3. No loop existed anywhere in this network, so the next check was the firewalls' own VRRP configuration — specifically the VRID each cluster was configured with.
  4. Both sites' firewall clusters turned out to be configured with the same VRID. Since the virtual MAC is derived directly from the VRID as 00-00-5E-00-01-{VRID}, identical VRIDs at two independent sites produce the exact same virtual MAC, and the transit network has no way to tell the two apart. Reconfigure one site's VRID to a value that's unique across every site sharing the same backbone.
[SW-1] display mac-address | include 0000-5e00-0136
-------------------------------------------------------------------------------
MAC Address     VLAN/VSI   Learned-From   Type
-------------------------------------------------------------------------------
0000-5e00-0136  339/-      XGE0/0/1       dynamic
0000-5e00-0136  339/-      GE0/0/2        dynamic
-------------------------------------------------------------------------------
// same virtual MAC learned from two different directions -> loop, or duplicate VRID
// no loop found -> checked VRRP config on both firewall clusters -> same VRID both sites
// virtual MAC format: 00-00-5E-00-01-{virtual-router-ID} -> identical VRID = identical MAC

5 Things Worth Checking Before You Touch VRRP Itself

Once the tree above has told you which case you're in, these five account for most of what's actually wrong.

1. A Loop Elsewhere In The Network Masquerades As A VRRP Dual-Master Fault

SYMPTOMBoth VRRP routers report Master simultaneously; the two routers' own VRRP configuration is completely consistent when you compare them.

CAUSEA loop somewhere downstream floods VRRP advertisements and corrupts the MAC table on the path between the two routers, so each router stops reliably hearing the other's hellos and independently decides it's the only Master left standing.

FIXDon't start by re-reading the VRRP configuration — check display cpu-defend statistics all and display trapbuffer for a MAC-move alarm first, and trace the loop from there. See Layer 2 Loop Storm: Finding the Loop When the Whole Network Goes Down for the full loop-hunting process.

2. Three ARP Fixation Modes Solve Three Different Problems — Using The Wrong One Stalls Failover

SYMPTOMFailover happens, but the network doesn't actually recover until several minutes later — not seconds, minutes.

CAUSEARP fixation has three mutually exclusive modes for different situations: fixed-mac suits a fixed MAC address that roams between access ports; fixed-all suits both MAC and access location staying fixed; send-ack suits both changing frequently. Configuring fixed-all in a topology where the access point does change — like a dual-homed server failing over between two switches — locks the stale entry in place until it naturally ages out.

FIXMatch the fixation mode to how the network actually behaves, not to a generic security hardening checklist. If the access point can legitimately change, fixed-mac or send-ack is the correct mode — fixed-all is not.

3. The Same VRID At Two Independent Sites Generates One Colliding Virtual MAC

SYMPTOMTwo sites that should be independent of each other can't communicate at all, even though each site's own VRRP cluster works fine internally.

CAUSEThe virtual MAC a VRRP group advertises is derived deterministically from its VRID (00-00-5E-00-01-{VRID}), not chosen independently. Two sites configured with the same VRID — entirely plausible when each site was built by a different team, or from the same template — end up generating the identical virtual MAC, and any device on the path between them sees the same MAC arriving from two directions.

FIXTreat VRID as a value that has to be coordinated across every site sharing the same backbone, not just unique within a single site's own VRRP group. Renumber one site's VRID to resolve the collision.

4. Asymmetric Priority Or Preemption Settings Cause Flip-Flopping, Not A Clean Failover

SYMPTOMVRRP state changes more often than an actual link event would explain, or the "wrong" router keeps becoming Master.

CAUSEBy default VRRP preempts: any router that discovers its own priority is higher than the current Master's immediately takes over, and the previous Master steps down to Backup. If priority values, preemption mode, or preemption delay aren't configured consistently with the intended design, routers can trade the Master role back and forth every time a monitored interface flaps or a priority recalculation happens.

FIXDecide deliberately which router should hold Master under normal conditions, set its priority accordingly, and configure a sensible preemption delay so a flapping interface doesn't trigger a role swap on every transition.

5. The VRRP Virtual IP Doesn't Answer Ping By Default

SYMPTOMdisplay vrrp shows the group is healthy and Master is active, but pinging the virtual IP address itself gets no reply.

CAUSEThis is expected default behavior, not a fault — VRRP doesn't respond to pings addressed to the virtual IP unless that behavior is explicitly turned on.

FIXEnable vrrp virtual-ip ping enable in the system view if you specifically need the virtual IP to answer ICMP echo requests for monitoring purposes.

[HUAWEI] vrrp virtual-ip ping enable

Related solution designs

Five Questions That Come Up Constantly

Pulled straight from the field — the ones worth having an answer ready for.

How does VRRP actually decide who becomes Master?

Priority decides it: the router with the highest configured priority in the group becomes Master, and the rest stay Backup. With the default preempt mode, any router that later discovers its own priority is higher than the current Master's takes over immediately, and the old Master drops back to Backup. In non-preempt mode, once a router is Master, it stays Master even if a higher-priority router joins later, as long as it hasn't failed. A monitored interface going down automatically lowers that router's priority by a configured amount, which is how link failures get reflected into the election.

Why can't I ping the VRRP virtual IP address?

By default the virtual IP doesn't answer ICMP echo requests at all — that's normal, not a fault. Run vrrp virtual-ip ping enable in the system view if you need it to respond for monitoring purposes.

Beyond a loop, what else can cause a VRRP dual-master state?

Worth checking in order: asymmetric configuration parameters between the two routers (authentication type and key, group ID, virtual IP list, VRRP version); the heartbeat link between the two routers being down or unstable; a port that should have been blocked by STP or RRPP failing to block; and unusually high CPU utilization on one of the routers delaying its VRRP hello processing.

If both routers are configured with exactly the same priority, which one wins?

When priorities are equal, the router with the higher primary IP address on the VRRP interface becomes Master. This is a corner case worth avoiding by design — deliberately assigning different priorities to the intended primary and backup router removes the ambiguity entirely.

Can a broken VRRP heartbeat line by itself cause dual-master?

Yes. If the two routers rely on a dedicated heartbeat link to exchange VRRP hellos and that link goes down while both routers are otherwise healthy, each side stops hearing the other and independently promotes itself to Master — exactly the same end symptom as Case 1 above, but with a completely different root cause to chase down.

Honest Limits of This Note

Honest Limits of This Note

These three cases are drawn from Huawei S-series campus switch and firewall-cluster VRRP deployments, using the display cpu-defend statistics / display trapbuffer / display mac-address commands shown above. The underlying logic — priority-driven election, a VRID-derived virtual MAC, and ARP behavior around a failover — carries over to most vendors' VRRP-family implementations, but exact command syntax will differ. This note doesn't cover VRRP6, VRRP load-balancing with multiple virtual routers per group, or third-party VRRP-like protocol interoperability in depth.

Stuck with two VRRP masters or a stalled failover?

Tell us the symptom — dual-master, a slow recovery, or two sites that can't talk — plus your display trapbuffer / display mac-address output, and we'll help you read it.

WhatsApp an engineer →

Related Reading