2013-06-19 2 views
33

Поскольку Amazon Route 53 позволяет вам установить запись A или CNAME для другого поддоменного имени с помощью Alias, мне интересно, какая разница между записью A и CNAME сейчас.Разница между A Rec и CNAME в Route53

Чтобы уточнить мой вопрос, разница между CNAME и записью A в традиционном NameServer заключается в том, что только CNAME можно использовать для указания на другой субдомен, а запись должна указывать на действительный IP-адрес. Поскольку AWS Route53 позволяет вам использовать субдомен с A Rec или CNAME, разве это не размывает различие между ними.

ответ

60

Ваш вопрос весьма важен, но вы используете слово «субдомен» не совсем точным образом.

Что вы на самом деле спрашиваете, это тот факт, что запись маршрута 53, запись A может дать вид ссылки на полностью квалифицированное имя хоста из другого домена или имя хоста или поддомен из собственного домена, в то время как в правильном DNS, единственный способ ссылаться на другое имя хоста - с CNAME, но они не могут быть предоставлены на вершине домена (example.com), указывающего на субдомен («www.example.com»).

Псевдоним, вы говорите, представляется функционально эквивалентным, но более гибким, чем CNAME, так есть разница?

Разница между CNAME и псевдонимом является то, что CNAME еще собственно, стандартным, обычным DNS CNAME, который возвращает ответ на запрос DNS «привет, вы должны знать, что реальногос anonical ") имя сервера, который вы ищете, является« x », и, в зависимости от обстоятельств, может также содержать запись A для целевого хоста или не может, требуя от клиента перехода на второй поиск.

Псевдонимы, с другой стороны, являются умным взломом, созданным Amazon, который не нарушает протокол, но позволяет Route 53 выдавать запись A непосредственно из ресурса «X», когда запись A для ресурса «Y» просил. Псевдонимы могут также ссылаться на другие типы записей, но тип записи, который они ссылаются, должен быть одинаковым, и для целей этой дискуссии я говорю о псевдонимах записи A.

И, важный отрыв здесь состоит в том, что псевдоним фактически возвращает запись A - не ссылку на цель, как это делает CNAME.

Уловка заключается в том, что с псевдонимом вы не можете поместить в это поле только любое имя хоста. Это должно быть имя хоста в домене, где Route 53 имеет магические крючки, чтобы он мог получить соответствующую запись A для обслуживания - либо другую запись в вашей зоне, либо S3, ELB или Cloudfront. Это совсем другая реализация, чем то, как работают записи CNAME, хотя чистый эффект оказывается одинаковым.

Поместите что-нибудь еще там, и The record set could not be saved because:- Alias Target contains an invalid value. Попробуйте.:)

Конечно, у CNAME записей нет таких ограничений ... они просто ограничены дизайном при их использовании в верхней части зоны.

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

Одним из преимуществ Alias ​​в том случае, когда можно использовать один из них, является то, что псевдоним никогда не требует двух DNS-запросов, как я упоминал выше. Он всегда отвечает непосредственно по Маршруту 53 с соответствующей записью A, где CNAME, по крайней мере, в случае, когда он ссылается на имя хоста в другом домене верхнего уровня, может потребоваться два последовательных поиска DNS, что дает Alias ​​теоретическое преимущество в производительности в этом дело.

+2

Вау - спасибо за такой подробный ответ. Мое понимание улучшилось во многом с этим. – Scalable

+1

Отлично. Пожалуйста, подумайте о принятии моего ответа, если нет других моментов, которые вы хотели бы мне разъяснить. –

+1

Чтобы добавить немного путаницы, вы можете иметь псевдоним cnames. Если вы хотите, чтобы cdn1.website.com, cdn2.website.com и cdn3.website.com указывали на один и тот же домен третьей стороны, вы могли бы с псевдонимом cname их использовать cdn.website.com, который был бы cname на веб-сайте. bestcdn.com. Преимущество здесь состоит в том, что вместо 2 cname-запросов (задержка нескольких сообщений в загрузке контента) существует только одна, и есть только одна запись для обновления, если cdn изменяется. Если вы спросите о том, зачем использовать несколько URL-адресов cdn для одного и того же plce? Это трюк, иногда используемый для увеличения одновременной загрузки ресурсов. – KHobbits

1

Я думаю, что у вас неправильная информация. Amazon Route53 не разрешает A записей с субдоменами. Когда я пытаюсь установить его на имя домена я получаю сообщение об ошибке:

The record set could not be saved because: 
- The Value field contains invalid characters or is in an invalid format. 

A запись для IP-адрес.

+0

Thanks yegor256 для вашего ответа - однако вы должны попробовать следующее: Set Alias: Yes , который позволит использовать текстовое поле под названием «Alias ​​Target» .., в котором вы можете поместить субдомен .. Обычно я устанавливаю loadbalancer fqdn там. Так что я думаю, что мой вопрос довольно важен. – Scalable

+0

Псевдоним по-прежнему соответствует буквам 'A' или' CNAME' под обложками. Все, что они делают, - это разрешение DNS для других служб. – datasage

Смежные вопросы