All the above information matters if you're setting up a non dedicated router or a router with more than 1 function.
Linux wouldn't be Linux if it hasn't got a small package to get a router on-line. The ideal situation would be the following: create one floppy, so you can get a router on-line without a hard-disk. I hear you thinking, dreamer, naaaah, don't think so. The LRP or Linux Router Project tries to accomplish this. http://www.xtdnet.nl/linux-router
LRP is a stripped Debian 2.0 version. With a small amount of patches, it is possible to get a router on a 1.44MB disk. My router only had to go down after 102 days for a software upgrade, so you can call it stable. An to make it even cooler, if you don't trust floppy disks, for which I don't blaim you, just buy a flash card. They aren't that expensive any more, and they're even more realible then hard-drives.
A 386SX should be enough to control a 56.6kBit line. Off course 16MB is needed because LRP copies everything from his boot media to the RAM.
First make a bootable Linux disk. If you don't have a running Linux system and can't create the bootable floppy. Use the syslinux tool which can be found at ftp://ftp.xtdnet.nl/pub/linux/linux-router/utils/. Just type 'format a:' and 'syslinux a:' in a DOS-system and everything should be OK.
Then we have to copy the LRP kernel. There are 2 availeble packages which can be found at ftp://ftp.xtdnet.nl/pub/linux/linux-router/utils/ If you don't have a coprocessor, use the FPU version. Copy the file as linux to the disk. Then you have to copy the packages (*.lrp-files) to your floppy disk. The packages root, etc, modules and logs are required. For dial-on-demand you need the packages diald and ppp.
Make a configuration-file called syslinux.cfg and put all modules (except root.lrp) in it.
timeout 0 default=linux append=load_ramdisk=1 initrd=root.lrp initrd_archive=minix ramdisk_size=4096 root=/dev/ram0 boot=/dev/fd0,msdos LRP=etc,log,modules,ppp,diald,
Now boot your disk and see if your Ethernet card is detected. If not, you can edit through the menu packages/settings/Modules/modules the file /etc/modules (or just at the shell). For NE2000 cards for ex., you need to give the I/O and IRQ adres. Here is an example of the /etc/modules file.
#seriel port serial #NE2000 card based on WD8390 chip 8390 ne io=0x300 irq=5 #needed for slip and ppp slhc bsd_comp ppp slip softdog
Because space is limitted, no network drivers are put on the disk. You have to put the drivers on your own on the disk. You have to make your own modules.lrp file. An .lrp file is actually an .tar.gz file. So copy the file to modules.tar.gz, gunzip it, untar it and start editting. Download the latest version of the modules and the kernel. Add the module for your network card to /lib/modules (for ex. 3c509.o) and add a line to /etc/modules. For those who find this too difficult, just go to the LRP site ( http://www.xtdnet.nl/linux-router) and you can create your own modules.lrp over there using a form and then download it.
Now you're ready to reboot your system. Log in as root (no password needed) and you enter the main screen. You can configure everything in this menu, or just go the the prompt and use the prompt to edit everything.
First enter in the network menu IP adres, netmask, gateway, DNS server, ... In the packages-menu you find the configuration options of the add-on modules such as DHCP, PPP and diald.
When you're finished you can save your config with 'b'. Now just reset your PC and your router restarts, ready to serve your needs.
The following hardware is often used in combination with LRP