Set the IPv4 TTL to 1?

Stuart Cheshire <[email protected]> Wed, 9 Feb 2005 10:41:09 -0800
Newsgroups gmane.ietf.zeroconf
Message-ID <[email protected]>
>Put the text back.   Deleting this was a decision the working
>group could have made when the document was under discussion, but
>there is no longer a working group to approve any change like this
>(and I kind of doubt it would have been approved anyway).

The working group did consider whether "Link-local sources should specify 
TTL=1", and the proposal was rejected 
<http://www.drizzle.com/~aboba/ZEROCONF/ll29.html>. I'm not sure how it 
found its way into the document.

If this is the only area of disagreement, then I'll compromise so we can 
move forward and publish the RFC, but reluctantly, because it's terrible 
terrible advice to have in the document. For the record, I should state 
why I think this:

* I already see far too many consumer devices that don't work beyond the 
local link, by design or by accident, and this advice risks encouraging 
more such devices.

* Is this "advice" actually part of the formal specification or not?
It doesn't say, "MUST", "SHOULD" or "MAY". Is an implementer required or 
expected to follow it, or not?

* One of the goals of IPv4LL was that it should be as much like normal IP 
as possible, so as to minimize any additional burden on application 
writers. This "advice" looks like it places an additional burden on 
application writers.

* You say that application code should only set the TTL when "sending 
from an IPv4 Link-Local address"? If you've ever tried it, you'll know 
that on a multi-homed host, determining in advance what address you're 
going to be sending from is very difficult from user-level code. Most 
application code that opens connections or sends UDP packets simply 
specifies the DNS name or destination address, and lets the kernel pick 
the interface and source address. Most application code that accepts 
connections simply binds to INADDR_ANY and lets the kernel handle the job 
of making sure the right source address is used when sending back the TCP 
ACKs.

* This "advice" creates gratuitous incompatibility with existing deployed 
devices that followed the instructions in earlier drafts to check that 
the TTL on received packets is 255.

With all that said, if this is the only point of disagreement, then I 
will accept it and we should publish the RFC.

Stuart Cheshire <[email protected]>
 * Wizard Without Portfolio, Apple Computer, Inc.
 * www.stuartcheshire.org