Rick van Rein
2015-Sep-16 07:08 UTC
[nsd-users] <domain-name> from PTR converted to lowercase
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.