Вопрос: Почему записи MX не указывают на IP-адрес?


Я понимаю тебя не следует укажите запись MX на IP-адрес напрямую, но должен вместо этого A запись, которая, в свою очередь, указывает на IP-адрес вашего почтового сервера.

Но, в принципе, Зачем это требуется?


81
2018-01-28 17:13


Источник


Если вы можете настроить запись MX, вы также можете настроить запись A. Я не вижу здесь проблемы. - joshudson
@joshudson Это не проблема, просто я пытаюсь понять, почему, а не просто следовать тому, что делают все остальные. - dayuloli
Я просто попытался в CloudFlare. Он не принимает IP-адрес в качестве значения для записи MX. - LinuxBabe


Ответы:


Вся идея записи MX - указать хозяин или хостов который может принимать почту для домена. Как указано в RFC 1035, запись MX содержит имя домена. Поэтому он должен указывать на хост, который сам может быть разрешен в DNS. Нельзя использовать IP-адрес, поскольку он будет интерпретироваться как неквалифицированное доменное имя, которое не может быть разрешено.

Причины этого в 1980-х годах, когда спецификации были первоначально написаны, почти такие же, как и причины для этого сегодня: хост может быть подключен к нескольким сетям и использовать несколько протоколов.

Еще в 80-е годы нередко были созданы почтовые шлюзы, которые подключались как к (относительно новому) Интернету, использующему TCP / IP, так и к другим старым сетям, которые часто использовали другие протоколы. Указание MX таким образом разрешило записи DNS, которые могли бы определить, как достичь такого хоста в сети, отличной от Интернета, например Chaosnet, На практике, однако, этого почти никогда не было; практически все реорганизовали свои сети, чтобы стать частью Интернета.

Сегодня ситуация заключается в том, что хост может быть достигнут несколькими протоколами (IPv4 и IPv6) и несколькими IP-адресами в каждом протоколе. Одна запись MX не может содержать более одного адреса, поэтому единственным вариантом является указание на хост, где все адреса этого хоста могут быть просмотрены. (В качестве оптимизации производительности DNS-сервер отправит по адресу записи в хост в дополнительном разделе ответа, если у него есть авторитетные записи для них, сохраняя в оба конца.)

Также возникает ситуация, когда ваши почтовые обменники предоставляются третьей стороной (например, Google Apps или Office 365). Вы указываете свои записи MX на свои имена хостов, но может случиться так, что поставщику услуг необходимо изменить IP-адреса почтовых серверов. Поскольку вы указали на хост, поставщик услуг может сделать это прозрачно, и вам не нужно вносить какие-либо изменения в ваши записи.


82
2018-01-28 17:36



Это не мешает совместимости с IP-адресами; на самом деле большинство SMTP-серверов / клиентов работают очень хорошо с IP-адресами в записях MX из небольшого тестирования, которое я сделал. Я думаю, что намерение состояло в том, чтобы отговорить индустрию от использования IP-адресов в массовом порядке - что, вероятно, было бы, если бы это правило не было заявлено, а не в каждом конкретном случае. Следовательно, «должно», в отличие от «must». +1 за отличную информацию. Я никогда не думал об этом. - Zenexer
@ Zenexer законов о дорожном движении не существует для неудобств относительно немногих экспертов-водителей, которые точно знают, что безопасно, а что нет. Они существуют из-за гораздо большего подмножества гребаных идиотов, которые думать они знают, что делают, но не делают этого. - Shadur
@Zenexer Вы можете обнаружить, что конкретный MTA переносит его сегодня и не завтра. Это, в конце концов, не поведение, допускаемое стандартом. И, конечно же, не все MTA будут поддерживать его, поэтому это означает, что вы гарантированно потеряете почту. - Michael Hampton♦
@MichaelHampton: Если запись MX ДОЛЖЕН содержат имя хоста вместо IP-адреса, затем MTA ДОЛЖЕН принять IP-адрес. Гипотетически, если запись MX ДОЛЖЕН содержать имя хоста, затем MTA ДОЛЖЕН принять IP-адрес. Вот как работает RFC. Контрагент на рекомендации «СЛЕДУЕТ» может оптимизировать, исходя из предположения, что совет соблюдается, но это почти все, что вы можете с ним сделать. - MSalters
@MSalters Я думаю, вы смущены. Я никогда не говорил СЛЕДУЕТ. Действительно, я сказал, что запись MX ДОЛЖНА содержать имя хоста, что также говорит RFC. - Michael Hampton♦


DNS как протокол имеет несколько разных типов значений, они не взаимозаменяемы.

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

Например:
A запись содержит адрес IPv4 (4 байта данных, фиксированная длина).
AAAAзапись имеет адрес IPv6 (16 байтов данных, фиксированная длина).

MX запись, с другой стороны, содержит имя (последовательность меток в формате <int number of bytes> <label> <int number of bytes> <label> <int 0>, переменная длина).

Это не возможноедля MX чтобы иметь IP-адрес в качестве своих данных.


16
2018-01-28 17:34



Вы можете сделать ярлык текстовым представлением IP-адреса, но это не имело бы смысла делать, поскольку оно не может быть разрешено как имя хоста. - Michael Hampton♦
@MichaelHampton Действительно, возможно иметь имя со всеми числовыми метками, которые в обычном дружественном для человека представлении выглядят как адрес IPv4 на первый взгляд. Тем не менее это ничего не меняет, когда дело доходит до вопроса, поскольку оно все равно будет именем и, таким образом, будет обрабатываться как имя (имя, которое, по крайней мере, в общедоступном Интернете, будет просто NXDOMAIN). - Håkan Lindqvist
Это не отвечает на вопрос OP. Вы в основном говорите «потому что так оно и есть», - dr01
@ dr01 Учитывая, что этот вопрос наглядно демонстрирует, что он не знает «как это» («вы не должны указывать запись MX на IP-адрес напрямую, а должны указывать на запись A», когда на самом деле это не имеют какое-либо другое значение, чем имя), я не думаю, что это не к месту, чтобы указать, как обстоят дела, и почему это делает любой другой вариант невозможным. У меня такое чувство, что вы много читаете в вопросе, который на самом деле отсутствует. - Håkan Lindqvist
@ dr01 Т.е., не думайте, что вопрос читается как академический вопрос о дизайнерских решениях в первые дни DNS или что-то в этом роде, а просто вопрос о том, как MX записи, которые действительно существуют в мире, могут или должны использоваться. - Håkan Lindqvist


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

В RFC 974 говорится:

Первым шагом для почтовой программы в LOCAL является выпуск запроса для MX RR      для REMOTE. Настоятельно настоятельно рекомендуется, чтобы этот шаг выполнялся каждый раз      почтовая программа пытается отправить сообщение. Надеемся, что изменения в      база данных домена будет быстро использоваться почтовыми отправителями, и, следовательно, домен      администраторы смогут перенаправлять сообщения в пути для      дефектных хостов, просто меняя свои базы данных домена.

Требовав имя вместо IP, он настоятельно поощряет эту практику. Имена могут оставаться неизменными, и в случае балансировки нагрузки или DR вам не придется беспокоиться об изменении самой записи MX и ожидании распространения DNS.


6
2018-01-28 17:40



Отвечая на вопросы, связанные с стеком, на ваш выходной день, пока вы больны гриппом ... Я советую вам шляпу, сэр! - Mike B
@MikeB спасибо ... - TheCleaner


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

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


2
2018-01-28 17:29



Итак, почему exim не позволял MX-записи указывать на IP-адрес в первую очередь? Кажется странным для меня! Я понимаю, что я не должен из-за соглашения, но я не понимаю Зачем это сделано нелегальный, - dayuloli
Я не вижу, как любой MTA мог бы поддерживать это как MX запись не может иметь IP-адрес в качестве его значения. - Håkan Lindqvist
@ HåkanLindqvist Ваш ответ выше прояснил этот момент для меня! Спасибо! - dayuloli


IN RFC 1025 Запись MX указывает только на запись RR (запись ресурса) A Record или CNAME.

Таким образом, почтовый сервер, отправляющий почту, запрашивает RR записи MX, записи mx записывают записи A серверов, почтовый сервер выполняет прямой поиск, чтобы получить запись A, а затем пересылает почту через smtp на хост службы, указанный как почтовый сервер «желает» получать почту для этого домена.

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

Ответ - из-за доверия

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

  • Обратный просмотр IP-адресов
  • Поиск передового имени по этому вопросу

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

Ссылка - RFC 1035 и 974

https://www.ietf.org/rfc/rfc1035.txt35

https://www.ietf.org/rfc/rfc974.txt


2
2018-01-28 17:42





Цель MXчто заявление (почтовый перевод) может узнать о хосте, который будет использоваться. На уровне приложения хост имена правильно использовать (а не IP-адреса).

Кроме того, добавление тайны записи типа варианта в DNS вводит рычаг сложности и, следовательно, точку входа для проблем, сбоев реализации, проблем безопасности. Например, 1.2.3.4.example.com. является допустимым именем хоста (да, это даже в свете RFC1034, 3.5). Указание этого узла как MX в файле конфигурации привязки для example.com может выглядеть так:

.  MX 10  1.2.3.4

и, предположительно, это то же самое, что и запись MX с IP-адресом. И даже для передачи информатизации в DNS-датаграмме требуются некоторые причудливые аддитуины; самым простым способом было бы ввести новый тип записи ресурсов, MXA скажем, для устранения неоднозначности. Но опять же, зачем вводить бремя такого нового типа записи, когда

. MXA 10 5.6.7.8

всегда можно было заменить на

. MX 10 dummy
dummy A 5.6.7.8

(и будет поддерживаться также DNS-клиентами, которые не знают о MXA записи)?


2
2018-01-31 21:49