Назад | Перейти на главную страницу

Использование CNAME для пересылки трафика с голого домена

У меня есть домен flyh2.com.

Я использую CNAME для перенаправления www.flyh2.com на flyh2.elasticbeanstalk.com, где размещен мой веб-сайт. Это единственный способ, которым Amazon разрешает использование пользовательских доменных имен. Записи не допускаются.

Я бы хотел, чтобы люди просто печатали http://flyh2.com (без www), и посетители по-прежнему видят мой веб-сайт.

Первоначально я использовал CNAME для пересылки на мой веб-сайт как голых, так и www записей, но это, похоже, вызывало проблемы.

Входящая почта возвращалась отправителю:

Fwd: Returned mail: see transcript for details
<mark@flyh2.com>... Deferred: Connection timed out with flyh2.elasticbeanstalk.com.
Message could not be delivered for 6 hours
Message will be deleted from queue

Похоже, что CNAME в голом домене переопределяет записи MX.

Теперь я изменил CNAME в записи flyh2.com, чтобы указать на www.flyh2.com и, в свою очередь, с www.flyh2.com на CNAME на flyh2.elasticbeanstalk.com.

Мои записи MX настроены правильно, но CNAME в голом домене, похоже, их переопределяет. Должен ли я использовать запись A?

Вы не может иметь CNAME для домена.

CNAME могут существовать только как отдельные записи и не объединяться с другими записями ресурсов. Поскольку в домене всегда есть записи SOA и NS, вы не можете использовать CNAME для домена. Это указано в RFC 1034, раздел 3.6.2.

Причина, по которой электронная почта ломается, находится в RFC 5321, раздел 5.1:

Это доменное имя при запросе ДОЛЖНО возвращать по крайней мере одну адресную запись (например, A или AAAA RR), которая дает IP-адрес SMTP-сервера, на который должно быть направлено сообщение. Любой другой ответ, в частности, включая значение, которое будет возвращать запись CNAME при запросе, выходит за рамки настоящего стандарта. Запрет на использование меток в данных, разрешаемых в CNAME, более подробно обсуждается в RFC 2181, раздел 10.3.

Другими словами - до тех пор, пока ваш провайдер не разрешает записи A, то, что вы хотите, сделать невозможно.

Не похоже, что вы знаете правильное определение FQDN. Также не похоже, что вы знаете, для чего нужен CNAME.

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

Решение похоронено в комментариях и плохо объяснено. Вот полное решение от Майкл Хэмптон:

  1. Настройте CNAME с www.flyh2.com на flyh2.elasticbeanstalk.com. При использовании www. это перенаправит веб-запросы на веб-сервер Amazon.
  2. Установите запись A с flyh2.com на 174.129.25.170. На этом IP-адресе есть веб-сервер, который перенаправляет голые домены на www. поддомены. Это перенаправит веб-трафик с голого домена flyh2.com на www.flyh2.com. www.flyh2.com будет перенаправлен на flyh2.elasticbeanstalk.com (из-за cname выше).
  3. Настройте запись MX с flyh2.com на его почтовый сервер. Почта, отправляемая на flyh2.com, игнорирует CNAME, поскольку она применяется только к www.flyh2.com. Почта будет игнорировать запись A и вместо этого будет использовать запись MX, которая указывает на почтовый сервер. Веб-трафик будет идти на elasticbeanstalk, а почта - на почтовый сервер.