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

Зачем использовать CNAME в комбинации Route 53 + S3

Я пережил Документы Amazon об использовании Route 53 в сочетании с S3 для обслуживания статических веб-сайтов.

Стратегия, которую они показывают, заключается в следующем:

example.com A -> alias to s3-website-eu-west-1.amazonaws.com (example.com bucket)
www.example.com CNAME -> www.example.com.s3-website-eu-west-1.amazonaws.com

example.com bucket настроен на размещение статического контента, и www.example.com ведро настроено на постоянное перенаправление на example.com.

Это нормально, и это работает, но поскольку я пытаюсь подробно изучить и понять, как работает DNS, я не понимаю, почему они просто не делают:

example.com A -> alias to s3-website-eu-west-1.amazonaws.com (example.com bucket)
www.example.com A -> alias to s3-website-eu-west-1.amazonaws.com (www.example.com bucket)

Разве это не помогло бы сократить один дополнительный шаг разрешения DNS (A искать www.example.com.s3-website-eu-west-1.amazonaws.com)?

Есть ли здесь какие-либо преимущества от использования CNAME, учитывая, что Route 53 имеет возможность создавать псевдонимы непосредственно для сегментов?

Чтобы было ясно, использование CNAME работает, но я пытаюсь академически понять, почему они не предлагают использовать псевдоним A.

Я не знаю, что такое Amazon, но там, в документе, говорится о записи псевдонима и записи CNAME. оба одинаковы. CNAME сопоставляет полное доменное имя с другим полным доменным именем. Для меня это определение псевдонима (другое название того же самого). Запись A отображается только на адрес IPv4 (см. RFC1035)

обратите внимание, что www.example.com и example.com - это два разных FQDN, и априори нет причин, по которым они сопоставляются с одним и тем же IP-адресом (адресами). (например, fdn.fr не имеет записи A или CNAME, тогда как www.fdn.fr имеет CNAME) этот сложный материал требуется только «если вы хотите обслуживать контент из корневого домена». таким образом, и example.com, и www.example.com должны соответствовать одному и тому же IP-адресу (а). Удобный способ сделать это - настроить один (например, example.com) по желанию и поместить запись CNAME для другого (www.example.com IN CNAME example.com).

Чтобы увидеть, что они настраивают для вас, попробуйте разрешить свое доменное имя (как корневую зону - example.com - так и так называемый псевдоним --www.example.com--) с помощью соответствующих инструментов (dig или nslookup):

dig +trace www.example.com any
dig +trace example.com any

Я не знаю эквивалента nslookup (поскольку использую dig)

Я думаю, что для понимания того, как работает сам DNS, важно отметить, что такого понятия не существует. Псевдоним запись, которую они рекомендуют для example.com, это полностью функция Route53, где они негласно разрешают указанное имя и предоставляют стандартное A запись в DNS (какой бы тип записи вы ни выбрали при ее создании, но в их примере это A запись).

Почему они решили не рекомендовать Псевдоним особенность для www.example.com также не совсем очевидно. Может быть, у них просто меньше накладных расходов, если вы используете обычную статическую запись? Может быть, они считают обычную статическую запись более надежной? Может быть, есть другие записи, кроме A в www.example.com.s3-website-eu-west-1.amazonaws.com которые в идеале должны существовать, но они не считают, что могут попросить вас добавить один за другим в качестве псевдонимов (CNAME делает имя псевдонимом другого имени, независимо от типа запрошенной записи)?

Напротив, используя CNAME Однако в обоих случаях это не вариант. Так как CNAME записи не могут сосуществовать с другими данными, невозможно иметь CNAME в вершине зоны, так как всегда есть не менее SOA и NS записи там.