Forum Discussion

daboochmeister's avatar
Dec 07, 2017

Declaring disaster when using a BIG-IP DNS Controller driven disaster recovery data center transition

I'm re-asking this question, because we still don't have a solution, and I'm hoping that potential answers may have been missed on the first ask - and it just "feels" to me like someone who is more experienced with Big-IP DNS Controllers (GTMs) would know a way to do this. The original posting is here.

 

In our organization, we're planning on using our GTMs to control disaster recovery - that is, we have a backup data center, which is cold, but we want to spin it up in case of a disaster, and only after it's ready, "flip a switch" to declare a disaster, and at that point have all GTM-managed names start returning the alternate data center's IPs. Up until that switch-flip, all wide IPs should continue to return their original data center IP values (or, potentially, return nothing at all, failing to resolve).

 

My question is, what are the general recommendations for implementation of this manual "switch"? What have people done in terms of creating a construct that is manually controlled, in order to control the GTM's logic for declaring disaster, and affecting a broad array of wide IPs, etc. managed by the GTMs? (sorry, "BIG-IP DNS")

 

It was suggested to simply use global availability - but that doesn't quite fit, because we don't want the alternate data center's IPs returned by the wide IPs until after this "switch" is thrown.

 

Is there some capability at the data center construct level to effect this behavior? Via distributed applications? I'm hoping for some built-in configurable capability, without having to do significant iRule coding or iControl scripting. At that point, it may simply be easier to manage it all via short TTLs and manual imports to our primary DNS servers (which are not GTMs).

 

Thank you for any help!

 

  • My one thought is to maybe have a single iRule applied to all the wide IPs, and in the RULE_INIT, declare a global "set Disaster_Declared 0" variable ... then in some DNS-related event (not sure which), check the variable and always return the first pool in the Global Availability pool list if {! Disaster_Declared}. Then, declaring disaster would mean going in and changing the iRule to "set Disaster_Declared 1". Thoughts? If this would work, this seems like fairly trivial iRule coding.