7.1 What About Signals?
Those of you familiar with the BIND name server know that it's possible to signal a running name server to perform certain tasks, such as rereading its configuration file or turning on debugging information. The Microsoft DNS Server has no exact analog to a BIND name server's signals, but you can still make it perform certain tasks while running. We'll go over the tasks possible using signals on a BIND name server and show how to accomplish the same thing (if possible) with the Microsoft DNS Server:
The main thing you can do to a running Microsoft DNS Server is stop it and start it again. What happens when you stop and start the server? Remember that the name server answers queries from its in-memory database. This database includes three kinds of information: authoritative data (zones for which the server is a primary master or slave), cached data (answers from other name servers), and root name server "hints" (the list of root name servers from the root name server cache file, cache.dns ). When you stop the name server, this data is lost.
When you restart the server, it reloads the authoritative data from the zone data files on its disk. Zones for which the server is a primary master are loaded and not read again for the lifetime of the server process. (Of course, you can make a change to a primary zone with the DNS console and direct the server to write to the zone data file with Action Update Server Data Files , but the server reads the zone data file only at startup.) Zones for which the server is a slave are also loaded from the zone data files. But for each zone, the server queries its master (usually the zone's primary master) for the SOA record to compare serial numbers . If the master's serial number is larger than the serial number in the zone just loaded from disk, the server performs a zone transfer.
The server also reads cache.dns at startup. In Chapter 4, we described how root name server information is used not directly, but as a "hint" to find the current list of root name servers: the server queries a root name server from cache.dns for the current list of root name servers, and the results are the first records in the cache. Remember, the cache is empty when the server starts up.