See
my recent post for how to set up BIND as an authoritative name server.
If you really want to know DNS and not how an particular popular nameserver, BIND, implements DNS you should spend some time on
djbdns. Install it on an old PC and play with it