Subject: Re: WG action: 1 week to discuss LL18: Host

From: Bernard Aboba <[email-masked]>
Date: Sat, 6 Sep 2003 07:12:01 -0700 (PDT)

I'd suggest that perhaps the multi-homing issue should be explicitly
addressed in the paragraph.  For example:

"If the host has no appropriate routable source address, but is not
multi-homed, then it SHOULD ARP for the destination address and then send
its packet, with a link-local source IP address and a routable destination
IP address, directly to the destination on the same physical link."

---

From: Robert Elz <[email-masked]>
Date: Sat, 06 Sep 2003 22:08:04 +0700

Date:        Sat, 6 Sep 2003 07:12:01 -0700 (PDT)
    From:        Bernard Aboba <[email-masked]>
    Message-ID:  <[email-masked]>

  | I'd suggest that perhaps the multi-homing issue should be explicitly
  | addressed in the paragraph.  For example:

I think I agree with that, but I don't think I'd do it this way...

  | "If the host has no appropriate routable source address, but is not
  | multi-homed, then it SHOULD ARP for the destination address and then send
  | its packet, with a link-local source IP address and a routable destination
  | IP address, directly to the destination on the same physical link."

Rather, I think I'd say something like

	A multi-homed host needs to select an outgoing interface.
	Details of that process are beyond the scope of this specification.
	After selecting an interface, the multi-homed host should send
	packets involving link-local addresses as specified in this
	document, as if the selected interface were the host's only interface.

Otherwise, there's no mention at all of what multi-homed hosts should do
(not even that the doc isn't giving any advice) - they're simply being
excluded.

How a multi-homed host picks which interface to use is (for now) someone
else's problem - but having selected interface N, if it has just LL
addresses to use, then it should (SHOULD/MUST as determined) be doing the
same ARP for any random unknown destination as it would were it a singly
homed host.

Note that the above says absolutely nothing about how the interface should
be selected, nor what information the host can use to make that selection,
nor in which order anything is done - it doesn't even preclude sending an
ARP out every interface and picking one from which a reply is received.

kre

---

From: Mika Liljeberg <[email-masked]>
Date: Sat, 06 Sep 2003 18:58:59 +0300

> 	document, as if the selected interface were the host's only interface.

I agree. In fact, I would like to see something along these lines as
close to the top as possible. The fact that the specification doesn't
properly consider multihoming should be made clear from the beginning.
That should save implementors some considerable anxiety.

	MikaL

---

From: "Philip Nye" <[email-masked]>
Date: Sat, 6 Sep 2003 20:47:47 +0100

> From: "Mika Liljeberg" <[email-masked]>

Here is an attempt to remove some of the ambiguity and be more explicit
about the multi-homing issues.

Replace all of section 2.6.2 with:

2.6.2.  Forwarding Rules

If a host is multihomed, then it must first determine which interface to use
to send any packet, whether or not the destination is a Link-local address.
This specification does not define how this decision is made.  Rather, the
issues are explained and advice is given on how to address known problems
(see Section 3).

Whichever interface is used, if the destination address is in the 169.254/16
prefix (including the 169.254.255.255 broadcast address), then the sender
MUST ARP for the destination address and then send its packet directly to
the destination on the same physical link.  This MUST be done whether the
interface is configured with a Link-local or a routable IPv4 address.

In many network stacks, achieving this functionality may be as simple as
adding a routing table entry indicating that 169.254/16 is directly
reachable on the local link.

The host MUST NOT send a packet with a Link-Local IPv4 destination
address to any router for forwarding.

If the destination address is a unicast address outside the 169.254/16
prefix, then the host SHOULD use an appropriate routable IPv4 source
address, if it can. If for any reason the host chooses to send the packet
with a Link-Local source address (e.g. no routable address is available on
the selected interface), then it MUST ARP for the destination address and
then send its packet, with a Link-Local IPv4 source address and a routable
destination IPv4 address, directly to its destination on the same physical
link. The host MUST NOT send the packet to any router for forwarding.

Note that the option of dropping the packet is covered by the host not
"choosing to send the packet..." and therefore the MUST is appropriate.

Philip

---

From: Bernard Aboba <[email-masked]>
Date: Sat, 6 Sep 2003 19:55:28 -0700 (PDT)

The first paragraph of Philip's suggested 2.6.2 overlaps with the last
paragraph of 2.6.1.  This suggests combining them.  How about this?

2.6.1 Source Address Usage

Since each interface on a host may have a Link-Local IPv4 address in
addition to zero or more other addresses configured by other means
(e.g. manually or via a DHCP server), a host may have to make a
choice about what source address to use when it sends a packet or
initiates a TCP connection.

The host SHOULD use a routable address in preference to a Link-Local
IPv4 address except for communication to peers for which the host has an
existing TCP connection at the time in which the host obtained a
routable address configuration.  For more details, see Section 1.7.

If a host is multihomed, it must first determine which interface
to use to send any packet, whether or not the destination is a
Link-Local address.   For a multi-homed host, the decision as to which
source address to use is also more difficult.  This specification does not
define how these decisions are made.  Rather the issues are explained and
advice is given on how to address known problems (see Section 3).

2.6.2 Forwarding Rules

Whichever interface is used, if the destination address is in the
169.254/16 prefix (including the 169.254.255.255 broadcast address), then
the sender MUST ARP for the destination address and then send its packet
directly to the destination on the same physical link.  This MUST be done
whether the interface is configured with a Link-local or a routable IPv4
address.