My combined fileserver/router/NAT machine has been having some flaky problems lately, so I've had to move forward into my plan to replace it. I've been wanting to replace it for a while now anyway. The OS (Windows 2000) has been mildly damaged for some time, and the Windows firewall/NAT drives me crazy because it dumps all existing connections every time I change anything. In addition, the machine has always been borderline on thermal issues, and in the summer I have heat problems because I can't air-condition the livingroom, or even leave a window open. So my goal was to replace it with two machines, a dedicated router/NAT based on NetBSD, and a dedicated fileserver also based on NetBSD, which together would dissipate less heat than the original machine. In addition, with the router/NAT separate, I could shut down the fileserver and still maintain net connectivity, especially if I moved the mirrored disks with the really important files into another machine. Those were originally on the fileserver so that I could reboot my main Windows machine without interrupting everybody else's access to them, but now that I'm living alone that doesn't matter anymore. With the mirrored disks in the main machine, the fileserver simply provides bulk storage for things like video and audio and image files; if it's still too hot despite being a much smaller machine, I can just leave it off for days at a time without missing it.
The new router/NAT, which I put together on Sunday, is an old IBM 760ELD Thinkpad in a docking station. The initial problem is that it doesn't have a floppy drive; it has two CDs instead, one in the machine itself and one in the docking station. With the schedule moved up, there was no time to get a floppy on Ebay, and I don't know how to make a bootable CD, or even whether this machine will boot from CD. Fortunately, there's an easier way to get the OS onto it. I took its future hard disk (which is actually a 128M Compact Flash card in a CF-to-PCMCIA adapter which is in turn in a PCMCIA-to-2.5"-IDE adapter) and put it into the machine which will eventually be the new fileserver, using a 2.5"-to-3.5"-IDE adapter. That machine, being a low-profile desktop, has both a floppy and built-in Ethernet, so I was able to boot from the floppy and then tell setup to FTP the filesets. Except that whoops, there isn't enough space left on the disk to unpack the filesets after copying them over.
Thankfully, the boot kernel groks USB controllers, USB mass storage, and FAT filesystems. I was able to copy the filesets to a spare thumb drive that I have, stick it in the USB port in back, and point the installer at that. Without the compressed filesets taking up space, there was plenty of room on the disk to unpack. Once NetBSD installed, I took the disk out of its temporary home and put it in the 760ELD. Unlike Windows, NetBSD does not freak out and start bleeding from all orifices when faced with new hardware: it wakes up, looks around to see what there is to see today, and goes about its business.
OK, so I have four PCMCIA ethernet cards, and four slots, two in the laptop itself and two on the docking station. Two of the cards won't work no matter what slot I put them in — NetBSD recognizes them but can't actually get them to do anything. They may be bad, I don't know. Then, for some disgusting reason, while it will recognize cards in the docking station slots, it can't actually use them, not even the two cards which work in the laptop's onboard slots. Again, it could be bad hardware, or it may be running out of interrupts. Unfortunately, the BIOS has no options for turning off onboard hardware which I don't care about. I may be able to work around or at least diagnose these problems when I can compile a new kernel for the beast, but for now I don't really care because I only need two ethernet ports, and if I put the two working cards into the two onboard slots, I'm set.
Setting it up as a DHCP client went pretty smoothly other than the whole issue of finding out which cards worked and where, which isn't the DHCP software's fault. Once I had a working hardware configuration, it was able to pick up an address from Comcast's DHCP server with no problem. Yay, I had external connectivity! And on the other ethernet port, I had internal connectivity. Now it was time to put them together.
Before I disconnected the old router/NAT, I had the foresight to load up the webpage which gave instructions for setting up a NAT gateway. In addition, there was enough space on the disk for the manual pages. Between the two of them, I had something to go on. Once I cleared typos out of the ipnat.conf and created a dummy ipf.conf (ipf is required for ipnat to run, and it gets very unhappy if it can't find it's conf file and forces you into single-user mode to fix the problem!), it all Just Worked. That's a long way from the horrendous battle that I had trying to get Windows 2000 to do the same thing. It's a bit surprising: I've spent many years with various flavors of Unix and I know that it's very reliable and not that bad once you know what you're doing, but it can be arcane when you're just learning and I've never done NAT on Unix before. Of course, I was doing the simplest possible NAT setup, and getting reverse portmapping to work so I can be server when playing Rise of Nations or Midtown Madness 2 may require some dinking.
Whoops, out of time. I'll chronicle Monday's adventures later.