By this time, I'd been down and now I was getting up again. After nearly
trashing the entire system, only to have placed gently back into my hands by a total
stranger, I was ready to tackle the other problem. That was my DNS problem. Or
what I, as a novice, thought was a DNS problem. It turned out not to be a routing
problem. For information on DNS, see Getting local names
The symptoms were pings that worked everywhere on my subnet, but I could
only ping out from the FreeBSD box. This was confusing. Again, the folks on
EFnet IRC Network #freebsd asked me the right questions.
The first thing was to get natd running in verbose mode. So I issued the
natd -v interface ed0
I then started up NT2 and connected the FreeBSD box up to my ISP. Then I used NT1
to dial up my ISP via modem. This way I could still chat on IRC and debug my
firewall. And I could use NT2 to verify that things were going right.
SOAB! It worked. How come? All we had done was restart natd.
The next step was to reboot the machine and try again. It didn't work. So I
stopped and restarted natd. It worked. IRC server connections from NT1 and NT2
worked. Something was very weird.
At the end of /etc/rc.local was the following (NOTE: /etc/rc.local
is deprecated; use /usr/local/etc/rc.d/ instead; see Starting
stuff at boot time and Installing IP
Filter 3.3.3 for an example):
natd -interface ed0
ifconfig ed1 inet 10.0.0.10 255.255.255.0
I started reading up on natd (please, no laughing). I found the -dynamic
flag, which I had not been previously using. So I added it to the command and