Hi,

 This is a followup for Debian bug <http://bugs.debian.org/393711>.

On Tue, Oct 17, 2006, Lennart Poettering wrote:
> Sure, the line upstream recommends has also one disadvantage, which is
> that it is inherently incompatible with unicast DNS domains called
> .local. But that's the way mDNS has been designed, and is a simple fact
> that has to be dealt with administratively and not through applying
> ugly kludges to upstream's clean code.

 My understanding of the problem so far is that it would be best if we
 could have mdns be authoritative, but some sites are incompatible with
 such a change.  The authority would cover:
 - direct lookups in .local domain,
 - reverse lookups on IPv4 169.254.0.0/16 block,
 - reverse lookups on IPv6 fe80::/16 block.

 I propose the following on first installation, or on upgrade from prior
 versions:
 1) run a suite of tests to see whether the .local domain or the above
    IPv4 blocks are in active;
 2) have an override over the result of this suite to permit explicitely
    disabling or enabling mDNS;
 3) enforce the configuration by either sweeping all mdns entries from
    nsswitch.conf or by adding the relevant ones.

 Part 1) would typically be implemented in maintainer scripts or a
 separate shell script and could use:
 - /etc/hosts, "hostname --fqdn", reverse lookups of some particular
   hosts (such as default gateway), or "route" or "iptables -L" output,
   "dig -t NS local" on the resolv.conf nameservers: check whether the
   domain .local is in use on this network
 - "route" output, arp cache, conntracking table, "iptables -L" output:
   check whether subnet 169.254.0.0/16 is in use.

 I'm less sure about checking for fe80::/16; first I think IPv6 is less
 common, so the intersection with sites using .local becomes smaller;
 second, I fear that the route output always show fe80:: as it is used
 for link-local addresses (anyone please correct me).

 Perhaps it makes sense to run such a test suite on IPv4 and IPv6
 separately, in order to turn on mDNS for one or the other or both (or
 to leave it off).

 Part 2) could typically be a /etc/default/libmdns file with
 MDNS_BACKWARD_COMPATIBILITY=0 or 1.  In the abscence of this file,
 cached debconf responses would be used, and in the abscence of these,
 the default value would be computed with the test suite, and if debconf
 is at low priority, the user would get a debconf screen to override the
 guess.

 Part 3) could typically be offered by an "enable-mdns" script or
 similar, as I believe is nowadays found under Ubuntu to enable mDNS.
 This script would simply enforce whatever /etc/default/libmdns has, or
 follow command line options.  This script could also serve as a
 lower-level "force turning off mDNS" or "force turning on mDNS"
 administrative tool.
   This script could also be called for part 1), this would permit
 re-running the auto-detection.

 Obvious problem of the proposal: roaming users with laptops.  These
 people should decide to either use .local for mDNS or for one of their
 site.


 Please comment on the above proposal, especially on whether it
 completely solves the backward compatibility problem.  Technical
 suggestions for the implementation are of course welcome as well.


 I'm not committing to the implementation of the above.  :-P

   Bye,
-- 
Loïc Minier <[EMAIL PROTECTED]>
        10 SIN
        20 GO TO ROBOT HELL             -- Temple of Robotology

Reply via email to