Entenda o TTL no registro SOA da zona DNS

2

Digamos que eu crie um arquivo de zona reversa para a rede 192.0.2.0/24 em meu servidor DNS e meu servidor DNS seja o autoritativo para a zona reversa 2.0.192.in-addr.arpa. Neste arquivo de zona reversa eu crio o registro Start of Authority com os seguintes parâmetros:

$ dig @localhost -t SOA 2.0.192.in-addr.arpa. +noall +answer
2.0.192.in-addr.arpa. 604800 IN      SOA     primary-DNS-server secondary-DNS-server 2015010600 28800 7200 1209600 86400
$ 

Eu estou correto que o TTL do DNS para esta zona reversa é 86400 segundos? E isso significa que, se o servidor de nomes recursivo (em cache) solicitar um registro PTR dessa zona, esse servidor de nomes recursivo armazenará em cache o resultado por 86400 segundos?

    
por Martin 09.01.2015 / 09:51

2 respostas

7

Em 1997, isso teria sido uma interpretação correta do registro SOA de vários. :) As coisas eram um pouco mais ambíguas na época.

RFC 2308 reclassificou o último campo do registro SOA como o intervalo de armazenamento em cache negativo , também conhecido como o campo NCACHE . RFC2308 §4 é o mais aplicável aqui. Ele não apenas redefine isso como o campo NCACHE , mas também explica por que codificar o TTL padrão no registro SOA teria sido equivocado, para começar. (a ênfase para este último está em negrito)

4 - SOA Minimum Field

The SOA minimum field has been overloaded in the past to have three different meanings, the minimum TTL value of all RRs in a zone, the default TTL of RRs which did not contain a TTL value and the TTL of negative responses.

Despite being the original defined meaning, the first of these, the minimum TTL value of all RRs in a zone, has never in practice been used and is hereby deprecated.

The second, the default TTL of RRs which contain no explicit TTL in the master zone file, is relevant only at the primary server. After a zone transfer all RRs have explicit TTLs and it is impossible to determine whether the TTL for a record was explicitly set or derived from the default after a zone transfer. Where a server does not require RRs to include the TTL value explicitly, it should provide a mechanism, not being the value of the MINIMUM field of the SOA record, from which the missing TTL values are obtained. How this is done is implementation dependent.

The Master File format [RFC 1035 Section 5] is extended to include the following directive:

                       $TTL <TTL> [comment]

All resource records appearing after the directive, and which do not explicitly include a TTL value, have their TTL set to the TTL given in the $TTL directive. SIG records without a explicit TTL get their TTL from the "original TTL" of the SIG record [RFC 2065 Section 4.5].

The remaining of the current meanings, of being the TTL to be used for negative responses, is the new defined meaning of the SOA minimum field.

Quebrando isso:

  • O último campo do registro SOA ( NCACHE ) especifica por quanto tempo os servidores de nomes remotos devem armazenar em cache uma resposta negativa se uma consulta resultar em NXDOMAIN.
  • O TTL padrão é definido por um padrão na configuração do software ou algo equivalente à diretiva $TTL dos arquivos de zona baseados em texto.
  • Como conseqüência dessa implementação, não há como consultar um servidor de nomes remoto por meio do protocolo DNS para determinar o TTL padrão de uma zona. $TTL e família não são registros, portanto você não pode consultá-los e eles não sobreviverão a uma transferência de zona. (em vez disso, todos os TTLs ausentes serão substituídos por esse valor no momento da transferência de zona)

Como Andy diz, o TTL padrão é discutível se os registros individuais especificarem seus próprios TTLs.

    
por 09.01.2015 / 13:16
1

Quase. O próprio registro soa tem um TTL de 86400 segundos e dependendo do software do lado do servidor que será o padrão ttl para essa zona.

Registros individuais dentro dessa zona - como PTR ou NS - podem ter seu TTL substituído. Acredito que uma consulta recursiva para qualquer registro DNS individual retornará com seu próprio TTL, embora eu diga isso com base na observação e não na documentação referenciada.

    
por 09.01.2015 / 10:40