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:
An understandable mental model of djbdns and the daemontools application that runs it.
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):
Get the Attitude
Make damage control plan
Get a complete and accurate symptom description
Reproduce the symptom
Do the appropriate general maintenance
Narrow it down to the root cause
Repair or replace the defective component
Test
Take pride in your solution
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:
Even divisions
Likelihood
Ease
Safety
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:
Believe in what is written so far in this article
Believe in the Troubleshooter's Philosophy: "Don't try to fix it, just try to narrow it down."
Believe in and recite when you're stuck the Troubleshooter's Mantra: "How can I narrow it down just one more time?"
Stay rational:
Don't panic
Recite Troubleshooter's Mantra if you start to.
Don't get angry
Take a break if you start getting angry.
No emotion: Hunt the root cause like a cold, deadly predator.