Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm going to set up a network that looks like this:

  • There is no Internet connection, i.e. this is a closed network.
  • There will be one Ubuntu 10.04 server (64-bit) that handles all the services required (DHCP, DNS, NFS...).
  • There will be two subnets. The devices on each subnet will be connected through a switch to the server. These subnets will have different address spaces (10.0.0.x and 192.0.0.x).
  • It will still be possible to directly connect from a device in the other subnet to the other without any restrictions.

I have never done this before so I have been reading some documents but there are several things I'm unsure of and I'm not quite sure I've have designed this correctly.

First of all, I guess I have to create a bridge between the two networks in the server?

Secondly, is this the right way to do it? Should I connect the two switches together because I wonder what sort of performance hit I'm looking at if all of the traffic goes through the server's network interfaces? There will be maybe a few dozen devices per network but the server will also work as a simple NFS server (but I don't expect the network traffic of this service to be very high) and do a few other tasks (HDD and processor intensive).

What else should I consider?

share|improve this question
up vote 3 down vote accepted

As far as I understood by your description, you want do somethink like this:

  (subnet "10.0.0.x")               (subnet "192.0.0.x")

[PC 1] [PC 2] ... [PC n]          [PC 1] [PC 2] ... [PC n]
   |     |          |                |     |          |
[ ----- switch 1 ----- ]          [ ----- switch 2 ----- ]
           ||                               ||
            ===============  ================
                         ||  ||
                     {eth0} {eth1}
                [ Ubuntu 10.04 server ]
                [                     ]
                [(DHCP), (DNS), (NFS) ]

So below I'll try answer your Q:

  • > "I guess I have to create a bridge between the two networks in the server?"

No, not necessarily.

To start with, ensure IP forwarding enabled at your Ubuntu box: check /etc/network/options, find there ip_forward value, it should be ip_forward=yes. If the value was "no", set it to yes and restart the network service.

Second, you should configure route table by right way. In our case you should add next routes:

route add -net netmask dev eth0
route add -net netmask dev eth1
  • > " this the right way to do it?", "...I don't expect the network traffic of this service to be very high"

In this case network constructed as listed above should be enough.

share|improve this answer
OK, thanks! That pretty covers my questions and yes, that's the topology that I have planned. I guess if the traffic gets high, I could always add a dedicated router to the network? – Marko Poutiainen Jul 6 '10 at 13:10
hmm... I think in this case be better use 1000Mbit ethernet connection. – Ivan Chuchman Jul 6 '10 at 14:35

You don't need a bridge perse.

  • You could hardcode a routing table in all the devices connected, that tells the workstation on what interfaces the subnets can be found.
  • If you use the server as the defaultroute in your network and connect both nets physically to the server (two network interfaces) it can act as a router between the subnets. In that case you only need to alter the routing table on your server.
share|improve this answer
And enable IP routing (IIRC it tends to be disabled by default). The relevant file in /proc is /proc/sys/net/ipv4/ip_forward and 0 indicates "no routing", whereas 1 indicates routing. – Vatine Jul 6 '10 at 10:33

Im not 100% on unix, but you need some form of routing between the 2 address ranges, Windows gives you routing and remote access not sure if Ubuntu has a similar application. You may need to consider a layer 3 switch. I'm afriad that's all I can offer to you!

share|improve this answer
Unix-based routing usually occurs deep in the OS itself, rather than at the application level. RRaS is indeed something windows-specific. – Avery Payne Jul 8 '10 at 17:04
Ah ha, fair enough! THanks for the information! – JamesK Jul 9 '10 at 7:32

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.