Внешний DNS-сервер не может разрешить внешнее доменное имя при использовании публичного IP-адреса внутри внутренней сети

Внешний DNS-сервер не может разрешить внешнее доменное имя при использовании публичного IP-адреса внутри внутренней сети

Я использую его nslookupдля отправки запросов с компьютера внутри внутренней сети. Он может успешно разрешить внешнее доменное имя, если я использую частный IP-адрес моего DNS-сервера.

> www.ust.hk
Сервер: 192.168.28.58
Адрес: 192.168.28.58#53

Неавторитетный ответ:
Название: www.ust.hk
Адрес: 143.89.14.1

Однако если я использую публичный IP-адрес моего DNS-сервера внутри внутренней сети, я не смогу разрешить внешнее доменное имя.

$ nslookup
server wxyz
Сервер по умолчанию: wxyz
Адрес wxyz#53
> www.ust.hk
Сервер: wxyz
Адрес: wxyz#53
сервер не может найти www.ust.hk: ОТКАЗАНО

Если я проверю dns.log, то там будет указано, что внешнее доменное имя отклонено.

(www.ust.hk): запрос (кэш) 'www.ust.hk/A/IN' отклонен

Это неразумно, поскольку рекурсия разрешена для внутренней сети. Это нормально, что она не может разрешить внешний домен, если компьютер находится за пределами внутренней сети.

У меня есть именованный файл конфигурации, как показано ниже:

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;};
....
};

Интересно, что вызвало эту проблему. Проблема вызвана неправильной настройкой брандмауэра? Поскольку в dns.log указано, что это отклонено, похоже, это не проблема брандмауэра.
Я включил правило NAT loopback, но это все равно не помогает. Напоминаем, что DNS-сервер находится в зоне DMZ.

Другое редактирование

Редактировать 1

По сути - "изменить настройки NAT так, чтобы не покрывать этот конкретный трафик, чтобы источник оставался локальным". Это выглядит наиболее осуществимым, но мне интересно, как это сделать.

IP-адрес PDNS1(публичный) находится в зоне WAN, а IP-адрес PDNS1(частный) — в зоне DMZ.

Наш бренд Firewall — sonicwall. Текущий NAT:
source-original: Любой
source-translated: Pdns(Public)
Destination-original: Pdns(Public)
Destination-translated: Pdns(Private)
service-original: DNS(Name Services)
service-translated: Оригинал

Два других правила NAT представляют собой обычные рефлексивные NAT по принципу «один к одному».

Я не знаю, как не покрывать конкретный трафик, чтобы источник оставался локальным. Пожалуйста, любезно посоветуйте и расскажите подробнее. Большое спасибо.

Редактировать 2

Для пункта - "добавить ваш публичный IP (к тому, что он sNAT-адресован в список локальных сетей)" я попробовал следующую настройку. Это правда, что DNS-запрос с использованием публичного IP внутри внутренней сети может успешно разрешить внешнее доменное имя.

К сожалению, DNS-запрос, использующий публичный IP-адрес за пределами внутренней сети, может также разрешить внешнее доменное имя. Это нежелательно, поскольку он становится открытым DNS-сервером, который будет уязвим для атаки DNS-амплификации.

acl "доверенный" {
219.189.213.25;
192.168.0.0/16;
localhosts;
localnets;
};

По пункту - "включить ответ для домена с любого IP (может не захотеть)"

Я думаю, это означает следующую настройку named.conf: recursion yes;
или
allow-recursion { any; };
allow-query-cache { any; };

Аналогично, это приведет к тому, что DNS-сервер станет открытым DNS, что крайне нежелательно.

Редактировать 3

  1. Ниже приведен DNS-запрос с частным IP-адресом внутри внутренней сети:
    [root@pdns1 ~]# nslookup
    server 192.168.28.58
    Сервер по умолчанию: 192.168.28.58
    Адрес: 192.168.28.58#53
    www.hku.edu.hk
    Сервер: 192.168.28.58
    Адрес: 192.168.28.58#53
    Неавторитетный ответ:
    Имя: www.hku.edu.hk
    Адрес: 147.8.2.58

  2. Ниже приведен DNS-запрос с публичным IP-адресом внутри внутренней сети:
    сервер 219.189.213.25
    Сервер по умолчанию: 219.189.213.25
    Адрес: 219.189.213.25#53
    www.mingpao.com
    Сервер: 219.189.213.25
    Адрес: 219.189.213.25#53
    ** сервер не может найти www.mingpao.com: ОТКАЗАНО

Ниже приведен dns.log:
16-янв-2020 20:40:12.460 безопасность: информация: клиент @0x7f963c508310 219.189.213.25#43529. (www.mingpao.com): запрос (кэш) 'www.mingpao.com/A/IN' отклонен

Ниже приведен журнал запросов:
16-янв-2020 20:39:42.109 запросы: информация: клиент @0x7f963c0a3ce0 192.168.28.58#60338 (www.hku.edu.hk): запрос: www.hku.edu.hk IN A + (192.168.28.58)

16-янв-2020 20:39:42.401 запросы: информация: клиент @0x7f963c58e9c0 192.168.28.58#58101 (www.hku.edu.hk): запрос: www.hku.edu.hk В AAAA + (192.168.28.58)

16-янв-2020 20:40:12.460 запросов: информация: клиент @0x7f963c508310219.189.213.25#43529 (www.mingpao.com): запрос: www.mingpao.com В A + (192.168.28.58)

Правда ли, что запрос пришел из WAN?

решение1

Вопрос/подсказка заключается в том, как вы достигаете своего DNS-сервера, когда пытаетесь подключиться к нему, используя публичный IP-адрес...

Как только вы достигаете сервера, используя публичный IP в DMZ, ваш трафик, скорее всего, уже sNAT. С точки зрения сервера, ваше соединение не локальное. Проверьте запись журнала еще раз - там виден IP, с которого пришел запрос...

Чтобы это заработало, вы можете:

  • включить ответ для домена с любого IP (может не желать)

  • изменить настройки NAT, чтобы не охватывать этот конкретный трафик, чтобы источник оставался локальным

  • добавьте свой публичный IP (к тому, что он преобразован в sNAT, в список локальных сетей)

Связанный контент