Como desativar o cache de DNS ou substituir o TTL por um determinado nome de host?

5

Configurei meu próprio serviço de DNS dinâmico usando um script para atualizar automaticamente o registro de um subdomínio de um dos meus domínios.
O host com o endereço IP dinâmico é executado, entre outras coisas, um nó Munin que estou lendo remotamente em intervalos de cinco minutos. Infelizmente, meu registrador de nome de domínio não permite valores de TTL inferiores a 3600, portanto, o IP do nó remoto de Munin é armazenado em cache por uma hora e as conexões falham por uma hora, sempre que o IP dinâmico do nó muda.

Existe uma maneira de substituir o TTL informado pelo servidor DNS do meu registrador, para que o servidor resolva novamente o IP toda vez que ele se conectar ao nó do Munin?

    
por n.st 03.01.2014 / 19:56

3 respostas

5

Se o serviço DNS dinâmico que você está usando apenas permitir TTLs de 3600, sua única opção é alternar os provedores. Não há realmente nenhuma maneira de controlar o TTL a menos que o provedor de serviços DDNS lhe dê uma opção para controlá-lo.

Verificando o TTL

Por acaso, para verificar o que o TTL é para uma determinada entrada, você pode usar dig com as seguintes opções.

Exemplo

$ dig +nocmd www.google.com +noall +answer | tail -1
www.google.com.     137 IN  A   74.125.225.82

$ dig +nocmd www.google.com +noall +answer | tail -1
www.google.com.     135 IN  A   74.125.225.115

O TTL dessa resposta é de 137 segundos. Esperar ~ 2 segundos e executá-lo novamente mostra 135 segundos. O TTL significa quanto tempo resta até que a entrada do DNS expire, e precisamos consultar o servidor autoritativo para o domínio.

Verificando o máximo de TTLs

Se fôssemos consultar o servidor autoritativo.

$ dig @ns1.google.com +nocmd www.google.com +noall +answer | tail -1
www.google.com.     300 IN  A   74.125.225.210

O TTL real dessa entrada é de 300 segundos.

NOTA: O servidor autoritativo é também conhecido como SOA - Start of Authority .

Informações SOA

Você pode consultar o domínio ainda para obter informações de SOA.

$ dig +nocmd dyndns.org any +multiline +noall +answer
dyndns.org.     596 IN SOA ns1.dyndns.org. hostmaster.dyndns.org. (
                863998266  ; serial
                600        ; refresh (10 minutes)
                300        ; retry (5 minutes)
                604800     ; expire (1 week)
                600        ; minimum (10 minutes)
                )
dyndns.org.     85904 IN NS ns5.dyndns.org.
dyndns.org.     85904 IN NS ns1.dyndns.org.
dyndns.org.     85904 IN NS ns2.dyndns.org.
dyndns.org.     85904 IN NS ns3.dyndns.org.
dyndns.org.     85904 IN NS ns4.dyndns.org.
dyndns.org.     12268 IN MX 10 mail.dyndns.com.
dyndns.org.     12268 IN MX 20 mx2.mailhop.org.
dyndns.org.     179 IN A 204.13.248.116

Alterando TTLs

A única maneira de alterar o TTL de uma entrada de DNS (fora de algum tipo de API que seu registrador possa fornecer) é através do servidor.

Exemplo

Dentro de Ligação você pode configurar seu arquivo de zona da seguinte forma:

;Zone file for liquidweb.com
$TTL 14400
@      86400    IN      SOA     ns.liquidweb.com. admin.liquidweb.com. (
2009022402      ; serial, todays date+todays
86400           ; refresh, seconds
7200            ; retry, seconds
3600000         ; expire, seconds
86400 )         ; minimum, seconds
liquidweb.com. 86400 IN NS   ns.liquidweb.com.
liquidweb.com. 86400 IN NS   ns1.liquidweb.com.
liquidweb.com.  IN A   209.59.139.21
localhost  IN A   127.0.0.1
liquidweb.com.  IN MX 0   liquidweb.com.
mail  IN CNAME  liquidweb.com.
www  IN CNAME   liquidweb.com.
ftp  IN A   209.59.139.21
cpanel  IN A   209.59.139.21
webmail  IN A   209.59.139.21

A macro acima, $ TTL, configuraria o TTL para 14400 segundos para qualquer entrada, a menos que seja substituída por entradas específicas.

Referências

por 03.01.2014 / 21:11
1

Você pode criar seu host munin como CNAME para um domínio externo, para que somente o nome munin use a dinâmica Host DNS.

munin.yourdomain.com. CNAME somedynamic.dyndns.org.

Portanto, as pesquisas vão para somedynamic.dyndns.org , que tem um TTL dinâmico mais baixo, o restante de yourdomain.com permanece no seu DNS.

    
por 04.01.2014 / 00:17
0

Se não for possível atualizar o DNS, você pode usar um DNS diferente como o DynDNS.org e usar um script de atualização padrão.

    
por 03.01.2014 / 20:20