Substituir registros TTL de configuração de TTL externo

3

Eu tenho uma versão de ligação como mostrado abaixo

9.8.2rc1-RedHat-9.8.2-0.30.rc1.el6.1.2

Eu tenho dois remetentes específicos de domínio, ou seja: test.example.com e internal-test.example.cloud.com

O Cliente DNS ou Resolvedor local que precisa resolver o certian cname no DOmain "test.example.com" será encaminhado pelo meu servidor DNS local para os encaminhadores configurados e suas respostas serão armazenadas em cache. Tudo funciona muito bem, sem problemas. No entanto, minha pergunta é a da consulta Fordwared, o servidor DNS externo está respondendo com um valor TTL de 60. Portanto, meu servidor DNS interno está em cache e responde apenas por 60 segundos. Existe algum meio para substituir o TTL do meu servidor DNS interno? para esse domínio específico.

E o /etc/named.conf parece com o seguinte

options {
        directory "/var/named";
        allow-transfer{"none";};
        allow-query {localhost; any;};
        dump-file "/var/log/named_dump.db";
        max-cache-ttl 300;
};

zone "test.example.com" IN {
        type forward;
        forwarders {11.1.2.17; 11.1.3.59;};
        forward only;
};

zone "internal-test.example.cloud.com" IN {
        type forward;
        forwarders {11.1.2.17; 11.1.3.59;};
        forward only;
};

zone "domain.local" in {
    type master;
    file "domain.local";
};



[root@dchockal ~]# dig test.example.com
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.30.rc1.el6.1.2 <<>> test.example.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 31197
;; flags: qr rd ra; QUERY: 1, ANSWER: 5, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;test.example.com.   IN      A

;; ANSWER SECTION:
test.example.com. 60 IN      CNAME   internal-test.example.cloud.com.
internal-test.example.cloud.com. 60 IN A 121.1.2.22
internal-test.example.cloud.com. 60 IN A 121.1.2.23
internal-test.example.cloud.com. 60 IN A 121.1.4.24
internal-test.example.cloud.com. 60 IN A 121.1.4.25

;; Query time: 133 msec
;; SERVER: 11.4.152.28#53(11.4.152.28)
;; WHEN: Thu Dec 15 15:31:22 2016
;; MSG SIZE  rcvd: 175
    
por Duraivelanc Chockalingam 15.12.2016 / 16:38

2 respostas

2

Eu não acho que BIND tem essa funcionalidade - só diminui em TTL ( cache-max-ttl ), não aumenta ( cache-min-ttl não parece trabalhar no meu BIND, mas você poderia dar um giro e ver se ele faz para a sua versão). Mas poderíamos criar um domínio autoritário próprio. Depois disso, poderíamos criar um registro CNAME nesse domínio para o domínio externo.

test.mydomain.com CNAME test.example.com.

Em seguida, a consulta para test.mydomain.com resolve o endereço IP de test.example.com e o TTL pode ser configurado conforme desejado.

Teoricamente, poderíamos reescrever uma zona que o BIND armazena em cache e depois criá-la como um arquivo de zona local, definir o TTL e reiniciar o BIND; mas é horrível.

O software dnsmasq tem uma opção, --min-cache-ttl=<time> , em que time é menor ou igual a 3600 segundos. O manual tem um aviso.

--min-cache-ttl=<time>

Extend short TTL values to the time given when caching them. Note that
artificially extending TTL values is in general a bad idea, do not do it
unless you have a good reason, and understand what you are doing. Dnsmasq
limits the value of this option to one hour, unless recompiled.

Sua pergunta é como se você soubesse o que está fazendo. Não consolidado tem o recurso também.

cache-min-ttl: <seconds>

Time to live minimum for RRsets and messages in the cache. Default is 0.
If the minimum kicks in, the data is cached for longer than the domain owner
intended, and thus less queries are made to look up the data. Zero makes sure the
data in the cache is as the domain owner intended, higher values, especially more
than an hour or so, can lead to trouble as the data in the cache does not match
up with the actual data any more.

Talvez substitua o BIND por Unbound ou dnsmasq, ou use um deles como encaminhador para o BIND.

    
por 15.12.2016 / 17:28
2

O BIND não pode fazer isso e não é visto como uma boa prática. Mas talvez você possa atualizar para o BIND 9.10.4? Nesse caso, você pode usar a prefetch -option. Isso forçaria o BIND a renovar os dados do cache em domínios usados com frequência pouco antes de seu TTL expirar (provavelmente pode ser usado para zonas específicas, mas não posso testá-lo, pois essa versão do BIND ainda não está disponível no Raspbian). Mais sobre a opção pode ser encontrada aqui:

link

Por exemplo,

options {
  ...
  prefetch 2 9;
};

forçaria uma atualização de cache em qualquer domínio que esteja atualmente em cache, consultado nos últimos 2 segundos de seu TTL e geralmente tem um TTL de mais de 9 segundos.

A propósito: Se você atualizar, certifique-se de que é certo para o BIND 9.10.4. O prefetch -mechanism foi introduzido em 9.10, mas houve um bug feio que foi corrigido somente a partir de 9.10.4:

link

    
por 16.12.2016 / 19:47

Tags