📄 rfc1035.txt
字号:
Network Working Group P. MockapetrisRequest for Comments: 1035 ISI November 1987Obsoletes: RFCs 882, 883, 973 DOMAIN NAMES - IMPLEMENTATION AND SPECIFICATION1. STATUS OF THIS MEMOThis RFC describes the details of the domain system and protocol, andassumes that the reader is familiar with the concepts discussed in acompanion RFC, "Domain Names - Concepts and Facilities" [RFC-1034].The domain system is a mixture of functions and data types which are anofficial protocol and functions and data types which are stillexperimental. Since the domain system is intentionally extensible, newdata types and experimental behavior should always be expected in partsof the system beyond the official protocol. The official protocol partsinclude standard queries, responses and the Internet class RR dataformats (e.g., host addresses). Since the previous RFC set, severaldefinitions have changed, so some previous definitions are obsolete.Experimental or obsolete features are clearly marked in these RFCs, andsuch information should be used with caution.The reader is especially cautioned not to depend on the values whichappear in examples to be current or complete, since their purpose isprimarily pedagogical. Distribution of this memo is unlimited. Table of Contents 1. STATUS OF THIS MEMO 1 2. INTRODUCTION 3 2.1. Overview 3 2.2. Common configurations 4 2.3. Conventions 7 2.3.1. Preferred name syntax 7 2.3.2. Data Transmission Order 8 2.3.3. Character Case 9 2.3.4. Size limits 10 3. DOMAIN NAME SPACE AND RR DEFINITIONS 10 3.1. Name space definitions 10 3.2. RR definitions 11 3.2.1. Format 11 3.2.2. TYPE values 12 3.2.3. QTYPE values 12 3.2.4. CLASS values 13Mockapetris [Page 1]RFC 1035 Domain Implementation and Specification November 1987 3.2.5. QCLASS values 13 3.3. Standard RRs 13 3.3.1. CNAME RDATA format 14 3.3.2. HINFO RDATA format 14 3.3.3. MB RDATA format (EXPERIMENTAL) 14 3.3.4. MD RDATA format (Obsolete) 15 3.3.5. MF RDATA format (Obsolete) 15 3.3.6. MG RDATA format (EXPERIMENTAL) 16 3.3.7. MINFO RDATA format (EXPERIMENTAL) 16 3.3.8. MR RDATA format (EXPERIMENTAL) 17 3.3.9. MX RDATA format 17 3.3.10. NULL RDATA format (EXPERIMENTAL) 17 3.3.11. NS RDATA format 18 3.3.12. PTR RDATA format 18 3.3.13. SOA RDATA format 19 3.3.14. TXT RDATA format 20 3.4. ARPA Internet specific RRs 20 3.4.1. A RDATA format 20 3.4.2. WKS RDATA format 21 3.5. IN-ADDR.ARPA domain 22 3.6. Defining new types, classes, and special namespaces 24 4. MESSAGES 25 4.1. Format 25 4.1.1. Header section format 26 4.1.2. Question section format 28 4.1.3. Resource record format 29 4.1.4. Message compression 30 4.2. Transport 32 4.2.1. UDP usage 32 4.2.2. TCP usage 32 5. MASTER FILES 33 5.1. Format 33 5.2. Use of master files to define zones 35 5.3. Master file example 36 6. NAME SERVER IMPLEMENTATION 37 6.1. Architecture 37 6.1.1. Control 37 6.1.2. Database 37 6.1.3. Time 39 6.2. Standard query processing 39 6.3. Zone refresh and reload processing 39 6.4. Inverse queries (Optional) 40 6.4.1. The contents of inverse queries and responses 40 6.4.2. Inverse query and response example 41 6.4.3. Inverse query processing 42Mockapetris [Page 2]RFC 1035 Domain Implementation and Specification November 1987 6.5. Completion queries and responses 42 7. RESOLVER IMPLEMENTATION 43 7.1. Transforming a user request into a query 43 7.2. Sending the queries 44 7.3. Processing responses 46 7.4. Using the cache 47 8. MAIL SUPPORT 47 8.1. Mail exchange binding 48 8.2. Mailbox binding (Experimental) 48 9. REFERENCES and BIBLIOGRAPHY 50 Index 542. INTRODUCTION2.1. OverviewThe goal of domain names is to provide a mechanism for naming resourcesin such a way that the names are usable in different hosts, networks,protocol families, internets, and administrative organizations.From the user's point of view, domain names are useful as arguments to alocal agent, called a resolver, which retrieves information associatedwith the domain name. Thus a user might ask for the host address ormail information associated with a particular domain name. To enablethe user to request a particular type of information, an appropriatequery type is passed to the resolver with the domain name. To the user,the domain tree is a single information space; the resolver isresponsible for hiding the distribution of data among name servers fromthe user.From the resolver's point of view, the database that makes up the domainspace is distributed among various name servers. Different parts of thedomain space are stored in different name servers, although a particulardata item will be stored redundantly in two or more name servers. Theresolver starts with knowledge of at least one name server. When theresolver processes a user query it asks a known name server for theinformation; in return, the resolver either receives the desiredinformation or a referral to another name server. Using thesereferrals, resolvers learn the identities and contents of other nameservers. Resolvers are responsible for dealing with the distribution ofthe domain space and dealing with the effects of name server failure byconsulting redundant databases in other servers.Name servers manage two kinds of data. The first kind of data held insets called zones; each zone is the complete database for a particular"pruned" subtree of the domain space. This data is calledauthoritative. A name server periodically checks to make sure that itszones are up to date, and if not, obtains a new copy of updated zonesMockapetris [Page 3]RFC 1035 Domain Implementation and Specification November 1987from master files stored locally or in another name server. The secondkind of data is cached data which was acquired by a local resolver.This data may be incomplete, but improves the performance of theretrieval process when non-local data is repeatedly accessed. Cacheddata is eventually discarded by a timeout mechanism.This functional structure isolates the problems of user interface,failure recovery, and distribution in the resolvers and isolates thedatabase update and refresh problems in the name servers.2.2. Common configurationsA host can participate in the domain name system in a number of ways,depending on whether the host runs programs that retrieve informationfrom the domain system, name servers that answer queries from otherhosts, or various combinations of both functions. The simplest, andperhaps most typical, configuration is shown below: Local Host | Foreign | +---------+ +----------+ | +--------+ | | user queries | |queries | | | | User |-------------->| |---------|->|Foreign | | Program | | Resolver | | | Name | | |<--------------| |<--------|--| Server | | | user responses| |responses| | | +---------+ +----------+ | +--------+ | A | cache additions | | references | V | | +----------+ | | cache | | +----------+ |User programs interact with the domain name space through resolvers; theformat of user queries and user responses is specific to the host andits operating system. User queries will typically be operating systemcalls, and the resolver and its cache will be part of the host operatingsystem. Less capable hosts may choose to implement the resolver as asubroutine to be linked in with every program that needs its services.Resolvers answer user queries with information they acquire via queriesto foreign name servers and the local cache.Note that the resolver may have to make several queries to severaldifferent foreign name servers to answer a particular user query, andhence the resolution of a user query may involve several networkaccesses and an arbitrary amount of time. The queries to foreign nameservers and the corresponding responses have a standard format describedMockapetris [Page 4]RFC 1035 Domain Implementation and Specification November 1987in this memo, and may be datagrams.Depending on its capabilities, a name server could be a stand aloneprogram on a dedicated machine or a process or processes on a largetimeshared host. A simple configuration might be: Local Host | Foreign | +---------+ | / /| | +---------+ | +----------+ | +--------+ | | | | |responses| | | | | | | Name |---------|->|Foreign | | Master |-------------->| Server | | |Resolver| | files | | | |<--------|--| | | |/ | | queries | +--------+ +---------+ +----------+ |Here a primary name server acquires information about one or more zonesby reading master files from its local file system, and answers queriesabout those zones that arrive from foreign resolvers.The DNS requires that all zones be redundantly supported by more thanone name server. Designated secondary servers can acquire zones andcheck for updates from the primary server using the zone transferprotocol of the DNS. This configuration is shown below: Local Host | Foreign | +---------+ | / /| | +---------+ | +----------+ | +--------+ | | | | |responses| | | | | | | Name |---------|->|Foreign | | Master |-------------->| Server | | |Resolver| | files | | | |<--------|--| | | |/ | | queries | +--------+ +---------+ +----------+ | A |maintenance | +--------+ | +------------|->| | | queries | |Foreign | | | | Name | +------------------|--| Server | maintenance responses | +--------+In this configuration, the name server periodically establishes avirtual circuit to a foreign name server to acquire a copy of a zone orto check that an existing copy has not changed. The messages sent forMockapetris [Page 5]RFC 1035 Domain Implementation and Specification November 1987these maintenance activities follow the same form as queries andresponses, but the message sequences are somewhat different.The information flow in a host that supports all aspects of the domainname system is shown below: Local Host | Foreign | +---------+ +----------+ | +--------+ | | user queries | |queries | | | | User |-------------->| |---------|->|Foreign | | Program | | Resolver | | | Name | | |<--------------| |<--------|--| Server | | | user responses| |responses| | | +---------+ +----------+ | +--------+ | A | cache additions | | references | V | | +----------+ | | Shared | | | database | | +----------+ | A | | +---------+ refreshes | | references | / /| | V | +---------+ | +----------+ | +--------+ | | | | |responses| | | | | | | Name |---------|->|Foreign | | Master |-------------->| Server | | |Resolver| | files | | | |<--------|--| | | |/ | | queries | +--------+ +---------+ +----------+ | A |maintenance | +--------+ | +------------|->| | | queries | |Foreign | | | | Name | +------------------|--| Server | maintenance responses | +--------+
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -