Como posso ter letras maiúsculas nos meus domínios (semelhante a Berkeley.EDU)

7

Estou usando o NSD3 e não tive sucesso em tentar usar letras maiúsculas em meus nomes de domínio.

Como é possível ter letras maiúsculas no seu DNS?

Em várias documentações do OSS, é muito comum ver Berkeley.EDU em maiúsculas e, na verdade, seu DNS ainda está em maiúsculas até os dias de hoje:

% 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

E no DNS de encaminhamento, eles também têm vários domínios em maiúsculas:

% 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.
…
    
por cnst 04.02.2013 / 08:50

3 respostas

13

Como mencionado em (um local obscuro) na documentação da NSD ,

NSD normalizes names to lower case.

Se você quiser que seus nomes apareçam com letras maiúsculas e minúsculas, preservando o que quer que você coloque no arquivo de zona, você precisará usar um servidor de nomes diferente, como o BIND. É, afinal, o daemon de nome da Internet Berkeley ...

Embora seja possível hackear o código-fonte da NSD para preservá-lo, você deve ter cuidado ao fazer isso, pois pode não ser possível prever quais bugs ou conseqüências não intencionais essa mudança pode introduzir e seu servidor de nomes é um dos últimos lugares em que você quer que bugs misteriosos apareçam.

    
por 04.02.2013 / 09:27
7

Parece que o seu servidor DNS3 está mutilando (normalizando) os registros para os quais ele é autoritativo. Dê uma olhada no código fonte link em particular dname_make e DNAME_NORMALIZE que é apenas tolower. De link

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

Deve ser bastante fácil puxar o repositório SVN para alterar dname.h recompilar e depois obter o que você deseja. Claro que, ao fazer isso, você está sozinho para apoiar.

Como Michael Hampton aponta essa função

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);
}

é chamado com um parâmetro codificado ou normalize , então você precisa rastreá-lo e corrigi-lo também.

    
por 04.02.2013 / 09:28
3

Eles apenas configuram isso em sua zona reversa. Quando você traceroute .. ele atinge o IP então seu resolvedor está perguntando qual é o reverso para o ip .. seria algo como

$ORIGIN 0.32.128.in-addr.arpa.
65     IN      PTR     t1-3.inr-201-sut.Berkeley.EDU.
    
por 04.02.2013 / 08:54