7

I saw a subdomain of a subdomain:  meta.unix.stackexchange.com
How is it possible?

Because in hosting/dns providers I only can configure subdomains, not subdomains of subdomains, i.e.: subdomain.example.com, etc...

If I buy a domain name or even a free no-ip.org subdomain i.e.: example.no-ip.org will I be able to configure with bind9 in Ubuntu per example this scheme: subsubdomain.example.no-ip.org

0

2 Answers 2

8

It's possible exactly the same way that unix.stackexchange.com itself is possible. DNS does not impose any specific hierarchy, like "subdomain – domain – toplevel", you can add as many labels as you need, and add delegations at any level.

(Take "www.theregister.co.uk" for example. Is "theregister.co.uk" a domain or a subdomain? It's both.)

In other words, the administrators just added "meta.unix.stackexchange.com" to their DNS management software.

  • For example, in a BIND zone file it might look like this:

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

    (This lets you see that all levels are functionally equivalent.)

  • Or like this:

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

So there's a chance that your DNS control panel also allows entering "meta.unix" as a subdomain name. If it doesn't, that's a completely artificial limit decided by your host – DNS itself allows 127 total "levels" (each individual label up to 63 bytes, the complete name up to 253 bytes).

For example, No-IP might have such a limit for marketing/business reasons (to make you buy an actual domain instead of freely creating subdomains off the shared ones.)


For similar reasons, you'll only be able to use bind9 (or nsd, djbdns...) with a purchased domain, not with a No-IP subdomain.

  • Technically, No-IP could delegate a subdomain to your own bind9 server – it's as simple as adding NS-type records like you would add A/AAAA/CNAME ones:

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

    (Side note: Yes, NS records only accept names, not IP addresses. For this reason, if you self-host the domain on your own DNS servers, you would need a "glue record":

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

    But that's a topic for another post.)

  • But in practice, they won't, for business reasons – they do sell domain names, after all.

3

I saw a subdomain of a subdomain: meta.unix.stackexchange.com

That is normal, a fully qualified domain name (FQDN) can have a large number of elements. The DNS protocol and most (probably all) DNS server implementations allow you to delegate subdomains to arbitrary depth. I think until you hit the 255-character hard limit on the length of a FQDN. each element must be no more than 63 characters long.

For example DNS would let some eccentric admin create

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

And still have "A" records at intermediate levels.

How is it possible?

The way I used to create subdomains when I ran the top level of a corporate DNS service was to delegate subdomains, often to other servers but sometimes to the same nameserver but keeping the subdomain data separated into distinct zonefiles. This was using BIND.

I would never have dreamed of using a dot in a node name.

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

Note that this does not provide for dots in labels. Software that supports this is probably effectively creating subdomains under the hood.


  1. DOMAIN NAME SPACE and RESOURCE RECORDS

3.1. Name space specifications and terminology

The domain name space is a tree structure. Each node and leaf on the tree corresponds to a resource set (which may be empty). The domain system makes no distinctions between the uses of the interior nodes and leaves, and this memo uses the term "node" to refer to both.

Each node has a label, which is zero to 63 octets in length. Brother nodes may not have the same label, although the same label can be used for nodes which are not brothers. One label is reserved, and that is the null (i.e., zero length) label used for the root.

See

1
  • 3
    I was so used to delegating zones to far-flung outposts of the empire that I would have naturally just used the same technique for any local names of that type. Plus I would have have been careful to follow the guidance in the RFCs rather than use features that might conceivably be not well supported in a multinational, os-agnostic, multi-vendor, open-systems corporation with 300000 employees in 70 countries many of whose DNS admins I had to converse with over the phone despite language issues and with whom I would therefore prefer to keep things simple and regular. YMMV! Commented Feb 24, 2015 at 14:41

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.