Troubleshooters.Com and T.C Linux Library and djbdns Intro Present

Troubleshooting djbdns

Copyright (C) 2011 by Steve Litt, All rights reserved. Material provided as-is, use at your own risk. 




CONTENTS:



Introduction

A lot of us are using djbdns instead of BIND for DNS. Many (including me) consider djbdns simpler and more secure.

But djbdns can get bunged up in a bad install or by a bad distro package, and when it does get bunged up it can seem like a huge black box. The fact that it's run by daemontools only makes the black box seem
bigger. A bad djbdns install, whether via distro package or compile, can seem overwhelming. This document is written to give you:
  1. An understandable mental model of djbdns and the daemontools application that runs it.
  2. a list of quick and handy diagnostic tests to quickly narrow down the problem to the root cause Using that mental model.
In other words, the purpose of this document is to help the average Linux/Unix/BSD user troubleshoot djbdns.

About Troubleshooting: A Summary

Troubleshooting is the act of restoring a sub-performing system back to its as-designed state. It's performed using the Universal Troubleshooting Process (abbreviated UTP):
  1. Get the Attitude
  2. Make damage control plan
  3. Get a complete and accurate symptom description
  4. Reproduce the symptom
  5. Do the appropriate general maintenance
  6. Narrow it down to the root cause
  7. Repair or replace the defective component
  8. Test
  9. Take pride in your solution
  10. Prevent future occurrence of this problem
The preceding process is used against a Mental Model of the system being repaired. The Mental Model is a block diagram of the system, and is used to decide the optimal diagnostic tests to perform in order to continue narrowing down the root scope (Step 6). The decision of which diagnostic to perform next is based on the Quadruple Tradeoff:
All other things being equal, even divisions (splitting the remaining possible root cause scope exactly in half) leads to the quickest solution. Likelihood and ease often cause optimal splits to be other than even. You should never do unsafe tests. Either find a way to make a test safe, or don't do it at all.

In order to do everything discussed so far in this article, you need to operate your brain optimally for troubleshooting. Here is a summary of optimal brain operation for troubleshooting:
This article is a short summary of the Universal Troubleshooting Process and related mental state. To learn more, purchase "Twenty Eight Tales of Troubleshooting" from Troubleshooters.Com at http://www.troubleshooters.com/bookstore/, or see our troubleshooting content at http://www.troubleshooters.com/tuni.htm.

djbdns Mental Models

Process and package based Mental Models





Directory structure of a minimalist djb daemon

Minimal djb application log directory tree





Minimal Service: Process and data flow

Tree for the dnscache directory

Block diagram of dnscache




Back to Troubleshooters.Com * Back to Linux Library