Off course this all depends on your traffic. Asuming that you are setting up a router for a small company, let's say about 100 PC's, a 486SX will do well. I'm sure you'll find this PC somewhere in your company just sitting in a corner because it can't cope with the popular OS's like Windows '95 or OS/2. Put 16MB of RAM in this PC, a harddisk of 170MB, and you are ready to install your router.
Let us take a look at my own configuartion:
- 192.168.0.30 \ -------- \ 192.168.0.1 | host | \ --------- |-| | | 14400 bps | Linux | 10Mbit | -------- NET =====================| masq |-----------------------| | PPP/slip | router| TCP/IP backbone | -------- / --------- |-| host | / | | / -------- - 192.168.0.10
The intern network is based on a private Class C network. The netmask is 255.255.255.0. You can see that if host 192.168.0.30 wants to connect to 192.168.0.10 that there is no problem. But if host 192.168.0.30 wants to connect with 194.7.78.21, there's a problem, because 194.7.78.21 is not located in his own network. For this problem there's a solution, set-up a gateway (192.168.0.1) and put a default route in 192.168.0.30. So if 192.168.0.30 wants to make a connection to a computer who he can't find find in his own network (192.168.0.0), he has to contact those computers trough the gateway. A default route can be added with the next command to a Linux system.
route add default gw 192.168.0.1 eth0
The 'gw' argument tells the route command that the next argument is the IP address, or name, of a gateway or router machine which all datagrams matching this entry should be directed to for further routing.
Most popular Linux systems use /etc/sysconfig/network to get the default route at boot-time. If you use such a distribution, just put the following lines in it.
GATEWAY=192.168.0.1
GATEWAYDEV=eth0
Now to answer the question above, 'What is routing?', I would say that routing is the process of delivering packages from PC1 on network A to PC2 on network B.
When setting up the technology for the Internet (first known as ArpaNet), the US-army wanted a network that could function in very difficult situation (like war ;-). They wanted a network which wouldn't go down when a server was hit. With other words, they wouldn't want a network with a central command. They wanted to create a network in which computers could connect and won't fall out when a server crashed.
Routing was invented for this purpose. Routing enables you to connect different networks. Let's assume there's a network called A and there's a network called B. With the TCP/IP technology, network A and network B can function without each other. Routers can connect these individual networks, but it is no problem when the routers go down, the 2 network will be seperated from each other, but thats all.
Mayby I can explain this with an example for those under you who use the IRC-networks. You can login on (for ex.) dinf.vub.ac.be This server is connected trough the IRCnet-network to other servers. There's another server on IRCnet called irc.krameria.net The 2 servers (dinf and krameria) can reach each other trough the IRCnet. But sometimes it happens that a router between these two computers falls down. In the IRC community they name this phenoneme: netsplit. The two servers will function, without each other. So in this way, 2 different networks are formed from 1 network. After the split, the 2 networks are synchronized and they function back as one network.