Hello.
I run kernel-2.4.18.
When kernel receives ICMP redirect message, only store ICMP redirect in the route cache,
not in the routeing tables.
I have a question.
Why doesn't kernel store ICMP redirect in the routing tables?
In kernel-2.4.18, when new route is added(or existed route is deleted)
and route become old, kernel flushs the route cache.
If kernel doesn't store ICMP redirect in the routing tables,
kernel will send packet to wrong gateway whenever flush the route cache.
Is it no matter that it generates ICMP redirect every time flush the route cache?
Please tell me why kernel has such a specification that doesn't store ICMP redirect
in the routing tables.
Regards.
-----
Takeshi Kodama
On Thu, 30 Jan 2003 14:36:30 +0900, Takeshi Kodama <[email protected]> said:
> Is it no matter that it generates ICMP redirect every time flush the route ca
che?
>
> Please tell me why kernel has such a specification that doesn't store ICMP re
direct
> in the routing tables.
This is intentional behavior. Otherwise, if it were entered into the routing
table, it would remain there essentially permanently (unless forced out by
a 'route -f' command or perhaps another ICMP redirect). In general, if
your default router is telling you to go someplace else, one of two situations
applies:
1) This is a temporary condition caused by a router flap, in which case we
should only cache it, so later we will re-learn a better path.
2) The router is trying to tell you that you should be fixing your routing
table, either by adding static routes or running a full routing protocol.
--
Valdis Kletnieks
Computer Systems Senior Engineer
Virginia Tech
On Thu, Jan 30, 2003 at 02:36:30PM +0900, Takeshi Kodama wrote:
> Hello.
>
> I run kernel-2.4.18.
> When kernel receives ICMP redirect message, only store ICMP redirect in the route cache,
> not in the routeing tables.
> I have a question.
>
> Why doesn't kernel store ICMP redirect in the routing tables?
>
> In kernel-2.4.18, when new route is added(or existed route is deleted)
> and route become old, kernel flushs the route cache.
> If kernel doesn't store ICMP redirect in the routing tables,
> kernel will send packet to wrong gateway whenever flush the route cache.
>
> Is it no matter that it generates ICMP redirect every time flush the route cache?
>
> Please tell me why kernel has such a specification that doesn't store ICMP redirect
> in the routing tables.
In your case, apparently the (static) routing info changes every now
and then, and you see the redirects getting flushed. In another case,
the "redirect" may become invalidated, and if the kernel would have
put the redirect into the routing table, the system would not
recover, and keep on sending packets to the wrong router.
Roger.
--
** [email protected] ** http://www.BitWizard.nl/ ** +31-15-2600998 **
*-- BitWizard writes Linux device drivers for any device you may have! --*
* The Worlds Ecosystem is a stable system. Stable systems may experience *
* excursions from the stable situation. We are currently in such an *
* excursion: The stable situation does not include humans. ***************