Почему несколько записей PTR в DNS не рекомендуется?

36

Я часто читаю, что использование нескольких записей PTR в конфигурации DNS не рекомендуется.

Однако причины, по которым они часто бывают неопределенными, или не столь очевидны:

  • «это может вызвать проблемы»,
  • «может вызывать ошибки в программах, ожидающих единого ответа»: тогда это проблема программного обеспечения, не так ли ?!
  • «может сделать пакет ответов DNS слишком большим»: разве это не исправлено в EDNS ?

Это веские причины? Знаете ли вы какие-либо другие (веские) причины? Все это выглядит как "наследственный страх" ...

Totor
источник
4
Почему вы хотите иметь несколько записей PTR для одного IP-адреса? Я не могу придумать причину, которая имела бы смысл делать.
Per von Zweigbergk
3
@PervonZweigbergk Это не то, что я спросил, а, например, потому что у меня есть несколько имен, указывающих на один и тот же IP, и я хочу, чтобы обратное совпадение соответствовало всем им.
Тотор
10
@PervonZweigbergk Представьте себе почтовый сервер, который обрабатывает почту для нескольких доменов. Возможно, вы захотите использовать имя в домене, для которого вы отправляете почту, в EHLOкоманде. Некоторые получатели требуют, чтобы PTRв вашей EHLOкоманде была запись, соответствующая домену , иначе они не будут принимать почту от вас. Но если у вас есть несколько PTRзаписей, они могут просто выбрать одну из них случайным образом, и если эта не соответствует EHLOкоманде, она отклоняет почту.
Касперд
3
Я знаю, что это не то, что вы спросили, поэтому я спросил это через комментарий, а не как ответ. :-) Вы никогда не упоминали, о каком приложении вы говорите. Вам бы лучше было быть более откровенным, если вы говорите о контексте исходящей электронной почты, о чем @ kasperd спекулирует.
Per von Zweigbergk
2
@kasperd Я полагаю, что кто-то, возможно, захочет это сделать, но это нетрадиционно и излишне вызывает проблемную ситуацию, о которой идет речь. Предполагается, что почтовый сервер будет использовать только одно имя в своих EHLOкомандах, независимо от того, для скольких доменов он обрабатывает почту. Предполагается, что имя в HELO/ EHLOидентифицирует сам почтовый сервер, а не относится к почтовым адресам MAIL FROMили From.
Хокан Линдквист

Ответы:

19

Ожидается, что PTRзапись для обратного имени (например 7.2.0.192.in-addr.arpa) идентифицирует каноническое имя , связанное с этим IP-адресом.

Как указатели шлюза на узлах сети, так и обычные указатели узлов на узлах с полным адресом используют PTR RR, чтобы указывать назад на имена первичных доменов соответствующих узлов.

От: http://tools.ietf.org/html/rfc1035#section-3.5

Это ожидание отражается в программном обеспечении, которое выполняет обратный поиск; часто такое программное обеспечение специально ожидает одно имя назад и ожидает, что оно сможет использовать это имя в качестве канонического имени для этого хоста. Если возвращено несколько имен, принято просто брать одно наугад, потому что у них нет абсолютно никакой возможности узнать, какое из них вы бы предпочли для этого конкретного случая.

Поскольку общее ожидание состоит в том, что существует одно каноническое имя, связанное с IP-адресом, и это имя является тем, на что PTRследует указывать, добавление нескольких имен обычно не имеет никаких преимуществ (ничто не ожидает, что любая случайная запись A/ AAAAзапись будет иметь совпадение PTR), но она имеет потенциал недостатком, поскольку это может привести к странным результатам, так как вы не можете контролировать, какие из ваших PTRзаписей будут использоваться, если вы добавили более одной.

По сути, если у вас есть несколько PTRзаписей, вы на самом деле не делаете свой хост более легитимным, а наоборот, вы рискуете потерпеть неудачу в какой-либо проверке или иным образом что-то сломать.

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

Хокан Линдквист
источник
Разработка «одного канонического имени»: в случаях, когда IP-адрес может быть связан с более чем одним объектом, предпочтение отдается более конкретному. В случае веб-сервера с несколькими виртуальными хостами на основе имени наиболее подходящим является имя самого веб-сервера. Это один из тех случаев, когда попытка последовать совету Информационных RFC ( PTRвсегда соглашаясь с Aотчетом) полностью чушь.
Андрей B
«Ожидается, что запись PTR будет идентифицирована»: кем? Это выглядит как фактическое правило, так как разработчики программного обеспечения начали считать, что нормой является только один PTR. Я прав?
Тотор
@Totor Добавлена ​​цитата и ссылка на источник.
Хокан Линдквист,
В качестве анекдота недавно было отмечено, что у Apple есть несколько записей PTR, ответы на которые превышают 9 Кбайт. Несомненно, они не единственные. Это довольно экстремальный пример того, что вы можете получить, когда обязательные политики записи PTR не принимают во внимание детали этого ответа.
Андрей B
16

Все сводится к непредсказуемому поведению, поскольку RFC не устанавливает ограничений или способов обработки этих записей PTR. Большинство реализаций выбирают циклический перебор, и вы не достигнете желаемого результата (идеальное соответствие множества имен одному IP).

Вы можете прочитать больше об этом здесь: https://supernoc.rogerstelecom.net/pdfs/multiple-ptrs.pdf

Также проверьте эту ошибку в функции getnameinfo Glibc ( https://sourceware.org/bugzilla/show_bug.cgi?id=5790 ). Как вы можете гарантировать, что этого не происходит в бесконечном количестве различных систем в Интернете (некоторые из них очень старые и не исправлены)?

Для подкрепления, как правило, всегда хорошо избегать непредсказуемого и непредсказуемого поведения. К сожалению, несколько записей PTR для одного IP-адреса попадают в эту категорию (что касается RFC).

Джованни Тирлони
источник
2
Как вы можете гарантировать, что с «бесконечным» количеством различных систем в Интернете не возникает никаких проблем ? Ваш ответ хороший, но этот аргумент не имеет значения. Более того, баги клиента не имеют никакого отношения к ИМХО, за исключением случаев, когда на них влияет «значительное» количество ошибок.
Тотор
2

Как вы гарантируете, что PTR будет соответствовать определенной прямой записи, если у вас есть несколько PTR?

Это особенно важно при взаимодействии почтового сервера, где большинство входящих SMTP-серверов-получателей проверяют, соответствует ли переадресация обратному.

Довольно сложно, если у вас есть несколько PTR и нет способа гарантировать, какой PTR выбран и соответствует ли он форварду, который вы дали при подключении

Самый простой способ гарантировать идеальное совпадение - это иметь один PTR, который соответствует форвардной записи

user274768
источник