Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I'm using NSD3, and I'm unsuccessful in trying to have capital letters in my domain names.

How is it possible to have uppercase letters in your DNS?

In various OSS documentation, it's very common to see Berkeley.EDU capitalised, and indeed their DNS is still capitalised to this day:

% traceroute www.berkeley.edu
…
15  t1-3.inr-201-sut.Berkeley.EDU (128.32.0.65)  168.794 ms  169.906 ms  168.714 ms
16  t5-5.inr-210-srb.Berkeley.EDU (128.32.255.37)  168.850 ms  168.912 ms t5-4.inr-210-srb.Berkeley.EDU (128.32.255.125)  168.886 ms

And in forward DNS, they, too, have various domains capitalised:

% dig @ns.cs.berkeley.edu. cs.berkeley.edu.
…
;; AUTHORITY SECTION:
cs.berkeley.edu.        86400   IN      NS      cgl.UCSF.edu.
cs.berkeley.edu.        86400   IN      NS      adns1.berkeley.edu.
cs.berkeley.edu.        86400   IN      NS      ns.cs.berkeley.edu.
cs.berkeley.edu.        86400   IN      NS      vangogh.cs.berkeley.edu.
cs.berkeley.edu.        86400   IN      NS      adns2.berkeley.edu.
cs.berkeley.edu.        86400   IN      NS      ns.EECS.berkeley.edu.
…
share|improve this question
    
Since DNS records are usually not case-sensitive, why are you trying to do this? Why does it matter? –  Moshe Katz Feb 7 '13 at 21:53

3 Answers 3

up vote 10 down vote accepted

As noted in (an obscure place in) NSD's documentation,

NSD normalizes names to lower case.

If you want your names to show up with mixed-case, preserving whatever you put in the zone file, you will need to use a different nameserver, such as BIND. It is, after all, the Berkeley Internet Name Daemon...

While it may be possible to hack the NSD source code to make it preserve case, you should be wary of doing this, as it may not be possible to predict what bugs or unintended consequences such a change might introduce, and your nameserver is one of the last places you want mysterious bugs showing up.

share|improve this answer
2  
Not to mention the delay it adds in smoothly pushing out security updates, particularly if the patches break between revisions. On a less technical note, this is not something I'd want to have to explain to a new manager as my justification for why the company infrastructure is running a set of custom patches. –  Andrew B Feb 4 '13 at 8:49

It would appear that your DNS3 server is mangling (normalising) the records for which is it authoritative. Have a look at the source code http://www.nlnetlabs.nl/svn/nsd/trunk/dname.c in particular dname_make and DNAME_NORMALIZE which is just tolower. From http://www.nlnetlabs.nl/svn/nsd/trunk/dname.h

#if defined(NAMEDB_UPPERCASE) || defined(USE_NAMEDB_UPPERCASE)
#define DNAME_NORMALIZE        toupper
#else
#define DNAME_NORMALIZE        tolower
#endif

It should be fairly easy to pull the SVN repository make a change to dname.h recompile and then get what you want. Of course in doing this your on your own for support.


As Michael Hampton points out this function

const dname_type *
dname_make_from_packet(region_type *region, buffer_type *packet,
               int allow_pointers, int normalize)
{
    uint8_t buf[MAXDOMAINLEN + 1];
    if(!dname_make_wire_from_packet(buf, packet, allow_pointers))
        return 0;
    return dname_make(region, buf, normalize);
}

is called with a hard coded parameter or normalize so you'd need to track it down and fix that too.

share|improve this answer
3  
You'll have to hack a different part of the code if you want to do this. There is a normalize parameter in the dname_make_from_packet function called from packet.c which is hard-coded to 1. But then you get into the question of whether sysadmins should be mucking around in nameserver internals at all... –  Michael Hampton Feb 4 '13 at 8:32

They just set that up in their reverse zone. When you traceroute.. it hits the IP then your resolver is asking what the reverse is for the ip.. it would be something like

$ORIGIN 0.32.128.in-addr.arpa.
65     IN      PTR     t1-3.inr-201-sut.Berkeley.EDU.
share|improve this answer
    
I don't think that addresses the question at all. I've used proper capitalisation for my names everywhere where they were mentioned in nsd3, but they all still always appear in lowercase. –  cnst Feb 4 '13 at 7:58
2  
It answers it. Domain names do not care about capitalization - DD is identical to dd. In many case what you see is either the reverse, or your front end just removes capitals - it is presentation only. –  TomTom Feb 4 '13 at 8:03
    
My question is specifically on how to have my master not remove any such capitals. –  cnst Feb 4 '13 at 8:07
2  
Per RFC, comparisons of DNS records must be case insensitive. Nothing is said about whether or not the case has to be preserved. It is not considered significant from a data standpoint, and whether or not the case gets discarded is implementation specific. –  Andrew B Feb 4 '13 at 8:12
    
I think the server return what's in the record. But as for query, it is case-insensitive. –  Shane Hsu Feb 4 '13 at 8:13

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.