DNS: períodos finais

23

Quando edito meus registros de dns de vinculação, preciso adicionar um período final para que ele funcione. Qual é o sentido disso?

Por que quando eu uso o everydns.net, eles não exigem que eu adicione um período final?

Isso é um truque de implementação?

    
por Unknown 02.06.2009 / 21:49

8 respostas

19

O próprio DNS tem uma zona de raiz. esta zona chamou literalmente ".". A ligação requer que você qualifique totalmente um nome DNS (isso inclui a zona. Ou raiz). Outras interfaces de usuário simplificam isso assumindo a zona raiz para você.

Dentro do Bind, você pode definir uma variável ORIGIN que será automaticamente anexada se você não especificar um FQDN (Nome de Domínio Totalmente Qualificado, incluindo o trailing.). Alnitak tem um exemplo excelente da sintaxe e vários usos disso.

    
por 02.06.2009 / 21:55
15

O trailing '.' torna o nome em um "Nome de domínio totalmente qualificado", ou seja, um nome de domínio absoluto.

Em arquivos padrão "formato de arquivo mestre", se você não adicionar o '. então o nome é assumido como relativo ao $ORIGIN do arquivo de zona atual (que é especificado no arquivo de zona conforme mostrado abaixo ou obtido da instrução zone em named.conf caso contrário).

ou seja,

$ORIGIN example.com.
mail    IN A      192.168.1.1
mail2   IN A      192.168.1.2
server  IN A      192.168.1.3
@       IN MX 10  mail                   ; not FQDN - example.com. appended
        IN MX 20  mail2.example.com.     ; FQDN 
        IN MX 30  mail.example.net.      ; FQDN in another domain
        IN MX 40  mail2.example.net      ; ERROR - not FQDN - example.com appended
www     IN CNAME  server                 ; not FQDN - example.com. appended
    
por 03.06.2009 / 08:54
8

O . faz com que o nome seja relativo à raiz, sem isso, o nome será relativo à zona atual. O formato de zona padrão é definido em rfc1035 e rfc1034 .

How come when I use everydns.net, they do not require me to add a trailing period?

Is this an implementation quirk?

Sim, parece que o easydns.net está fazendo isso um pouco peculiar.

    
por 02.06.2009 / 21:54
6

Se você não inserir o "" final. " então o servidor adicionará o valor de $ ORIGIN ao final do registro. Isso pode ser um atalho muito útil e economizar muita digitação se usado bem.

Infelizmente, também é fácil esquecer o "." o que pode resultar em dificuldades para diagnosticar problemas.

Tecnicamente, o "." no final de um registro, como www.serverfault.com. indica o separador entre o "com" gTLD e a "" zona raiz.

    
por 02.06.2009 / 21:55
3

O ponto final informa ao servidor DNS que esse é um nome totalmente qualificado. O ponto é a raiz da hierarquia do DNS. Se você não usar o ponto, o servidor DNS assumirá que é um registro na zona atual e o anexará para você. Por exemplo, se você tiver um CNAME em exmaple.com que aponte para host.example.org, quando você fizer uma consulta, você receberá host.example.org.example.com, que provavelmente não é o que você queria.

O motivo pelo qual você não precisou fazer com o everydns.net é porque eles provavelmente escreveram a interface do usuário para que você não tenha que se preocupar com esses detalhes técnicos.

    
por 02.06.2009 / 21:56
2

Em um fqdn, os pontos são os identificadores reais. "com" e "edu", "hp" e "stanford" são apenas delimitadores arbitrários. Os pontos são identificados unicamente pelo seu giro.

    
por 02.06.2009 / 21:57
2

Os projetistas originais desejavam poder especificar hosts em arquivos de zona com um mínimo de digitação, portanto, o padrão é anexar a zona a cada entrada, a menos que seja totalmente qualificado com um ponto à direita. Essa é uma peculiaridade de implementação que o everydns.net percebe leva a erros de novatos e confusão; portanto eles eliminaram isso.

    
por 02.06.2009 / 21:58
1

A resposta curta .. Bem, honestamente já foi documentado aqui. :) Basicamente e de forma sucinta, "Diz isso no RFC, companheiro."

Dê uma olhada neste link

"Não, esse ponto no nome de domínio da URL não é um erro."

    
por 02.06.2009 / 22:09