Date: Fri, 27 Jul 2001 09:09:51 -0700 From: "Bulger, Tim" <TBulger@ea.com> To: "'zebra@zebra.org'" <zebra@zebra.org>, net@freebsd.org Subject: RE: [zebra 9666] Re: Linux/Ethernet interface status? Linux & BSD Message-ID: <FDEDA1BCEEBFD4118FFB00508BB1940B03419296@eahq-mb2>
next in thread | raw e-mail | index | archive | help
I agree completely re: Zebra being in control of the static route handling process. If it is capable of determining the interface status (kernel up/down is recognized), it can add or remove the static routes as necessary. If the kernel is aware of the interface status but continues to consider itself connected to that network (by maintaining the connected route in the table), there is no way to configure a backup route to that network using the very basic concept of networking that is routes with different metrics... As I said, for a workstation to maintain its routing table despite the interface status is great because without a routing daemon you don't have to directly manage it after a down/up event. For a router or a server that is employing routing for a backup solution, this is inadequate. An option in the kernel to allow this behavior would be ideal. (Sorry for the long, rambling email) Tim. -----Original Message----- From: Daniel C. Sobral [mailto:daniel.sobral@tcoip.com.br] Sent: Friday, July 27, 2001 4:09 AM To: zebra@zebra.org; net@freebsd.org Subject: [zebra 9666] Re: Linux/Ethernet interface status? Linux & BSD Bulger, Tim wrote: > Well, the verdict is in... FreeBSD does know the interface status (per > ifconfig), but neither the kernel nor zebra reacts to the cable being > pulled. This seems basically broken from a kernel perspective. It doesn't > make sense to retain connected and/or static routes in the routing table for > an interface that is down. If you have two static routes for the same > network with different metrics as a simple failover scheme, it will not work > on these systems because the route with the lower metric is never removed > from the table....... Perhaps this is OK from a workstation perspective, > but this is not suitable for a router. I will be investigating ways to work > around this problem without compromising sanity. The kernel _should not_ react in any such way. In first place, an "no route to host" error is a very different one from lost packets, so the kernel must not presume any knowledge of what you want. Second, if it deletes the static routes it will not know what these are when the interface conectivity is restored. A routing demon, such as Zebra, would be in a proper place to take decisions like this. This would be an ideal application for kqueue. Is there any kqueue events for interface status? -- Daniel C. Sobral (8-DCS) Daniel.Sobral@tcoip.com.br dcs@newsguy.com dcs@freebsd.org capo@notorious.bsdconspiracy.net Maybe Computer Science should be in the College of Theology. -- R. S. Barton To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-net" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?FDEDA1BCEEBFD4118FFB00508BB1940B03419296>