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

Как правильно настроить запись CNAME / A при указании на виртуальную машину Azure?

У меня есть веб-приложение, размещенное в Azure, которое дает мне «собственный» домен, awesomeapp.cloudapp.net, а в настройках я вижу IP-адрес: 123.456.789

У нас есть домен www.awesomeapp.com который указывает на целевую страницу, продвигающую компанию и службу приложения, и я настроил запись A следующим образом:

app.awesomeapp.com => 123.456.789

который отлично работает.

Проблема в том, что иногда нам нужно выключить виртуальную машину, и при повторном включении IP-адрес другой, поэтому запись A больше не работает. Действительно ли я установил такую ​​запись CNAME?

app.awesomeapp.com => awesomeapp.cloudapp.net

это решило бы проблему разных IP-адресов каждый раз, когда я включаю / выключаю машину. Это сработает? Это то, для чего используется CNAME? Это хорошая практика (с точки зрения производительности и безопасности?

Против CNAME:

Это (крошечное) снижение производительности, так как нисходящие кэши DNS должны выполнить 2 поиска DNS, один для CNAME и один для A-записи, на которую указывает CNAME. Расплывчатые, фальшивые аргументы в пользу того, что CNAME имеют меньше "полномочий" или проблем с совместимостью.

В пользу CNAME:

Они обеспечивают чистую абстракцию между оборудованием (физическими серверами) и службами. Они упрощают управление DNS - когда сервер перемещается, вам нужно изменить только одну запись. Попробовав несколько разных способов сделать это, у меня теперь есть личный любимый стиль. Это:

Одна запись A для каждого физического сервера; с довольно низким TTL (возможно, 30 минут); дать серверу понятное для человека имя. Один CNAME для каждой службы; с высоким TTL (возможно, 24 часа); указывая на указанные выше имена серверов. В качестве единственного исключения из приведенных выше правил корнем домена является A-запись, указывающая на веб-сервер / балансировщик веб-нагрузки. (@ Должен быть A-record.) Я считаю, что эта установка работает хорошо. Он запрещает дополнительные поиски DNS для CNAMES; и если сервер выйдет из строя, я все равно могу довольно быстро изменить общедоступный DNS.

Вот (импровизированный) пример синтаксиса BIND:

;name     ttl   class rr     value 
server01  30m   IN    A      192.168.0.3
server02  30m   IN    A      192.168.0.4

webmail   24h   IN    CNAME  server01
extranet  24h   IN    CNAME  server02
ftp       24h   IN    CNAME  server02

Использование CNAME - довольно стандартная практика для Azure именно по этой причине, это предотвратит проблему изменения IP-адреса.

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