Определение Полного доменного имени

8

Я попытался найти в Интернете определение полного доменного имени. Википедия говорит, полное доменное имя

указывает его точное местоположение в древовидной иерархии системы доменных имен (DNS). Я бы сказал, что это однозначно разрешимо (в DNS).

В примере на WP (хотя я не хочу использовать это в качестве ссылки) говорится об использовании hostname.example.com.

RFC, которые я обнаружил ( RFC 1035 был единственным, не относящимся к протоколу, который я обнаружил), не были информативными в отношении того, что соответствует FQDN.

Я думал, что только такой идентификатор, как hostname.example.com, является действительным полным доменным именем (включая все имя хоста, домен и TLD в отдельности), но это, похоже, неверно.
Необходимо ли, чтобы полное доменное имя всегда включало имя хоста рядом с доменом, даже если домен состоит только из одного хоста? Или единственное определение, что полное доменное имя должно быть разрешено через DNS? Например, домен .tk однозначно разрешим, это полное доменное имя?

sebix
источник
Я считаю , это интересный вопрос, но если вы планируете на него ответить, пожалуйста , обратите внимание , что я много предпочитаю видеть ответы, на которые ссылается. Если вы не Пол Викси, меня не очень интересует простое изложение вашего мнения по этому вопросу.
MadHatter
2
Ну, я думаю, что я Пол Викси, поэтому я постараюсь ответить на это ниже.
Пол Викси

Ответы:

6

Я бы посчитал имя полностью квалифицированным, если вам не нужно добавлять какие-либо дополнительные идентификаторы, чтобы однозначно разрешить хост. Если это не так, то имя будет считаться относительным.

RFC1535 обсуждает важный момент:

Абсолютное «корневое» полное доменное имя имеет формат {имя} {.} Не «корневое» доменное имя имеет формат {имя}

В приведенном выше примере вы бы решили, .tkчто tk.это однозначно. Интересно, что это действительно имеет действительную запись.

$ dig tk.
; <<>> DiG 9.8.3-P1 <<>> tk.
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 812
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;tk.                IN  A

;; ANSWER SECTION:
tk.         20  IN  A   217.119.57.22

РЕДАКТИРОВАТЬ: RFC1535 имеет еще одну интересную цитату:

Далее, в любом случае, где "." существует в указанном имени, его следует считать полностью определенным доменным именем (FQDN), и СЛЕДУЕТ сначала использовать его как корневое имя.

GeekyDeaks
источник
4

В очереди ACM я определил полное доменное имя следующим образом:

Пространство имен DNS имеет древовидную структуру, где у каждого узла есть родитель, кроме корневого узла, который является его собственным родителем. Узлы имеют метки длиной от 1 до 63 символов, за исключением корневого узла, метка которого пуста. Домен - это узел в контексте, и полное доменное имя имеет форму представления, которая представляет собой просто имена узлов снизу вверх, за каждым из которых следует точка (.). Например, www.google.com - это полное имя узла, имя которого - www, чей родитель - google, дедушка - com, а прадедушка - root DNS.

Каждый раз, когда вы используете такие термины, как «имя хоста» или «часть хоста» или «часть домена», вы отключаетесь от сорняков и обнаруживаете, что ни одно определение FQDN не соответствует вашим целям. Смысл, а не определение FQDN можно прояснить, рассмотрев его антоним: неполное доменное имя. Быть полностью квалифицированным означает, что вы указываете все доменные метки до верхнего уровня, и в этом случае вы можете добавить последнюю точку (.), Чтобы указать, что вы сделали это. Быть менее квалифицированным означает, что имя, на которое вы смотрите, имеет смысл только в контексте списка поиска или домена по умолчанию.

RFC 1535 был интересен, потому что многие из нас до этого времени использовали локальные имена с несколькими метками и все еще ожидали поведения в списке поиска - и это сломало слишком много других вещей, поэтому было объявлено вне закона. Но когда я был postmaster@dec.com в 1988-1993 годах, можно было отправлять почту с vixie@cognition.pa на matt @ decvax и расширять его до vixie@cognition.pa.dec.com и matt@decvax.dec .com и все это просто работает. Оказалось, мы должны были отказаться от этого. В наши дни, если в имени уровня презентации есть точка (то есть вы набрали ее или программа отобразила ее), все программное обеспечение в мире считается полным доменным именем.

В моей книге Sendmail (в соавторстве с Фредом Аволио после того, как мы оба покинули DEC.COM) также есть глава на эту тему, которую интересно читать, поскольку она была написана в то же время, что и RFC 1535.

Пол Викси
источник
0

Мои 2 цента:

В самом строгом смысле полное доменное имя - это то, что вы написали в своем примере.

то есть hostname.example.com.

в том числе точка в конце.

Я не думаю, что это должно быть разрешено через DNS, это просто синтаксическое определение.

Адитья К
источник