On Aug 25, 2006, at 12:24 PM, Pat Lashley wrote:
I would be entirely happy if FreeBSD could do better than MacOS with regard to this matter, but my observation suggests that the dudes working on this at Apple have a working implementation which is becoming widely used in userland applications for things like printer discovery on unconfigured LANs, chat, music sharing on the LAN (via iTunes), and for which the potential problems involved with things like multihomed machines are somewhat well understood.

Apple's primary consumer base for Zeroconf systems doesn't normally have to deal with multi-homed systems; so it probably isn't much of a priority for them.

Um, Pat...?

All of the laptops Apple sells have ethernet & 802.11 wireless built in and thus are multihomed from day one; all of the desktop & Mac mini systems being sold are ethernet & wireless ready, and I gather that many systems are purchased with the wireless option. Also note that Apple is also shipping pretty much everything they sell with Firewire, which only Sony seems to do on the PC side.

They also need to maintain a higher level of easy configurability by non-technical users. FreeBSD's target user base leans towards the more technical and the more server-oriented.

Absolutely. LLA & mDNS are targetted for ad-hoc networks which are mostly or entirely unconfigured; FreeBSD's target user base tends to do things like setup servers with fixed IPs and configure networks via DHCP, setting up DNS zones, and so forth.

MacOS users have a much greater demand and use for LLA & mDNS than FreeBSD users do; after all, Apple has userland apps which take advantage of this functionality now.

I don't know any of the people working on Zeroconf at Apple; and have no idea how well they have investigated the issues surrounding multi-homed machines.

Read the first few lines of http://www.faqs.org/rfcs/rfc3927.html, or look at the end:

Authors' Addresses

   Stuart Cheshire
   Apple Computer, Inc.
   1 Infinite Loop
   Cupertino
   California 95014, USA

   Phone: +1 408 974 3207
   EMail: [EMAIL PROTECTED]
[ ... ]

That section covers the merging of two previously disjoint networks, agreed; for the case of connecting a multihomed host which is bridging them, this section is entirely relevant. Otherwise, LLA only deals with one collision domain (or link, etc) by definition, and one requirement which is relevant to a multihomed host is that it must ensure that the system assigns a different
LLA to each interface.

Yes, as you say, it is relevant if the host is bridging, but not if it is treating them as separate subnets. Which requires separate LLA negotiations; but I don't see where section 4 requires them to have separate IP addresses. (It's probably a good idea; but it doesn't seem to be required by section 4.)

It's not required in section 4; see section 3, particularly 3.4.

Multi-homed hosts are covered in section 3. Which is basically a discussion of some of the problems that are likely to be encountered; without mandating (or forbidding) any particular solution.

Section 3.4 does require separate LL Ip addresses IF the interfaces are on the same link. But, as they point out, the easiest method of avoiding auto-immune response is to run the algorithm separately for each interface. In which case no special action need be taken to determine whether they are on the same link, or to avoid requesting the same address; the normal LLA negotiation will ensure that one of them wins and the other picks another address.

This draft RFC doesn't actually specify that a system which has multiple interfaces participating in LLA to each be assigned unique IPs -- presumably because it recommends that hosts only use one interface for LLA, for example see section 2.6.1:

   A multi-homed host needs to select an outgoing interface whether or
   not the destination is an IPv4 Link-Local address.  Details of that
   process are beyond the scope of this specification.  After selecting
an interface, the multi-homed host should send packets involving IPv4
   Link-Local addresses as specified in this document, as if the
selected interface were the host's only interface. See Section 3 for
   further discussion of multi-homed hosts.

The probability that you will have the same LLA appear on two distinct subnets is a variant of the "birthday paradox"; there's a 10% chance of a collision with ~120 hosts, and a 50% chance of a collision with 300, assuming the code
copied below is right.

Not exactly. I think that that computes the probability that a newly attached host will pick an initial IP address that is already in use. To apply it to a pair of networks, you need to deal with how many hosts are on each network and the fact that within each network, the IPs are already guaranteed to be unique.

So, given two networks, one with N hosts, the other with M; for the first host in N, the chance of collision is M / 65024; for the second it is M / 65023; etc. (Each host in N reduces the available address space from which the other N-hosts may be chosen; it does not increase the number of hosts that they must be compared against.) The total probability is the sum of the probabilities for each of the N hosts.

Hmm, I think you've got a point-- certainly, having two networks starting with hosts guaranteed unique IPs reduces the chances of collisions when they merge, but you might very well be coalescing many disjoint networks rather than just two-- consider bringing up a new wireless basestation which links multiple smaller clouds of wireless clients, for example.

Regardless of the actual probability, dealing with IP collisions when using LLAs is a requirement, not something which can be passed off to be solved later.

--
-Chuck
_______________________________________________
freebsd-net@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to