Я использую его 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
Ниже приведен 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Ниже приведен 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, в список локальных сетей)