multiple routing tables review patch ready for simple testing.

Kevin Oberman oberman at es.net
Wed Apr 30 16:18:59 UTC 2008


> Date: Tue, 29 Apr 2008 12:17:15 -0700
> From: Julian Elischer <julian at elischer.org>
> Sender: owner-freebsd-net at freebsd.org
> 
> Kevin Oberman wrote:
> >> Date: Tue, 29 Apr 2008 00:44:18 -0700
> >> From: Julian Elischer <julian at elischer.org>
> >> Sender: owner-freebsd-net at 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.
> 
> The way I see it the routing daemons (e.g. quagga) have the RIBS
> and the kernel has FIBS because it doesn't really know the big picture.
> 
> If we need to change the terminology now is the time..
> I asked for comments on terminology before and this is what we
> came up with.. but once it gets committed.... it gets set in stone.

On further review, I agree with you. The table in the kernel really is a
FIB (or a logical equivalent), and not really a RIB, so I withdraw any
objection to setfib.
-- 
R. Kevin Oberman, Network Engineer
Energy Sciences Network (ESnet)
Ernest O. Lawrence Berkeley National Laboratory (Berkeley Lab)
E-mail: oberman at es.net			Phone: +1 510 486-8634
Key fingerprint:059B 2DDF 031C 9BA3 14A4  EADA 927D EBB3 987B 3751
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 224 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-net/attachments/20080430/e938a425/attachment.pgp


More information about the freebsd-net mailing list