Subject: Re: LL21 vs LL29

From: Robert Elz <[email-masked]>
Date: Sun, 02 Mar 2003 20:07:46 +0700

Date:        Fri, 28 Feb 2003 16:00:06 -0500
    From:        John Schnizlein <[email-masked]>
    Message-ID:  <[email-masked]>

  | My concern regards legacy routers that proxy for all addresses
  | outside the subnet for which the interface is configured.

A router that does that wouldn't allow LL addresses to be configured
on a node in the first place.   It would reply to the ARP probe
requests, and effectively mark all addresses as "taken".

The situation where proxy-arp can hurt, is where a router just proxy-arps
for some addresses (not including the LL block) and a node sends from
its LL address to something, and the proxy-arp causes the packet to go
to such a router, and then get forwarded.

That one can happen - but isn't going to happen very often, and does
essentially no harm if it does happen to occur.

  | While I would prefer that hosts get reasonable parameters for
  | configuration of a default gateway, I consider it rude to cause
  | these old network configurations that used to be causing no
  | trouble to start spewing LL traffic out into the Internet.

Yes - but once noticed, even an ancient router (or something between
it and the internet) can be configured to block such traffic.

  | Expecting the people who have this old configuration to change
  | it to "protect the Internet from trash" coming from their subnets
  | is not reasonable.

Why?   They do that to protect the internet from lots of other trash.
Or they don't, and the internet survives anyway.

  | Does using TTL=1, which rather blatantly declares "no forwarding"
  | on link-local traffic have any down side, after adjusted as
  | Christian proposed for applications that "know better"?

It adds unnecessary noise to the spec, and an extra complication for
some implementations (which have to meddle in a different part of the
IP code, depending upon which addresses happen to be used).

The reason I said that I could live with Christian's version of LL29,
is that from the outside, you can't tell whether the stack is setting
TTL=30 or whether the application using the stack is telling the stack
to set TTL=30 - which essentially means that a stack can just ignore the
"set TTL=1" by claiming that the application has always told it to use
some other TTL - which it could even reasonably do, just by documenting
some different default TTL for applications that don't do the appropriate
magic to set a specific TTL (so all applications which don't explicitly
ask are assumed to be requesting the documented default).   So, that
statement of the requirement is very weak, and not a lot different from
LL21.   I'd still prefer to me more honest, and just adopt LL21 though.
I don't see any significant harm that it will do.

kre