Subject: Re: Unable to flush ICMP redirect routes in kernel 3.0+

From: Flavio Leitner <[email-masked]>
Date: Wed, 16 Nov 2011 22:33:30 -0200

On Thu, 17 Nov 2011 00:32:18 +0200
Ivan Zahariev <[email-masked]> wrote:

> On 11/15/2011 11:09 PM, Eric Dumazet wrote:
> > Le mardi 15 novembre 2011 à 22:23 +0200, Ivan Zahariev a écrit :
> >> Hello,
> >>
> >> We have changed nothing in our network infrastructure but only
> >> upgraded from Linux kernel 2.6.36.2 to 3.0.3. Here is the problem
> >> we are experiencing:
> >>
> >> ICMP redirected routes are cached forever, and they can be cleared
> >> only by a reboot.
> >> 
> ### (bug #1) even though we flushed the route cache, the <redirected> 
> route resurrects from somewhere; even without making any TCP requests
> ### this time what "ip" returns is consistent with the real
> (incorrect) routing behavior of machine5
> root@machine5:~# ip route flush cache
> root@machine5:~# ip route list cache match 8.8.4.4
> root@machine5:~# ip route get 8.8.4.4
> 8.8.4.4 via 192.168.0.120 dev eth0  src 192.168.0.244
>      cache <redirected>  ipid 0x303a
> 
> ### only a reboot clears the cached <redirected> routes

IIRC, the cache flush doesn't affect the inetpeer where the
redirected gateway is now stored, so even after flushing the
route cache, the inetpeer will restore the old info later.

fbl