I have a network on which I'm running dnsmasq to do DHCP and DNS. My network has several clients each of which needs to communicate with a master machine (which they do with a DNS query to dnsmasq for master
). I now want to run several master/client groups on the same network, and I want to be able to easily configure which client is associated with which master.
Is it possible to configure dnsmasq such that it will give a different response for a certain DNS query to different clients? For example, if 10.0.2.23
queries for master
I want the result to be 10.0.3.1
. However, if 10.0.2.24
queries for master
I want the result to be 10.0.3.2
.
I know I can achieve this by just making a master
entry in each client's /etc/hosts
file, but I would love if this information was all in one single config file (e.g. /etc/dnsmasq.d/masterclient.conf
)
Best Answer
TL;DR: explicit is better than implicit
You may also want to ensure that any diagnostics you run on your network also reveal the connection between members of each pair.
If dnsmasq is doing both dns & dhcp, its easy to solve both your "each client knows their master" problem and to make verifying the correct setup possible - by NOT making dnsmasq respond differently based on who is querying.
I recommend you instead make sure each client ask for its master specifically by making its group a part of its fully qualified domain name:
There are ways to base the decision about which client is in which group on different parameters; depending on what determines which group a client should be my example splitting in
dhcp-range
may be either sufficient or completely inappropriate.Caveat: Reconfiguring clients into different groups can only be done in accordance with DHCP lease times - which is less flexible than dns TTL.