Quoted from RFC 7816, section 3:
A problem can also appear when a name server does not react properly
to ENTs (Empty Non-Terminals). If ent.example.com has no resource
records but foobar.ent.example.com does, then ent.example.com is an
ENT. Whatever the QTYPE, a query for ent.example.com must return
NODATA (NOERROR / ANSWER: 0). However, some name servers incorrectly
return NXDOMAIN for ENTs. If a resolver queries only
foobar.ent.example.com, everything will be OK, but if it implements
QNAME minimisation, it may query ent.example.com and get an NXDOMAIN.
See also Section 3 of [DNS-Res-Improve] for the other bad
consequences of this bad behaviour.
It seems like rbldnsd shows exactly the same behaviour:
user@work:~$ host -t A 2.0.0.127.zen.spamhaus.org
2.0.0.127.zen.spamhaus.org has address 127.0.0.4
2.0.0.127.zen.spamhaus.org has address 127.0.0.2
2.0.0.127.zen.spamhaus.org has address 127.0.0.10
user@work:~$ host -t A 127.zen.spamhaus.org
Host 127.zen.spamhaus.org not found: 3(NXDOMAIN)
As mentioned above, the latter one must return NODATA instead of NXDOMAIN as some data below 127.zen.spamhaus.org is listed in the RBL indeed. The current behaviour was found to render applications behind resolvers using strict QNAME minimization (where no fallbacks using the FQDN queried by the client in the first place happen) unusable as the resolver stops after having received NXDOMAIN for the first ENT.
Worse, as RFC 5782, section 5, does not specify testing entries for URIBLs below the first hierarchy (such as dbltest.com.dbl.spamhaus.org), it is impossible to determine whether a URIBL is actually usable or not as test.dbl.spamhaus.org will always return NOERROR, while more realistic queries like example.com.dbl.spamhaus.org will silently fail as com.dbl.spamhaus.org returns NXDOMAIN instead of NODATA.
As far as I am concerned, RFC 7816 requires rbldnsd to return NODATA for Empty Non-Terminals. In my humble opinion, its' current behaviour is RFC-ignorant.
Quoted from RFC 7816, section 3:
It seems like
rbldnsdshows exactly the same behaviour:As mentioned above, the latter one must return
NODATAinstead ofNXDOMAINas some data below127.zen.spamhaus.orgis listed in the RBL indeed. The current behaviour was found to render applications behind resolvers using strict QNAME minimization (where no fallbacks using the FQDN queried by the client in the first place happen) unusable as the resolver stops after having receivedNXDOMAINfor the first ENT.Worse, as RFC 5782, section 5, does not specify testing entries for URIBLs below the first hierarchy (such as
dbltest.com.dbl.spamhaus.org), it is impossible to determine whether a URIBL is actually usable or not astest.dbl.spamhaus.orgwill always returnNOERROR, while more realistic queries likeexample.com.dbl.spamhaus.orgwill silently fail ascom.dbl.spamhaus.orgreturnsNXDOMAINinstead ofNODATA.As far as I am concerned, RFC 7816 requires
rbldnsdto returnNODATAfor Empty Non-Terminals. In my humble opinion, its' current behaviour is RFC-ignorant.