On Mon, May 30, 2016 at 10:03:33PM -0700, Randy Bush wrote:
.-----------------. | | | B |--------- D S ---------| A R | | C |--------- (toward S) | | `-----------------'
if the source of a traceroute from S toward D with TTL to expire on R, and R's FIB wants to exit via C to get back to S (yes, virginia, the internet is highly asymmetric), the source address of the time exceeded message should be C.
of course, simpletons such as i would desire the source of the time exceeded message to be A. after all, this is the interface to which i sent the icmp with the TTL to expire.
is anyone seeing the dreaded rfc1812 behavior in a citable fashion? how common is it?
On most Linux the default behaviour is using source address "C", but this can be corrected by setting the following somewhere in your /etc/sysctl.d/ files: # make traceroute nice net.ipv4.icmp_errors_use_inbound_ifaddr=1 Kind regards, Job