DNS с помощью CNAME ломает записи MX?

42

Мы пытаемся переместить все наши веб-сайты, которые мы размещаем, на CNAMES, поскольку мы планируем переместить серверы в новом году, и хотели бы иметь возможность переносить некоторых клиентов на один сервер, а других клиентов - в другое. Мы планировали предоставить клиентам уникальный CNAME, который мы можем изменить позже. (У нас есть другие причины сделать это сейчас, но это главная причина)

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

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

Я хочу создать 2 CNAME для company.com

company.com. IN CNAME client.dns.ourserver.com
www          IN CNAME client.dns.ourserver.com

Запись MX выглядит примерно так:

company.com  IN MX 10 mail.company.com

У нас есть запись для mail.company.com

Выполнение:

host -t mx company.com

Возвращает значение CNAME, а не запись mx.

Это ожидаемое поведение?

Мне удалось заставить вышеуказанную конфигурацию работать с панелью управления 123-reg.co.uk, но я не уверен, что это больше удача, чем что-либо еще.

johnwards
источник
Это общий вопрос, и его задавали много раз. Посмотрите эту ссылку для примера: serverfault.com/questions/18000/…
Рассел Хиллинг
Я потратил немного времени на поиски ответа, но не мог понять, делал ли я что-то другое. Тем более что он отлично работает с одним провайдером домена. У меня есть свой ответ, так что это круто, и, надеюсь, он будет кому-то полезен.
Джон

Ответы:

54

Это распространенная ошибка. Вы не можете использовать CNAME RR для своего корневого домена (например, company.com) и определять дополнительные записи ресурсов для той же зоны.

См. Почему я не могу создать запись CNAME для корневой записи? и RFC1034 раздел 3.6.2 для деталей:

Если CNAME RR присутствует на узле, никакие другие данные не должны присутствовать; это гарантирует, что данные для канонического имени и его псевдонимов не могут быть разными.

Joschi
источник
Раздел 10.1 RFC2181 также имеет отношение к тому, что подкрепляет вышесказанное.
Хокан Линдквист
также известный как домен вершины
Alex78191
5

В разделе 10.3 RFC2181 говорится, что вы не можете указать свою запись MX на CNAME:

Имя домена, используемое в качестве значения ... записи ресурса MX, не должно быть псевдонимом.

nogginboink
источник
2
Но это не тот сценарий, о котором идет речь?
Хокан Линдквист
2

Я только что переехал в Heroku, где вместо записей A используются CNAME, и мне нужно было вместо создания CNAME с my_domain.com указывать на heroku, я делал CNAME с www.my_domain.com, указывая на heroku, поэтому Корневой домен не был переадресован, и мои записи MX все равно будут работать. Затем я добавил указатель для перенаправления my_domain.com на www.my_domain.com. Кажется, отлично работает. В моем провайдере доменных имен указатель был создан с использованием параметра «указатели», для которого я установил «стандартные» «URL» и «www.my_domain.com»

Джесси Адамсон
источник
Сплошная работа! Спасибо, что поделились этим!
Духайме
0

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

mydomain.com. -  A Record  - 01.0.0.1
mydomain.com - CNAME - www.cname.eg.com

Если вы не используете свой сервер в качестве почтового сервера, это ни на что не повлияет. Почта будет искать записи MX mydomain.com. Это будет затронуто только если это так

mydomain.com - MX - mail.mydomain.com

но если это так (то есть вы используете отдельный почтовый сервер), это не будет затронуто

mydomain.com - MX - mail.mycustommailserver.com

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

Ndeto
источник
-1

Я обнаружил, что НЕКОТОРЫЕ MX-провайдеры в тандеме с НЕКОТОРЫМИ DNS-провайдерами будут фактически работать вместе с голым CNAME, если вы просто закажете MX-запись НАД CNAME в порядке сверху вниз.

Он работает на регистраторе Name.com с записью MX Office 365 и записью CNAME, направляющей HTTP в еще один домен. При тестировании MX-запросов я заметил, что мой результат CNAME вернулся первым в соответствии с моим порядком записей DNS, поэтому я решил, почему бы не попробовать сначала упорядочить MX и посмотреть, удовлетворяет ли это поставщику MX. К моему удивлению, проверка Office 365 MX прошла успешно, и я могу подтвердить, что входящая и исходящая электронная почта действительно передаются. И после тестирования нескольких веб-клиентов HTTP также действительно разрешается к указанному хосту назначения CNAME.

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

Подсказка - бесплатная страница MX Toolbox очень удобна для проверки результатов пробных настроек DNS.

Бесстыдная заглушка для моего соответствующего поста .

Beej
источник
2
Будучи недокументированным поведением, я определенно не хочу на это рассчитывать.
ceejayoz
2
такое поведение может считаться только ошибкой, кэширующий сервер имен может кэшировать ответ CNAME, а MDAs никогда не увидит запись MX tools.ietf.org/html/rfc5321#section-5.1
Jasen
-3

Вы можете использовать CNAME в корне домена, однако эти записи MX также должны быть настроены для записи хоста, поэтому если у вас настроен mx1.mail.com в зоне yourdomain.com и в корне вашего домена. com - это CNAME для thisrecord.cname.com, вы также должны убедиться, что на этом хосте CNAME настроен mx1.mail.com; в противном случае вся почта будет потеряна!

Matt
источник
4
Проблема заключается в том, что, согласно RFC1034, «если в узле присутствует запись CNAME RR, никакие другие данные не должны присутствовать» - поскольку корень должен иметь записи NS (чтобы быть полезными, в любом случае), всегда будут другие данные , что нарушает данный раздел RFC.
Доктор J
На мой взгляд, ответ правильный, за исключением того, что запись MX должна быть вместо этого на хосте CNAME (не также).
Александр Таубенкорб