>The IESG has received a request from the DNS Extensions WG to consider >the following document: > >- 'Linklocal Multicast Name Resolution (LLMNR) ' > <draft-ietf-dnsext-mdns-42.txt> as a Proposed Standard > >The IESG plans to make a decision in the next few weeks, and solicits >final comments on this action. Please send any comments to the >iesg@ietf.org or ietf@ietf.org mailing lists by 2005-08-24.
My question about this document is one I've asked before in private; it's time now that it was asked publicly. What is this document for? No one has implemented this LLMNR protocol. No one has any plans to implement this protocol. No company plans to ship products using this protocol. Even Microsoft has not even hinted at plans to use LLMNR in Longhorn/Vista. All of Microsoft's hype in this area centers on a naming protocol they call Peer Name Resolution Protocol (PNRP). Noah Horton, Program Manager in charge of PNRP, says, "PNRP is in Windows Vista Beta 1. It is there and it is beautiful." <http://blogs.msdn.com/noahh/archive/2005/08/11/450535.aspx> I see no similar gossip surrounding LLMNR in Vista. In fact, a Google search for "LLMNR Windows Vista" finds just twelve hits. A typical burst of line noise finds more Google hits than that. Eleven of those hits are accidental -- copies of the IANA port number list. I found only one hit that looked like a plausible relevant match, but when I followed the link it was an article that begins: >Say "howdy" to Bonjour >Apple's zero-config scheme leaves Microsoft and UPnP in the dust <http://www.infoworld.com/article/05/06/03/23TCtigerSB_1.html> So, what's LLMNR for, if no one actually wants to implement it? I have my guess, but it's best explained by a brief bit of history: Back in 1997 I attended a presentation at Stanford about SLP. I was stunned by all the really obvious flaws it had. I wrote up a critique of SLP and suggested that Apple should just implement the tried-and-true AppleTalk Name Binding Protocol (NBP) running over IP Multicast. Partly as a result of that and other similar things, Apple later hired me. At an IETF social I discussed this idea of NBP/IP with Bill Woodcock. He said that the IETF would reject any attempt to mix an AppleTalk protocol with IP, but... if I could work out how to do the same thing using DNS packets, then that would be much more acceptable to the IETF community. It took me a little while, but I worked out how to encode the necessary semantics in terms of standard DNS records and queries. I proposed this idea, and was told I needed a working group. So, the Zeroconf working group was created. I proposed the idea again, and was told that it wasn't the charter of the Zeroconf working group; I'd have to take it to DNSEXT. I proposed the idea to DNSEXT and was told (and I quote): Multicast DNS... stupid idea. Zero Configuration... stupid idea. You all stupid people. You go away now please. (To be fair to the speaker, he was not a native English speaker. My attempt to say the same in Japanese would have been much less eloquent. And at least he was honest about his position on the subject.) So, the DNSEXT working group had made itself clear. They thought Multicast DNS and DNS Service Discovery were stupid ideas, and would play no part in doing anything that would help or encourage or facilitate their creation. So, I did go away. I designed the protocol, documented it in Internet Drafts, solicited feedback, implemented the protocol, and shipped it in a wide range of products. It's in Mac OS X 10.2, 10.3, and 10.4. It's in Bonjour for Windows. It's in Apple's AirPort base stations, and it's what lets them effortlessly share printers and stream music to your stereo. It runs on Linux, Solaris, FreeBSD, and pretty much every other Unix platform. Some Linux distributions already ship with it included. In addition to Apple's own Open Source implementation, there are several other competing Open Source implementations under various different licenses. There are implementations in Java and Python and C#. It's in your TiVos, your Axis network cameras, and Roku SoundBridges. It's in pretty much any recent network printer made by HP, Canon, Brother, Xerox, Lexmark, Epson (and probably other vendors I'm forgetting right now). It was in the printers being used in the IETF terminal room at IETF 63 in Paris, and if you work in any reasonably large organization that's bought a network printer in the last year or two then it's probably running on your network right now. If you only have Windows machines, then you're not out of luck -- you can discover those printers using Bonjour for Windows: <http://www.apple.com/bonjour/>. It is, though I say it myself, a huge success. What is DNSEXT's response to this? Well, it was clear that the original plan, ignoring mDNS and hoping it would die on its own, had failed. What they needed was an IETF antibody. A decoy. A honey pot. Something to go out and compete against mDNS in the marketplace of ideas. Something that would have the appearance of being the "official" successor to mDNS, a siren to lure potential implementers onto the rocks. Now, I can already hear a certain minority saying, "You've convinced me. LLMNR should be published as an IETF Standard. Apple's heresy must be stopped at any cost." The question for the wider IETF community is whether that's what the IETF wants to do. Is the role of the IETF to foster interoperability, or to sabotage it? Are Internet Standard RFCs supposed to be useful things to be implemented, or are they supposed to be traps to ensnare the uninformed? It reminds me of OSI. We had a perfectly good networking protocol -- TCP/IP -- so ISO decided they needed to make their own similar-but-not-quite-the-same protocol to compete with it, just for the sake of not wanting to adopt something invented elsewhere. ISO thought that because they were an "official standards body", whereas TCP/IP was just something that a bunch of guys had made that happened to work, that ISO could, by legislative fiat, oust the successful incumbent protocol. How many man-years of work were wasted by that abortive effort? Did OSI emerge from that debacle looking good, or looking bad? In fact, this comparison to OSI is overly generous. OSI was implemented and actually worked. It was just unnecessary. The problem with LLMNR is that it is deliberately limited to prevent it from being used for service discovery, which, you may recall, was the whole motivation for beginning this work in the first place. LLMNR is presented as being the "official" sanctioned successor to mDNS, as if it were somehow equivalent in functionality but better designed, while in fact it is so self-contradictory and nonsensical that it actually does nothing useful at all. Time and time again LLMNR has come up for last call. Each time I read it, and point out the fatal flaws and contradictions (that would have been painfully obvious to anyone had they actually tried to implement it). A few changes get made, and the document comes back around again. Piece by piece I'm designing a protocol for my competitors, so they can use it to compete with my own! If the proponents of LLMNR are sincerely supporting it because they believe it offers useful functionality (and I like to believe that's the case), then lets see some actual implementations. Whatever happened to "rough consensus and RUNNING CODE?" Once we have some actual implementations to try out, then we can compare them with mDNS and see what might be necessary (on both sides) to make them interoperate usefully. I'm quite happy for LLMNR to be a compatible subset of mDNS. What's silly is for LLMNR to be gratuitously incompatible for the sake of being incompatible. Bernard Aboba has an FAQ Web site where he writes: <http://www.drizzle.com/~aboba/DNSEXT/llmnrfaq.html> > Apple's mDNS protocol differs from LLMNR (and DNS) in more than > half a dozen ways. He then goes on to list a bunch of similarities like "Apple's mDNS does not share the DNS cache", and finishes with: > Apple mDNS and LLMNR use different ports, as well as different > multicast addresses, and because of the many protocol > differences, do not interoperate. Isn't that circular logic? They use different ports and multicast addresses because they're incompatible, but the main reason they're incompatible is because they use different ports and multicast addresses? Surely that particular incompatibility could be remedied easily, merely by NOT choosing to use a different port and multicast address? Stuart Cheshire <[EMAIL PROTECTED]> * Wizard Without Portfolio, Apple Computer, Inc. * www.stuartcheshire.org _______________________________________________ Ietf mailing list Ietf@ietf.org https://www1.ietf.org/mailman/listinfo/ietf