Requesting comments on Multi-routing table usage

Julian Elischer julian at
Thu Jul 17 19:29:51 UTC 2008

Julian Elischer wrote:
> Ian Smith wrote:
>> On Thu, 17 Jul 2008, Julian Elischer wrote:
>>  > The current code in -current will add a new interface to all
>>  > FIBs.
>> Consider yanking/reinserting cardbus NICs as one source of fun.
>>  > So for example when you add a gre interface irt shows up everywhere.
>>  >  > This behaviour is probbaly correct for the base NICs on the 
>> system  > when you boot, but it is probably wrong in other cases.
>>  >
>>  > For example, when mpd makes tunnels it probably
>>  > (but not always) wants to add that set of routes into one
>>  > FIB. Similarly for other apps that can create tunnels.
>>  >  > What is needed is a way to allow the caller to somehow
>>  > specify the behaviour wanted whenever new interfaces are added.
>>  >  > various things crossed my minds..
>> I'm of two minds myself .. but you seem to have lots more :)
>>  > -------------
>>  > Maybe real hardware shoudl go everywhere and virtual should go to
>>  > the FIB of the creator
>>  >  > Maybe P2P interfaces should not go everywhere.
>>  >  > Maybe a sysctl can be used to 'flip' teh mode from "everywhere"
>>  > to "specific fib" after boot has completed. (I have code for this 
>> but  > it's not the perfect solution).
>> Yes in addition to 'setfib N command' it would be likely useful to have
>> a more global 'setfibto' type command, so you could run whole scripts or
>> shells in a known fib context, to which scripts etc could be oblivious?
> that's already possible with setfib..
> setfib N sh script is going to do that..
> The issue I have is with the routes that are added to routing tables
> when an interface is added.. It's a specific instance that is tricky
> because it's a side effect rather than a directly requested action.
> what some people have asked to do is have multiple tunnels to the same 
> place but have different routing tables specify different tunnels to get 
> to that place..
> e.g.
> gre0
> gre1
> gre2
> where in fib 0 the route to is via gre0
> and in fib1 it is via gre1
> and in fib2 it is via gre2
> then you can use setfib in ipfw and pf to use different tunnels to get
> selected traffic to
> This is what is being asked for, but you can only add the
> interfaces like that if ifconfig only effects differnet FIBS for each
> interface.

hmmm that makes me think that maybe an ifconfig command to associate
a FIB with an interface might do the trick...
if it's not associated with a FIB it get to all of them, but if
you have previously associated it wit a FIB, then only that FIB is

That may just be a good enough answer.

>> Tuning by sysctl/s would seem most useful, at least for development?
>>  > Maybe ifconfig can set a new flag somewhere somehow.
>>  >  > Maybe a process can set a flag for itself saying what its mode is..
>>  > ----------
>>  >  >  > The trouble is that there is not an "always correct" answer.
>>  > some people may want to see a tunnel turn up on all FIBs
>>  > and others may not.
>> It's the options that drive ya crazy .. but being able to set/tune the
>> forwarding context - one fib, all fibs, or a set of fibs? - may allow
>> flexibility in view of the large set of maybes you (so far) mentioned.
>> Just some popcorn from the peanut gallery ..
>> cheers, Ian
> _______________________________________________
> freebsd-net at mailing list
> To unsubscribe, send any mail to "freebsd-net-unsubscribe at"

More information about the freebsd-net mailing list