If you are running 11.6.0, you can use FQDNs as pool members. This is described in detail here:
You would also need to SNAT the connection:
If you are using a version prior to that, and the target must be an FQDN, you'll have to use an iRule. You should read the information regarding the
RESOLV::lookup
command:
then use something like this (untested!):
when RULE_INIT {
set static::rf_target_fqdn "www.example.com"
}
when CLIENT_ACCEPTED {
set alist [RESOLV::lookup -a $static::rf_target_fqdn]
if { [llength $alist] > 0 } {
node [lindex $alist 0]
} else {
log local0.warn "Failed to resolve hostname ($static::rf_target_fqdn)"
reject
}
}
There are (at least) three drawbacks here: 1.
RESOLV::lookup
does not follow CNAME records; 2. if the result returns more than one A record, it'll always use the first (though typically local resolvers rotarize the results on each query); and 3. each connection incurs the lookup cost and consequent latency.