Resposta do encaminhador DNS sendo ignorada

1

Executamos bind em nossos servidores DNS internos.

Temos um grupo de sub-redes de alta disponibilidade na AWS que fornece o RDS. Para gerenciar o acesso em links internos, queremos que a instância do RDS resolva para seu IP privado - não para o IP público.

Como o IP muda de tempos em tempos, configurei um encaminhamento em nossos dns que resolverá o RDS em relação ao servidor DNS da Amazon e nos fornecerá o IP privado atual:

zone "coivvuccn9hs.eu-west-1.rds.amazonaws.com" IN {
   type forward;
   forward only;
   forwarders { 
       xxx.xxx.xxx.xxx; 
   };
};

Quando faço uma consulta de um dos servidores DNS internos contra o DNS da AWS: dig @ xxx.xxx.xxx.xxx server.coivvuccn9hs.eu-west-1.rds.amazonaws.com Eu recebo a resposta certa

No entanto, quando faço uma dig@localhost server.coivvuccn9hs.eu-west-1.rds.amazonaws.com Eu recebo o IP público, mesmo que um tcpdump mostre que o servidor consulta o servidor DNS da AWS e obtém uma resposta válida.

Meu entendimento é que um encaminhador terá precedência sobre uma resposta dos servidores raiz, então, por que recebo o IP público de volta, e não o IP privado?

Esta é a resposta que recebo:

dig @localhost server.coivvuccn9hs.eu-west-1.rds.amazonaws.com

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.23.rc1.el6_5.1 <<>> @localhost server.coivvuccn9hs.eu-west-1.rds.amazonaws.com
; (2 servers found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 5580
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 13, ADDITIONAL: 0

;; QUESTION SECTION:
;server.coivvuccn9hs.eu-west-1.rds.amazonaws.com. IN A

;; ANSWER SECTION:
server.coivvuccn9hs.eu-west-1.rds.amazonaws.com. 5  IN CNAME <somename>.eu-west-1.compute.amazonaws.com.
<somename>.eu-west-1.compute.amazonaws.com. 604800  IN A <public ip>

;; AUTHORITY SECTION:
eu-west-1.compute.amazonaws.com. 900 IN NS  u6.amazonaws.com.
eu-west-1.compute.amazonaws.com. 900 IN NS  pdns1.ultradns.net.
eu-west-1.compute.amazonaws.com. 900 IN NS  u2.amazonaws.com.
eu-west-1.compute.amazonaws.com. 900 IN NS  ns1.p31.dynect.net.
eu-west-1.compute.amazonaws.com. 900 IN NS  u4.amazonaws.com.
eu-west-1.compute.amazonaws.com. 900 IN NS  pdns3.ultradns.org.
eu-west-1.compute.amazonaws.com. 900 IN NS  ns4.p31.dynect.net.
eu-west-1.compute.amazonaws.com. 900 IN NS  u3.amazonaws.com.
eu-west-1.compute.amazonaws.com. 900 IN NS  pdns5.ultradns.info.
eu-west-1.compute.amazonaws.com. 900 IN NS  u1.amazonaws.com.
eu-west-1.compute.amazonaws.com. 900 IN NS  ns2.p31.dynect.net.
eu-west-1.compute.amazonaws.com. 900 IN NS  ns3.p31.dynect.net.
eu-west-1.compute.amazonaws.com. 900 IN NS  u5.amazonaws.com.

;; Query time: 489 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Thu Aug 24 15:13:53 2017
;; MSG SIZE  rcvd: 416
    
por Pierre Naude 24.08.2017 / 15:19

2 respostas

1

Observe que a resposta dig / nslookup foi de CNAME apontando para <somename>.eu-west-1.compute.amazonaws.com ( <somename> sendo omitido em sua postagem).

;; ANSWER SECTION:
server.coivvuccn9hs.eu-west-1.rds.amazonaws.com. 5  IN CNAME <somename>.eu-west-1.compute.amazonaws.com.

Isso significa que a pesquisa de server.coivvuccn9hs.eu-west-1.rds.amazonaws.com está realmente apontando para o <somename>.eu-west-1.compute.amazonaws.com hostname.

Como seu servidor de ligação possui apenas uma regra de encaminhamento em vigor para o rds.amazonaws.com , ele agora faz uma pesquisa direta padrão para a consulta compute.amazonaws.com , resultando assim em um ip público.

Portanto, a solução é adicionar uma segunda zona de redirecionamento para o endereço "real" após a resolução CNAME. Você deve então obter o IP privado retornado nesse caso.

    
por 12.09.2018 / 04:47
0

Cheira como um problema de validação do DNSSEC para mim. Você tem dnssec-validation yes; na seção main / view options ? Se sim, tente adicionar dnssec-must-be-secure domain.tld no; imediatamente depois.

HTH-RB

    
por 06.09.2017 / 01:10