Опытные администраторы DNS, помогите мне понять ...
Я запускаю небольшой DNS-сервер в среде разработки, который выполняет разрешение не более 5 доменных имен одновременно. Мой вопрос проистекает из обсуждения здесь: Какая разница...
У меня такой вопрос:
Один ответ таков:
Другой ответ таков:
Я знаю, что любой из них будет работать, но принятые стандарты, основанные на RFC для DNS, заставляют меня думать, что мы должны использовать Cnames и A Names правильно и уместно. Правила можно нарушать, но какой смысл, если на них нельзя полагаться.
Пожалуйста, отвечайте на этот вопрос, только если у вас большой DNS-сервер или у вас есть опыт работы с ним. В противном случае не ожидайте ваше мнение изменить мое мнение. Мне сказали, что все дело в личных предпочтениях, и я бы хотел, чтобы все было иначе.
Простите меня, если вы считаете, что я повторяю очень старую мысль.
хорошо, ответ скрыт в вашем вопросе:
... небольшой DNS-сервер ... не более 5 доменных имен ...
... запросы будут ускорены за счет использования записей A Name ...
Обычно поиск DNS выполняется редко и в любом случае кешируется в приложении или в запрашивающей системе. Итак, этот аргумент «ускорения» является чисто гипотетическим.
Я использую достаточно большую инфраструктуру DNS, которая локально обслуживает несколько тысяч хостов с более чем 300 различными доменами.
Я свожу A-записи до минимума и использую CNAME, когда это возможно и когда это имеет логический смысл. Эмпирическое правило: запись только для основного интерфейса для узла, а также для того, который требует обратного разрешения для него. Все остальное (например, службы, запущенные на сервере) - это CNAME.
Причина отсутствия нескольких A также заключается в том, что вы ожидаете (хотя и не обязательно !!) наличия соответствующего PTR. Но вы не можете, если у вас всего 1 IP.
другими словами:
name1 IN A IP1
IP1 IN PTR arpa.name1
name2 IN CNAME name1
нормально, но
name1 IN A IP1
IP1 IN PTR arpa.name1
name2 IN A IP1
IP2 IN PTR arpa.name2
это не так (на самом деле, вы действительно не хотите иметь последнюю запись!)
но опять же, это действительно вопрос здравого смысла и предпочтений, жестких правил нет.
Есть A
запись для основного имени хоста (или «инфраструктуры») сервера.
Веб-сайты, размещенные на нем, должны затем использовать CNAME
записи, указывающие на это имя хоста.
Исключение составляют случаи, когда вам нужны "чистые" доменные имена (т.е. без www.
или аналогичный префикс) для работы. Правила DNS означают, что обычно нельзя использовать CNAME
для тех, что, к сожалению, означает, что эти записи должны быть A
записи вместо этого:
$ORIGIN example.net. ; host is in this domain
@ IN SOA ...
IN NS ...
server IN A 192.0.2.1
$ORIGIN example.com. ; website is in this domain
@ IN SOA ...
IN NS ...
IN A 192.0.2.1 ; can't be a CNAME - other RRs already here
www IN CNAME server.example.net.
Вам нужны учетные данные? Смотри мой профиль...
Я не уверен, каково ваше определение «большой» системы DNS. Я работал над одним из примерно 30 и одним из примерно 50.
Я бы сказал, что вы не можете точно ответить на этот вопрос для всех настроек. Ваш профиль производительности, ваши доступные ресурсы, частота, с которой вам нужно обновлять IP-адреса, и доступные вам инструменты будут влиять на это решение.
Например, администратор, пытающийся выжать из системы последние капли производительности, который редко меняет IP-адреса или имеет доступ к инструменту для простого внесения широких изменений, получит другой ответ от администратора, у которого производительность больше, чем времени. Количество управляемых IP-адресов и / или хост-машин может иметь значение. Потребности ваших клиентов могут иметь значение.
Лично я использую CNAME, когда задействовано всего несколько машин и большое количество доменов. Когда у меня относительно мало доменов на сервер, я предпочитаю записи A. Итак, несмотря на ваше предположение, что на него можно дать однозначный ответ, я думаю, что это сильно зависит от ситуации, ресурсов и (да) личных предпочтений.