Рейтинг:5

Как подтвердить, кто отвечает за обслуживание запросов обратного DNS (PTR) на блокировку IP?

флаг gb

Прежде чем кто-либо ответит «спросите своего интернет-провайдера» или «спросите своего хостинг-провайдера», пожалуйста, прочитайте полностью.

Сценарий:

  • У меня есть доменное имя мойдомен.примери общедоступный IP-блок (скажем, 192.0.2.0/28)
  • Записи NS (GLUE) для этого домена настроены у моего регистратора - ns1.mydomain.example и ns2.mydomain.example которые указывают на мои серверы (самостоятельные DNS-серверы)
  • Обратный DNS для моего публично маршрутизируемый IP-блок обслуживаются одними и теми же серверами. Это делается для того, чтобы я мог обновлять обратные записи DNS для своих IP-адресов на досуге на своем оборудовании.

Проблема: Я пошел на миграцию DNS-хостинга для своего домена (мойдомен.пример) с моих собственных серверов на cloudflare, решив, что не стоит заморачиваться с его размещением своими руками. Я делал это несколько раз раньше с идентичными настройками и не испытывал никаких побочных эффектов.

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

Вопрос: Что/кто определяет, кто отвечает на запросы обратного DNS для моего блока IP? Насколько я понимаю, обычно прямой DNS и обратный DNS выполняются независимо друг от друга, поэтому я не ожидал миграции серверов имен с прямым просмотром из собственной инфраструктуры -> cloudflare для запуска обратного поиска DNS.

Насколько я понимаю, объект, который отвечает на ваш прямой DNS (cloudflare), не зависит от того, кто отвечает на ваш обратный DNS (например, ваш хостинг-провайдер, интернет-провайдер и т. д.). Но как я могу подтвердить, кто действительно несет ответственность за это - как я бы для моего прямого DNS? я могу сделать % dig +short mydomain.example NS чтобы подтвердить, какие серверы отвечают за прямые DNS-запросы, какова процедура, чтобы выяснить, кто отвечает за обратный DNS IP-адресов, которые я использую?

Рейтинг:6
флаг cv

Если бы ваш IP-адрес был 192.0.2.4 и вы использовали nslookup, вы бы выполнили следующее:

установить q=ns

4.2.0.192.in-addr.arpa

Это покажет вам серверы имен, ответственные за блок IP-адресов, в котором существует ваш IP-адрес.

флаг mx
Записи NS обычно не существуют для отдельных IP-адресов. Это должно быть просто «2.0.192.in-addr.arpa». Или используйте `dig +trace -x 192.0.2.4`
joeqwerty avatar
флаг cv
@Barmar Вы использовали nslookup так, как я описал? Если нет, попробуйте. Используйте «установить отладку», чтобы просмотреть подробную информацию о запросе.
флаг mx
`** сервер не может найти 4.2.0.192.in-addr.arpa: NXDOMAIN`
флаг mx
Похоже, этот адресный блок не делегирован.
joeqwerty avatar
флаг cv
Это пример IP-адреса для использования в документации. Используйте свой IP-адрес. - https://datatracker.ietf.org/doc/html/rfc5737
Рейтинг:2
флаг jp

Решение вашей проблемы:

В этом случае я не думаю, что проблема связана с вашими записями PTR, а скорее с тем, как работает система обратного прокси Cloudflare. Если ваш домен использует прокси-сервер Cloudflare, то он больше не указывает на ваш сервер.

Решение состоит в том, чтобы отключить проксирование Cloudflare для доменов/поддоменов, на которых расположены почтовые серверы.

Ответ на ваш вопрос:

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

Например, если у вас есть мойдомен.пример, а ваши настройки DNS Cloudflare представляют собой запись A, указывающую на 192.0.2.1 с включенным прокси-сервером домен фактически указывает на серверы Cloudflare, которые затем перенаправляют трафик на ваш.Однако это означает, что поиск PTR будет запрашивать серверы Cloudflare, а не ваши, что сообщит об отсутствии записей:

❏ dig proxied.mydomain.example # Удаленный почтовый сервер запрашивает запись A проксируемого домена.
;; РАЗДЕЛ ВОПРОСОВ:
;прокси.мойдомен.пример. В
;; РАЗДЕЛ ОТВЕТОВ:
прокси.мойдомен.пример. 300 IN A 104.21.30.252 # Сервер Cloudflare
прокси.мойдомен.пример. 300 IN A 172.67.174.61 # Сервер Cloudflare
❏ dig -x 104.21.30.252 # Удаленный почтовый сервер проверяет PTR/rDNS обоих IP-адресов (это реальный IP-адрес Cloudflare)
;; РАЗДЕЛ ВОПРОСОВ:
;252.30.21.104.in-addr.arpa. В ПТР
;; ОТДЕЛ ПОЛНОМОЧИЙ:
21.104.in-addr.arpa. 3600 IN SOA cruz.ns.cloudflare.com. dns.cloudflare.com. 2034580120 10000 2400 604800 3600 
# Сервер не возвращает записи PTR, потому что запрашивается сервер Cloudflare.

Если вы отключите проксирование Cloudflare для DNS-записи почтового сервера, это будет выглядеть примерно так:

● dig unproxied.mydomain.example # Удаленный почтовый сервер запрашивает A-запись домена без прокси.
;; РАЗДЕЛ ВОПРОСОВ:
;unproxyed.mydomain.example. В
;; РАЗДЕЛ ОТВЕТОВ:
непроксированный.мойдомен.пример. 300 IN A 192.0.2.1 # DNS-сервер возвращает IP-адрес вашего сервера.
❏ dig -x 192.0.2.1 # Почтовый сервер запрашивает PTR на ВАШЕМ сервере.
;; РАЗДЕЛ ВОПРОСОВ:
;117.8.209.209.in-addr.arpa. В ПТР
;; РАЗДЕЛ ОТВЕТОВ:
117.8.209.209.in-addr.arpa. 86400 IN PTR unproxied.mydomain.example.
# PTR возвращает правильное значение.

(Обратите внимание, что я пропустил поиск MX/SPF/DKIM/DMARC в этом ответе, потому что, насколько мне известно, Cloudflare не связывается с ними, если вы не укажете свою запись на проксированную запись A/AAAA/CNAME. .)

rgb255_255_255 avatar
флаг gb
Эй, спасибо за ответ, но это не моя проблема, потому что поиск записей PTR выполняется по самому IP-адресу, а не по IP-адресу прокси-сервера cloudflare. Кроме того, я ни для чего не использую прокси-сервер cloudflare, в настоящее время я использую его только для размещения своих DNS-записей.

Ответить или комментировать

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