Per-client DNS servers with DNSMasq

I am running TomatoUSB with DNSMasq to provide DHCP and DNS services for my local network.

What I would like to achieve is to provide alternative DNS servers for one or two specific clients on the network based on their IP or MAC (These clients do not accept manual configuration of DNS servers).

It does not matter if this is DNS Masq using a different DNS server for these IPs or whether different DNS servers are delivered via DHCP.


Solution 1:

Setup reservations for the specific hosts using the dhcp-host option. Use tag options to flag those for a special set of options.

This is completely un-tested, but I suspect your config might look something like this. Check the man page for full details.

dhcp-host=00:15:99:27:f8:98,set:specialhosts,192.168.32.20
dhcp-host=00:51:99:72:8f:89,set:specialhosts,192.168.32.21
dhcp-option=tag:specialhosts,option:dns-server,8.8.8.8,8.8.4.4

Solution 2:

For Reference, this makes it possible to assign a unique "set" for each client, and a separate PXE boot menu file for each client. I can then script the first boot option, to start the local Windows disk, or netboot as Linux cluster node:

dhcp-host=xx:xx:xx:xx:xx:xx,node-17,set:tag17,10.0.1.xx
dhcp-host=xx:xx:xx:xx:xx:xx,node-18,set:tag18,10.0.1.xx

dhcp-option-force=tag:tag17,209,pxelinux.cfg/default17
dhcp-option-force=tag:tag18,209,pxelinux.cfg/default18