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

From: "Anurag Kothari (ankothar)" <[email-masked]>
Date: Fri, 1 Mar 2013 15:01:42 +0000

Hi Sreenatha

I don't think we need to define a "Maintenance_Event" when the router is in either Init or Backup State. The intention of the "Maintenance_Event" is to trigger a failover from "Master" to a "Backup" router as soon as possible (especially when preemption is not configured).

But if you are asking if priority = 0 should be allowed (either by user configuration or dynamically) when the router is in "Init" or "Backup" state then I think the answer should be yes, It should be treated just like any other change in priority is treated when the router is in these states.

Please let me know if I am missing something.

Thanks
-Anurag

From: sreenatha [mailto:[email-masked]] 
Sent: Friday, March 01, 2013 12:03 AM
To: Anurag Kothari (ankothar)
Cc: [email-masked]
Subject: Re: Proposal for Maintenance Event for VRRP [RFC-5798]

Hi Anurag,
    One more point on original proposal of handling Maintenance Event. 

Whether "Maintenance_Event" from user is allowed only in Master state or any other state?

If Maintenance_Event comes in other state(Init or Backup) apart from the Master state, what would be the behaviour of the router?

This point also we need to take care.

Thanks,
Sreenatha Setty

On 03/01/2013 01:31 AM, Anurag Kothari (ankothar) wrote:
Hi Sreenatha
 
Totally agree with your observation.
 
Also as pointed out by some other participants the additional backup router in my original analysis will never become master on seeing the first ADVERTISEMENT with priority zero as it will keep resetting it's Master_Down_Timer to Skew_Time in the storm of ADVERTISEMENTs with zero priority and the Master_Down_Timer will never fire for the additional backup router.
 
Thanks
-Anurag 
 
P.S. Noticed the typos: the additional lines in my email should be numbered 706 and 707 (instead of 701 and 702) and probably yours should be 426 and 427 (instead of 421 and 422).
 
From: sreenatha [mailto:[email-masked]] 
Sent: Thursday, February 28, 2013 11:39 AM
To: [email-masked]
Cc: Anurag Kothari (ankothar)
Subject: Re: Proposal for Maintenance Event for VRRP [RFC-5798]
 
Hi Anurag,
    Modification to algorithm is correct. But this modification is taking care only when Router is in Master state.
What about if Backup router(priority value is zero) receives ADVERTISEMENT message with priority value as zero?

Same condition we will consider, where both VRRP routers priority is set to zero, and both sending ADVERTISEMENT messages with priority as zero. According to new modification any one router, lets take "Router A", will remain in Master state and other router, lets say "Router B", will transit to Backup state.

Now according to RFC-5798:
When "Router B" is in Backup state,
(420) - If an ADVERTISEMENT is received, then:
 
         (425) + If the Priority in the ADVERTISEMENT is zero, then:
 
            (430) * Set the Master_Down_Timer to Skew_Time
 
         (440) + else // priority non-zero
 
So this lead to Master_Down_Timer to expire soon. 
 
Again in Backup state,
(365) - If the Master_Down_Timer fires, then:
 
         (370) + Send an ADVERTISEMENT
                    |
                    |
                    ...
                    
         (405) + Set the Adver_Timer to Advertisement_Interval
 
         (410) + Transition to the {Master} state
 
(415) -endif // Master_Down_Timer fire
 
So this lead to continuous switch over from Backup to Master state and vice verse state transitions in "Router B".
 
To avoid this condition,
In Backup state also we need to do modification. Same as you suggested in Master state, same extra condition we need to check in Backup state also.
Modifications in Backup state as follows(Differences from RFC-5798 highlighted with Underline):

(420) - If an ADVERTISEMENT is received, then:
 
         (425) + If the Priority in the ADVERTISEMENT is zero, 
         
         (421) -+ and
 
         (422) -+ Local Priority is greater than zero, then:
 
            (430) * Set the Master_Down_Timer to Skew_Time
 
         (440) + else // priority non-zero or local-priority is zero
             (Continue other logic)
 
This will avoid state-transition flip-flap problem in "Router B".
 
Thanks,
Sreenatha Setty

On 02/27/2013 01:30 AM, [email-masked] wrote:
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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.ietf.org/mail-archive/web/vrrp/attachments/20130226/cc6018e8/attachment.htm>
 
------------------------------
 
_______________________________________________
vrrp mailing list
[email-masked]
https://www.ietf.org/mailman/listinfo/vrrp

End of vrrp Digest, Vol 81, Issue 10
************************************

Disclaimer : 
This email communication may contain privileged and confidential information and is intended for the use of the addressee only.If you are not an intended recipient you are requested not to reproduce, copy disseminate or in any manner distribute this email communication as the same is strictly prohibited. If you have received this email in error, please notify the sender immediately by return e-mail and delete the communication sent in error. Email communications cannot be guaranteed to be secure & error free and IB Technology is not liable for any errors in the email communication or for the proper, timely and complete transmission thereof.

Disclaimer : 
This email communication may contain privileged and confidential information and is intended for the use of the addressee only.If you are not an intended recipient you are requested not to reproduce, copy disseminate or in any manner distribute this email communication as the same is strictly prohibited. If you have received this email in error, please notify the sender immediately by return e-mail and delete the communication sent in error. Email communications cannot be guaranteed to be secure & error free and IB Technology is not liable for any errors in the email communication or for the proper, timely and complete transmission thereof.

---

From: sreenatha <[email-masked]>
Date: Sat, 02 Mar 2013 13:47:07 +0530

Hi Anurag,
     Thanks for clarification.

      If i am wrong, user is allowed to configure Priority value as 
zero(i.e., Maintenance_Event), priority value will be changed. And 
handling of the Maintenance_Event is done only in Master state and 
ignored in Backup and Init state.

Thanks,
Sreenatha

Disclaimer :

---

From: "Anurag Kothari (ankothar)" <[email-masked]>
Date: Mon, 4 Mar 2013 23:43:27 +0000

Hi Sreenatha

If you mean "if I am not wrong" then yes what you have said below is correct.

Also I believe the objective (particularly in case of time sensitive application) is to avoid any unnecessary switch overs; as already suggested earlier let's call this a "Change Event" instead of "Maintenance Event". The "Change Event" would be triggered by change in one of the following parameters of the VRRP Packet :

1) Priority (Section 5.2.4. of RFC-5798)
2) Max Adver Int (Section 5.2.7. of RFC-5798)

And possibly:

3) IPvX Address(es) (Section 5.2.9.  of RFC-5798)

The "Change Event" would only be handled in Master State and ignored in other state as the VRRP Packets are only supposed to be sent by the Master.

So to rephrase the proposal:

    - If a Change event is received, then:

    + Send an ADVERTISEMENT

    + Reset the Adver_Timer to Advertisement_Interval

    -endif // Change recv

To cover the failover scenario (in the absence of preemption) Priority = 0 will now have to be allowed along with the previously discussed modifications to avoid a storm of Priority = 0 Advertisements from two masters.  

Please Share your thoughts.

Thanks
-Anurag

-----Original Message-----
From: sreenatha [mailto:[email-masked]] 
Sent: Saturday, March 02, 2013 3:17 AM
To: Anurag Kothari (ankothar)
Cc: [email-masked]
Subject: Re: Proposal for Maintenance Event for VRRP [RFC-5798]

Hi Anurag,

      If i am wrong, user is allowed to configure Priority value as zero(i.e., Maintenance_Event), priority value will be changed. And handling of the Maintenance_Event is done only in Master state and ignored in Backup and Init state.

Thanks,
Sreenatha

Disclaimer :