Four Calorie DNS Server v1.3.0 - (beta test version). The user must read and accept the license. (License.txt)
Note: Some older versions of this program are still
referred to as the "Zero-Calorie DNS" program.
This version of the server (Four Calorie DNS v1.3 beta) has been discontinued, so please be informed that the user accepts
all risks involved with the usage of the software, or the inability to use the software. This version is intended only
for internal testing or educational purposes.
This version of the server knows only about itself, does not communicate zone information
with other DNS servers, and cannot return parameter
information for other servers.
On a public internet, the two required servers need to work in tandem, and each must know about the other.
Therefore; this server should never be used on the public internet! A proper two-server
configuration will not result!
We are working on an updated, re-architected version of the server. The new version will communicate zone information with other
DNS servers, and therefore be capable of operation on a public internet. Link here: Five Calorie DNS development pages
Link to discontinued server: fourcdns.zip (v1.3 beta)
Note that version 1.3 of the server operates on Windows NT, Windows 2000, and Windows XP (but not Vista).
Basic configuration
Perform the installation as the administrative user.
The server may be bound to any legal address and any legal port (valid ports are 1 thru 65535). The default port is 53, and the default address is 127.0.0.1. Use the supplied configuration tool to adjust these values.
The server is simplistic to the extreme. Normally, DNS is hierarchical in nature, which makes it very flexible. The fourcdns server is a bit of a fixed arrangement, that covers the most common hierarchical arrangement. Flexibility suffers, but for a quick experimental setup, simpler servers are not available.
For our purposes, the domain name consist of the first
and second level names, and does not
include the www "server" segment of the
domain name. The third level domain in a hierarchy may reference a subdomain or be another
host or an alias for one, but is often named in a way as to be a mnemonic for the server
type, and it may resolve to the same address as all of the other servers in the domain.
The fourcdns server resolves any domain address requests (up to three levels) to the naked domain name's IP address, with the exceptions
of "mail" and "www", which may be configured independently with the configuration tool.
The DNS server configuration allows for the separate IP address assignment of the "www" subdomain, and it should not
be added to the naked domain name entry. The user should make sure to use complete four segment dotted decimal internet addresses.
As follows, the server allows for the assignment of four different domains/subdomains to IP addresses. In DNS parlance, these are the "A" records. For an all-in-one setup,
these subdomains may all be assigned to the same IP address:
Changes made to the configuration are not effective until the server is stopped and restarted. Use the "Service Control Manager" to stop and restart the server. [Control Panel/ Performance-Maintenance/ Administrative Tools /Services].
Alternatively, starting with version 1.0.7, the DNS package sports a nice utility for DNS Server management/monitoring. It is FourCDNSManager.exe, and is one of the start menu items.
A Little Background Information ...
This server was developed to be a companion for the "Four-Calorie-Web" server program, which is an HTTP web server. A web server without a DNS server is not very useful, unless the visitors have memorized the internet addresses!
This is the preliminary beta version of the DNS server, and should be used only for purposes that are not important or that are tolerant of failure. (See license.txt)
There seems to be a lack of DNS server applications for the Windows platform. Hopefully, this program will (when it eventually passes the hurdle of the beta-testing period) alleviate the DNS-application-scarcity problem. This particular server was designed to have only the functionality needed to power the companion "Four-Calorie-Web-Server" application.
The server resolves only the user's domain IP address, and no others. It cannot run as a general purpose public DNS server in it's current configuration. This is an artificial constraint, but it allows us to concentrate our efforts toward our specific goal (towards powering the "Four-Calorie-Web" Server).
The server currently responds only to UDP requests, although
TCP (zone) backup functionality will be considered in the future. The server implements
minimum functionality in other ways. For instance, the header flags recursive
bit is not set (recursion is not available). Some things are "hardwired" this
way to allow for maximum simplicity. A user should be able to set-up the Four
Calorie DNS server in a few minutes (If there are any other DNS servers that can
be set-up in two or three minutes, I am not aware of them).
Except for mail, the server
auto-resolves all third level domain requests to the same one-and-only IP
address that is supplied by the user in the configuration. (So long as the
primary domain is correct).
In other words, abc.yourdomain.com and
ftp.yourdomain.com, and ns111.yourdomain.com all resolve
to the domain IP address . The mail server address and www address may be specified independently
via the use of the configuration tool. This auto-resolution would not be desirable in a
large server farm. However, for an individual's toy web-site, it probably is a
positive attribute. The server does not resolve lower subdomains (deeper than
aaa.bbb.ccc).
Some resolvers do not handle CNAME entries well, so after some experimentation, it was decided to disallow CNAME functionality, and just return the primary domain IP address for any lower level domain entries. A maximum limit of 40 characters has been implemented for the entire domain.
Record Types
The server currently handles standard foward (domain name) queries and
reverse IP address queries, MX, NS, and SOA queries, and little else. However,
for a web server to function properly, the DNS server need not service much more
than standard forward and reverse queries.
The server knows enough about IPv6 such that it returns a "blank" answer record to IPv6 address requests.
(which is the accepted practice for IPv4-only servers)
The authoritative server flag
is always set. The server does not currently support a zone transfer, but
version 1.0.7 now responds to SOA (Start of authority), NS (Nameserver), A
(Address record), MX and PTR (Reverse) requests.
The serial number is
auto-incremented, and changes only once per day, even when the server is
restarted. Since zone transfers are not allowed, this may or may not be an
issue. However; the NS, ARECORD and PTR requests served by
**this** server will be accurate "up to the minute", so long as the server was
restarted after the configuration change.
If one day serial updates
are an issue, then this server should not be used for the user's application.
The expiration is fixed (hard coded) to two weeks. For the serial update
function to work correctly, your machine must have a correct CMOS date (Your
battery should be working).
The domain administrator's email has been
hard coded to de@somedomain.com, where somedomain.com is the content of the
third line of the configuration . The MX record has been hard coded to
mail.somedomain.com, where somedomain.com is defined in the
configuration.
Installation and Deinstallation Notes
Installation
After installing the files from the installation media with setup.exe, you
must run the installation applet to perform a final setup of the DNS server:
1 Run the supplied InstallFourCalorieDNS.Exe program
2 Click on
the "Install DNS Server" button.
3 Use the "FourCDNSManager" utility (on start menu) to manage the server.
To access the "InstallFourCalorieDNS" applet, click the start button and then
click the appropriate menu items as shown in figure-1:
The older service installation dialog is shown in figure-1:
Figure 1
The installation program installs the server as a Windows service, so you cannot run the server file directly. The server may be stopped and restarted via the use of the "Service Control Manager" Windows utility (The Service dialog may be found by drilling down through the Windows control panel entries (Precise information is shown later in this document). If the installation is successful, the user should be able to use a DNS tool to test the server. If "fourcalorieservers.com" is typed into the appropriate text box within the user's chosen DNS tool (substituting any domain changes that have been made via the configuration utility), then an appropriate DNS result should appear.
The "FourCDNS Manager/Monitor utility" output is shown below:
- (just prior to clicking "change"):
DNS Tools
A good DNS tool should allow the user to obtain a response appropriate for the configuration that has been supplied. NSLookup is a good tool for DNS testing, and is supplied with the wonderful MSys package. (See the shameless plug in the next section) Alternatively, if you have a Unix machine on your network, you can use the DIG utility to get a nice summary output from the DNS server.

Ethereal utility
Ethereal is a utility that is available for Windows and for various unix variants. The use of this utility is a great way to view the more arcane detail of the output of the "Four-Calorie-DNS Server". Note that on windows, the Ethereal utility requires the "PCAP for Windows" software to be pre-installed. The PCAP packet capture software is available as a freeware (beta version) download.

Note that many internet web servers run in concert with a DNS server that handles only one domain. The internet registry record points to a domain IP address for the owner's nameserver, and that nameserver may in many cases be capable of returning only the IP-address for a single domain. (The owner's domain)
This DNS server is designed to do just that -- return the domain information for a single domain. This model was chosen to create maximum simplicity, and a minimum of configuration headaches.
Easy DNS - HTTP setup ... all on one machine!
We stipulate that this beta version cannot be used on the public internet, however; the following list describes what would be the relationship between the HTTP server and the DNS server in any future public deployment of the HTTP and DNS servers:
Removing the server
The deinstallation process is the
reverse of the installation. The server runs as a Windows service, so the
service must be removed from the database before the application files are
removed. To remove the service and DNS server application files in the proper
order:
1 First, start the InstallFourCalorieDNS.exe program and click on
the Remove-DNS-Server button.
2 Use the Windows control panel to remove the
application files from the computer.
Click on the [Control Panel/
Performance-Maintenance/ Administrative Tools / Services] icon and check to see
that the FourCalorieDNS service is no longer in the services database.
Note that the server will not be removed properly unless the
procedure (outlined above) is followed!
Note that the Service Control dialog that appears when the [Control Panel/ Performance-Maintenance/ Administrative Tools /Services] icon is clicked may be used to start and stop the service, when a complete DNS service removal is not desired.
Please read the license.txt file included with the installation media. This version of the DNS server runs on Microsoft Windows 2000 and Windows XP
Operational notes:
Access Logging:
The server prints into a log file
(/windows/system/FourCalorieDNS.log). The items in the log are not yet fully
implemented, and the values are not meaningful. As has been reiterated a few
times, this is a work-in-progress.
The log cannot be disabled, and can become quite large. As a maintenance
procedure, you may stop the server with the Service Control Manager in the
Control Panel, and delete the log. It will be recreated by the server when you
restart it.
Monitoring the server operation:
In figure 4 (below) the MSys netstat utility is shown as it details the connection information for the
`Four Calorie DNS Server`. (Here is a plug for the wonderful MSys package. It
provides a unix-like terminal and environment on Windows, and it contains
utilities that allow more convenient management of network related issues than
Windows)

Figure 4
Memory use
In figure 5 (below) the regular task manager dialog
shows the "Processes" tab, which is associated with a memory-usage display, and
is a handy way to monitor memory usage, among other things:

In figure 6 (below) the Services Control Manager dialog shows the service
database information, and contains links which can be used as a handy way to
start and stop the DNS server, among other things:

The server is in the development and testing phase, and so perfect function
is not assured. A means of recovery is a feature of the Windows service
architecture. In the figure shown below, the Fourcalorie service property page
has been selected in order to show the various recovery options that are
available.
Figure 7
Quickie HTTP/DNS outline:
An HTTP server
without attendant DNS service is not very useful. Visitors are unlikely to know
the address to type into their browser bar, and so would not ever reach a DNS
challenged HTTP server. The following diagram shows the relationship between the
HTTP server, the DNS server, and the visitor's browser. Note that in practice, the
client resolver usually will query an intermediate (ISP supplied) DNS server, rather
than directly accessing the root servers:

Figure 8
Email suggestions to: rscheckelhoff@fourcalorieservers.com
( Datazygte DNS )