Subject: [VRRP] Proposal for Maintenance Event for VRRP [RFC-5798]

From: "Anurag Kothari (ankothar)" <[email-masked]>
Date: Tue, 19 Feb 2013 22:08:41 +0000

Hi

I want to propose a new Maintenance Event (modification of Shutdown Event) for VRRP (RFC-5798] which would allow to gracefully failover the VRRP Master to Redundant (Backup Router).

Problem Statement:
VRRP preemption is not configured on the redundant / backup router. How to initiate VRRP Traffic to failover to the redundant / backup router gracefully without modifying the configuration on the redundant / backup router (i.e. adding preemption)

Proposed Solution:
Addition to Section 6.4.3 of RFC-5798:

- If a Maintenance event is received, then:

+ Cancel the Adver_Timer

+ Send an ADVERTISEMENT with Priority = 0

-endif // maintenance recv

Unlike Shutdown event the router will not "Transition to the {Initialize} state" and continue to be Master and forward traffic  till the backup router sends an ADVERTISEMENT (triggered by receiving an ADVERTISEMENT with Priority = 0) and becomes master.

Here are couple of examples of how a maintenance event may be triggered

1)      By some user command e.g. "maintenance-mode" in the vrrp configuration.

2)      By setting the priority = 0 for a particular VRID.

Thanks
-Anurag

---

From: "Anurag Kothari (ankothar)" <[email-masked]>
Date: Tue, 26 Feb 2013 15:13:51 +0000

Some concerns have been raised regarding the following situation / Corner Case:
Due to congestion or some other fault in the network the ADVERTISEMENTs from the Master router do not reach backup router(s). The Master_Down_timer fires and one of the back router transitions to Master State at the same time the priority of this router and the original Master is set to zero. How would the network behave in this case?

For sure the probability of this happening would be very low (as it is a double/multiple fault situation). Here is my analysis of the situation and solution for the same.

We will have two Master routers both sending ADVERTISEMENTs with Priority = 0. This will create a vicious circle of sending ADVERTISEMENTs (one router triggering the other) at a fast rate. This would also cause the Virtual MAC to shuttle continuously between two ports on the switch(es) at a fast rate. Both of these can probably cause high CPU utilization on the router and the LAN Switches.

If there is an additional backup router available then it will become master on seeing the first Advertisement with Priority = 0 and both the Masters (with priority = 0) will transition to Backup on seeing the advertisement with non-zero priority from the new Master.

For the situation where we do not have an additional backup router we can avoid this by making following modifications (Differences from RFC-5798 highlighted in RED):

(700) - If an ADVERTISEMENT is received, then:

   (705) -+ If the Priority in the ADVERTISEMENT is zero,

   (701) -+ and

   (702) -+ Local Priority is greater than zero, then:

      (710) -* Send an ADVERTISEMENT

      (715) -* Reset the Adver_Timer to Advertisement_Interval

   (720) -+ else // priority was non-zero or local priority was zero

      (725) -* If the Priority in the ADVERTISEMENT is greater
      than the local Priority,

      (730) -* or

      (735) -* If the Priority in the ADVERTISEMENT is equal to
      the local Priority and the primary IPvX Address of the
      sender is greater than the local primary IPvX Address, then:

         (740) -@ Cancel Adver_Timer

         (745) -@ Set Master_Adver_Interval to Adver Interval
         contained in the ADVERTISEMENT

         (750) -@ Recompute the Skew_Time

         (755) @ Recompute the Master_Down_Interval

         (760) @ Set Master_Down_Timer to Master_Down_Interval

         (765) @ Transition to the {Backup} state

      (770) * else // new Master logic

         (775) @ Discard ADVERTISEMENT

      (780) *endif // new Master detected

   (785) +endif // was priority zero?

(790) -endif // advert recv

Please let me know if I have missed something.

Thanks
-Anurag