I am using dnssec-trigger-0.17-7.fc36.x86_64 and unbound-1.17.1-1.fc36.x86_64 on Fedora 36. But I cannot reproduce the behaviour, even if I flush cache by "unbound-control flush_zone ." It is returning consistently CNAME with NOERROR. Does it happen only when the unbound does not have forwarders and is iterating itself? I keep getting CNAME with NOERROR.

$ kdig cnametest.bleve.fi. CNAME
;; ->>HEADER<<- opcode: QUERY; status: NOERROR; id: 33690
;; Flags: qr rd ra ad; QUERY: 1; ANSWER: 1; AUTHORITY: 0; ADDITIONAL: 0

;; QUESTION SECTION:
;; cnametest.bleve.fi.         IN    CNAME

;; ANSWER SECTION:
cnametest.bleve.fi.     7200    IN    CNAME    nxdomain.foobar.fi.

;; Received 66 B
;; Time 2023-03-31 12:58:20 CEST
;; From 127.0.0.1@53(UDP) in 0.5 ms

Does it happen only after unbound is fresh started? Are there steps to reproduce on the running instance?

On 3/31/23 10:17, Tuomo Soini via Unbound-users wrote:
On Thu, 30 Mar 2023 23:28:37 +0200
Christoph via Unbound-users <unbound-users@lists.nlnetlabs.nl> wrote:

Hi Petr,

thanks for your reply and your questions.

Petr Menšík via Unbound-users:
Correct me if I understand it not correctly. whether you query CNAME
or A record should not make a difference in NXDOMAIN status. But in
any case the answer is not there. How does it change ACME process
when there is NXDOMAIN and not just no-answer NOERROR response?
There really seem to be issue in unbound when querying cname.

I created test record, pointing at another domain, non-exiting name.

kdig cnametest.bleve.fi. CNAME

;; ->>HEADER<<- opcode: QUERY; status: NXDOMAIN; id: 46683
;; Flags: qr rd ra ad; QUERY: 1; ANSWER: 0; AUTHORITY: 1; ADDITIONAL: 0

;; QUESTION SECTION:
;; cnametest.bleve.fi.          IN      CNAME

;; AUTHORITY SECTION:
bleve.fi.               3462    IN      SOA
foo-ns.foobar.fi. hostmaster.foobar.fi. 1679142493 28800 7200 864000
28800

;; Received 97 B
;; Time 2023-03-31 11:13:51 EEST
;; From 2001:998:2e::1@53(UDP) in 0.8 ms


If I query from authoritative server directly, I get correct answer.

It looks like unbound errorously try to follow cname to non-existing
record even when cname itself is queried. CNAME should only be followed
if something != cname is queried.

--
Petr Menšík
Software Engineer, RHEL
Red Hat, https://www.redhat.com/
PGP: DFCF908DB7C87E8E529925BC4931CA5B6C9FC5CB

Reply via email to