dns bind config: how do I specify in dns forward zone entry to use a different source address when forwarding to another dns server?

I have a dns-server setup and below is the high-level of what I am trying to do:

setup:

DNS server with three IP's: mgmt, localInterfaceIP, PublicInterfaceIP.

DNS named.conf: has "query-source address localInterfaceIP port *;"

My problem: I am trying to add a zone as below:

zone "public.abc.org" {
        type forward;
        forwarders { 1.2.3.4; 2.3.4.5; };
};

BUT want to use the PublicInteraceIP when forwarding this request towards the 1.2.3.4 and 2.3.4.5 server, is there a config I can specify that applies only to this zone to use the public IP address? For all other zones on this machine, I want it to continue using the localInterfaceIP.

Is there a way this can be configured?

ex: 'dig @localhost home.public.abc.org IN A' will result in the dns server forwarding the dns request to 1.2.3.4 using source IP of PublicInterfaceIP.

Thanks in advance.


I think what you are looking for is server statement together with query-source clause:

server 1.2.3.4 {
  query-source <PublicInterfaceIP>;
}

server 2.3.4.5 {
  query-source <PublicInterfaceIP>;
}

Unfortunately this seems to be global (possibly view), not zone specific setting.

For more see BIND ARM.