I have written a program to send ICMP redirect message to a
linux2.2.12 host to change its route to a destination. It works for
both UDP and ICMP packets- I tested it using traceroute and tftp and
both traffics went through the new route. But for TCP connections, such
as Telnet and Ftp, even if I started them after sending out redirect
message, them still stick to the default route.
I also tested it on a Linux2.0.36 host. The TCP packets went
through the new route as they are supposed to be.
So I have 2 questions:
1. The routing should be resolved at IP level. My experience on
linux2.2.12 seems conflict with the principle. So what's the reason.
2. Since Linux2.0.36 works fine. I wonder what's the difference
between the two versions on routing implementation.
I can not find any docs on the issue. So I raised my question here
before I delve into the codes. Thanks a lot!
Liang
|