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

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

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

81 голос | спросил dayuloli 28 Jpm1000000pmWed, 28 Jan 2015 20:13:40 +030015 2015, 20:13:40

6 ответов


82

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

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

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

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

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

ответил Michael Hampton 28 Jpm1000000pmWed, 28 Jan 2015 20:36:57 +030015 2015, 20:36:57
16

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

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

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

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

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

ответил Håkan Lindqvist 28 Jpm1000000pmWed, 28 Jan 2015 20:34:20 +030015 2015, 20:34:20
6

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

RFC 974:

  

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

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

ответил TheCleaner 28 Jpm1000000pmWed, 28 Jan 2015 20:40:52 +030015 2015, 20:40:52
2

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

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

ответил Nathan C 28 Jpm1000000pmWed, 28 Jan 2015 20:29:11 +030015 2015, 20:29:11
2

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

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

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

Ответ - из-за Trust

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

  • Обратный поиск в Интернете
  • Поиск в прямом названии для этого вопроса

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

Ссылка - RFC 1035 и 974

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

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

ответил Citizen 28 Jpm1000000pmWed, 28 Jan 2015 20:42:31 +030015 2015, 20:42:31
2

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

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

.  MX 10  1.2.3.4

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

. MXA 10 5.6.7.8

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

. MX 10 dummy
dummy A 5.6.7.8

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

ответил Hagen von Eitzen 1 FebruaryEurope/MoscowbSun, 01 Feb 2015 00:49:19 +0300000000amSun, 01 Feb 2015 00:49:19 +030015 2015, 00:49:19

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132