[clug] multiple network ports on one machine

steve jenkin sjenkin at canb.auug.org.au
Tue Mar 31 22:37:12 GMT 2009

Adrian wrote on 31/3/09 2:00 PM:
> More detail:
> A special purpose machine , a correlator, has 24 cards cramed packed
> with fast Xilinx FPGAs. At the end of a 30 second period each card in
> turn will dump the contents of its buffers onto the network. A total of
> 23, 721, 984 Kbps  or per board (24 boards) =  988, 416 Kbps = 0.989
> Gbps. With packetisation and other overheads this will exceed the
> capacity of a single Gigabit port. Fortunately there are 4 Ethernet
> ports per card, so I can use 2 at the same time. Via a network switch
> this is feed into a computer(s) which has 4 gigabit Ethernet ports. So
> there are two streams of data to be written to disk(s). Each port on the
> FPGA card can address a specific destination Ethernet address on the
> computer. The data will be sent as UDP packets. If I start 2 UDP servers
> will each be associated with the different Ethernet address (physical
> ports)? Is the solution to use different port numbers, i.e. bind IP
> address x.x.x.y:aaaa and bind x.x.x.z:bbbb.
> I know that the next bottleneck will be writing to disk, but I will
> consider that later.
> This data dumping occurs every 30 sec for 12 hours ..... lot of data.
> Adrian

Please excuse me if this is a really dumb question/proposal...

Doesn't Linux support Virtual IP's for redundancy - two machines each
with an IP, and between the two of them, a third 'virtual IP' (and MAC)
is constructed? Can that be adapted to provide a type of 'link bonding'?

Why couldn't that same software be run on one machine with multiple
network interfaces??

Normally there's no sense in attempting redundancy like this...

If the code is non-trivial to adapt, perhaps a low-footprint VM method
(like openSolaris 'containers' or BSD 'jail') would provide enough
scaffolding to test...

The sender points its UDP packets at the Virtual IP addrs, routed via
the real IP's.
The sender also needs to have multiple routes to the Virt-IP via its
multiple local interfaces - I'm presuming you'd use different link
metrics to choose a 'primary' link.

The nub of the solution:

 Does the host O/S pick the next link (via the metric) if the primary is

This is UDP, not a single TCP session, so without have done it or tested
it, my expectation is that part would work...

Anyone worked in these areas and know any answers for sure??


Steve Jenkin, Info Tech, Systems and Design Specialist.
0412 786 915 (+61 412 786 915)
PO Box 48, Kippax ACT 2615, AUSTRALIA

sjenkin at canb.auug.org.au http://members.tip.net.au/~sjenkin

More information about the linux mailing list