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>