CNT4603 - 2011 Summer
Group Assignment 5
Journals Due Tuesday, July 12th, at the beginning of class.

Assignment: DNS

Note: If you have installed and configured DNS before, this assignment should be no more than moderately challenging. If you have not done so before, however, it may be quite challenging.

The assignment is to install and configure DNS on both your Fedora 15 machine and on your CentOS 5.6 machine.

Each machine should use a different version of a DNS server. Please choose two from DJBDNS, BIND, or MaraDNS. DJBDNS can be found at; BIND and MaraDNS should be in your repositories.

There are tradeoffs associated with each of these packages. Please examine each of them before installing anything, and write out your initial reasoning as to what your initial installation decisions.

Some are some major considerations that I would suggest:

  1. DJBDNS: (a) DJBDNS is not in any repository, and must be installed from source (or an RPM, if you can find one that you trust), so it is clearly more challenging as an installation project. (b) Documentation for DJBDNS is fairly scarce except for the CR.YP.TO website. (c) DJBDNS is considered by most sysadmins to be very easy to configure, and maintenance is usually a breeze.
  2. BIND: (a) BIND is by far the most common DNS package and is trivial to install. (b) It is heavily documented, and there are numerous books available on the sole subject of configuring this daemon. (c) Hand maintenance of BIND files is historically a troublesome and tedious task.
  3. MaraDNS: (a) MaraDNS can be found in your software repositories. (b) Like DJBDNS, documentation is quite scarce except for the documentation at website. (c) MaraDNS is also considered by most of its users to be quite simple to configure and maintain, with the nice ability to synthesize certain tedious but necessary records.

For this exercise, your two machines will both be primary, authoritative nameservers for your group's DNS domain. The name of each group's domain is cslabNN.internal; i.e. for group #2, the DNS domain is cslab02.internal; for group #9, it is cslab09.internal; and for group #19, it is cslab19.internal.


Both of your servers should answer anyone's UDP requests on the standard DNS port 53.

Both of your servers should provide general recursive caching DNS for all machines in the lab. Any machine in the lab should be able to resolve "", "", and "" using either of your nameservers.

Both of your servers should also provide at least the following DNS records:

Type Name Value
A s1.cslabNN.internal 192.168.10.(N*10)
A s2.cslabNN.internal 192.168.10.(N*10+1)
A mail.cslabNN.internal 192.168.10.(N*10+1)
A imap.cslabNN.internal 192.168.10.(N*10+1)
A webmail.cslabNN.internal 192.168.10.(N*10)
MX cslabNN.internal mail.cslabNN.internal

Please also make sure that reverse records for the A records are available.

For bonus credit, you can set up both of your servers to do internal resolution of names via Normally, your nameservers would serve up outside numbers for these names; however, all three of these packages afford a method to consult specified servers for specific domains. If you are feeling very ambitious, feel free to set up both of your servers to consult other team's nameservers for their domains also!

Please extensively test your servers from your other machine. The programs dig and nslookup are the most useful tools for doing this testing. On Tuesday, July 12, we will spend a portion of class visiting both of your servers so that everyone can view your handiwork.

A journal is due for this assignment. Make sure that you document in your journal all of the steps that you went through, following the guidelines on the class home page.

Please turn in a printed copy of this assignment at the beginning of class on Tuesday, July 12th.