[Dnsmasq-discuss] dnsmasq to return NODATA for an A query

Simon Kelley simon at thekelleys.org.uk
Wed Mar 17 17:12:35 UTC 2021


On 14/03/2021 14:35, Aaron Jones wrote:
> On 07/03/2021 08:57, Geert Stappers via Dnsmasq-discuss wrote:
>> --host-record=foo.example.org,NODATA,fd00::1
>>
>> Says what is wanted.
>>
>> In `hosts` file
>>
>>   fd00::1  foo.example.org
>>   NO4DATA  foo.example.org
>>
>> and allow
>>
>>   192.168.0.1  foo.example.org
>>   NO6DATA      foo.example.org
>>
>> plus also
>>
>>   NO4DATA   foo.example.org
>>   NO6DATA   foo.example.org
>>
>> to express  "don't go to upstream resolvers for foo.example.org,
>> return NODATA to the request of the DNS client"
>>
>> That "hosts file syntax" applied to `host record`
>>   --host-record=foo.example.org,NODATA,fd00::1
>>   --host-record=foo.example.org,192.168.0.1,NODATA
>>   --host-record=foo.example.org,NODATA,NODATA
> 
> Yeah, that would suit my purposes just fine, and I imagine would become
> very useful for others in the future too. :)
> 
> Regards,
> Aaron Jones

The current arrangement (forward queries for a name even if we have
records for other types associated with that name) is deliberate.
Dnsmasq doesn't implement zone-based DNS (in this case, anyway) the
locally configured records are just an overlay modifying the global DNS.

It's worth noting that if you configure, say an AAAA record but not an A
record for example.com, and an A query gets forwarded, and the reply is
NXDOMAIN then dnsmasq will re-write that as a NODATA response, based on
 the existence of the local AAAA record (or TXT, PTR or the handful of
other supported record types.

An explicit NODATA overlay facility does seem sensible, but the syntax
is a bit problematic, since there can be more than one name, so

foo.example.org,NODATA,fd00::1

has an existing meaning (it creates AAAA records of fd00::1 for
foo.example.org and nodata

Strictly, domain names can contain any characters (domain names are not
the same as host names) but grabbing a string like "#" out of the domain
name space is unlikely for inconvenience anyone, so we could have


--host-record=foo.example.org,#,fd00::1


Comments?


Simon.





More information about the Dnsmasq-discuss mailing list