I have a CNAME
set up in dnsmasq as
cname=ch1-lampe-bureau.swtk.info,switch-3
It is resolved correctly (switch-3
is a device which gets its IP via DHCP from dnsmasq):
root@rpi1 ~# host switch-3
switch-3 has address 10.200.0.123
root@rpi1 ~# host ch1-lampe-bureau.swtk.info
ch1-lampe-bureau.swtk.info is an alias for switch-3.
switch-3 has address 10.200.0.123
I then wanted to make dnsmasq authoritative for my domain by adding
auth-zone=swtk.info
auth-server=rpi1.swtk.info
auth-peer=192.168.0.13
Zone-transfer wise, it works: 192.168.0.13
can transfer the zone.
But the resolution of CNAME
s stopped. I can still resolve A
records (switch-3
above for instance), CNAME
s are not.
root@rpi1 ~# host switch-3
switch-3 has address 10.200.0.123
root@rpi1 ~# host ch1-lampe-bureau.swtk.info
Host ch1-lampe-bureau.swtk.info not found: 3(NXDOMAIN)
What is the relationship between dnsmasq being authoritative and its abilty to resolve its CNAME
s?
Note: this is an internal DNS, with no relationship with the swtk.info
domain registered externally.
Best Answer
This behavior seems to be highly
dnsmasq
-specific, it's really not obvious how to follow this from a DNS perspective.In my opinion it would be worthwhile considering setting up a "real" nameserver (at which point generally applicable understanding of DNS will be relevant, instead), but that will undoubtedly make for a less integrated setup.
I'm not a
dnsmasq
user myself, but it seems to me that the following section from the thednsmasq
manual explains its behavior and requirements in this scenario (emphasis added):Ie, based on the above section of their manual, my understanding is that your
cname=ch1-lampe-bureau.swtk.info,switch-3
meansch1-lampe-bureau.swtk.info. CNAME switch-3.swtk.info.
.Additionally, it appears that names registered from DHCP are only added with names inside the auth zone if the
auth-zone=...
also specifies a subnet matching their assigned IP address. (as per--auth-zone=<domain>[,<subnet>[/<prefix length>][,<subnet>[/<prefix length>].....][,exclude:<subnet>[/<prefix length>]].....]
)So currently
switch-3.swtk.info.
probably does not exist, but if you specify the appropriate subnet for your zone that name should appear, at which point the--cname
also should start working.