[177] in linux-net channel archive
Re: Possible bug with ICMP redirects (in kernel 1.2.3)
daemon@ATHENA.MIT.EDU (Peter Belding)
Wed Apr 5 23:51:49 1995
Date: Wed, 5 Apr 1995 16:04:56 -0700 (PDT)
From: Peter Belding <pbelding@qualcomm.com>
To: Lutz Pressler <Lutz.Pressler@unix.med-stat.gwdg.de>
cc: linux-net@vger.rutgers.edu, Alan.Cox@linux.org,
linux-kernel@vger.rutgers.edu
In-Reply-To: <Pine.A32.3.91lp.950405193404.21658A-100000@amsu01.Med-Stat.gwdg.de>
On Wed, 5 Apr 1995, Lutz Pressler wrote:
> today I found out about what seems to be a bug in Linux sending ICMP
> redirect messages. The setup is as follws, a bit complicated:
>
> ppp1.subnet Linux 1.2.3, ppp-2.1.2b, dial-in modem(s)
> ppp2.subnet Linux 1.2.3, ppp-2.1.2b, dial-in modem(s)
>
> remote.subnet Linux 1.2.3, ppp-2.1.2b, modem, single host, sometimes
> connected to subnet by PPP via ppp1.subnet, sometimes
> via ppp2.subnet
>
> gateway.subnet Wellfleet Router "Backbone Concentrator Node", conects subnet
> to FDDI backbone etc.
>
> some.distant.host running icmplog and admin sending log entry to me..
> (thanks)
>
> ppp1 and ppp2 using ProxyARP instead of some routing protocol (which isn't
> feasable here) to ensure proper routing of incoming connections to remote.
> Practically this is working, but not as intended:
> The problem is, that gateway caches ARP table entries for quite a while.
> So when remote makes a PPP connection via ppp2 after doing so via ppp1
> some time before, gateway still sends incoming packets for remote to ppp1.
> ppp1 is forwarding these to ppp2, so practically everything is working
> as long as ppp1 is still up. BUT: as we found out today, ppp1 is sending
> ICMP redirect messages to some.distant.host! That's the (modified) log entry
> from some.distant.host:
>
> Apr 5 13:38:45 some.distant.host icmplog: [03866]: msg from
> ppp1.subnet [aa.bb.cc.dd], types=redirect, code=host,
> gateway=remote.subnet [qq.rr.ss.tt]
>
> I don't think, an ICMP redirect msg to a host many hops away is correct.
> Shouldn't ppp1 send an ICMP redirect to gateway instead, and gateway
> update it's ARP tables so further packets will go to ppp2 directly?
> (I don't know what the Wellfleet router would do concening it's ARP
> tables, because Linux doesn't seem to send redirects to it - instead
> to the source host)
ppp1 can't send the redirect to gateway because gateway's IP address is
not in the packet that triggered the redirect. However, I don't think
ppp1 should be sending an ICMP redirect at all. According to RFC 792, a
redirect is sent if the gateway and the source address are on the same
network, which is not true in this case. It looks like the Linux
networking code sends a redirect when a packet is forwarded out the same
interface it came in. Perhaps some additional checking should be done
before sending the redirect?
-Peter