FreeSCO: Build A Router With A 386 And A Floppy Disk
FreeSCO is a single-floppy-disk router for networks with static routing. It is a good choice for lighter routing chores, when a full-blown heavy-duty commercial router is much too much.
It makes a nice Internet gateway for a home or small office network. It is adaptable for any number of uses in a larger network. Some of Freesco's abilities:
- Simple bridge
- Firewalling and NAT
- Dialup, leased line, DSL and cable router
- Time, DHCP, DNS, HTTP server
- Remote access server
- Print server
- Supports up to three Ethernet/arcnet/token_ring/arlan NICs and two modems
System requirements are any 386 or better with a floppy drive, 16 MB RAM. You can get away with as little as 8 MB by running Freesco on a hard drive with a swap file. Using a hard drive makes room for extensions and Web serving. I like the idea of no moving parts at all- no fan, no hard drive. Once it's installed, it doesn't even require a monitor or keyboard.
Make a FreeSCO disk in either Windows or Linux. Download FreeSCO from http://www.freesco.info/dload/index.shtml. Get two files: freesco-027, and modules-027, and unpack them in a temporary directory. The current version is 0.2.7. That's right, it's not even a 1.0. However, I have found it to be extremely stable and dependable, running for months with no problems. It is based on the Linux 2.0.38 kernel, and contains dependable Unix DHCP, DNS, and dialup components.
To create a FreeSCO floppy in Windows, use rawrite. Open a DOS prompt, and cd to your temp directory. Type rawrite and press enter. When asked for a disk image name, type freesco.027. Target drive = A. As you have demonstrated foresight and already loaded a blank floppy disk, that's all it takes.
Rawrite works only under true DOS/Win9x, for Windows NT/2000/XP use DiskWrite: http://www.disoriented.com/diskwrite/
In Linux, use the dd file converter utility:
dd if=freesco.027 of=/dev/fd0
Job 1: Simple DSL or Cable Router
This is the quick and easy way to connect a LAN to the Internet. Take your old designated PC-soon-to-be-router and install two Ethernet cards. I recommend using good brand-name PCI NICs to minimize headaches. Freesco supports most major brands: Netgear, Linksys, 3Com, DLink, and NE1000/2000. It supports ISA cards; the advantage of using PCI is Freesco will configure them automatically. For ISA NICs, you'll need to know the I/O addresses and IRQs. Your client PCs should already have their own NICs installed, and sufficient patch cables to connect everyone. The network looks like this:
Internet-> DSL/Cable modem->FreeSCO router-> Hub-> LAN
Insert the FreeSCO disk and boot up. At the opening screen, type setup and hit enter to bring up configuration mode. You have five seconds to do this, or it goes into a normal startup. Use the usual Linux commands to restart or shutdown: halt, shutdown -n, reboot -n, ctrl+alt+del.
Wait patiently for the startup process to finish. Remember this is old slow floppy drive. When it finally displays a login prompt, both login and password are root. Go ahead and login- if you don't, after 60 seconds it will do a normal startup. Later, after configuration is complete, it will require a password change.
After logging in, a colorful screen appears. Configuration options are color coded: green = required, yellow = optional, and red = experts only. Press enter. Choose e: Ethernet router. First choice is Hostname, or what shall we name our router? The default is router. Next it asks for the Domain name of your local network. inet is the default. Make these anything you like. Autodetect modems? n How many network interface cards do you have? 2
For PCI NICs, set the first I/O port address to 0. Press ' enter' through the remaining I/O and IRQ questions. For ISA NICs, enter the I/O and IRQ values.
Use DHCP client to configure 1st network interface y/n ?
The answer depends on your Internet account. The first NIC, eth0, connects to the Internet. If you have a static IP, select n. If your IP is dynamically assigned, select y.
Accept eth0 as the interface name? do not change it.
ISP account with static IP:
On the line for IP address enter your static IP, then on the next line your netmask. (All of these settings are provided by your ISP.) FreeSCO asks for the IP range next. As this does not apply, type - (hyphen) to disable DHCP.
Keep hitting enter, accepting the defaults, until it gets to the 2nd network interface name. Again accept the default, eth1.
The default IP address and netmask of eth1 are perfectly good, 10.0.0.1, 255.255.255.0. Easy to change to suit your needs. eth1 directs traffic 'inward' to the LAN.
Next, if you don't have a DHCP server already, define your IP range. The larger the pool the more memory it eats, so don't make it too large. FreeSCO has a default of 100 addresses, 192.168.168.100/200. Mine is 192.168.168.100/110. Be sure to type out the full addresses:
If you'd rather assign client IPs statically, or already have a DHCP server, disable DHCP on eth1 with -.
That takes care of the Internet/Intranet settings. The next section is services. Remember, don't change lines in red unless you really know what you are doing.
For the lines in yellow: Enable caching DNS server? s
Enable DHCP server? s if FreeSCO is going to be your DHCP server, n if you already have one, or don't want one at all.
Enable time server and router remote control via HTTP? s
Enable telnet server? s
Host gateway? Get this from your ISP if you have a static IP, otherwise -.
Primary and secondary DNS? These come from your ISP.
Do you want to export these services? n
That's it. Save current config, exit, and reboot. I like to connect a single client computer for testing. Simply set the default gateway on the client machines to the router's IP, and use your ISP's DNS server settings. WARNING: No firewall has been configured yet! You'll either need a separate firewall, or stay tuned for Part 2.
In Part 2 we'll configure a firewall, and explore FreeSCO's advanced features.