IP forwarding and ICMP redirects

Marc Roger (Marc.Roger@belnet.be)
Fri, 12 Apr 1996 16:47:55 +0200 (MET DST)


ICMP redirects are ignored (intentionnaly) when IP_FORWARD has been compiled in:

/usr/src/linux-1.3.85/net/ipv4/icmp.c:
* 3.2.2.2 (Redirect)
* Host SHOULD NOT send ICMP_REDIRECTs. (OK)
* MUST update routing table in response to host or network redirects.
* (host OK, network NOT YET) [Intentionally -- AC]
* SHOULD drop redirects if they're not from directly connected gateway
* (OK -- we drop it if it's not from our old gateway, which is close
* enough)
(...)
#ifdef CONFIG_IP_FORWARD
/*
* We are a router. Routers should not respond to ICMP_REDIRECT messages.
*/
printk(KERN_INFO "icmp: ICMP redirect from %s on %s ignored.\n", in_ntoa(source), dev->name);
#else
switch(icmph->code & 7)
{
case ICMP_REDIR_NET:
(...)

What if I have the following topology:

----- ----- -----
| A | | B | | C |
-+--- --+-- --+--
| | |
-----+------------+---------------------+-------+------
|
--+--
| D |
--+--
|
------------------+-------------------------------------

A, B (def. gw), C being routers, and D being a Linux router and terminal server.
Assuming thta A,B,C and D don't run a routing protocol, doesn't D need both
IP_forwarding and ICMP redirects processing for optimal use ?

-- 
Marc Roger