From owner-freebsd-net@FreeBSD.ORG Tue Apr 29 18:57:32 2008 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6C5C5106566C for ; Tue, 29 Apr 2008 18:57:32 +0000 (UTC) (envelope-from julian@elischer.org) Received: from outL.internet-mail-service.net (outl.internet-mail-service.net [216.240.47.235]) by mx1.freebsd.org (Postfix) with ESMTP id 519F18FC16 for ; Tue, 29 Apr 2008 18:57:32 +0000 (UTC) (envelope-from julian@elischer.org) Received: from mx0.idiom.com (HELO idiom.com) (216.240.32.160) by out.internet-mail-service.net (qpsmtpd/0.40) with ESMTP; Tue, 29 Apr 2008 17:13:20 -0700 Received: from julian-mac.elischer.org (localhost [127.0.0.1]) by idiom.com (Postfix) with ESMTP id AB85A2D6012; Tue, 29 Apr 2008 11:57:31 -0700 (PDT) Message-ID: <48176F9D.9010908@elischer.org> Date: Tue, 29 Apr 2008 11:57:33 -0700 From: Julian Elischer User-Agent: Thunderbird 2.0.0.12 (Macintosh/20080213) MIME-Version: 1.0 To: Max Laier References: <48134DDE.9010306@elischer.org> <48175B91.1010202@gtcomm.net> <481766A2.7040809@elischer.org> <200804292043.22572.max@love2party.net> In-Reply-To: <200804292043.22572.max@love2party.net> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: freebsd-net@freebsd.org, "Wilkinson, Alex" , Paul Subject: Re: Multiple routing tables in action... X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Apr 2008 18:57:32 -0000 Max Laier wrote: > On Tuesday 29 April 2008 20:19:14 Julian Elischer wrote: >> Paul wrote: >>> I've been waiting for something like this. Linux has done policy >>> routing for many many years and is very good at it. I prefer to use >>> FreeBSD for routing though and this is a feature I have been waiting >>> for :) Mainly to use with BGP , having multiple BGP routing tables. >>> I would like it to be similar to Cisco's VRF or Juniper's routing >>> instance, but maybe that's asking too much. We use it on our >>> hardware routers for implementations such as having multiple bgp >>> route tables and having customer bandwidth pricing change based on >>> which routing table their traffic gets , say.. value customers, >>> premium customers, customers who want only certain carriers in their >>> bandwidth mix, etc. Would be fun to have support for FBSD with >>> quagga/openbgpd etc.. and be able to use dscp for marking or any >>> other policy based rule (source ip for instance). >>> >>> Thanks Julian.. This is a step forward in the right direction :) >> The interaction with routing daemons is something I don't know >> enough about. I need someone who knows routing daemons to tell >> how to correctly tweek code that sends routing events. >> >> I think it is possible that events from a particular FIB should only >> be reported to routing sockets that are associated with that FIB. >> but I'm not sure about this. >> >> This would mean running a separate instance of the routing daemon for >> each FIB (VRF?). Does this sound right to people? > > OpenBSD "added"[1] a field to the rt_msghdr to indicate/select the > source/destination table. If we were to do the same at least OpenBGPB > should work with fairly minimal changes. I would like someone who knows routing daemons to add this or tell me what needs to be done. > > I think it's a sensible approach, too. A routing daemon wouldn't have to > select over a dozen sockets to do what is needed and it will be much > easier as well. If easily done, a way to "bind" a route socket to a > table id would also be nice as it would easily make things work with > multi table oblivious daemons. I already have a socket option that works on routing sockets to bind them to a FIB. and /usr/bin/setfib can be used to make a fib-unaware process bind by default to a set fib. e.g. setfib -2 routed [args] > >