Forum Discussion
Global value and wideip
Thank you Yoann.
 
My requirement is very similar to following post.
 
https://devcentral.f5.com/s/articles/single-node-persistence
 
The requirement is that DNS queries direct to only a single node in a pool.
 
- Initially, traffic should always go to node A.
- If Node A fails by monitor down, then traffic will go to Node B.
- When Node A comes back online, traffic should continue to go to Node B.
- When Node B fails, then the traffic should go to Node A.
Our system is not allowed to use "Global Availability", because Node A recovers from fails, DNS queries return back to Node A from Node B.
 
Node A(Down) Order 0
DNS query ==> Node B(Up) Order 1
DNS query ==> Node A(Up) Order 0
Node A(Up) Order 1
So, I tried to put following irule, which has been introduced in the post, into my BIG-IP DNS.
 
when DNS_REQUEST {
persist uie 1
}
It seems to work expectedly. But I've hesitated to apply it due to Michael Gilin's comment.
 
Using "persist uie 1" iRule is not recommended,
So, I came up with another idea like this. just an idea. How I think is that memorize whether a query is distributed NodeA or NodeB, and then when next query comes, checking flag to confirm which node the previous query was distributed. When a newly DNS query comes, newly DNS query would continue to send to the same node along with the content of the flag table. But it can't use a table.
 
when DNS_REQUEST {
.
.
if { { NodeA eq "up" } && { [table lookup flag] eq "01"} } {
pool NodeA
table set flag "01"
} else if { { NodeB eq "up" } && { [table lookup flag] eq "10"} } {
pool NodesB
table set flag "10"
}
}
Help guide the future of your DevCentral Community!
What tools do you use to collaborate? (1min - anonymous)Recent Discussions
Related Content
* Getting Started on DevCentral
* Community Guidelines
* Community Terms of Use / EULA
* Community Ranking Explained
* Community Resources
* Contact the DevCentral Team
* Update MFA on account.f5.com
