However, this says a TTL of 254 will be accepted. Now the fact that I can talk to boxes running a slightly older IOS with a TTL of 0 without any problems suggests to me that emitting packets with a TTL of 255 on router A and accepting packets with a TTL of 254 on router B allows for the presence of a router C in the middle. That can't be good.
I suspect they set the limit to 254 because they expected to decrement the TTL on ingress (or that the box sending the packets would decrement on send). You have an interesting point WRT the TTL 0. Perhaps if you receive a packet with a TTL of 0 that is destined for yourself you should just accept it? It is not clear to me exactly when you "have" to throw away the packet (on ingress/themiddle/egress). I believe it is valid to accept a packet that is destined for yourself with a TTL of zero. Since I have observed that packets received from some types of routers have their TTL set to 255 (on upon reaching the receiving device route processor) I would have to assume that the TTL is not being decremented for route processor packets. Of course I was only playing with one router and it may be vendor dependant (the vendor was not Cisco). I am not sure that 254 is a good maximum number. Perhaps someone "in the know" can enlighten all of us as to why they chose to stop at 254 instead of 255. Regards, Blaine