ok wrote an irule and tested it works this is my solution
---
substitute your values where needed
----
when RULE_INIT {
set ::TRACE 1
set DEBUG 1
}
when DNS_REQUEST {
if { [IP::addr [IP::client_addr] equals $dnsserver1_dc1 ] or [IP::addr [IP::client_addr] equals $dnsserver2_dc1 ] } {
log local0. "Connection from: [IP::client_addr] from internal DNS - attempting to send to mail internal pool"
cname mx-vip.domain.dc1.com
}
if { [IP::addr [IP::client_addr] equals $dnserver1_dc2 ] or [IP::addr [IP::client_addr] equals $dnsserver2_dc2 ] } {
cname mx-vip.domain.dc2.com
}
}