Yup, thanks for the tips. I got it working. For posterity, here's how I solved it:
- Installed dnscache and tinydns from ports (great article on setting them up
here)
- Used svc to run them as daemons
- set them up to redirect calls to the sites I'm hosting to the local IP when I'm using it's nameserver (see the link)
- Told my router to use my server's nameserver instead of my ISP's so DHCP clients use it automatically (the server is a static IP outside of the DHCP range, everything else is DHCP)
- Told my server's nameserver to use my ISP's nameserver for names it doesn't know.
- Beauty. I can now check my email and such without changing any settings, whether my laptop's on the local subnet or anywhere else.