Как создать CNAME для корневого имени домена


12

Я хотел бы установить корневое имя домена в CNAME вместо обычной записи А.

Вот прекрасный пример того, что я пытаюсь сделать:

dig lrnskls.com

Обратите внимание на раздел ответа:

;; ANSWER SECTION:

lrnskls.com.            300     IN      CNAME   partner.adjix.com.

partner.adjix.com.      300     IN      A       67.121.212.61

Причина, по которой я пытаюсь это сделать, заключается в том, чтобы я мог указать корневое имя домена через псевдоним CNAME для Amazon S3. Использование записи A не работает, потому что IP-адреса S3 меняются каждые несколько минут в целях балансировки нагрузки.

PS - Это кажется законным в разделе 3.6.2 RFC 1034 (обратите внимание на пример USC-ISIC.ARPA): http://www.faqs.org/rfcs/rfc1034.html


2
Хорошая мысль о том, что это выглядит законно, в соответствии с примером в разделе 3.6.2. RFC1034 относится к 1987 году и должен читаться с учетом современных потребностей. Некоторые люди / многие люди считают его незаконным в современном контексте, см. Serverfault.com/questions/55528/… . ИМХО лучше всего ошибиться на стороне предостережения, то есть не пытайтесь выдвинуть DNS, используя конфигурацию, которую некоторые DNS-серверы могут отклонить.
Джеспер М

2
@jesper - пример RFC 1034 не имеет значения. Он показывает CNAME как отдельную запись. Делегированный домен .com должен иметь запись SOA и записи NS. Конфигурация lrnskls.com технически недопустима.
Альнитак,

Вы должны исправить свою терминологию, «корневое имя» не является общим термином для того, что вы описываете (которое, по-видимому, является именем вершины вашей зоны).
bortzmeyer

Ответы:


14

Amazon знает о проблеме с корневыми доменами и Elastic Load Balancer. Они рекомендуют этот обходной путь:

  • Настройте корневой домен для службы, которая перенаправляет mydomain.com на www.mydomain.com (или любой другой поддомен по вашему выбору)
  • Настройте запись CNAME, которая отображает DNS-имя балансировщика нагрузки на «www.mydomain.com».

Мне не нравится это решение, но оно более "чистое", чем решение "принудительно установить корневой домен в CNAME".

ОБНОВЛЕНИЕ: Amazon теперь решает эту проблему для ELB / S3 через записи ALIAS, функцию DNS Route53.


5
+1 за указание на совместимый способ сделать это. Чтобы перефразировать это решение (см. Также связанный ответ Amazon): Вы делаете правильную запись A для корневого домена с допустимым SOA. Эта запись A указывает на стороннюю службу, с которой вы заключили договор на отправку перенаправлений HTTP уровня 301/302 на www.mydomain.com.
Джеспер М

@JesperMortensen Можете ли вы порекомендовать некоторых подрядчиков, которые делают такие перенаправления? Действительно раздражает, что мои пользователи заходят на mycompany.com и видят только рекламу моего поставщика доменных имен. A recordуказывает на IP-адрес, и я определенно не собираюсь покупать статический IP только для этой цели.
foresightyj

10

Нет, это не законно. CNAMEне разрешено сосуществовать с другими записями, и вам нужно, по крайней мере, SOAздесь.

Пример не доказывает обратного, поскольку он не подразумевает наличие каких-либо других записей там.


Итак, суть моего вопроса в том, как мне это сделать? Как настроить корневое имя домена как CNAME, а не как запись A? Пример "dig lrnskls.com" работает именно так, как я ожидал. Или я что-то упустил, это пример копания?

Вы можете поместить это точно так, как это сделано для lrnskls.com- просто поместите CNAMEзапись там, но это незаконно, чтобы не иметь SOA;-)
Майкл Крелин - хакер

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

Есть легальный способ иметь хост, как s3stuff.example.comюридически указывать на S3.
Майкл Крелин - хакер

3
Действительно, правильное решение состоит в том, чтобы делегировать example.com НЕ и убедить реестр .COM, Verisign, добавить CNAME в зону .COM ... Технически обоснованно, но Verisign и ICANN, безусловно, найдут нетехнические причины, чтобы отказаться от него. ,
bortzmeyer

2

Но мой DNS-сервер не позволяет этого; ни идет DNS-менеджер GoDaddy. Итак, я собираюсь сделать именно то, что сделал владелец lrnskls.com. Кто-нибудь знает, как он это сделал?

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

Смотрите также: - Root Cname - WHM? - Установите запись корневого домена, чтобы быть CNAME


Это был 1and1 согласно этому вопросу serverfault.com/questions/55528/…
hdanniel

1

Если вы используете DNS-серверы Amazon Route 53, он достигнет того, чего вы хотите.

Мне было любопытно: RFC запрещает использование CNAME в апексах. Какова техническая причина этого (при условии, что это не произвольно).


1
CNAME переопределяет все остальные записи. Поэтому невозможно создать допустимую зону, где у апекса есть CNAME, поскольку он также переопределяет SOA.
Майкл Хэмптон
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.