We hope this book will help you get acquainted with DNS and BIND if you're just starting out, refine your understanding if you're already familiar with them, and provide valuable insight and experience even if you know 'em like the back of your hand.
Chapter 1. Background
Section 1.1. A (Very) Brief History of the Internet
Section 1.2. On the Internet and internets
Section 1.3. The Domain Name System in a Nutshell
Section 1.4. The History of BIND
Section 1.5. Must I Use DNS?
Chapter 2. How Does DNS Work?
Section 2.1. The Domain Name Space
Section 2.2. The Internet Domain Name Space
Section 2.3. Delegation
Section 2.4. Name Servers and Zones
Section 2.5. Resolvers
Section 2.6. Resolution
Section 2.7. Caching
Chapter 3. Where Do I Start?
Section 3.1. Getting BIND
Section 3.2. Choosing a Domain Name
Chapter 4. Setting Up BIND
Section 4.1. Our Zone
Section 4.2. Setting Up Zone Data
Section 4.3. Setting Up a BIND Configuration File
Section 4.4. Abbreviations
Section 4.5. Host Name Checking (BIND 4.9.4 and Later Versions)
Section 4.6. Tools
Section 4.7. Running a Primary Master Name Server
Section 4.8. Running a Slave Name Server
Section 4.9. Adding More Zones
Section 4.10. What Next?
Chapter 5. DNS and Electronic Mail
Section 5.1. MX Records
Section 5.2. What's a Mail Exchanger, Again?
Section 5.3. The MX Algorithm
Chapter 6. Configuring Hosts
Section 6.1. The Resolver
Section 6.2. Sample Resolver Configurations
Section 6.3. Minimizing Pain and Suffering
Section 6.4. Vendor -Specific Options
Chapter 7. Maintaining BIND
Section 7.1. Controlling the Name Server
Section 7.2. Updating Zone Data Files
Section 7.3. Organizing Your Files
Section 7.4. Changing System File Locations in BIND 8 and 9
Section 7.5. Logging in BIND 8 and 9
Section 7.6. Keeping Everything Running Smoothly
Chapter 8. Growing Your Domain
Section 8.1. How Many Name Servers?
Section 8.2. Adding More Name Servers
Section 8.3. Registering Name Servers
Section 8.4. Changing TTLs
Section 8.5. Planning for Disasters
Section 8.6. Coping with Disaster
Chapter 9. Parenting
Section 9.1. When to Become a Parent
Section 9.2. How Many Children?
Section 9.3. What to Name Your Children
Section 9.4. How to Become a Parent: Creating Subdomains
Section 9.5. Subdomains of in-addr.arpa Domains
Section 9.6. Good Parenting
Section 9.7. Managing the Transition to Subdomains
Section 9.8. The Life of a Parent
Chapter 10. Advanced Features
Section 10.1. Address Match Lists and ACLs
Section 10.2. DNS Dynamic Update
Section 10.3. DNS NOTIFY (Zone Change Notification)
Section 10.4. Incremental Zone Transfer (IXFR)
Section 10.5. Forwarding
Section 10.6. Views
Section 10.7. Round Robin Load Distribution
Section 10.8. Name Server Address Sorting
Section 10.9. Preferring Name Servers on Certain Networks
Section 10.10. A Nonrecursive Name Server
Section 10.11. Avoiding a Bogus Name Server
Section 10.12. System Tuning
Section 10.13. Compatibility
Section 10.14. The ABCs of IPv6 Addressing
Section 10.15. Addresses and Ports
Section 10.16. IPv6 Forward and Reverse Mapping
Chapter 11. Security
Section 11.1. TSIG
Section 11.2. Securing Your Name Server
Section 11.3. DNS and Internet Firewalls
Section 11.4. The DNS Security Extensions
Chapter 12. nslookup and dig
Section 12.1. Is nslookup a Good Tool?
Section 12.2. Interactive Versus Noninteractive
Section 12.3. Option Settings
Section 12.4. Avoiding the Search List
Section 12.5. Common Tasks
Section 12.6. Less Common Tasks
Section 12.7. Troubleshooting nslookup Problems
Section 12.8. Best of the Net
Section 12.9. Using dig
Chapter 13. Reading BIND Debugging Output
Section 13.1. Debugging Levels
Section 13.2. Turning On Debugging
Section 13.3. Reading Debugging Output
Section 13.4. The Resolver Search Algorithm and Negative Caching (BIND 8)
Section 13.5. The Resolver Search Algorithm and Negative Caching (BIND 9)
Section 13.6. Tools
Chapter 14. Troubleshooting DNS and BIND
Section 14.1. Is NIS Really Your Problem?
Section 14.2. Troubleshooting Tools and Techniques
Section 14.3. Potential Problem List
Section 14.4. Transition Problems
Section 14.5. Interoperability and Version Problems
Section 14.6. TSIG Errors
Section 14.7. Problem Symptoms
Chapter 15. Programming with the Resolver and Name Server Library Routines
Section 15.1. Shell Script Programming with nslookup
Section 15.2. C Programming with the Resolver Library Routines
Section 15.3. Perl Programming with Net::DNS
Chapter 16. Miscellaneous
Section 16.1. Using CNAME Records
Section 16.2. Wildcards
Section 16.3. A Limitation of MX Records
Section 16.4. Dialup Connections
Section 16.5. Network Names and Numbers
Section 16.6. Additional Resource Records
Section 16.7. DNS and WINS
Section 16.8. DNS and Windows 2000
Appendix A. DNS Message Format and Resource Records
Section A.1. Master File Format
Section A.2. DNS Messages
Section A.3. Resource Record Data
Appendix B. BIND Compatibility Matrix
Appendix C. Compiling and Installing BIND on Linux
Section C.1. Instructions for BIND 8.2.3
Section C.2. Instructions for BIND 9.1.0
Appendix D. Top-Level Domains
Appendix E. BIND Name Server and Resolver Configuration
Section E.1. BIND Name Server Boot File Directives and Configuration File Statements
Section E.2. BIND 4 Boot File Directives
Section E.3. BIND 8 Configuration File Statements
Section E.4. BIND 9 Configuration File Statements
Section E.5. BIND Resolver Statements
Organization
This book is organized to more or less follow the evolution of a zone and its administrator. Chapter 1 and Chapter 2 discuss Domain Name System theory. Chapter 3 through Chapter 6 help you decide whether or not to set up your own zones, then describe how to go about it should you choose to. The middle of the book, Chapter 7 through Chapter 11, describe how to maintain your zones, configure hosts to use your name servers, plan for the growth of your zones, create subdomains, and secure your name servers. Finally, Chapter 12 through Chapter 16 deal with troubleshooting tools, common problems, and the lost art of programming with the resolver library routines.
Here's a more detailed, chapter-by-chapter breakdown:
Chapter 1, provides a little historical perspective and discusses the problems that motivated the development of DNS, and then presents an overview of DNS theory.
Chapter 2, goes over DNS theory in more detail, including the organization of the DNS namespace, domains, zones, and name servers. We also introduce important concepts like name resolution and caching.
Chapter 3, covers how to get the BIND software if you don't already have it, what to do with it once you've got it, how to figure out what your domain name should be, and how to contact the organization that can delegate your zone to you.
Chapter 4, details how to set up your first two BIND name servers, including creating your name server database, starting up your name servers, and checking their operation.
Chapter 5, deals with DNS's MX record, which allows administrators to specify alternate hosts to handle a given destination's mail. This chapter covers mail routing strategies for a wide variety of networks and hosts, including networks with Internet firewalls and hosts without direct Internet connectivity.
Chapter 6, explains how to configure a BIND resolver. We also include notes on the idiosyncrasies of many major Unix vendors' resolver implementations, as well as the Windows 95, NT, and 2000 resolvers.
Chapter 7, describes the periodic maintenance that administrators need to perform to keep their zones running smoothly, such as checking name server health and authority.
Chapter 8, covers how to plan for the growth and evolution of your zones, including how to get big and how to plan for moves and outages.
Chapter 9, explores the joys of becoming a parent zone. We explain when to become a parent (create subdomains), what to call your children, how to create them (!), and how to watch over them.
Chapter 10, goes over some less-often-used name server configuration options that can help you tune your name server's operation and ease administration.
Chapter 11, describes how to secure your name server and how to configure your name servers to deal with Internet firewalls, and also describes two new security enhancements to DNS: the DNS Security Extensions and Transaction Signatures.
Chapter 12, shows the ins and outs of the most popular tools for doing DNS debugging, including techniques for digging obscure information out of remote name servers.
Chapter 13, is the Rosetta Stone of BIND's debugging information. This chapter will help you make sense of the cryptic debugging information that BIND emits, which in turn will help you understand your name server better.
Chapter 14, covers many common DNS and BIND problems and their solutions, and describes a number of less common, harder-to- diagnose scenarios.
Chapter 15, demonstrates how to use BIND's resolver routines to query name servers and retrieve data from within a C program or a Perl script. We include a useful (we hope!) program to check the health and authority of your name servers.
Chapter 16, ties up all the loose ends. We cover DNS wildcards, hosts and networks with intermittent Internet connectivity via dialup, network name encoding, experimental record types, and Windows 2000.
Appendix A, contains a byte-by-byte breakdown of the formats used in DNS queries and responses, as well as a comprehensive list of the currently defined resource record types.
Appendix B, contains a matrix showing the most important features of the most popular BIND releases.
Appendix C, contains step-by-step instructions on how to compile the 8.2.3 version of BIND on Linux.
Appendix D, lists the current top-level domains in the Internet's domain name space.
Appendix E, summarizes the syntax and semantics of each of the parameters available for configuring name servers and resolvers.