Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 8 Sep 2004 15:06:48 +0200
From:      Thomas Quinot <thomas@FreeBSD.ORG>
To:        Ruslan Ermilov <ru@freebsd.org>
Cc:        freebsd-bugs@FreeBSD.org
Subject:   Re: kern/71474: route lookup does not skip interfaces marked down
Message-ID:  <20040908130648.GA22578@melusine.cuivre.fr.eu.org>
In-Reply-To: <200409081250.i88CoPBQ086191@freefall.freebsd.org>
References:  <200409081250.i88CoPBQ086191@freefall.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
* Ruslan Ermilov, 2004-09-08 :

>  > ifconfig I1 192.168.0.1 netmask 255.255.255.0
>  > ifconfig I1 down
>  > ifconfig I2 192.168.0.2 netmask 255.255.255.0
>  > route add default 192.168.0.254
>  > 
>  > The default route will be set to 192.168.0.254 on I1, not on I2 as
>  > expected.
>  > 
>  It's still a misconfiguration -- if you do not bring the I1 interface
>  down, the "interface" route for I2 will not be installed, and the
>  ifconfig(8) command will be aborted.  Anyway...

I am not sure I get what you mean. The point of this PR is that I *do*
bring I1 down, that the kernel has an unambiguous indication of how to
reach the specified gateway ('ping 192.168.0.254' works in the example
described above), and in spite of that the wrong interface is selected
when creating a route.

>  I reproduced this with two ng_eiface(4) nodes.  There's still a useful
>  option in the route(8) utility -- you can supply an explicit reference
>  to the interface, like this:
>  : route add default 192.168.0.254 -ifp I1

Right, I was not aware of that option.

>  This is also vaguely documented in the route(8) manpage, FWIW:

*Vaguely* is the right term I think. :-)

Having browsed through the code, I think the interface lookup for route
additions should use a modified version of ifa_ifwithaddr ignoring
non-up interfaces.

Thomas.

-- 
    Thomas.Quinot@Cuivre.FR.EU.ORG



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20040908130648.GA22578>