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>