Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 17 Jul 2008 12:26:51 -0700
From:      Julian Elischer <julian@elischer.org>
To:        Ian Smith <smithi@nimnet.asn.au>
Cc:        FreeBSD Net <freebsd-net@freebsd.org>
Subject:   Re: Requesting comments on Multi-routing table usage
Message-ID:  <487F9CFB.2080901@elischer.org>
In-Reply-To: <487F9BED.90402@elischer.org>
References:  <Pine.BSF.3.96.1080718032300.7547C-100000@gaia.nimnet.asn.au> <487F9BED.90402@elischer.org>

next in thread | previous in thread | raw e-mail | index | archive | help
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   1.1.1.1 2.2.2.2
> gre1   3.3.3.3 2.2.2.2
> gre2   4.4.4.4 2.2.2.2
> 
> where in fib 0 the route to 2.2.2.2 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 2.2.2.2..
> 
> 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
affected.

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@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-net
> To unsubscribe, send any mail to "freebsd-net-unsubscribe@freebsd.org"




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?487F9CFB.2080901>