Re: [mdnsext] Hierarchical (host) domain names in mDNS?

Andrew Sullivan <> Tue, 16 July 2013 13:57 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id B3C4F21F9D4F for <>; Tue, 16 Jul 2013 06:57:28 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -0.772
X-Spam-Status: No, score=-0.772 tagged_above=-999 required=5 tests=[AWL=0.068, BAYES_00=-2.599, HELO_MISMATCH_INFO=1.448, HOST_MISMATCH_NET=0.311]
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id e3neo9e+O8uQ for <>; Tue, 16 Jul 2013 06:57:22 -0700 (PDT)
Received: from ( []) by (Postfix) with ESMTP id 3C11621F9D45 for <>; Tue, 16 Jul 2013 06:57:21 -0700 (PDT)
Received: from ( []) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPSA id D689B8A031 for <>; Tue, 16 Jul 2013 13:57:19 +0000 (UTC)
Date: Tue, 16 Jul 2013 09:57:18 -0400
From: Andrew Sullivan <>
Message-ID: <>
References: <>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <>
User-Agent: Mutt/1.5.21 (2010-09-15)
Subject: Re: [mdnsext] Hierarchical (host) domain names in mDNS?
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: "Discussion of extensions to Bonjour \(mDNS and DNS-SD\) for routed networks." <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Tue, 16 Jul 2013 13:57:32 -0000

On Tue, Jul 16, 2013 at 11:32:52AM +0000, Albrecht, Harald wrote:
> Hello,
> something I couldn't find a proper answer to I would like to ask the mDNS experts on this list: is it possible to apply mDNS also to situations where the decentralized, configuration-free operation of mDNS is required but where the individual hosts within the same network need to make use of hierarchical domain names? Such as "controller.machine2.local"?


The mDNS specification is in RFC 6762.  Right at the beginning, it
says, "To remedy this problem, this document allows any computer user
to elect to give their computers link-local Multicast DNS host names
of the form: "single-dns-label.local.".  Note the "single-dns-label".
(It's actually not a DNS label, either, actually, but never mind that.)

Unfortunately, you can't do what you want.  

It seems that the environment you need is much more amenable to
traditinal DNS use.  That's probably not the answer you want, but I
think it's likely true.  This isn't too surprising.  You can't really
have an unmanaged namespace that is also managed, which is sort of
what you seem to want.

One thing you could do is use some sort of trickery to make your
labels flat, like service1_machine1.local, service2_machine1.local,
service1_machine2.local, and so on.  This is slightly hideous because
there's no convenient way to split up the service name from the
machine name (one of the distinct advantages of te DNS is this
hierarchical name space).  But you could generate such labels
programmatically, I think.

Better, I suspect, would be to create a mechanism for registering
names of the services and machines in a local registry.  Your
configuration would need to be just a little bit smarter, from the
sounds of things, but it would allow you to create a self-contained
system that allowed these machines to co-operate.  You could trivially
set up a DNS zone with one name per customer, so that you shipped a
box with,, and so on, with
the machines to be configured.  That's in effect your "router" (you
could do this on any of the standard user-programmable wireless
gateways derived from the WRT-style products).  Then you could even
charge for so-called "vanity" service if there was a customer that
already had a corporate domain name and wanted to include that
instead.  (Or just make it a user-configurable option at install time,
&c. &c.)



Andrew Sullivan