DNS Projects HTTP Projects OSS Projects Little History Testing DNS Servers Main Page







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.


The "DIG utility" output is shown in figure 2:


Figure 2

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.



The "Ethereal" utility output is shown in figure 3:


Figure 3

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.

No particular level of security is indicated or warranted for any portion of this software.


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:


Figure 5

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:


Figure 6


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

A Little History

Note that this program is still in the development and testing process
- don't use it for anything important!

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


Valid HTML 4.01 Transitional