multiple routing tables review patch ready for simple testing.
Bakul Shah
bakul at bitblocks.com
Wed Apr 30 17:46:01 UTC 2008
On Tue, 29 Apr 2008 13:42:03 PDT Julian Elischer <julian at elischer.org> wrote:
>
> Interfaces are not however assigned to FIB instance. each FIB may
> contain entries for each interface, and by default they do, but you
> can delete teh entries associated with a particular interface from
> a particular FIB so that fib will never use that interface.
>
> An interface may however be present in entries from multiple FIBs
> in which case the INCOMING packets on that interface need to
> be disambiguated with respect to which FIB they belong to.
This confuses me....
The whole point of a FIB is to decide the *next* hop for a
given input packet. So questions.
1) A packet arrives on an interface. If this interface is
associated with more than one FIB, which FIB does it get
given to?
2) If that decision is taken by a a packet 'classifier',
isn't it in effect doing the job of a FIB (deciding the
next hop, which happens to be a local FIB)? Recall that
basically a packet passes from a FIB to another FIB until
it gets to its eventual destination.
3) When a local packets needs to be sent, which FIB gets it?
Does setfib decides that? If there a default FIB?
> This is a job for an outside entity (from the fibs).
> In this case a packet classifier such as pf or ipfw is ideal
> for the job. providing an outside mechanism for implementing
> whatever policy the admin wants to set up.
I believe having to use pf/ipfw will slow things down a bit
so the question is what does associating an interface with
multiple FIBs buy you?
> if you have several alias addresses on an interface it is possible
> that some FIBS know about some of them and others know about other
> addresses. New addresses when added are added to each FIB and
> whatever is adding them shoudl remove them from the ones that don't
> need it. This may change but it fits in with how the current code
> works and keeps the diff to a manageable size.
> (and it suits what I need for work where a route manager daemon
> knows to do this.)
Wouldn't it make sense to treat each alias as on a separate
logical interface? Then each logical interface belongs to
exactly one FIB. On input you decide which logical inteface
a packet arrived on by looking at its destination MAC
address. That reduces confusion quite a bit, at least in my
mind! What does doing more than this buy you?
More information about the freebsd-net
mailing list