BVLog Bryan Voss’ mental synchronization point


diff ‘Linux traceroute’ ‘Windows tracert’

A coworker and I were trying to debug a remote connectivity issue between a Windows box connected via a Juniper SSL VPN to a RHEL box. We were able to do a tracert from a Windows box through the Juniper, but a traceroute under Linux would not work. We checked for iptables rules, routing, etc. to no avail.

I vaguely remembered something about a difference between Windows and Linux/UNIX traceroute. Something about one using ICMP and the other using UDP. I finally found in the traceroute man page: "-I Use ICMP ECHO instead of UDP datagrams." I slapped a -I argument in there and traceroute began to work.

My coworker said, "Well, I guess we just have to remember that Linux traceroute is buggy." Grrr. I said, "Or maybe it's Windows traceroute that's buggy and non-standard. [thoughtful pause] Although it does seem like ICMP would be the protocol to use for traceroute."

We talked about reading the RFCs for an answer, then shrugged and went on with our duties. It would be nice to be able to argue that one implementation of traceroute more closely adheres to the RFCs than another. Honestly though, outside the two of us having the discussion, there's probably nobody else in the office that even knows what an RFC is.

Comments (0) Trackbacks (0)

No comments yet.

Leave a comment

No trackbacks yet.