Использование CNAME для указания другого домена для сохранения IP-адресов

39

У меня есть один сервер, на котором я размещаю несколько сайтов.

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

Но если я захочу изменить сервер в будущем, мне придется вернуться и обновить каждый IP-адрес в каждой записи DNS.

Можно ли использовать запись CNAME в каждом домене, чтобы указывать на другой домен, которым я управляю напрямую?

Это так, чтобы я мог обновить IP-адрес в 1 месте самостоятельно, и не нужно было заставлять всех этих других провайдеров DNS обновлять свои записи отдельно?

ошеломляет
источник

Ответы:

25

В этом суть CNAME. CNAME не нужно указывать на DNS в той же зоне, он может указывать на любое DNS-имя, зарегистрированное на любом сервере имен.

Для ваших клиентов это означает дополнительный поиск DNS на NS для другого хоста, но это крошечная цена, которую приходится платить за большинство веб-сайтов в Интернете.

Марк Хендерсон
источник
обычно это рекурсивный сервер, который выполняет этот дополнительный поиск, а не преобразователь заглушки в клиенте.
Альнитак,
27

Согласно ответу Farseeker, да, это (вроде) то CNAME, для чего нужны записи.

Однако, хотя вы можете использовать это, чтобы указать www.example.netна него www.example.com, вы не можете использовать его, чтобы указать example.netсамостоятельно (то есть без wwwпрефикса) на что-то другое.

Это связано с тем, что example.netтакже должны иметь SOAзапись и NSзаписи, а в DNS не разрешено иметь CNAMEподарок в той же части дерева, что и любые другие записи (за исключением ключей DNSSEC).

Описанный выше термин «сортировка» объясняется тем, что, строго говоря, CNAMEзапись вводит «левую часть» в качестве псевдонима для цели CNAMEзаписи, где эта цель фактически является «каноническим именем».

Следовательно, если вы видите, например:

www.example.net IN CNAME www.example.com.

Это не говорит о том, что его www.example.netследует «перенаправить» www.example.com, это говорит о том, что www.example.netэто другое название www.example.com .

Альнитак
источник
2
"example.net также должен иметь запись SOA". Некоторые люди обманывают: посмотрите на lrnskls.com.
Борцмейер
Это неприятный хак, и у них будет огромная проблема, если они захотят, чтобы DNSSEC подписал его.
Альнитак,
5
+1 это хороший момент и один из самых больших недостатков (и причина, по которой ни один из моих сайтов не может использоваться без www, так как этим доменам также нужна запись MX, запрещающая это).
Оскар Дюверборн
3

Да, это возможно.

Именно так я делаю свои экспериментальные веб-серверы, которые также имеют динамические IP-адреса (хотя редко меняются).

Оскар Дювеборн
источник
0

Мне придется вернуться обновлять каждый IP-адрес в каждой записи DNS.

Что ж, CNAME - это действительно возможное решение (см. Ответ Альнитака для ограничения CNAME), но есть и другое: вместо того, чтобы вручную управлять файлами зон, создайте программу из десяти строк (Perl / Python / Ruby / cpp / m4). / что угодно), которое сгенерирует файлы зон из мастера (текстовый файл, файл XML, СУБД, что угодно)

Таким образом, ваш IP-адрес может быть только в одном месте. Когда это изменится, просто перезапустите программу.

bortzmeyer
источник