Я пережил Документы 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
записи там.