Multiple targets with same IP address?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Here's an interesting problem which I'd like to hear suggestions on.

Many networked devices that you buy off-the-shelf come preconfigured on a
static IP address; for example, many home routers are 192.168.1.1, Cisco
800-series routers are 10.10.10.1, etc.

Now, I want to build a workstation for configuring these sorts of devices
before they get shipped out into the field. This will involve telnetting to
them, performing tftp transfers and so on. The whole process can take
several minutes, so ideally I'd like to be able to do this to several
devices concurrently. But how can I do that, if they all have the same IP
address?

The setup would look something like this, if using VLANs:

          Linux server
       +-----------------+ eth0.1       10.10.10.1 +----------+
       |     process 1 --|-------------------------| router 1 |
       |                 |                         +----------+
       |                 | eth0.2       10.10.10.1 +----------+
       |     process 2 --|-------------------------| router 2 |
       |                 |                         +----------+
       |                 | eth0.3       10.10.10.1 +----------+
       |     process 3 --|-------------------------| router 3 |
       |                 |                         +----------+
       |                 | eth0.4       10.10.10.1 +----------+
       |     process 4 --|-------------------------| router 4 |
       |                 |                         +----------+
       +-----------------+

Now, I don't think that NATing the targets will help me here, because as far
as I know it's not possible to configure multiple local interfaces with the
same subnet. It would also require each interface to have its own isolated
ARP table.

What I'm thinking is that it may be possible using raw sockets to send
packets, and libpcap to receive the responses. That means that ARP would be
handled entirely in userland. However, in order to telnet the router, I
would also need a complete TCP stack which runs entirely in userland. Is
such a thing publically available? (*)

I also remember reading about a modular software router called "Click":
http://www.read.cs.ucla.edu/click/
Would this be able to handle what I want? It seems to be aimed at layer 3
forwarding, but if it doesn't have a TCP stack and sockets API, could I
interface it to a kernel TCP socket somehow?

I'm not looking for stellar performance - a few hundred packets per second
would be fine. The "Linux server" would ideally be a small MIPS box running
OpenWrt, such as the Buffalo WHR-G54S; this gives me a CPU plus five port
VLAN switch for about $50. The easiest solution is just to buy four of
these, but then the wiring gets messy on the desktop :-)

This choice of hardware, with only 4MB flash and 16MB RAM, would rule out
"heavyweight" solutions such as running four separate Linux kernels under
VMware or UML.

Any other suggestions or comments welcome... maybe I'm just missing a trick.

Regards,

Brian.

(*) I came across this paper:
http://nms.csail.mit.edu/~kandula/data/daytona.pdf
but I can't find the actual code published anywhere. Also, a bunch of links at
http://tcp.cs.st-andrews.ac.uk/index.shtml?stacks&400000
of which many are broken or point to projects that either are incomplete
or have not released code.
-
To unsubscribe from this list: send the line "unsubscribe linux-net" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Netdev]     [Ethernet Bridging]     [Linux 802.1Q VLAN]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Git]     [Bugtraq]     [Yosemite News and Information]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux PCI]     [Linux Admin]     [Samba]

  Powered by Linux