I've stumbled across something that looks like a bug in the IP stack in linux relating to source routing. I have 3 machines here, two linux machines A and B and a BSD machine C. I have forwarding and source routing options turned on in all three (in linux, find /proc/sys -name '*source*' |xargs cat shows all files have a one in them). All three machines are on the same wire and can freely communicate with each other. There is no packet filtering enabled. Using the netcat utility I run tests from machine A: $ nc -g B C 3333 I see packets forwarded to B then on to C and the connection completes successfully. $ nc -g A -g B C 3333 I see packets forwarded over lo to A, and no further packets are sent over lo or eth0. Machines B and C receive no packets. $ nc -g B A 3333 I see packets forwarded out over eth0 to B and then back to A but machine A never seems to accept the packets or reply with a SYN or RST. Similar tests from machine C work properly: $ nc -g B A 3333 $ nc -g C -g B A 3333 $ nc -g B C 3333 and in fact I can bring up an alias interface C2 on C that is nonroutable and reach the other machines with it: $ nc -s C2 -g C -g B A 3333 It seems that source routing forwarding over eth0 is working on my linux box (B), but is not working properly over lo on my other linux box (A). Further it seems that machine A cannot communicate with itself using a source route (although C is happy to do so). What gives? Networking bug? Am I missing a configuration option in /proc? Tim Newsham http://www.lava.net/~newsham/ - : send the line "unsubscribe linux-net" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html