Okay. For your DNS transition, you need to have a DNS server answering on both the old and the new IP addresses of your nameserver, and that server needs to be able to answer requests for all of the domains you serve. 1) Build a FreeBSD box. This can be a basic box, even a 386. You can even install the minimal FreeBSD installation, which can be done in something like 150 MB. Give this machine the new IP address of your DNS server, the IP address you will give drachma when you move it to Quincy. 2) FreeBSD comes with BIND installed. Make sure you have at least version 8.2.3 installed - anything less has security issues. The FreeBSD folks like to build BIND so that it expects its configuration file to be /etc/namedb/named.conf 3) Set up the configuration file. FreeBSD ships with a sample for you to work with. For every zone you have on drachma, you are going to set up a slave zone on the temporary server. You need to specify a filename to keep the slaved data in, and the IP address to get the slaved data from (drachma's old/current IP address). For example: zone "example.com" { type slave; file "dc.example.com"; masters { 208.236.160.2; }; }; Obviously "example.com" is the name of the domain. Type slave tells BIND that it is getting the data for that domain from another (the primary) nameserver. I tend to use "dc." as a prefix for slaved domains rather than the "db." prefix I use for master zone info files. That is just convention, you can do what you want. The masters statement gives a list of IP addresses where authoritative data for that zone can be transfered from. BIND is very picky about punctuation in its configuration file, so pay attention to the quotes, the squiggly braces, and the semi-colons. If you screw it up, BIND will refuse to start or fail to serve some of the domains. BIND sends error messages about this kind of problem to syslog, so check your messages file. 4) Aside from the slave zones, you will need two other zones, that pretty much every nameserver has (unless it is forward only). There is a hints zone, which basically tells your nameserver about who the root servers are. FreeBSD ships with a file called named.root which contains this information. Use it within the configuration file with the following zone statment: zone "." { type hint; file "named.root"; }; You also should have (although it isn't as critical), a master zone for reverse DNS for the loopback network. FreeBSD has a script for generating this file, called make-localhost. If you execute that, it should create a file called localhost.rev, which you reference as follows: zone "0.0.127.IN-ADDR.ARPA" { type master; file "localhost.rev"; }; 5) When you start BIND, it should query drachma for each of the slave zones (domains) in the configuration. It will transfer the data from drachma, and store the data (in case of a reboot or whatever) in the file you specified in each zone statement. Make sure the files show up in the /etc/namedb directory. The best way to start bind manually is to use ndc (name daemon controller): ndc start 6) Use nslookup to check and see if the server is working. Ask it to resolve from domains you serve (like www.varner.com) and domains served elsewhere (like www.yahoo.com). The second argument can be the address of a nameserver: beryllium.stlmo.com:/etc/namedb 63> nslookup www.varner.com 208.236.160.2 Server: drachma.varner.com Address: 208.236.160.2 Name: www.varner.com Address: 208.236.160.3 beryllium.stlmo.com:/etc/namedb 64> nslookup www.yahoo.com 208.236.160.2 Server: drachma.varner.com Address: 208.236.160.2 Non-authoritative answer: Name: www.yahoo.akadns.net Addresses: 64.58.76.224, 64.58.76.227, 64.58.76.225, 64.58.76.178 64.58.76.176, 64.58.76.226, 64.58.76.222, 64.58.76.179, 64.58.76.223 64.58.76.177, 64.58.76.229, 64.58.76.228 Aliases: www.yahoo.com 7) Edit the /etc/rc.conf file on this server, and add a line that reads: named_enable=YES This way, when the machine reboots, BIND will be started for you again. You might even test it by rebooting to make sure it comes up correctly.