it-roy-ru.com

Субдомен субдомена? Как это возможно?

Я видел субдомен субдомена: meta.unix.stackexchange.com
Как это возможно?

Потому что в провайдерах хостинга/DNS я могу настраивать только субдомены, а не субдомены субдоменов, т. Е. subdomain.example.com и ​​т.д.

Если я куплю доменное имя или даже бесплатный поддомен no-ip.org, т. Е. example.no-ip.org, смогу ли я настроить с помощью bind9 в Ubuntu, например, такую ​​схему: subsubdomain.example.no-ip.org

4
DiogoSaraiva

Это возможно точно так же, как возможно само unix.stackexchange.com. DNS не навязывает какую-либо определенную иерархию как "subdomain - domain - toplevel", вы можете добавить столько меток, сколько вам нужно, и добавить делегирование на любом уровне.

(Например, "www.theregister.co.uk". Является ли "theregister.co.uk" доменом или поддоменом? Это и то и другое. )

Другими словами, администраторы просто добавили meta.unix.stackexchange.com в свое программное обеспечение для управления DNS.

  • Например, в файле зоны BIND это может выглядеть так:

    ...
    unix.stackexchange.com.      A 198.252.206.140
    meta.unix.stackexchange.com. A 198.252.206.140
    ...
    

    (Это позволяет увидеть, что все уровни функционально эквивалентны.)

  • Или вот так:

    $Origin stackexchange.com.
    ...
    unix      A 198.252.206.140
    meta.unix A 198.252.206.140
    ...
    

Таким образом, есть вероятность, что ваша панель управления DNS также позволяет вводить "meta.unix" в качестве имени субдомена. Если это не так, это полностью искусственный лимит, установленный вашим хостом - сам DNS допускает 127 "уровней" (каждая отдельная метка длиной до 63 байт). Полное имя до 253 байт).

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


По тем же причинам вы сможете использовать bind9 (или nsd, djbdns ...) только с купленным доменом, а не с поддоменом No-IP.

  • Технически No-IP может делегировать поддомен вашему собственному серверу bind9 - это так же просто, как добавить записи NS-типа, как если бы вы добавили A/AAAA/CNAME те:

    foobar.no-ip.org.  NS ns1.fakeisp.com.
    foobar.no-ip.org.  NS ns2.fakeisp.com.
    

    (Примечание: да, записи NS принимают только имена, а не IP-адреса. По этой причине, если вы самостоятельно размещаете домен на своих собственных DNS-серверах, вам понадобится "склеенная запись":

    quux.no-ip.org.    NS ns.quux.no-ip.org.
    ns.quux.no-ip.org. A  172.16.42.42
    

    Но это тема для другого поста.)

  • Но на практике они не будут, по деловым причинам - они продают доменные имена, в конце концов.

6
grawity

Я видел поддомен субдомена: meta.unix.stackexchange.com

Это нормально, полное доменное имя (FQDN) может содержать большое количество элементов. Протокол DNS и большинство (вероятно, все) реализации DNS-сервера позволяют делегировать субдомены на произвольную глубину. Я думаю, пока вы не достигнете жесткого предела в 255 символов для длины полного доменного имени. каждый элемент должен быть не длиннее 63 символов.

Например, DNS позволит некоторым эксцентричным администраторам создавать

www.tablet-layout.windows.95.us.deleted.meta.unix.stackexchange.com

И до сих пор есть записи "А" на промежуточных уровнях.

Как это возможно?

Когда я запускал верхний уровень корпоративной службы DNS, я использовал для создания поддоменов делегирование поддоменов, часто другим серверам, но иногда тому же серверу имен, но с разделением данных поддоменов на отдельные файлы зон. Это было с помощью BIND.

Я бы никогда не мечтал об использовании точки в имени узла.

The following syntax will result in fewer problems with many applications 
that use domain names (e.g., mail, TELNET).

<domain> ::= <subdomain> | " "

<subdomain> ::= <label> | <subdomain> "." <label>

<label> ::= <letter> [ [ <ldh-str> ] <let-Dig> ]

<ldh-str> ::= <let-Dig-hyp> | <let-Dig-hyp> <ldh-str>

<let-Dig-hyp> ::= <let-Dig> | "-"

<let-Dig> ::= <letter> | <digit>

<letter> ::= any one of the 52 alphabetic characters A through Z 
             in upper case and a through z in lower case

<digit> ::= any one of the ten digits 0 through 9

Обратите внимание, что это не предусматривает точки в метках. Программное обеспечение, которое поддерживает это, вероятно, эффективно создает субдомены под капотом.


  1. DOMAIN NAME SPACE и РЕСУРСНЫЕ ЗАПИСИ

3.1. Спецификации и терминология пространства имен

Пространство доменных имен представляет собой древовидную структуру. Каждый узел и лист дерева соответствуют набору ресурсов (который может быть пустым). Система доменов не делает различий между использованием внутренних узлов и листьев , и в этом примечании термин "узел" используется для обозначения обоих.

Каждый узел имеет метку длиной от 0 до 63 октетов. Узлы-братья могут не иметь одинаковую метку, хотя одна и та же метка может использоваться для узлов, которые не являются братьями. Одна метка зарезервирована, и это пустая метка (т.е. нулевая длина), используемая для корня.

Увидеть

3
RedGrittyBrick