Don't automatically include all subdomains in DNSMasq address

It is possible to configure DNSMasq such that it returns a fixed IP address only for a request for that exact domain, and not for its subdomains? That is, I want it to return a fixed IP when resolving example.com, but not a.example.com, b.example.com, etc.


host-record=example.com,1.2.3.4

The dnsmasq man page says:

--host-record=<name>[,<name>....][<IPv4-address>],[<IPv6-address>]
Add A, AAAA and PTR records to the DNS. This adds one or more names to the DNS with associated IPv4 (A) and IPv6 (AAAA) records. A name may appear in more than one host-record and therefore be assigned more than one address. Only the first address creates a PTR record linking the address to the name. This is the same rule as is used reading hosts-files. host-record options are considered to be read before host-files, so a name appearing there inhibits PTR-record creation if it appears in hosts-file also. Unlike hosts-files, names are not expanded, even when expand-hosts is in effect. Short and long names may appear in the same host-record, eg. --host-record=laptop,laptop.thekelleys.org,192.168.0.1,1234::100


How is your configuration file? dnsmasq will resolve only subdomains if your entry starts with dot .

Example: address=/.subdomain.pc01.domain.com/192.168.1.2

If you have it this way:

address=/subdomain.pc01.domain.com/192.168.1.2

it will also resolve asd.subdomain.pc01.domain.com:

$ host asd.subdomain.pc01.domain.com
asd.subdomain.pc01.domain.com has address 192.168.1.2

From the man page of dnsmasq (for --server, but also applies to --address):

More specific domains take precendence over less specific domains, so: --server=/google.com/1.2.3.4 --server=/www.google.com/2.3.4.5 will send queries for *.google.com to 1.2.3.4, except *www.google.com, which will go to 2.3.4.5

So the only solution I can see is to instead add individual records for each of the subdomains necessary. Obviously not ideal, but is the best dnsmasq can provide at this time (that I can find).


Just add an entry for that specific domain in the hosts file on the server running DNSMasq