O servidor DNS externo não pode resolver o nome de domínio externo ao usar IP público dentro da rede interna

O servidor DNS externo não pode resolver o nome de domínio externo ao usar IP público dentro da rede interna

Eu uso nslookuppara consultar de um computador dentro da rede interna. ele pode resolver com êxito o nome de domínio externo se eu usar o IP privado do meu servidor DNS.

>
Servidor www.ust.hk: 192.168.28.58
Endereço: 192.168.28.58#53

Resposta não oficial:
Nome: www.ust.hk
Endereço: 143.89.14.1

Porém, se eu usar o IP público do meu servidor DNS dentro da rede interna, não consigo resolver o nome de domínio externo.

$ nslookup
server wxyz
Servidor padrão: wxyz
Endereço wxyz#53
> www.ust.hk
Servidor: wxyz
Endereço: wxyz#53
o servidor não consegue encontrar www.ust.hk: RECUSADO

Se eu examinar o dns.log, ele afirma que o nome de domínio externo foi negado.

(www.ust.hk): consulta (cache) 'www.ust.hk/A/IN' negada

Não é razoável porque a recursão é permitida para redes internas. É normal que não seja possível resolver o domínio externo se o computador estiver localizado fora da rede interna.

Eu tenho o arquivo de configuração nomeado conforme abaixo:

acl "trusted" {
               192.168.0.0/16;
               localhosts;
               localnets;
};

options{
listen-on port {any;};
listen-on-v6 port 53 { none; };
allow-query { any; };
allow-recursion {trusted;};
allow-query-cache {trusted;};
....
};

Eu me pergunto o que causou esse problema. O problema é causado por uma configuração incorreta do firewall? Como o dns.log afirma que foi negado, não parece ser um problema de firewall.
Incluí a regra NAT de loopback, mas ainda não ajuda. Lembre-se de que o servidor DNS está localizado na zona DMZ.

Outra edição

Editar 1

Para o ponto - "altere a configuração de NAT para não cobrir esse tráfego específico para que a origem permaneça local". Parece mais viável, mas gostaria de saber como fazer isso.

O IP PDNS1 (público) está na zona WAN enquanto o IP PDNS1 (privado) está na zona DMZ.

Nossa marca de Firewall é Sonicwall. O NAT atual é:
fonte original: Qualquer
fonte traduzida: Pdns (Público)
Destino original: Pdns (Público)
Destino traduzido: Pdns (Privado)
serviço original: DNS (Serviços de Nomes)
traduzido pelo serviço: Original

As outras duas regras NAT são NATs reflexivos um-para-um comuns.

Não sei como não cobrir o tráfego específico para que a origem permaneça local. Por favor, informe e elabore com mais detalhes. Muito obrigado.

Editar 2

Para o ponto - "adicione seu IP público (ao que está incluído na lista de redes locais)", tentei a configuração abaixo. É verdade que a consulta DNS usando IP público dentro da rede interna pode resolver com êxito o nome de domínio externo.

Infelizmente, a consulta DNS usando IP público fora da rede interna também pode resolver nomes de domínio externos. É indesejável porque se torna um servidor DNS aberto que seria vulnerável a ataques de amplificação de DNS.

acl "confiável" {
219.189.213.25;
192.168.0.0/16;
hosts locais;
redes locais;
};

Para o ponto - "habilitar resposta para o domínio de qualquer IP (pode não querer)"

Acho que significa a configuração abaixo de named.conf : recursion yes;
ou
permitir-recursão {qualquer; };
permitir-query-cache {qualquer; };

Da mesma forma, faria com que o servidor DNS se tornasse DNS aberto, o que é muito indesejável.

Editar 3

  1. A seguir está a consulta DNS com IP privado dentro da rede interna:
    [root@pdns1 ~]# nslookup
    server 192.168.28.58
    Servidor padrão: 192.168.28.58
    Endereço: 192.168.28.58#53
    www.hku.edu.hk
    Servidor: 192.168.28.58
    Endereço : 192.168.28.58#53
    Resposta não oficial:
    Nome: www.hku.edu.hk
    Endereço: 147.8.2.58

  2. A seguir está a consulta DNS com IP público dentro da rede interna:
    servidor 219.189.213.25
    Servidor padrão: 219.189.213.25
    Endereço: 219.189.213.25#53
    www.mingpao.com
    Servidor: 219.189.213.25
    Endereço: 219.189.213.25#53
    ** servidor pode não encontrei www.mingpao.com: RECUSADO

A seguir está dns.log:
16 de janeiro de 2020 20:40:12.460 segurança: informações: cliente @ 0x7f963c508310 219.189.213.25#43529. (www.mingpao.com): consulta (cache) 'www.mingpao.com/A/IN' negada

A seguir está queries.log:
16 de janeiro de 2020 20:39:42.109 consultas: informações: cliente @ 0x7f963c0a3ce0 192.168.28.58#60338 (www.hku.edu.hk): consulta: www.hku.edu.hk IN A + (192.168.28.58)

16 de janeiro de 2020 20:39:42.401 consultas: informações: cliente @ 0x7f963c58e9c0 192.168.28.58#58101 (www.hku.edu.hk): consulta: www.hku.edu.hk IN AAAA + (192.168.28.58)

16 de janeiro de 2020 20:40:12.460 consultas: informações: cliente @ 0x7f963c508310219.189.213.25#43529 (www.mingpao.com): consulta: www.mingpao.com IN A + (192.168.28.58)

É verdade que a solicitação veio da WAN?

Responder1

A pergunta/dica seria como você está acessando seu servidor DNS depois de tentar acessá-lo usando IP público...

Assim que você acessar o servidor usando IP público na DMZ, seu tráfego provavelmente já estará sNATed. Do ponto de vista do servidor sua comunicação não é local. Verifique o registro do log mais uma vez - é visível o IP de onde veio a solicitação...

Para que funcione, você pode:

  • habilitar resposta para o domínio de qualquer IP (pode não querer)

  • altere a configuração de NAT para não cobrir esse tráfego específico para que a origem permaneça local

  • adicione seu IP público (ao que está incluído na lista de redes locais)

informação relacionada