Date: Tue, 29 Apr 2008 11:51:00 -0700 From: "Kevin Oberman" <oberman@es.net> To: Julian Elischer <julian@elischer.org> Cc: FreeBSD Net <freebsd-net@freebsd.org> Subject: Re: multiple routing tables review patch ready for simple testing. Message-ID: <20080429185100.57C2445010@ptavv.es.net> In-Reply-To: Your message of "Tue, 29 Apr 2008 00:44:18 PDT." <4816D1D2.7010603@elischer.org>
next in thread | previous in thread | raw e-mail | index | archive | help
--==_Exmh_1209495060_21728P Content-Type: text/plain; charset=us-ascii Content-Disposition: inline > Date: Tue, 29 Apr 2008 00:44:18 -0700 > From: Julian Elischer <julian@elischer.org> > Sender: owner-freebsd-net@freebsd.org > > The patch can be found at > http://www.freebsd.org/~julian/mrt.diff > (or http://www.freebsd.org/~julian/mrt6.diff for RELENG_6) > > or source can be taken from perforce at: > //depot/user/julian/routing/src > > a kernel needs to be created with the option ROUTETABLES=N > > e.g. > +options ROUTETABLES=2 # max 16. 1 is back > compatible. > > leaving this out will result in just a single routing table as per normal. > > the max is 16 but I have an artificial (even lower) at 8 but that may > be gone by the time people try it :-) > > I ws informed early in this project that kernel routing tables should > now be refered to as FIBs (forwarding Information base?). > > the new command "setfib" sets teh default fib for a process and all its > decendents I have been working with big routers in my day job for years and it's really frustrating to not have this sort of capability when I work with FreeBSD, but I don't expect a general purpose OS to ever have the routing capabilities of a dedicated router. I think this will really, really be nice for my needs, though. As terminology goes, I think you have it slightly off. Modern routers have two "classes" of tables to move packets between interfaces: the RIB Routing information base) and the FIB (Forwarding Information Base). A router has multiple RIBs, usually one for each network layer protocol (IPv4 and IPv6, both unicast and multicast) and added RIBs for policy based routes. They may be further broken up by the protocol used to populate the table (BGP, OSPF, ISIS, MPLS, static, connected, ...) The RIBs exports data, as needed to a single FIB which is used by the ASICs (hardware forwarding engines) to do the actual forwarding of the packets. In a real router, the forwarding of almost all packets is done in hardware with no real involvement by the processor that determines the routes. (N.B. This is a gross simplification of what modern routers do or can do, but I don't want to send a book to the list.) A general purpose OS is a different beast as it has no physical equivalent of the FIB. It may have multiple routing tables, though, to I think setrib would be a term less likely to cause confusion then setfib even though, in the case of your FreeBSD patches, it's really both. -- R. Kevin Oberman, Network Engineer Energy Sciences Network (ESnet) Ernest O. Lawrence Berkeley National Laboratory (Berkeley Lab) E-mail: oberman@es.net Phone: +1 510 486-8634 Key fingerprint:059B 2DDF 031C 9BA3 14A4 EADA 927D EBB3 987B 3751 --==_Exmh_1209495060_21728P Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.9 (FreeBSD) Comment: Exmh version 2.5 06/03/2002 iD8DBQFIF24Ukn3rs5h7N1ERAhXmAJwPmPNlxZ/EHRu7rPuf/xalhFI6HQCeMePV fNU7NH6CZqIG4fSGfWI5Nb0= =6VQ+ -----END PGP SIGNATURE----- --==_Exmh_1209495060_21728P--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20080429185100.57C2445010>