Go Down

Topic: Two ethernet ports to bridge two different networks (Read 898 times) previous topic - next topic

zumost

I have an arduino ethernet and an arduino ethernet shield. I am setting up a system where I need to bridge two local networks using the arduino. I am very space constrained. I can't figure out how to write the software to setup the shield as a separate server port (or client) from the main arduino board.

Thanks for the help.

SurferTim

Quote
I am setting up a system where I need to bridge two local networks using the arduino.

What does that mean? Why not use a router? The Uno doesn't have nearly the horsepower to use as a network bridge, and I don't think the w5100 has the capablility.

zumost

#2
Jul 29, 2013, 02:30 pm Last Edit: Jul 29, 2013, 02:35 pm by zumost Reason: 1
I am size, weight and power constrained so I can't install a router. All the arduino has to do is take some messages in and relay them on to the private network. The private network is just a network of arduinos and the traffic is very light.

The network structure is as follows.

My Server ----- > Arduino Ethernet -> Ethernet Shield ------ > Other Arduino Ethernet

I have a very low powered network switch that I can power off the 5V pin of the arduino ethernet but I would rather not do that as it takes up more space then I would like.

SurferTim

#3
Jul 29, 2013, 02:38 pm Last Edit: Jul 29, 2013, 02:42 pm by SurferTim Reason: 1
I'm not sure the Uno-type processors have the SRAM to hold a Network Address Translation (NAT) table required to do that. And the w5100 may not work well as a gateway.

But that is just an educated guess.

You might be able to do that if you are bridging the two network for only one particular device on each network, but that is all I would expect.

edit: Compared to my old, slow, pig-like cheap routers, the Arduino would be the "king of pigs".
Router processor speed = 175 MHz
Router RAM = 32 MB
Uno processor speed = 16 MHz
Uno SRAM = 2KB

zumost

Pseudo code:

Packet = incoming packet;

if( packet == XXX)
{
   Do this;
}else{
   Send packet to IPx;
}


I have 4 different types of messages sending on about a 1Hz update rate. The secondary network is only responsible for these packets and is completely isolated from all other networks. I know the Arduino can handle the load I just don't know how to activate the second Ethernet port.

Go Up