Verify DNS records with Dlint
Published: 05 Sep 2002 13:07 BST
If you manage Domain Name System (DNS) records, you probably already know how seemingly minor errors can cause big problems. Leaving a semicolon off the end of a statement, forgetting the trailing period, or failing to add that right bracket can cause a DNS server to fail to load or to respond incorrectly to requests.
Dlint is a utility that will check your domains for common errors, allowing you to fix them before a problem gets out of hand. Dlint uses Domain Information Groper (DiG) and a combination shell/Perl script to gather and parse DNS information. This script can help verify your configuration and save you some troubleshooting time in the future.
What Dlint does
Dlint is basically an error checker for DNS databases. DNS allows host names to be mapped to IP addresses. Every domain name on the Internet has at least one primary "name server" (DNS server) that stores its information. This information is usually in the form of plain text files listing such DNS information as refresh rates, MX records, A records, CNAMEs, and much more.
Most DNS software, such as BIND, will perform some syntax checking when it initializes. But a number of errors that won't halt the software from starting will still cause problems down the road. This is where Dlint comes in.
Dlint will check the DNS for a supplied domain and determine whether it contains any errors. Dlint looks for things like common typing errors, nonfully qualified domain names, and A-record-to-PTR correspondence. Dlint will also detect subdomains automatically and recursively check them. Once this information has been gathered and processed, Dlint will provide you with the results.
Installing Dlint
Dlint requires DiG 2.1 and Perl 5 or newer. Typing dig by itself should list the version number on the first line (e.g., ; <<>> DiG 9.2.1 <<>>), and entering perl --v should give you Perl's version number. Once you have verified that both are on your system and of an appropriate version, you can start installing Dlint.
Dlint packages exist in multiple distribution formats from common software repositories such as RPMfind and freshmeat. Simply select the appropriate package for your Linux system. Alternatively, you can download the source tarball here.
Once you have the source distribution on your system, unpack it with the tar xpfz command and cd to the newly created directory. In this directory will be a file called digparse, which you will need to modify. The digparse script performs parsing functions for the various versions of DiG and passes the information to Dlint. Open it with your favorite text editor and change the first line to represent the path to Perl. This is typically /usr/bin/perl, but it may be different on your Linux distribution. Running whereis perl can help you track down this information.
You will need to manually edit a couple of additional files, the next one being the main program script itself. Open the dlint file and modify the rrfilt variable to be the destination path of digparse. The default is /usr/local/bin/digparse, and it should be fine there unless individual requirements dictate otherwise. Next, you should edit the Makefile and set your desired installation directory. The default is /usr/local and shouldn't need to be changed for most installations. If you do need to change this, modify the DEST variable to be the desired path. Note that not everything will be installed into the root /usr/local/ directory but will end up in the appropriate subdirectories, such as bin and man. After you have completed the file editing, all that is left to do is run make install. Dlint should now be installed and ready to run.






