Tải bản đầy đủ (.pdf) (593 trang)

pro dns and bind

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (3.14 MB, 593 trang )

Pro DNS and BIND
Ron Aitchison
4940fm_final.qxd 7/8/05 2:42 PM Page i
Pro DNS and BIND
Copyright © 2005 by Ron Aitchison
All rights reserved. No part of this work may be reproduced or transmitted in any form or by any means,
electronic or mechanical, including photocopying, recording, or by any information storage or retrieval
system, without the prior written permission of the copyright owner and the publisher.
ISBN (pbk): 1-59059-494-0
Library of Congress Cataloging-in-Publication data is available upon request.
Printed and bound in the United States of America 987654321
Trademarked names may appear in this book. Rather than use a trademark symbol with every occurrence
of a trademarked name, we use the names only in an editorial fashion and to the benefit of the trademark
owner, with no intention of infringement of the trademark.
Lead Editor: Jason Gilmore
Technical Reviewer: Brian Wilson
Editorial Board: Steve Anglin, Dan Appleman, Ewan Buckingham, Gary Cornell, Tony Davis,
Jason Gilmore, Jonathan Hassell, Chris Mills, Dominic Shakeshaft, Jim Sumser
Associate Publisher: Grace Wong
Project Manager: Kylie Johnston
Copy Edit Manager: Nicole LeClerc
Copy Editor: Ami Knox, Susannah Pfalzer
Assistant Production Director: Kari Brooks-Copony
Production Editor: Ellie Fountain
Compositor: Linda Weidemann, Wolf Creek Press
Proofreader: Linda Seifert
Indexer: Valerie Perry
Artist: Kinetic Publishing Services, LLC
Interior Designer: Van Winkle Design Group
Cover Designer: Kurt Krames


Manufacturing Manager: Tom Debolski
Distributed to the book trade worldwide by Springer-Verlag New York, Inc., 233 Spring Street, 6th Floor,
New York, NY 10013. Phone 1-800-SPRINGER, fax 201-348-4505, e-mail , or
visit .
For information on translations, please contact Apress directly at 2560 Ninth Street, Suite 219, Berkeley,
CA 94710. Phone 510-549-5930, fax 510-549-5939, e-mail , or visit .
The information in this book is distributed on an “as is” basis, without warranty. Although every precaution
has been taken in the preparation of this work, neither the author(s) nor Apress shall have any liability to
any person or entity with respect to any loss or damage caused or alleged to be caused directly or indirectly
by the information contained in this work.
The sample files and source code for this book is available to readers at in the
Downloads section.
4940fm_final.qxd 7/12/05 4:37 PM Page ii
To my parents, Gordon and Vera Aitchison.
Any good characteristics I possess I owe entirely to their
good genes and a good upbringing. My bad characteristics
I had to work at strenuously on my own.
4940fm_final.qxd 7/8/05 2:42 PM Page iii
Contents at a Glance
About the Author . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxi
About the Technical Reviewer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxiii
Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxv
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxvii
PART 1
■ ■ ■
Principles and Overview
■CHAPTER 1 An Introduction to DNS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
■CHAPTER 2 Zone Files and Resource Records . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
■CHAPTER 3 DNS Operations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
■CHAPTER 4 DNS Types. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

■CHAPTER 5 DNS and IPv6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
PART 2
■ ■ ■
Get Something Running
■CHAPTER 6 Installing BIND. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
■CHAPTER 7 BIND Type Samples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
■CHAPTER 8 Common DNS Tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
■CHAPTER 9 DNS Diagnostics and Tools. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
PART 3
■ ■ ■
DNS Security
■CHAPTER 10 DNS Secure Configurations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
■CHAPTER 11 DNSSEC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283
PART 4
■ ■ ■
Reference
■CHAPTER 12 BIND Configuration Reference. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331
■CHAPTER 13 Zone File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405
iv
4940fm_final.qxd 7/8/05 2:42 PM Page iv
■CONTENTS AT A GLANCE v
PART 5
■ ■ ■
Programming
■CHAPTER 14 BIND APIs and Resolver Libraries. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475
■CHAPTER 15 DNS Messages and Records . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 507
PART 6
■ ■ ■
Appendixes
■APPENDIX A Domain Name Registration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 533

■APPENDIX B DNS RFCs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 541
■INDEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 547
4940fm_final.qxd 7/8/05 2:42 PM Page v
4940fm_final.qxd 7/8/05 2:42 PM Page vi
Contents
About the Author . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxi
About the Technical Reviewer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxiii
Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxv
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxvii
PART 1
■ ■ ■
Principles and Overview
■CHAPTER 1 An Introduction to DNS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
A Brief History of Name Servers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Name Server Basics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
The Internet Domain Name System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Domains and Delegation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Domain Authority . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
DNS Implementation and Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Root DNS Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Top-Level Domains . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
DNS System Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Zones and Zone Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Master and Slave DNS Servers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
DNS Software. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
■CHAPTER 2 Zone Files and Resource Records . . . . . . . . . . . . . . . . . . . . . . . . . 21
Zone File Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Zone File Contents. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
An Example Zone File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

The $TTL Directive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
The $ORIGIN Directive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
The SOA Resource Record. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
The NS Resource Record . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
The MX Resource Record. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
The A Resource Record . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
vii
4940fm_final.qxd 7/8/05 2:42 PM Page vii
CNAME Resource Record. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
When CNAME Records Must Be Used . . . . . . . . . . . . . . . . . . . . . . . . . 36
Additional Resource Records. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
PTR Resource Records . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
TXT Resource Records . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
AAAA Resource Records. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
NSEC, RRSIG, DS, DNSKEY, and KEY Resource Records . . . . . . . . . . 37
SRV Resource Records . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Standard Configuration File Scenarios. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
■CHAPTER 3 DNS Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
The DNS Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
DNS Queries. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Recursive Queries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Iterative (Nonrecursive) Queries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Inverse Queries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
DNS Reverse Mapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
IN-ADDR.ARPA Reverse-Mapping Domain . . . . . . . . . . . . . . . . . . . . . 45
Zone Maintenance. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Full Zone Transfer (AXFR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Incremental Zone Transfer (IXFR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
Notify (NOTIFY) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

Dynamic Update. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Alternative Dynamic DNS Approaches . . . . . . . . . . . . . . . . . . . . . . . . . 56
Security Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
■CHAPTER 4 DNS Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Master (Primary) Name Servers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
Slave (Secondary) Name Servers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Slave (Secondary) DNS Behavior . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
Caching Name Servers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
Caching Implications. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
Forwarding (Proxy) Name Servers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
Stealth (DMZ or Split) Name Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Stealth Servers and the View Clause . . . . . . . . . . . . . . . . . . . . . . . . . . 72
Stealth Server Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
Authoritative-only Name Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
■CONTENTSviii
4940fm_final.qxd 7/8/05 2:42 PM Page viii
■CHAPTER 5 DNS and IPv6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
IPv6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
IPv6 Address Notation
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
IPv6 Address Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
Prefix or Slash Notation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
Global Unicast IPv6 Address Allocation . . . . . . . . . . . . . . . . . . . . . . . . 81
IPv6 Global Unicast Address Format. . . . . . . . . . . . . . . . . . . . . . . . . . . 82
Status of IPv6 DNS Support. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
The AAAA vs. A6 Resource Record . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
Mixed IPv6 and IPv4 Network Support. . . . . . . . . . . . . . . . . . . . . . . . . 84
IPv6 Resource Records. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

The AAAA Resource Record. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
Reverse IPv6 Mapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
The IPv6 PTR Resource Record. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
PART 2
■ ■ ■
Get Something Running
■CHAPTER 6 Installing BIND . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
Fedora Core 2 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
Upgrading BIND 9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
Configuring BIND 9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
FreeBSD Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
BIND 9 Nonbase Install . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
BIND 9 Base Install . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
FreeBSD 5.3 Issues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
Building BIND from Source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
Windows Server 2000 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
■CHAPTER 7 BIND Type Samples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
Before We Start . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
Configuration Layout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
Configuration Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
Zone File Naming Convention . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
Required Zone Files. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
BIND named.conf File Format and Style . . . . . . . . . . . . . . . . . . . . . . 129
Standard Zone Files. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
■CONTENTS
ix
4940fm_final.qxd 7/8/05 2:42 PM Page ix

Master DNS Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
Master Name Server Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . 132
Slave DNS Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
Slave Name Server Configuration. . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
Caching-only DNS Server. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
Caching-only Name Server Configuration . . . . . . . . . . . . . . . . . . . . . 137
Forwarding (a.k.a. Proxy, Client, Remote) DNS Server . . . . . . . . . . . . . . . 139
Forwarding Name Server Configuration. . . . . . . . . . . . . . . . . . . . . . . 139
Stealth (a.k.a. Split or DMZ) DNS Server. . . . . . . . . . . . . . . . . . . . . . . . . . . 141
Stealth Configuration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
Authoritative-only DNS Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
Authoritative-only Name Server Configuration. . . . . . . . . . . . . . . . . 145
View-based Authoritative-only DNS Server. . . . . . . . . . . . . . . . . . . . . . . . . 147
View-based Authoritative-only Name Server Configuration . . . . . . 147
Security and the view Section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
■CHAPTER 8 Common DNS Tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
Delegate a Subdomain (Subzone). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
Domain Name Server Configuration. . . . . . . . . . . . . . . . . . . . . . . . . . 156
Subdomain Name Server Configuration. . . . . . . . . . . . . . . . . . . . . . . 158
Virtual Subdomains. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
Domain Name Server Configuration. . . . . . . . . . . . . . . . . . . . . . . . . . 160
Configure Mail Servers Fail-Over . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
Delegate Reverse Subnet Maps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
Assignee Zone File. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
Assignor (End-user) Zone File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
DNS Load Balancing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
Balancing Mail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
Balancing Other Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
Balancing Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167

Controlling the Round-Robin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
Effectiveness of DNS Load Balancing . . . . . . . . . . . . . . . . . . . . . . . . 167
Define an SPF Record. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
TXT RR Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
SPF type Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
SPF Record Examples. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
Supporting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
Apache Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
■CONTENTSx
4940fm_final.qxd 7/8/05 2:42 PM Page x
Out-of-Sequence Serial Numbers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
Use of Wildcards in Zone Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
■CHAPTER 9 DNS Diagnostics and Tools. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
DNS Utilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
The nslookup Utility. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
nslookup Command Format. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
Quick Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
Options. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
Examples: Command Line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
Example: Interactive Mode. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
BIND dig Utility. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
Quick Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
dig Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
dig Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
dig Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
dig Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
dig Response Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
BIND named-checkconf Utility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
named-checkconf Syntax. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201

named-checkconf Options. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
BIND named-checkzone Utility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
named-checkzone Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
named-checkconf Options. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
rndc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
rndc Syntax. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
rndc Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
rndc.conf Clauses and Statements. . . . . . . . . . . . . . . . . . . . . . . . . . . 204
rndc Configuration Examples. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
rndc Commands. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
rndc-confgen Utility. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
rndc-confgen Syntax. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
rndc-confgen Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
BIND nsupdate Utility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
nsupdate Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
nsupdate Options. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
nsupdate Command Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
nsupdate Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
■CONTENTS xi
4940fm_final.qxd 7/8/05 2:42 PM Page xi
dnssec-keygen Utility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
dnssec-keygen Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
dnssec-keygen Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
dnssec-keygen Examples. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
dnssec-signzone Utility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
dnssec-signzone Syntax. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
dnssec-signzone Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
dnssec-signzone Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
Diagnosing DNS Problems. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
Before the Problem Happens. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224

When the Problem Occurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230
PART 3
■ ■ ■
DNS Security
■CHAPTER 10 DNS Secure Configurations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
Security Overview and Audit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
DNS Normal Data Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
Security Classification. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238
Administrative Security. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
Up-to-Date Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
Limit Functionality . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240
Limit Permissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
Running BIND As Nonroot. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245
BIND in a Chroot Jail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
Stream the Log. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256
Software Diversity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
A Cryptographic Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
Symmetric Cryptography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
Asymmetric Cryptography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259
Message Digests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260
Message Authentication Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261
Digital Signatures. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262
DNS Cryptographic Use . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262
Securing Zone Transfers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
Authentication and Integrity of Zone Transfers . . . . . . . . . . . . . . . . . 265
TSIG Configuration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265
■CONTENTSxii
4940fm_final.qxd 7/8/05 2:42 PM Page xii
Securing Dynamic Updates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270

TSIG DDNS Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272
SIG(0) Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
■CHAPTER 11 DNSSEC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283
The DNSSEC Environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283
Islands of Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284
Chains of Trust . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286
Securing or Signing the Zone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288
Secure Zone Maintenance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296
Secure Delegation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299
Dynamic DNS and DNSSEC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300
DNSSEC Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301
Securing the example.com Zone. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301
Establishing a Trusted Anchor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311
Signing the sub.example.com Zone . . . . . . . . . . . . . . . . . . . . . . . . . . 314
Creating the Chain of Trust. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315
Key Rollover . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317
DNSSEC Lookaside Validation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323
DLV Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324
DLV Service. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327
PART 4
■ ■ ■
Reference
■CHAPTER 12 BIND Configuration Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331
BIND Command Line. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331
BIND Debug Levels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332
BIND Signals. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333
BIND Configuration Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334
Layout Styles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335

named-checkconf Is Your Friend. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336
BIND Clauses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336
BIND address_match_list Definition. . . . . . . . . . . . . . . . . . . . . . . . . . 339
BIND acl Clause . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341
BIND controls Clause. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342
BIND include Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343
■CONTENTS xiii
4940fm_final.qxd 7/8/05 2:42 PM Page xiii
BIND key Clause. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345
BIND logging Clause . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345
BIND lwres Clause . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346
BIND masters Clause . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346
BIND options Clause . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347
BIND server Clause . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348
BIND trusted-keys Clause . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
BIND view Clause. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350
BIND zone Clause . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351
BIND Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352
BIND controls Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363
inet Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363
BIND logging Statements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364
channel Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365
category Statement. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367
BIND Resolver Statements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370
view . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370
search . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370
ndots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371
BIND Transfer Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371
allow-notify. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371
allow-transfer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372

allow-update. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372
allow-update-forwarding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373
also-notify . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374
alt-transfer-source, alt-transfer-source-v6. . . . . . . . . . . . . . . . . . . . 374
ixfr-from-differences. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375
max-journal-size . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375
max-refresh-time, min-refresh-time . . . . . . . . . . . . . . . . . . . . . . . . . 376
max-retry-time, min-retry-time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 376
max-transfer-idle-in . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 376
max-transfer-idle-out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 376
max-transfer-time-in. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377
max-transfer-time-out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377
multi-master. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377
notify . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377
notify-source, notify-source-v6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378
provide-ixfr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379
request-ixfr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379
serial-query-rate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379
■CONTENTSxiv
4940fm_final.qxd 7/8/05 2:42 PM Page xiv
transfer-format. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379
transfer-source, transfer-source-v6 . . . . . . . . . . . . . . . . . . . . . . . . . . 379
transfers-in . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380
transfers-per-ns. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380
transfers-out. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381
update-policy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381
use-alt-transfer-source. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382
DNS BIND Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382
avoid-v4-udp-ports, avoid-v6-udp-ports. . . . . . . . . . . . . . . . . . . . . . 382
check-names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382

cleaning-interval . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383
coresize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383
database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383
datasize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383
dialup. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384
directory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384
dual-stack-server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384
dump-file. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385
edns-udp-size . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385
files. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385
heartbeat-interval . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385
hostname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385
interface-interval . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386
lame-ttl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386
listen-on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386
listen-on-v6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386
match-mapped-addresses. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387
max-cache-size . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387
max-cache-ttl. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387
max-ncache-ttl. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 388
memstatistics-file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 388
pid-file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 388
port. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 388
preferred-glue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 388
querylog. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389
recursing-file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389
server-id . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389
stacksize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389
statistics-file. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389
tcp-listen-queue. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390

■CONTENTS xv
4940fm_final.qxd 7/8/05 2:42 PM Page xv
tcp-clients. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390
version. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390
zone-statistics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390
DNS BIND Query Statements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391
additional-from-auth, additional-from-cache . . . . . . . . . . . . . . . . . . 391
allow-query. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391
allow-recursion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391
auth-nxdomain. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392
blackhole. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392
delegation-only . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392
forward . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392
forwarders. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392
minimal-responses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393
query-source, query-source-v6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393
recursion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393
recursive-clients . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393
root-delegation-only . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394
rrset-order. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394
sortlist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394
DNS BIND Security Statements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396
algorithm. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396
disable-algorithms. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396
dnssec-enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396
dnssec-lookaside. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397
dnssec-must-be-secure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397
key-directory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397
random-device. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397
secret. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398

sig-validity-interval . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398
tkey-dhkey . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398
tkey-domain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399
tkey-gssapi-credential . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399
DNS BIND server Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399
bogus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399
edns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 400
keys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 400
transfers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 400
DNS BIND view Statements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 400
match-clients . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 400
match-destinations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401
match-recursive-only . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401
■CONTENTSxvi
4940fm_final.qxd 7/8/05 2:42 PM Page xvi
DNS BIND zone Statements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401
check-names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401
file. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401
masters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402
type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403
■CHAPTER 13 Zone File Reference. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405
DNS Zone File Structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405
DNS Directives. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406
The $ORIGIN Directive. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406
The $INCLUDE Directive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 407
The $TTL Directive. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409
The $GENERATE Directive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 410
DNS Resource Records . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 411
Resource Record Common Format. . . . . . . . . . . . . . . . . . . . . . . . . . . 415

RRsets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418
Resource Record Descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419
IPv4 Address (A) Record . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419
Experimental IPv6 Address (A6) Record. . . . . . . . . . . . . . . . . . . . . . . 420
IPv6 Address (AAAA) Record . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 422
AFS Database (AFSDB) Record . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423
Address Prefix List (APL) Record. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 424
ATM Address (ATMA) Record . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425
Certificate (CERT) Record . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425
Canonical Name (CNAME) Record. . . . . . . . . . . . . . . . . . . . . . . . . . . . 426
Delegation of Reverse Names (DNAME) Record. . . . . . . . . . . . . . . . 428
DNSKEY Record . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 429
Delegation Signer (DS) Record . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 430
System Information (HINFO) Record. . . . . . . . . . . . . . . . . . . . . . . . . . 432
Integrated Services Digital Network (ISDN) Record. . . . . . . . . . . . . 432
IPSEC Key (IPSECKEY) Record . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 432
Public Key (KEY) Record . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433
Key Exchanger (KX) Record . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435
Location (LOC) Record . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436
Mailbox (MB) Record. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437
Mail Group (MG) Record . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 438
Mailbox Renamed (MR) Record. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439
Mailbox Mail List Information (MINFO) Record . . . . . . . . . . . . . . . . . 440
Mail Exchange (MX) Record . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441
■CONTENTS xvii
4940fm_final.qxd 7/8/05 2:42 PM Page xvii
■CONTENTSxviii
Naming Authority Pointer (NAPTR) Record. . . . . . . . . . . . . . . . . . . . . 444
Name Server (NS) Record. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 447
Network Service Access Point (NSAP) Record . . . . . . . . . . . . . . . . . 450

Next Secure (NSEC) Record . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 452
Pointer (PTR) Record . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453
X.400 to RFC 822 E-mail (PX) Record . . . . . . . . . . . . . . . . . . . . . . . . 455
Responsible Person (RP) Record. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 456
Resource Record Signature (RRSIG) Record . . . . . . . . . . . . . . . . . . . 457
Route Through (RT) Record . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 459
Signature (SIG) Record . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 459
Start of Authority (SOA) Record . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 460
Services (SRV) Record. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 464
SSH Key Fingerprint (SSHFP) Record . . . . . . . . . . . . . . . . . . . . . . . . . 466
Text (TXT) Record. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 467
Well-Known Service (WKS) Record. . . . . . . . . . . . . . . . . . . . . . . . . . . 468
X.25 Address (X25) Record . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 469
Alternative Cryptographic Algorithms. . . . . . . . . . . . . . . . . . . . . . . . . 469
User-Defined RRs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 470
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471
PART 5
■ ■ ■
Programming
■CHAPTER 14 BIND APIs and Resolver Libraries. . . . . . . . . . . . . . . . . . . . . . . . . 475
BIND API Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475
Advanced Database API (adb) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475
Simple Database API (sdb) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 476
The Simple Database API (sdb). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 476
Callback Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 477
Registering the Callbacks. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 478
Adding the Driver to BIND. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 481
The Callback Functions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 483
Returning RRs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 488
Memory Management for Drivers. . . . . . . . . . . . . . . . . . . . . . . . . . . . 490

Logging for Drivers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 491
Testing the Driver. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 492
sdb Sample Driver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 493
Resolver Libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 498
POSIX Library Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 498
4940fm_final.qxd 7/8/05 2:42 PM Page xviii
The RES Library Set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 499
Invoking the RES Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 499
The _res Structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 499
RES Library Functions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 501
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 505
■CHAPTER 15 DNS Messages and Records . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 507
DNS Message Formats. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 509
DNS Message Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 511
DNS Message Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 513
DNS Message Header . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 513
DNS QUESTION SECTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 516
DNS ANSWER, AUTHORITY, and ADDITIONAL SECTIONS. . . . . . . . . 517
EDNS0 Transactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 519
OPT Pseudo RR Format. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 520
DNS Binary RR Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 521
Security Algorithm Formats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 528
NSEC Bitmap Format. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 529
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 530
PART 6
■ ■ ■
Appendixes
■APPENDIX A Domain Name Registration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 533
Answers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 534
■APPENDIX B DNS RFCs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 541

■INDEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 547
■CONTENTS xix
4940fm_final.qxd 7/8/05 2:42 PM Page xix
4940fm_final.qxd 7/8/05 2:42 PM Page xx
About the Author
■RONALD (RON) AITCHISON is the President of Zytrax, Inc., a Montreal-based company that spe-
cializes in wireless and wire-line IP communications. Zytrax develops its own products as well
as undertaking specialized consulting, training, system design, and development for clients.
Zytrax is currently developing the Netwidget—a business appliance family aimed at bringing
the compelling cost advantages of Open Source to small- and medium-sized companies by
offering trivial user installation, and robust and reliable operation combined with high levels
of security. Netwidget uses BIND, NSD, DHCP, Apache, Squid, ProFTP, Samba, Courier e-mail,
OpenLDAP, and OpenSSL, among many other high-quality packages, and is developed in a
mixture of C and Ruby. Zytrax supports its own and customer-hosted DNS, web, e-mail, and
LDAP services on a mixed network of Windows, Linux, and, increasingly, FreeBSD systems,
and has been an Open Source user since 1998.
Prior to founding Zytrax in 1994, Ron worked in senior roles in development, sales, and
marketing in both Europe and the US. He started his computer career in 1973 as a grunt systems
programmer developing communications software for mainframes in a nineteenth-century
palace outside of Edinburgh, Scotland. His major achievement in those years was, as cofounder
of the local micro-club, persuading Intel to ship the UK’s second 8086 system for club use ahead
of minor competition such as IBM and others. He moved into sales and marketing for a number
of years before returning to real—technical—work when he established Zytrax. He was educated
in mechanical engineering at the University of Strathclyde in Glasgow, Scotland, a long time ago.
xxi
4940fm_final.qxd 7/8/05 2:42 PM Page xxi
4940fm_final.qxd 7/8/05 2:42 PM Page xxii
About the Technical Reviewer
■BRIAN WILSON is the associate director of technology at the Fisher College of Business at
The Ohio State University. He has worked in the IT industry for the last 16 years. Brian spe-

cializes in network and firewall design and implementation, and he oversees and directs
all technical aspects of the Fisher College of Business. He received a BS in computer science
engineering from The Ohio State University.
In his off time, Brian spends time with his wife and three children at their country home.
Brian enjoys listening to and watching baseball. Over the past couple of years, Brian has
become determined to be a horseman with the acquisition of a new quarter horse.
xxiii
4940fm_final.qxd 7/8/05 2:42 PM Page xxiii
4940fm_final.qxd 7/8/05 2:42 PM Page xxiv

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×