Чому RFC 7505 (Null MX) необхідний?


18

IETF RFC 7505 описує записи MX для домену / хоста, які явно не повинні отримувати електронну пошту. Це досягається вказівкою MX на корінь системи доменних імен. Наприклад,

nomail.example.com. 86400 IN MX 0 "."

Для чого це потрібно? На моє розуміння, явне спростування доступне за допомогою доменів під TLD invalid. Наприклад,

nomail.example.com. 86400 IN MX 0 "spam.invalid."
nomail.example.com. 86400 IN MX 10 "null.invalid."

Я бачу, що RFC 2782, DNS SRV, також визначає "Ціль". означає, що послуга, очевидно, недоступна в цьому домені. " Тому я припускаю, що моє питання:

Чому ми повинні використовувати корінь DNS для позначення "недоступний", коли він invalidвже виконує цю функцію?


2
Це не є явним спростуванням! Це просто недійсні дані.
Майкл Хемптон

Відповіді:


21

Тому що це не те, що ви повинні використовувати .invalid. Начебто .exampleвін призначений для локального тестування та документації.

Крім того, використання .invalidвсе ще призводить до того, що трапляються додаткові речі - додаткові перегляди DNS та черги на поштовому сервері для повторних спроб у верхній частині голови.

Використання "."формату повинно спричинити негайний жорсткий збій. Завдяки MTA негайно припинити спробу доставки. Принаймні, так читається вступ до RFC.


2
Спасибі. Розділ 2, але BCP: 32 / RFC 2606 говорить "" .invalid "призначений для використання в онлайн-побудові доменних імен, які, безумовно, є недійсними, і які, очевидно, на перший погляд є недійсними." 2606 нічого не говорить про те, що ". Недійсний" призначений лише для локального тестування. Він повинен бути недійсним для будь-якого домену
Alpha Whiskey

Гаразд, я можу зрозуміти, чому те, що схоже на те, що це ім'я хоста, було б невигідним порівняно з ".".
Альфа Віскі

1
@AlphaWhiskey Це люди, які можуть "поглянути" на щось і зробити висновки. Комп'ютери потребують чіткої інструкції.
Майкл Хемптон

3
Якщо бути справедливим, в цьому конкретному випадку не зовсім важко дати комп'ютерам чітку інструкцію.
muhmuhten

@res Ще простіше не давати комп’ютерам явної інструкції.
musiKk

9

Питання в цілому стосується кількох різних аспектів, які потрібно врахувати, щоб відповісти, чому RFC7505 додає щось корисне.


Перш за все, визначення RFC7505 про те, як слід здійснювати доставку пошти, не може чітко вказати, що не потрібно робити спроб доставки пошти для імені, яке має записи адреси.

З розділу 1 RFC7505 :

Клієнти SMTP мають встановлену послідовність для ідентифікації сервера, який приймає електронну пошту для домену. Розділ 5 [RFC5321] детально висвітлює це питання; по суті, клієнт SMTP спочатку шукає DNS MX RR, і якщо цього не знайти, він повертається до пошуку DNS A або AAAA RR. Отже, це перевантажує запис DNS (який має іншу основну місію) семантичною службою електронної пошти.

Якщо у домену немає MX-записів, відправники намагаються доставити пошту хостам за адресами в записах домену A або AAAA. Якщо на адресах A / AAAA немає слухачів SMTP, доставку повідомлень здійснюватимуться повторно протягом тривалого періоду, як правило, за тиждень, до того, як агент, що пересилає пошту (MTA), відмовиться. Це затримає повідомлення відправника у випадку неправильно спрямованої пошти та споживатиме ресурси у відправника.

Цей документ визначає нульову MX, яка призведе до негайних помилок усіх спроб доставки пошти домену, не вимагаючи від доменів створення SMTP-слухачів, призначених для запобігання спробам доставки.


Тоді є питання про те, як RFC7505 реалізує це ( IN MX 0 .).

З розділу 3 RFC7505 :

  1. MX Resource Records із зазначенням Null MX

    Щоб вказати, що домен не приймає електронну пошту, він рекламує єдиний MX RR (див. Розділ 3.3.9 [RFC1035]) з розділом RDATA, що складається з номера уподобань 0 та нульової мітки, записаних у головних файлах як ". "як обмінний домен, щоб позначати, що не існує обмінника пошти для домену. Оскільки "." не є дійсним іменем хоста, нульовий запис MX не можна змішувати зі звичайним записом MX. Використання "." як псевдо-ім'я хоста, що означає, що жодна послуга недоступна, моделюється на SRV RR [ RFC2782 ], де він має подібне значення.

    Домен, який рекламує нульовий MX, НЕ МОЖЕ рекламувати будь-який інший MX RR.

(наголос додано)

Як зазначається тут, деталі реалізації для "null MX" базуються на вже встановленому шаблоні SRVтипу RR. Це має сенс імітувати, оскільки SRVтип RR в більшій чи меншій мірі є узагальненою версією типу MXRR.

Отже, рішення по суті було прийнято вже при визначенні SRVтипу RR .


Отже, чому б не скористатися .invalid?

З розділу RFC2606 :

".invalid" призначений для використання в онлайн-побудові доменних імен, які, безумовно, є недійсними та які, очевидно, на перший погляд є недійсними.

Як видно тут, цей зарезервований TLD призначений для споживання людиною. Немає прецеденту визначення спеціального поводження з цим програмним забезпеченням.

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


Наскільки я можу сказати, жодна технічна причина .не могла бути використана як запис MX, якби записи A або AAAA були опубліковані в корені. Коли я набираю текст, telnet . 25він обов'язково шукає записи A і AAAA в корені.
kasperd

1
@kasperd Хоча протокол DNS може, безумовно, представляти його, я не вірю, що записи записів на адресу .або (pre-RFC7505) із зазначенням .того, що EXCHANGEзначення для MXзапису було б дійсно дійсним. (Це неправдиве ім'я хоста.)
Håkan Lindqvist

Дійсно чи ні - я легко уявляю реалізацію, яка, стикаючись із записом MX, що вказує на домен без записів A, буде повторювати доставку за кілька днів до відмови.
kasperd
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.