There are two basic methods for a machine to have an IP address. One is static, the other dynamic. In a static configuration I sit down at the machine and configure a static, non changing IP address (used across reboots), a subnet mask (how many IP addresses exist in THIS network), and a gateway (where do I go to exit this network). In a dynamic configuration (DHCP) I configure the router with a contiguous pool of IP addresses and a gateway and let it hand them out.
There is a hybrid third option. I configure the pool, but configure each system to have an IP address. This is referred to as static IP in a DHCP configuration. Tricky, no?
For the sake of brevity, and consistency, I would recommend a static IP set up. You will have the guarantee that IP addresses can't and won't change, and if you set up a domain controller (active directory or open directory) and choose to build a DNS server, it will work. You'll have to configure your router with the following information:
A static network: You've set the limit of your network from 5 (and if you throw on network attached storage or a printer) to < 10. How about having up to 254 hosts (individual IP addresses) just in case you think of something you want to try?
192.168.0.0 to 192.168.0.255 (192.168.0.0 will be the network address, and 192.168.0.255 will be the broadcast address, explain these later).
To tell the router we want to use this address range it has to be configured to use a 192.168.0.0 network IP address, and a subnet mask of 255.255.255.0 That last 0 gives you a range from 0 to 255 on the network IP address. So valid IP addresses IN your network will be 192.168.0.0 to 192.168.0.255 (the first three "octets" or 192 168 and 0 don't change, only the last one does). So you have a total of 2^8 IP addresses or 256 addresses (remember two out of that are already assigned the .0 and .255), so really you have 254 left.
You can use any of what's left, you don't have to use them in order. I recommend starting at 192.168.0.1 and stopping when every system has an IP address. For simplicity in your config assign the router 192.168.0.1, server A 192.168.0.2, server B 192.168.0.3, server C 192.168.0.4, and your development machine 192.168.0.5. Yes, you could reverse the order, or use only even numbers, or make them all powers of ten (.10, .20, .30, .40, .50) if you wanted to. I'm just doing simple.
Now that you have your network design, you need to configure the following on each piece of equipment:
IP address:
Subnet Mask:255.255.255.0
Gateway:For everything but the router this will be the IP address of the router, or 192.168.0.1 (for the router it is the IP address of your ISP provided). Imagine this as a static route between your network and the ISP (or whatever network you connect it to).
Some advantages of this system. By not handing out DHCP addresses a new device that is connected to your network isn't just given an IP address by default. It has to be configured. This means that it is slightly more difficult for people to attach themselves to your network without you knowing it.
Another nicety, if you configure a VPN server on the Ubuntu box, you can connect remotely. Instructions for that will not be provided here.
Also, you don't have to worry about things like MAC addresses, just IP addresses.
With all this, you should have a network. If you want to know how to configure each individual box, I'm sure google will assist you in this. Remember this is just a basic network configuration I have walked you through. No bells and whistles, this way it is easy to configure, troubleshoot, and secure as you have fewer variables to work with. Remember that under this configuration you have hard coded the IP addresses to each device. The router is just moving traffic. Any questions?
Oh, and to answer your question, yes static routes work across router reboots if they are written to a non-volatile storage device, but that is a different question than what you apparently meant to ask.