[Xorp-hackers] Is it possible for XORP to act like N independent routers ?

David microflux@yahoo.com
Fri, 7 Oct 2005 08:23:51 -0700 (PDT)


--- PavlPavlinoRadoslavovvlpavlinricir> wrote:

> > 1. there are multiple physical interfaces on a
> Linux
> > box
> > 2. each physical interface has the same set of
> VLANVLAN> interfaces
> > 3. the router should treat each set of
VLANVLANinterfaces
> > with the same ID as an independent "routing
> domain"
> > that is completely independence of the other
> "routing
> > domains" and the addresses might even overlap, i
> > believe i am misusing the term "routing domain"
> here
> > but please forgive me for a lack of a better term.
> > 4. at the kernel routing layer each "routing
> domain"
> > will have its own routing table
> > 5. packets are fwmafwmarkedthe VLANVLANerfaces
> > 6. packets are policy routed according to the
> fwmafwmark> to the corresponding routing tables
> > 7. the routing software maintains all the
> independent
> > route tables
> > 
> > 
> > some one tell me am i insane ?
> > some how the project I'm working on has led me to
> this
> > conclusion. could this be easily done ?
> > would people accept this into the XORPXORPe base ?
> > can it already be done ?
> 
> One simple solution that comes to mind is to run N
> independent
> instances of XORPXORPthe same machine. E.g., N
FEAsFEAs N RIBsRIBsBGPsBGPs etc, and each instance
configured with its own
> configuration file.
> This should work in case of unicunicastting, but if
> you want to run
> multmulticastting as well the solution needs to be
> adjusted to run
> only one FEA/FEAAMFEAcause the UNIX kernel allows
> only one multmulticastrouting socket open at a time.
> 
> To run more than one XORPXORPtance at a time, you
> need to do the
> following, but I should warn you upfront that there
> is a small
> catch:
> 
> Set the XORPXORPDER_SERVER_PORT environmental
> variable to use an
> unique TCP TCPt for each XORPXORPtance. The default
> value I believe
> is 19999. You need to set it before running the
> rtrmrtrmgrg.,
> "setesetenvPXORPDER_SERVER_PORT 30000" in case of
> tcshtcshnd you
> also need to set it before starting the
> corresponding xorpxorpshinstance that will
communicate with that rtrmrtrmgr 
> The catch is that on starstartup FEA FEAoves all
> leftover unicunicastroutes installed by XORPXORPthe
UNIX kernel (those
> routes are marked
> with a special flag so the FEA FEA recognize them
> when it pulls the
> forwarding table from the kernel). Also, on shutdown
> it removes all
> XORPXORPtes as well. Unfortunately, currently this
> removal is
> unconditional, but ideally it should be
> configurable.
> What that means is that if the first instance of
> XORPXORPs some
> routes to the kernel, then if you start a second
> instance of XORPXORP the second FEA FEAtance will
remove all XORPXORPtes
> already
> installed in the kernel by the first XORPXORPtance.
> 
> The simple way to get around the above catch is to
> comment-out the
> following lines:
> 
>     delete_all_entries4();
>     delete_all_entries6();
> 
> Those are inside methods start() and stop() inside
> the following
> files:
> 
>   fticfticonfigle_set_click.cc
>   fticfticonfigle_set_dummy.cc
>   fticfticonfigle_set_ipheiphelper
>   fticfticonfigle_set_netlnetlink
>   fticfticonfigle_set_rtsortsock
> 
> Strictly speaking, typically you need to comment
> them out in only
> one file. E.g., in case of Linux it would be
> fticfticonfigle_set_netlnetlinkand in case of BSD it
> would be
> fticfticonfigle_set_rtsortsock
> 
> 
> Probably there are other solutions of your problem
> so I would be
> interested to hear other ideas.
> 
> PavlPavlin


Thanks for the quick response. That sounds like a good
solution, but one problem is that there might
potepotentiallya dozen or so of these domains. I would
realreallye to avoid running all those processes. 

I am not an XORPXORPeloper, but I had the following
idea. if internal structures were modified to also
include a VLANVLANtag field. Then all the looklook ups
matches would have to be modified to take the tags
into account. So when a routing packet comes in on an
interface with ID A then all the logic is based on
stored routes that have been tagetaggedh ID A and the
results are sent out interfaces that have ID A and the
VLANVLAN

What do you guys think ? This can also be
genegeneralizeduppose.



		
__________________________________ 
Yahoo! Mail - PC Magazine Editors' Choice 2005 
http://mail.yahoo.com