Forum Discussion

rmd1023's avatar
rmd1023
Icon for Nimbostratus rankNimbostratus
Aug 31, 2012

split brain GTM

I have a pair of GTMs that operate as a sync group, two HA pairs of LTMs, and four virtual servers - two on each set of LTMs so LTM-A has a virtual server for service MyWebSrv and one for MyOtherWebSrv, and LTM-B has a backup virtual server for service MyWebSrv and one for MyOtherWebSrv that can become active if LTM-A is unavaible.

 

 

I want to set up my Wide-IP so that internal users get the pool for MyWebSrv, but external users get the pool for MyOtherWebSrv. They're separate virtual servers, so I can't just use the translated vs external address on a single virtual server. Both MyWebSrv and MyOtherWebSrv are on the same LTM, so I can't do it by data center.

 

 

What's the best way to set this up? Have the two servers for each service in a pool and use an iRule to give out the correct pool based on the query source? (see below)

 

 

To add extra detail in case I'm not explaining it well above:

 

LTM-A has virtual servers MyWebSrv on 10.1.1.100, and MyOtherWebSrv on 10.1.1.200

 

LTM-B has virtual servers MyWebSrv on 10.2.2.100, and MyOtherWebSrv on 10.2.2.200

 

The GTMs are authoritative for lb.example.com.

 

I want internal DNS queries for thing.lb.example.com get [10.1.1.100 if LTM-A is active or 10.2.2.100 if LTM-A is offline].

 

External DNS queries for thing.lb.example.com will get [10.1.1.200 if LTM-A is active or 10.2.2.200 if LTM-A is offline]

 

 

The iRule would be something like this, if my internal queries came from NS 10.10.10.10:

 

when DNS_REQUEST {

 

if { [IP::addr [IP::remote_addr] equals 10.10.10.10] } {

 

pool MyWebSrv-pool

 

} else {

 

pool MyOtherWebSrv-pool

 

}

 

}

 

 

Thanks!

 

 

No RepliesBe the first to reply