Subject: Re: [RFC] ipv4: add link_filter sysctl

From: Stephen Hemminger <[email-masked]>
Date: Wed, 18 Mar 2009 19:42:39 -0700

On Wed, 18 Mar 2009 18:21:15 -0700 (PDT)
David Miller <[email-masked]> wrote:

> From: Stephen Hemminger <[email-masked]>
> Date: Fri, 13 Mar 2009 16:12:53 -0700
> 
> > Add a new parameter that controls how kernel responds to packets
> > when interface is down. This is done to solve the problem of:
> > 
> > Assume topology of:
> >       A <----------->       Router             X--- down link
> >  10.1.1.2/24       10.1.1.1/24    10.2.1.1/24 
> >                      eth0          eth1
> > 
> > If A pings 10.2.1.1 then with normal Linux semantics Router would
> > respond even if eth1 link on 10.2.1.1 was down. This causes some network
> > management tools (that work with other router OS's) to falsely
> > report that link is okay.
> > 
> > The problem is that a Linux router does not respond the way
> > other systems do. This is the router equivalent of "Strong ES"
> > model, it is not the same as "Strong ES" as defined in Host
> > Requirements.
> > 
> > The new parameter adds an additional check on slow input packet
> > path, and causes route cache flush if enabled and carrier is
> > lost.
> > 
> > Signed-off-by: Stephen Hemminger <[email-masked]>
> 
> There is nothing "router" about this situation.
> 
> When 10.2.1.1 is being pinged, it is in the role of an end-system in
> that transaction.
> 
> The "router" is reachable by "A", and as a consequence so is that IP
> address 10.2.1.1, and therefore the ping should succeed.

Unfortunately, network management tools expect routers to behave this
way: WWCD