[nsd-users] <domain-name> from PTR converted to lowercase

Rick van Rein rick at openfortress.nl
Wed Sep 16 07:08:09 UTC 2015


Hello,

I loaded a number of PTR records into NSD 3.2.10, which were then mapped
to lowercase before they were output.  From the RFC's below, I had not
expected that.  May this be due to the presence of RRSIG over the PTR?

The testdata was:

_kerberos.lowercase.ptrdemo.vanrein.org.    3600    IN    PTR   
lowercase.vanrein.org.
_kerberos.mixedcase.ptrdemo.vanrein.org.    3600    IN    PTR   
MiXeDcAsE.VaNrEiN.OrG.
_kerberos.uppercase.ptrdemo.vanrein.org.    3600    IN    PTR   
UPPERCASE.VANREIN.ORG.

FWIW, I noticed that ods-signer also maps to lowercase, but I manually
edited that and reloaded it into NSD, with the same result.


Thanks,
 -Rick

Section 4.1 of RFC 4343:

No "case conversion" or "case folding" is done
during such output operations, thus "preserving" case.  However, to
optimize output, indirect labels may be used to point to names
elsewhere in the DNS answer.  In determining whether the name to be
pointed to (for example, the QNAME) is the "same" as the remainder of
the name being optimized, the case insensitive comparison specified
above is done.  Thus, such optimization may easily destroy the output
preservation of case.

Section 3.3 of RFC 1035:

The following RR definitions are expected to occur, at least
potentially, in all classes.  In particular, NS, SOA, CNAME, and PTR
will be used in all classes, and have the same format in all classes.
Because their RDATA format is known, all domain names in the RDATA
section of these RRs may be compressed.

<domain-name> is a domain name represented as a series of labels, and
terminated by a label with zero length.  <character-string> is a single
length octet followed by that number of characters.  <character-string>
is treated as binary information, and can be up to 256 characters in
length (including the length octet).

[...]

3.3.12. PTR RDATA format

    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
    /                   PTRDNAME                    /
    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

where:

PTRDNAME        A <domain-name> which points to some location in the
                domain name space.

 



More information about the nsd-users mailing list