How would one configure BIND on a Linux system to forward DNS queries to a different upstream forwarder, based upon the source IP and/or MAC of the requesting host?
For example, I might want to send DNS queries from certain hosts on my network to OpenDNS, others to Google, and all others to my ISP.
Best Answer
The solution is BIND "views". You can filter on source or destination IP and route the request to a view. You can provide completely different DNS zones, forwarders, and other handling options.
https://kb.isc.org/article/AA-00851/0/Understanding-views-in-BIND-9-by-example.html