Joel_42834
Apr 12, 2013Nimbostratus
Unable to transfer a DNS request to a downstream virtual server
Hi,
I'm trying to transfer a DNS request from a listener virtual server on a GTM to another virtual server on the same GTM.
I've attached an iRule to the listener virtual server:
when DNS_REQUEST {
log local0. "DNS Request"
set name [string tolower [DNS::question name]]
if { $name ends_with ".qtst.company.com" } {
set vserver "bu-qtst-gtm"
log local0. "Transfering request to \"$vserver\""
virtual $vserver
}
}
The second virtual server, bu-qtst-gtm, is identically defined to the first one but listening on a unique IP address. Both are configured with the same DNS profile and are listening for UDP requests.
The second virtual server also has an iRule that performs additional processing.
The idea is that requests received for *.qtst.company.com may require additional processing and may choose a different resolution method than the other requests.
DNS requests for anything other than "*.qtst.company.com" would still be processed by the listener virtual server.
All of this could be done by registering "qtst.company.com" as a real subdomain on the company.com external DNS servers. But I'm getting pushback from team that manages that DNS. They don't want to have to define new subdomains.
By using iRules and secondary virtual servers, I thought that I would be able to dynamically simulate different subdomains with different resolution logic without involving the team that manages the external DNS.
The problem is that my secondary virtual server never receives the request even though logging clearly shows that the virtual command is being executed.
The CLIENT_ACCEPTED and DNS_REQUEST events on the second virtual server are never triggered.
Any ideas on why?
Thanks in advance