FreeBSD & FIBs (setfib) - How to modify?

Mel Flynn mel.flynn+fbsd.questions at
Thu Jul 16 18:00:21 UTC 2009

On Thursday 16 July 2009 09:47:11 Nikos Vassiliadis wrote:
> Brent Bloxam wrote:
> > Nikos Vassiliadis wrote:
> >> Brent Bloxam wrote:
> >>> The documentation on FIBs is pretty slim unless I've been looking in
> >>> the wrong places, all I've seen are a few mentions in errata and
> >>> release notes. setfib(1) doesn't offer much in the way of associated
> >>> commands, and definitely doesn't explain how to actually work with a
> >>> FIB. I'm curious if there's a command to specifically modify a FIB
> >>> beyond 0, besides something like
> >>>
> >>> setfib 1 route add ...
> >>
> >> setfib selects the routing table for locally originated
> >> outgoing packets. Besides locally originated packets, there
> >> are packets arriving from the network and need to be forwarded.
> >> These packets can be classified in a specific routing table
> >> with the aid of ipfw. That's all there is. I can't think
> >> of something else that needs to be thought with regard to
> >> multiple routing tables.
> >>
> >> HTH, Nikos
> >
> > Sorry, perhaps I wasn't clear. What I'm interested in is if there's a
> > way to deal with *modifying* those other routing tables, besides using
> > setfib as I described (e.g., you want to have a different default
> > gateway). There would be no reason to have multiple routing tables if
> > they're carbon copies of one another.
> setfib has no internal commands. setfib runs the command you tell it
> to in a specific routing table. You modify/inspect the routing tables
> with the standard tools, that is route, netstat, some dynamic routing
> daemon(quagga, etc) and in general everything that's related to the
> routing table.
> Just start a shell in FIB 10 and every command forked from
> that shell will be bound to FIB 10.
> setfib 10 csh
> ... do some work
> exit
> you're back in FIB 0.

I guess the main question here is "what is 10?" or what is an FIB?. How does 
one create such an FIB id (which I can't find in docs either). For example, on 
my system if I do:
% setfib 2 fetch
setfib: 2: invalid FIB (max 0)

I would expect to see some info in

Naturally there's some info here:

but that doesn't have any practical information on how to create one.

More information about the freebsd-questions mailing list