[quagga-users 11304] Re: very newbish question regarding netwok discovery

Christopher Barry christopher.barry at rackwareinc.com
Sun Jan 10 20:36:29 GMT 2010


On Sun, 2010-01-10 at 12:07 -0800, Kurt Buff wrote:
> On Sun, Jan 10, 2010 at 11:42, Christopher Barry
> <christopher.barry at rackwareinc.com> wrote:
> > Greetings all,
> >
> > This is my fist post to this group.
> >
> > My question is around a use of Quagga, and potentially OSPF that is
> > likely very non-standard.
> >
> > Use Case:
> > A compute system with multiple interfaces whose attached networks are
> > not known is temporarily booted with a special Linux image running
> > (potentially) quagga.
> >
> > This Linux image would use OSPF (or some other protocol) to determine
> > what networks each interface was attached to. Ideally, no IP addresses
> > would be configured on the system during this process. Scripts would
> > record this information (e.g. the system interface/attached subnet
> > pairing) for future understanding about the system's network
> > connectivity.
> >
> > Is this use case even remotely possible? And if so, can anyone here give
> > me some advice on where to begin to implement such a system?
> >
> >
> > Thanks,
> > -Christopher
> 
> I see four possibilities:
> 
> 1) Ask for IP addresses, and see if you can get your data.
> 
> 2) Start listening to broadcasts on each NIC, and characterize the subnets
> 
> 3) Start sending all ones broadcasts on each NIC and see what replies you get
> 
> 4) start blasting MAC addresses to each connection in the hopes of
> flooding the tables on the connected devices and start looking at the
> traffic that comes through on each NIC
> 
> I don't
>  think you need a routing package for any of that, unless I'm
> missing something fundamental.
> 
> Kurt
> 

Kurt,

Thanks for replying so fast :)

Stepping through your responses:

> 1) Ask for IP addresses, and see if you can get your data.

As in using DHCP? This is a definite possibility, and I have an
algorithm currently that can work to do (mostly) what I want (which
involoves DHCP first, then static assignment in a round-robin fashion
(but this requires a certain amount of available subnet
fore-knowlwedge)), but in non-DHCP environments, this is not very
efficient. That, and if I do not have a list of IPs in which to use as
test IPs, it's complexity and time to figure out mushrooms
exponentially.

> 2) Start listening to broadcasts on each NIC, and characterize the subnets

Another possibility which I have arrived at as well, but it may take
some time to determine (e.g. no other running hosts are present on the
link (yes, router broadcast should still be available though)), and
parsing may be a bit cumbersome.

> 3) Start sending all ones broadcasts on each NIC and see what replies
you get

I am unfamiliar with what you are talking about here - can you elaborate
on this technique? Is this a flood ping? My algorithm above does use
ping now, but again, my goal is to do link layer subnet discovery
ideally.

> 4) start blasting MAC addresses to each connection in the hopes of
> flooding the tables on the connected devices and start looking at the
> traffic that comes through on each NIC

in the form of bogus gratuitous arps? I'm not sure I understand this
suggestion either.

The ideal situation is: I bring up the image, bring up the interfaces,
but leave them unconfigured with IP addresses, and some whiz-bang
protocol queries each interface at the link-level, and figures out which
subnets are directly connected to each.

Originally I thought I could use arp for this, but a multi-homed system,
and routers as well, from what I can gather, will do a form of
proxy-arp, so they will respond with the directly connected MAC address
of a host, but with an IP from another local interface. This makes
isolation essentially impossible.

Hence this foray into routing protocols. This may not be a reasonable
methodology either, but I thought it was worthy of asking all of you
experts on this list.


Regards,
-Christopher






More information about the Quagga-users mailing list