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

DNS, следует ли использовать A вместо CNAME?

Я провожу большие перестановки наших сайтов и хостинга, перемещая около 10 доменов на новый сервер. При этом мне пришлось внести некоторые изменения в DNS, указав все домены на новом сервере.

Вместо того, чтобы указывать все записи DNS на IP-адрес, если сервер, на котором я использовал запись CNAME, указывает им на запись A для IP-адреса ... если это не имеет смысла, взгляните на это:

mycompany.com
server1 A 12.34.56.78

domain1.com
@   CNAME server1.mycompany.com.
*   CNAME server1.mycompany.com.
www CNAME server1.mycompany.com.

domain2.com
@   CNAME server1.mycompany.com.
*   CNAME server1.mycompany.com.
www CNAME server1.mycompany.com.

domain3.com
@   CNAME server1.mycompany.com.
*   CNAME server1.mycompany.com.
www CNAME server1.mycompany.com.

etc...

Надеюсь, вы увидите, что я пытаюсь сделать. Чтобы все было в порядке, я установил одну запись A для IP-адреса сервера и использовал записи CNAME, чтобы указать на него все другие домены. Это означает, что если IP-адрес должен измениться, мне нужно изменить его только один раз, это также означает, что я могу легко определить, на что указывает каждая запись, как некоторая точка server2.mycompany.com и server3.mycompany.com и т.п.

Сегодня утром у нас возникла проблема с нашей электронной почтой, из-за которой почтовый сервер получателя не смог аутентифицировать наш почтовый сервер, электронная почта была отклонена. Я изменил @ запись на нашем mail.domain1.com домен из CNAME server1.mycompany.com к IP 12.34.56.78 и письмо было успешно отправлено.

Вопрос, несмотря на то, что он красивый и читаемый, есть причина, по которой мне не следует использовать CNAME для указания на другую запись DNS. Я считаю @ для самого домена (т.е. domain1.com). Казалось, что установка @ на CNAME, испортил нашу электронную почту, но есть ли какие-то правила относительно того, когда я должен его использовать?

Большое спасибо, Бен

Использование CNAME в качестве записи MX является нарушением RFC. Из раздела 10.3 RFC2181:

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

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

  • CNAME не может указывать на другой CNAME
  • PTR, SRV, NS, MX не могут указывать на CNAME
  • CNAME не должно иметь другой записи

Используйте CNAME для всех, кроме MX, NS и SRV.

CNAME часто избегают из соображений производительности: он заставляет клиента задавать второй вопрос DNS-серверу, что приводит к увеличению задержки для клиента и большей нагрузке на DNS-сервер.