Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 6 Nov 1995 20:14:55 +0100 (MET)
From:      guido@gvr.win.tue.nl (Guido van Rooij)
To:        jmb@kryten.Atinc.COM (Jonathan M. Bresler)
Cc:        hackers@freebsd.org
Subject:   Re: [Q] Traceroute and source routing
Message-ID:  <199511061914.UAA24264@gvr.win.tue.nl>
In-Reply-To: <Pine.3.89.9511042018.X1620-0100000@kryten.atinc.com> from "Jonathan M. Bresler" at Nov 4, 95 08:40:16 pm

next in thread | previous in thread | raw e-mail | index | archive | help
> 	so...i want a source route option on traceroute.
> 
> 	suggestions ??    pointers ??   code ??  
> 

It is in the Stevens book:
ftp://ftp.uu.net:/published/books/setevens.tcpipv1.tar.gz

-Guido

But beware:

*****	SOURCE ROUTING LIMITATION:  The traceroute.lsrr.c program only
works for me under SunOS 4.1.x and vanilla SVR4.  It *does not* work under
BSD/386, 4.4BSD, or Solaris 2.x.  The reason is as follows: traceroute
sets the source route correctly using the IP_OPTIONS socket option and
then sets the IP_HDRINCL socket option to allow it to pass a complete IP
header (with its desired value of the TTL).  But newer systems do not
insert the IP options specified by IP_OPTIONS if IP_HDRINCL is also set
(for a SOCK_RAW Internet socket), meaning the source route option is never
used by the kernel!  The only way around this appears to be for traceroute
itself to set the correct source route options in the IP header, before
doing the sendto(), essentially emulating what the kernel does when it
inserts IP options prior to output.  This is nontrivial and I haven't
tried to do it.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199511061914.UAA24264>