{"id":3151,"date":"2018-10-05T07:38:09","date_gmt":"2018-10-05T07:38:09","guid":{"rendered":"https:\/\/tst-amo.net.ua\/blog\/?p=3151"},"modified":"2018-10-05T07:38:28","modified_gmt":"2018-10-05T07:38:28","slug":"rfc-1035","status":"publish","type":"post","link":"https:\/\/tst-amo.net.ua\/blog\/?p=3151","title":{"rendered":"RFC 1035"},"content":{"rendered":"<div>\n<div id=\"legend\" class=\"docinfo noprint pre legend\">[<a title=\"Document search and retrieval page\" href=\"https:\/\/tools.ietf.org\/html\/\">Docs<\/a>] [<a title=\"Plaintext version of this document\" href=\"https:\/\/tools.ietf.org\/rfc\/rfc1035.txt\">txt<\/a>|<a title=\"PDF version of this document\" href=\"https:\/\/tools.ietf.org\/pdf\/rfc1035\">pdf<\/a>] [<a title=\"IESG Datatracker information for this document\" href=\"https:\/\/datatracker.ietf.org\/doc\/rfc1035\">Tracker<\/a>] [<a href=\"https:\/\/www.rfc-editor.org\/errata_search.php?rfc=1035\">Errata<\/a>]<\/div>\n<\/div>\n<p><span class=\"pre noprint docinfo\">Updated by: <a href=\"https:\/\/tools.ietf.org\/html\/rfc1101\">1101<\/a>, <a href=\"https:\/\/tools.ietf.org\/html\/rfc1183\">1183<\/a>, <a href=\"https:\/\/tools.ietf.org\/html\/rfc1348\">1348<\/a>, <a href=\"https:\/\/tools.ietf.org\/html\/rfc1876\">1876<\/a>, <a href=\"https:\/\/tools.ietf.org\/html\/rfc1982\">1982<\/a>, <a href=\"https:\/\/tools.ietf.org\/html\/rfc1995\">1995<\/a>, INTERNET STANDARD<\/span><br \/>\n<span class=\"pre noprint docinfo\"> <a href=\"https:\/\/tools.ietf.org\/html\/rfc1996\">1996<\/a>, <a href=\"https:\/\/tools.ietf.org\/html\/rfc2065\">2065<\/a>, <a href=\"https:\/\/tools.ietf.org\/html\/rfc2136\">2136<\/a>, <a href=\"https:\/\/tools.ietf.org\/html\/rfc2181\">2181<\/a>, <a href=\"https:\/\/tools.ietf.org\/html\/rfc2137\">2137<\/a>, <a href=\"https:\/\/tools.ietf.org\/html\/rfc2308\">2308<\/a>, <a href=\"https:\/\/tools.ietf.org\/html\/rfc2535\">2535<\/a>, <a href=\"https:\/\/tools.ietf.org\/html\/rfc2673\">2673<\/a>, <a href=\"https:\/\/tools.ietf.org\/html\/rfc2845\">2845<\/a>, <a href=\"https:\/\/tools.ietf.org\/html\/rfc3425\">3425<\/a>, <a href=\"https:\/\/tools.ietf.org\/html\/rfc3658\">3658<\/a>, <a href=\"https:\/\/tools.ietf.org\/html\/rfc4033\">4033<\/a>, <a href=\"https:\/\/tools.ietf.org\/html\/rfc4034\">4034<\/a>, <a href=\"https:\/\/tools.ietf.org\/html\/rfc4035\">4035<\/a>, <a href=\"https:\/\/tools.ietf.org\/html\/rfc4343\">4343<\/a>, <a href=\"https:\/\/tools.ietf.org\/html\/rfc5936\">5936<\/a>, <a href=\"https:\/\/tools.ietf.org\/html\/rfc5966\">5966<\/a>, <a href=\"https:\/\/tools.ietf.org\/html\/rfc6604\">6604<\/a>, <a href=\"https:\/\/tools.ietf.org\/html\/rfc7766\">7766<\/a> Errata Exist<\/span><\/p>\n<pre>Network Working Group                                     P. Mockapetris\r\nRequest for Comments: 1035                                           ISI\r\n                                                           November 1987\r\nObsoletes: RFCs <a href=\"https:\/\/tools.ietf.org\/html\/rfc882\">882<\/a>, <a href=\"https:\/\/tools.ietf.org\/html\/rfc883\">883<\/a>, <a href=\"https:\/\/tools.ietf.org\/html\/rfc973\">973<\/a>\r\n\r\n<\/pre>\n<h1>DOMAIN NAMES &#8211; IMPLEMENTATION AND SPECIFICATION<\/h1>\n<pre>\r\n\r\n<\/pre>\n<h2><a class=\"selflink\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#section-1\" name=\"section-1\">1<\/a>. STATUS OF THIS MEMO<\/h2>\n<pre>\r\nThis RFC describes the details of the domain system and protocol, and\r\nassumes that the reader is familiar with the concepts discussed in a\r\ncompanion RFC, \"Domain Names - Concepts and Facilities\" [<a href=\"https:\/\/tools.ietf.org\/html\/rfc1034\">RFC-1034<\/a>].\r\n\r\nThe domain system is a mixture of functions and data types which are an\r\nofficial protocol and functions and data types which are still\r\nexperimental.  Since the domain system is intentionally extensible, new\r\ndata types and experimental behavior should always be expected in parts\r\nof the system beyond the official protocol.  The official protocol parts\r\ninclude standard queries, responses and the Internet class RR data\r\nformats (e.g., host addresses).  Since the previous RFC set, several\r\ndefinitions have changed, so some previous definitions are obsolete.\r\n\r\nExperimental or obsolete features are clearly marked in these RFCs, and\r\nsuch information should be used with caution.\r\n\r\nThe reader is especially cautioned not to depend on the values which\r\nappear in examples to be current or complete, since their purpose is\r\nprimarily pedagogical.  Distribution of this memo is unlimited.\r\n\r\n                           Table of Contents\r\n\r\n  1. STATUS OF THIS MEMO                                              1\r\n  2. INTRODUCTION                                                     3\r\n      2.1. Overview                                                   3\r\n      2.2. Common configurations                                      4\r\n      2.3. Conventions                                                7\r\n          2.3.1. Preferred name syntax                                7\r\n          2.3.2. Data Transmission Order                              8\r\n          2.3.3. Character Case                                       9\r\n          2.3.4. Size limits                                         10\r\n  3. DOMAIN NAME SPACE AND RR DEFINITIONS                            10\r\n      3.1. Name space definitions                                    10\r\n      3.2. RR definitions                                            11\r\n          3.2.1. Format                                              11\r\n          3.2.2. TYPE values                                         12\r\n          3.2.3. QTYPE values                                        12\r\n          3.2.4. CLASS values                                        13\r\n\r\n\r\n\r\n<span class=\"grey\">Mockapetris                                                     [Page 1]<\/span><\/pre>\n<hr class=\"noprint\" align=\"left\" \/>\n<pre class=\"newpage\"><a id=\"page-2\" class=\"invisible\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#page-2\" name=\"page-2\"> <\/a>\r\n<span class=\"grey\"><a href=\"https:\/\/tools.ietf.org\/html\/rfc1035\">RFC 1035<\/a>        Domain Implementation and Specification    November 1987<\/span>\r\n\r\n\r\n          3.2.5. QCLASS values                                       13\r\n      3.3. Standard RRs                                              13\r\n          3.3.1. CNAME RDATA format                                  14\r\n          3.3.2. HINFO RDATA format                                  14\r\n          3.3.3. MB RDATA format (EXPERIMENTAL)                      14\r\n          3.3.4. MD RDATA format (Obsolete)                          15\r\n          3.3.5. MF RDATA format (Obsolete)                          15\r\n          3.3.6. MG RDATA format (EXPERIMENTAL)                      16\r\n          3.3.7. MINFO RDATA format (EXPERIMENTAL)                   16\r\n          3.3.8. MR RDATA format (EXPERIMENTAL)                      17\r\n          3.3.9. MX RDATA format                                     17\r\n          3.3.10. NULL RDATA format (EXPERIMENTAL)                   17\r\n          3.3.11. NS RDATA format                                    18\r\n          3.3.12. PTR RDATA format                                   18\r\n          3.3.13. SOA RDATA format                                   19\r\n          3.3.14. TXT RDATA format                                   20\r\n      3.4. ARPA Internet specific RRs                                20\r\n          3.4.1. A RDATA format                                      20\r\n          3.4.2. WKS RDATA format                                    21\r\n      3.5. IN-ADDR.ARPA domain                                       22\r\n      3.6. Defining new types, classes, and special namespaces       24\r\n  4. MESSAGES                                                        25\r\n      4.1. Format                                                    25\r\n          4.1.1. Header section format                               26\r\n          4.1.2. Question section format                             28\r\n          4.1.3. Resource record format                              29\r\n          4.1.4. Message compression                                 30\r\n      4.2. Transport                                                 32\r\n          4.2.1. UDP usage                                           32\r\n          4.2.2. TCP usage                                           32\r\n  5. MASTER FILES                                                    33\r\n      5.1. Format                                                    33\r\n      5.2. Use of master files to define zones                       35\r\n      5.3. Master file example                                       36\r\n  6. NAME SERVER IMPLEMENTATION                                      37\r\n      6.1. Architecture                                              37\r\n          6.1.1. Control                                             37\r\n          6.1.2. Database                                            37\r\n          6.1.3. Time                                                39\r\n      6.2. Standard query processing                                 39\r\n      6.3. Zone refresh and reload processing                        39\r\n      6.4. Inverse queries (Optional)                                40\r\n          6.4.1. The contents of inverse queries and responses       40\r\n          6.4.2. Inverse query and response example                  41\r\n          6.4.3. Inverse query processing                            42\r\n\r\n\r\n\r\n\r\n\r\n\r\n<span class=\"grey\">Mockapetris                                                     [Page 2]<\/span><\/pre>\n<hr class=\"noprint\" align=\"left\" \/>\n<pre class=\"newpage\"><a id=\"page-3\" class=\"invisible\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#page-3\" name=\"page-3\"> <\/a>\r\n<span class=\"grey\"><a href=\"https:\/\/tools.ietf.org\/html\/rfc1035\">RFC 1035<\/a>        Domain Implementation and Specification    November 1987<\/span>\r\n\r\n\r\n      6.5. Completion queries and responses                          42\r\n  7. RESOLVER IMPLEMENTATION                                         43\r\n      7.1. Transforming a user request into a query                  43\r\n      7.2. Sending the queries                                       44\r\n      7.3. Processing responses                                      46\r\n      7.4. Using the cache                                           47\r\n  8. MAIL SUPPORT                                                    47\r\n      8.1. Mail exchange binding                                     48\r\n      8.2. Mailbox binding (Experimental)                            48\r\n  9. REFERENCES and BIBLIOGRAPHY                                     50\r\n  Index                                                              54\r\n\r\n<\/pre>\n<h2><a class=\"selflink\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#section-2\" name=\"section-2\">2<\/a>. INTRODUCTION<\/h2>\n<pre class=\"newpage\">\r\n<\/pre>\n<h3><a class=\"selflink\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#section-2.1\" name=\"section-2.1\">2.1<\/a>. Overview<\/h3>\n<pre class=\"newpage\">\r\nThe goal of domain names is to provide a mechanism for naming resources\r\nin such a way that the names are usable in different hosts, networks,\r\nprotocol families, internets, and administrative organizations.\r\n\r\nFrom the user's point of view, domain names are useful as arguments to a\r\nlocal agent, called a resolver, which retrieves information associated\r\nwith the domain name.  Thus a user might ask for the host address or\r\nmail information associated with a particular domain name.  To enable\r\nthe user to request a particular type of information, an appropriate\r\nquery type is passed to the resolver with the domain name.  To the user,\r\nthe domain tree is a single information space; the resolver is\r\nresponsible for hiding the distribution of data among name servers from\r\nthe user.\r\n\r\nFrom the resolver's point of view, the database that makes up the domain\r\nspace is distributed among various name servers.  Different parts of the\r\ndomain space are stored in different name servers, although a particular\r\ndata item will be stored redundantly in two or more name servers.  The\r\nresolver starts with knowledge of at least one name server.  When the\r\nresolver processes a user query it asks a known name server for the\r\ninformation; in return, the resolver either receives the desired\r\ninformation or a referral to another name server.  Using these\r\nreferrals, resolvers learn the identities and contents of other name\r\nservers.  Resolvers are responsible for dealing with the distribution of\r\nthe domain space and dealing with the effects of name server failure by\r\nconsulting redundant databases in other servers.\r\n\r\nName servers manage two kinds of data.  The first kind of data held in\r\nsets called zones; each zone is the complete database for a particular\r\n\"pruned\" subtree of the domain space.  This data is called\r\nauthoritative.  A name server periodically checks to make sure that its\r\nzones are up to date, and if not, obtains a new copy of updated zones\r\n\r\n\r\n\r\n<span class=\"grey\">Mockapetris                                                     [Page 3]<\/span><\/pre>\n<hr class=\"noprint\" align=\"left\" \/>\n<pre class=\"newpage\"><a id=\"page-4\" class=\"invisible\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#page-4\" name=\"page-4\"> <\/a>\r\n<span class=\"grey\"><a href=\"https:\/\/tools.ietf.org\/html\/rfc1035\">RFC 1035<\/a>        Domain Implementation and Specification    November 1987<\/span>\r\n\r\n\r\nfrom master files stored locally or in another name server.  The second\r\nkind of data is cached data which was acquired by a local resolver.\r\nThis data may be incomplete, but improves the performance of the\r\nretrieval process when non-local data is repeatedly accessed.  Cached\r\ndata is eventually discarded by a timeout mechanism.\r\n\r\nThis functional structure isolates the problems of user interface,\r\nfailure recovery, and distribution in the resolvers and isolates the\r\ndatabase update and refresh problems in the name servers.\r\n\r\n<\/pre>\n<h3><a class=\"selflink\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#section-2.2\" name=\"section-2.2\">2.2<\/a>. Common configurations<\/h3>\n<pre class=\"newpage\">\r\nA host can participate in the domain name system in a number of ways,\r\ndepending on whether the host runs programs that retrieve information\r\nfrom the domain system, name servers that answer queries from other\r\nhosts, or various combinations of both functions.  The simplest, and\r\nperhaps most typical, configuration is shown below:\r\n\r\n                 Local Host                        |  Foreign\r\n                                                   |\r\n    +---------+               +----------+         |  +--------+\r\n    |         | user queries  |          |queries  |  |        |\r\n    |  User   |--------------&gt;|          |---------|-&gt;|Foreign |\r\n    | Program |               | Resolver |         |  |  Name  |\r\n    |         |&lt;--------------|          |&lt;--------|--| Server |\r\n    |         | user responses|          |responses|  |        |\r\n    +---------+               +----------+         |  +--------+\r\n                                |     A            |\r\n                cache additions |     | references |\r\n                                V     |            |\r\n                              +----------+         |\r\n                              |  cache   |         |\r\n                              +----------+         |\r\n\r\nUser programs interact with the domain name space through resolvers; the\r\nformat of user queries and user responses is specific to the host and\r\nits operating system.  User queries will typically be operating system\r\ncalls, and the resolver and its cache will be part of the host operating\r\nsystem.  Less capable hosts may choose to implement the resolver as a\r\nsubroutine to be linked in with every program that needs its services.\r\nResolvers answer user queries with information they acquire via queries\r\nto foreign name servers and the local cache.\r\n\r\nNote that the resolver may have to make several queries to several\r\ndifferent foreign name servers to answer a particular user query, and\r\nhence the resolution of a user query may involve several network\r\naccesses and an arbitrary amount of time.  The queries to foreign name\r\nservers and the corresponding responses have a standard format described\r\n\r\n\r\n\r\n<span class=\"grey\">Mockapetris                                                     [Page 4]<\/span><\/pre>\n<hr class=\"noprint\" align=\"left\" \/>\n<pre class=\"newpage\"><a id=\"page-5\" class=\"invisible\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#page-5\" name=\"page-5\"> <\/a>\r\n<span class=\"grey\"><a href=\"https:\/\/tools.ietf.org\/html\/rfc1035\">RFC 1035<\/a>        Domain Implementation and Specification    November 1987<\/span>\r\n\r\n\r\nin this memo, and may be datagrams.\r\n\r\nDepending on its capabilities, a name server could be a stand alone\r\nprogram on a dedicated machine or a process or processes on a large\r\ntimeshared host.  A simple configuration might be:\r\n\r\n                 Local Host                        |  Foreign\r\n                                                   |\r\n      +---------+                                  |\r\n     \/         \/|                                  |\r\n    +---------+ |             +----------+         |  +--------+\r\n    |         | |             |          |responses|  |        |\r\n    |         | |             |   Name   |---------|-&gt;|Foreign |\r\n    |  Master |--------------&gt;|  Server  |         |  |Resolver|\r\n    |  files  | |             |          |&lt;--------|--|        |\r\n    |         |\/              |          | queries |  +--------+\r\n    +---------+               +----------+         |\r\n\r\nHere a primary name server acquires information about one or more zones\r\nby reading master files from its local file system, and answers queries\r\nabout those zones that arrive from foreign resolvers.\r\n\r\nThe DNS requires that all zones be redundantly supported by more than\r\none name server.  Designated secondary servers can acquire zones and\r\ncheck for updates from the primary server using the zone transfer\r\nprotocol of the DNS.  This configuration is shown below:\r\n\r\n                 Local Host                        |  Foreign\r\n                                                   |\r\n      +---------+                                  |\r\n     \/         \/|                                  |\r\n    +---------+ |             +----------+         |  +--------+\r\n    |         | |             |          |responses|  |        |\r\n    |         | |             |   Name   |---------|-&gt;|Foreign |\r\n    |  Master |--------------&gt;|  Server  |         |  |Resolver|\r\n    |  files  | |             |          |&lt;--------|--|        |\r\n    |         |\/              |          | queries |  +--------+\r\n    +---------+               +----------+         |\r\n                                A     |maintenance |  +--------+\r\n                                |     +------------|-&gt;|        |\r\n                                |      queries     |  |Foreign |\r\n                                |                  |  |  Name  |\r\n                                +------------------|--| Server |\r\n                             maintenance responses |  +--------+\r\n\r\nIn this configuration, the name server periodically establishes a\r\nvirtual circuit to a foreign name server to acquire a copy of a zone or\r\nto check that an existing copy has not changed.  The messages sent for\r\n\r\n\r\n\r\n<span class=\"grey\">Mockapetris                                                     [Page 5]<\/span><\/pre>\n<hr class=\"noprint\" align=\"left\" \/>\n<pre class=\"newpage\"><a id=\"page-6\" class=\"invisible\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#page-6\" name=\"page-6\"> <\/a>\r\n<span class=\"grey\"><a href=\"https:\/\/tools.ietf.org\/html\/rfc1035\">RFC 1035<\/a>        Domain Implementation and Specification    November 1987<\/span>\r\n\r\n\r\nthese maintenance activities follow the same form as queries and\r\nresponses, but the message sequences are somewhat different.\r\n\r\nThe information flow in a host that supports all aspects of the domain\r\nname system is shown below:\r\n\r\n                 Local Host                        |  Foreign\r\n                                                   |\r\n    +---------+               +----------+         |  +--------+\r\n    |         | user queries  |          |queries  |  |        |\r\n    |  User   |--------------&gt;|          |---------|-&gt;|Foreign |\r\n    | Program |               | Resolver |         |  |  Name  |\r\n    |         |&lt;--------------|          |&lt;--------|--| Server |\r\n    |         | user responses|          |responses|  |        |\r\n    +---------+               +----------+         |  +--------+\r\n                                |     A            |\r\n                cache additions |     | references |\r\n                                V     |            |\r\n                              +----------+         |\r\n                              |  Shared  |         |\r\n                              | database |         |\r\n                              +----------+         |\r\n                                A     |            |\r\n      +---------+     refreshes |     | references |\r\n     \/         \/|               |     V            |\r\n    +---------+ |             +----------+         |  +--------+\r\n    |         | |             |          |responses|  |        |\r\n    |         | |             |   Name   |---------|-&gt;|Foreign |\r\n    |  Master |--------------&gt;|  Server  |         |  |Resolver|\r\n    |  files  | |             |          |&lt;--------|--|        |\r\n    |         |\/              |          | queries |  +--------+\r\n    +---------+               +----------+         |\r\n                                A     |maintenance |  +--------+\r\n                                |     +------------|-&gt;|        |\r\n                                |      queries     |  |Foreign |\r\n                                |                  |  |  Name  |\r\n                                +------------------|--| Server |\r\n                             maintenance responses |  +--------+\r\n\r\nThe shared database holds domain space data for the local name server\r\nand resolver.  The contents of the shared database will typically be a\r\nmixture of authoritative data maintained by the periodic refresh\r\noperations of the name server and cached data from previous resolver\r\nrequests.  The structure of the domain data and the necessity for\r\nsynchronization between name servers and resolvers imply the general\r\ncharacteristics of this database, but the actual format is up to the\r\nlocal implementor.\r\n\r\n\r\n\r\n\r\n<span class=\"grey\">Mockapetris                                                     [Page 6]<\/span><\/pre>\n<hr class=\"noprint\" align=\"left\" \/>\n<pre class=\"newpage\"><a id=\"page-7\" class=\"invisible\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#page-7\" name=\"page-7\"> <\/a>\r\n<span class=\"grey\"><a href=\"https:\/\/tools.ietf.org\/html\/rfc1035\">RFC 1035<\/a>        Domain Implementation and Specification    November 1987<\/span>\r\n\r\n\r\nInformation flow can also be tailored so that a group of hosts act\r\ntogether to optimize activities.  Sometimes this is done to offload less\r\ncapable hosts so that they do not have to implement a full resolver.\r\nThis can be appropriate for PCs or hosts which want to minimize the\r\namount of new network code which is required.  This scheme can also\r\nallow a group of hosts can share a small number of caches rather than\r\nmaintaining a large number of separate caches, on the premise that the\r\ncentralized caches will have a higher hit ratio.  In either case,\r\nresolvers are replaced with stub resolvers which act as front ends to\r\nresolvers located in a recursive server in one or more name servers\r\nknown to perform that service:\r\n\r\n                   Local Hosts                     |  Foreign\r\n                                                   |\r\n    +---------+                                    |\r\n    |         | responses                          |\r\n    | Stub    |&lt;--------------------+              |\r\n    | Resolver|                     |              |\r\n    |         |----------------+    |              |\r\n    +---------+ recursive      |    |              |\r\n                queries        |    |              |\r\n                               V    |              |\r\n    +---------+ recursive     +----------+         |  +--------+\r\n    |         | queries       |          |queries  |  |        |\r\n    | Stub    |--------------&gt;| Recursive|---------|-&gt;|Foreign |\r\n    | Resolver|               | Server   |         |  |  Name  |\r\n    |         |&lt;--------------|          |&lt;--------|--| Server |\r\n    +---------+ responses     |          |responses|  |        |\r\n                              +----------+         |  +--------+\r\n                              |  Central |         |\r\n                              |   cache  |         |\r\n                              +----------+         |\r\n\r\nIn any case, note that domain components are always replicated for\r\nreliability whenever possible.\r\n\r\n<\/pre>\n<h3><a class=\"selflink\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#section-2.3\" name=\"section-2.3\">2.3<\/a>. Conventions<\/h3>\n<pre class=\"newpage\">\r\nThe domain system has several conventions dealing with low-level, but\r\nfundamental, issues.  While the implementor is free to violate these\r\nconventions WITHIN HIS OWN SYSTEM, he must observe these conventions in\r\nALL behavior observed from other hosts.\r\n\r\n<\/pre>\n<h4><a class=\"selflink\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#section-2.3.1\" name=\"section-2.3.1\">2.3.1<\/a>. Preferred name syntax<\/h4>\n<pre class=\"newpage\">\r\nThe DNS specifications attempt to be as general as possible in the rules\r\nfor constructing domain names.  The idea is that the name of any\r\nexisting object can be expressed as a domain name with minimal changes.\r\n\r\n\r\n\r\n<span class=\"grey\">Mockapetris                                                     [Page 7]<\/span><\/pre>\n<hr class=\"noprint\" align=\"left\" \/>\n<pre class=\"newpage\"><a id=\"page-8\" class=\"invisible\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#page-8\" name=\"page-8\"> <\/a>\r\n<span class=\"grey\"><a href=\"https:\/\/tools.ietf.org\/html\/rfc1035\">RFC 1035<\/a>        Domain Implementation and Specification    November 1987<\/span>\r\n\r\n\r\nHowever, when assigning a domain name for an object, the prudent user\r\nwill select a name which satisfies both the rules of the domain system\r\nand any existing rules for the object, whether these rules are published\r\nor implied by existing programs.\r\n\r\nFor example, when naming a mail domain, the user should satisfy both the\r\nrules of this memo and those in <a href=\"https:\/\/tools.ietf.org\/html\/rfc822\">RFC-822<\/a>.  When creating a new host name,\r\nthe old rules for HOSTS.TXT should be followed.  This avoids problems\r\nwhen old software is converted to use domain names.\r\n\r\nThe following syntax will result in fewer problems with many\r\n\r\napplications that use domain names (e.g., mail, TELNET).\r\n\r\n&lt;domain&gt; ::= &lt;subdomain&gt; | \" \"\r\n\r\n&lt;subdomain&gt; ::= &lt;label&gt; | &lt;subdomain&gt; \".\" &lt;label&gt;\r\n\r\n&lt;label&gt; ::= &lt;letter&gt; [ [ &lt;ldh-str&gt; ] &lt;let-dig&gt; ]\r\n\r\n&lt;ldh-str&gt; ::= &lt;let-dig-hyp&gt; | &lt;let-dig-hyp&gt; &lt;ldh-str&gt;\r\n\r\n&lt;let-dig-hyp&gt; ::= &lt;let-dig&gt; | \"-\"\r\n\r\n&lt;let-dig&gt; ::= &lt;letter&gt; | &lt;digit&gt;\r\n\r\n&lt;letter&gt; ::= any one of the 52 alphabetic characters A through Z in\r\nupper case and a through z in lower case\r\n\r\n&lt;digit&gt; ::= any one of the ten digits 0 through 9\r\n\r\nNote that while upper and lower case letters are allowed in domain\r\nnames, no significance is attached to the case.  That is, two names with\r\nthe same spelling but different case are to be treated as if identical.\r\n\r\nThe labels must follow the rules for ARPANET host names.  They must\r\nstart with a letter, end with a letter or digit, and have as interior\r\ncharacters only letters, digits, and hyphen.  There are also some\r\nrestrictions on the length.  Labels must be 63 characters or less.\r\n\r\nFor example, the following strings identify hosts in the Internet:\r\n\r\nA.ISI.EDU XX.LCS.MIT.EDU SRI-NIC.ARPA\r\n\r\n<\/pre>\n<h4><a class=\"selflink\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#section-2.3.2\" name=\"section-2.3.2\">2.3.2<\/a>. Data Transmission Order<\/h4>\n<pre class=\"newpage\">\r\nThe order of transmission of the header and data described in this\r\ndocument is resolved to the octet level.  Whenever a diagram shows a\r\n\r\n\r\n\r\n<span class=\"grey\">Mockapetris                                                     [Page 8]<\/span><\/pre>\n<hr class=\"noprint\" align=\"left\" \/>\n<pre class=\"newpage\"><a id=\"page-9\" class=\"invisible\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#page-9\" name=\"page-9\"> <\/a>\r\n<span class=\"grey\"><a href=\"https:\/\/tools.ietf.org\/html\/rfc1035\">RFC 1035<\/a>        Domain Implementation and Specification    November 1987<\/span>\r\n\r\n\r\ngroup of octets, the order of transmission of those octets is the normal\r\norder in which they are read in English.  For example, in the following\r\ndiagram, the octets are transmitted in the order they are numbered.\r\n\r\n     0                   1\r\n     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5\r\n    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\r\n    |       1       |       2       |\r\n    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\r\n    |       3       |       4       |\r\n    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\r\n    |       5       |       6       |\r\n    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\r\n\r\nWhenever an octet represents a numeric quantity, the left most bit in\r\nthe diagram is the high order or most significant bit.  That is, the bit\r\nlabeled 0 is the most significant bit.  For example, the following\r\ndiagram represents the value 170 (decimal).\r\n\r\n     0 1 2 3 4 5 6 7\r\n    +-+-+-+-+-+-+-+-+\r\n    |1 0 1 0 1 0 1 0|\r\n    +-+-+-+-+-+-+-+-+\r\n\r\nSimilarly, whenever a multi-octet field represents a numeric quantity\r\nthe left most bit of the whole field is the most significant bit.  When\r\na multi-octet quantity is transmitted the most significant octet is\r\ntransmitted first.\r\n\r\n<\/pre>\n<h4><a class=\"selflink\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#section-2.3.3\" name=\"section-2.3.3\">2.3.3<\/a>. Character Case<\/h4>\n<pre class=\"newpage\">\r\nFor all parts of the DNS that are part of the official protocol, all\r\ncomparisons between character strings (e.g., labels, domain names, etc.)\r\nare done in a case-insensitive manner.  At present, this rule is in\r\nforce throughout the domain system without exception.  However, future\r\nadditions beyond current usage may need to use the full binary octet\r\ncapabilities in names, so attempts to store domain names in 7-bit ASCII\r\nor use of special bytes to terminate labels, etc., should be avoided.\r\n\r\nWhen data enters the domain system, its original case should be\r\npreserved whenever possible.  In certain circumstances this cannot be\r\ndone.  For example, if two RRs are stored in a database, one at x.y and\r\none at X.Y, they are actually stored at the same place in the database,\r\nand hence only one casing would be preserved.  The basic rule is that\r\ncase can be discarded only when data is used to define structure in a\r\ndatabase, and two names are identical when compared in a case\r\ninsensitive manner.\r\n\r\n\r\n\r\n\r\n<span class=\"grey\">Mockapetris                                                     [Page 9]<\/span><\/pre>\n<hr class=\"noprint\" align=\"left\" \/>\n<pre class=\"newpage\"><a id=\"page-10\" class=\"invisible\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#page-10\" name=\"page-10\"> <\/a>\r\n<span class=\"grey\"><a href=\"https:\/\/tools.ietf.org\/html\/rfc1035\">RFC 1035<\/a>        Domain Implementation and Specification    November 1987<\/span>\r\n\r\n\r\nLoss of case sensitive data must be minimized.  Thus while data for x.y\r\nand X.Y may both be stored under a single location x.y or X.Y, data for\r\na.x and B.X would never be stored under A.x, A.X, b.x, or b.X.  In\r\ngeneral, this preserves the case of the first label of a domain name,\r\nbut forces standardization of interior node labels.\r\n\r\nSystems administrators who enter data into the domain database should\r\ntake care to represent the data they supply to the domain system in a\r\ncase-consistent manner if their system is case-sensitive.  The data\r\ndistribution system in the domain system will ensure that consistent\r\nrepresentations are preserved.\r\n\r\n<\/pre>\n<h4><a class=\"selflink\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#section-2.3.4\" name=\"section-2.3.4\">2.3.4<\/a>. Size limits<\/h4>\n<pre class=\"newpage\">\r\nVarious objects and parameters in the DNS have size limits.  They are\r\nlisted below.  Some could be easily changed, others are more\r\nfundamental.\r\n\r\nlabels          63 octets or less\r\n\r\nnames           255 octets or less\r\n\r\nTTL             positive values of a signed 32 bit number.\r\n\r\nUDP messages    512 octets or less\r\n\r\n<\/pre>\n<h2><a class=\"selflink\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#section-3\" name=\"section-3\">3<\/a>. DOMAIN NAME SPACE AND RR DEFINITIONS<\/h2>\n<pre class=\"newpage\">\r\n<\/pre>\n<h3><a class=\"selflink\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#section-3.1\" name=\"section-3.1\">3.1<\/a>. Name space definitions<\/h3>\n<pre class=\"newpage\">\r\nDomain names in messages are expressed in terms of a sequence of labels.\r\nEach label is represented as a one octet length field followed by that\r\nnumber of octets.  Since every domain name ends with the null label of\r\nthe root, a domain name is terminated by a length byte of zero.  The\r\nhigh order two bits of every length octet must be zero, and the\r\nremaining six bits of the length field limit the label to 63 octets or\r\nless.\r\n\r\nTo simplify implementations, the total length of a domain name (i.e.,\r\nlabel octets and label length octets) is restricted to 255 octets or\r\nless.\r\n\r\nAlthough labels can contain any 8 bit values in octets that make up a\r\nlabel, it is strongly recommended that labels follow the preferred\r\nsyntax described elsewhere in this memo, which is compatible with\r\nexisting host naming conventions.  Name servers and resolvers must\r\ncompare labels in a case-insensitive manner (i.e., A=a), assuming ASCII\r\nwith zero parity.  Non-alphabetic codes must match exactly.\r\n\r\n\r\n\r\n<span class=\"grey\">Mockapetris                                                    [Page 10]<\/span><\/pre>\n<hr class=\"noprint\" align=\"left\" \/>\n<pre class=\"newpage\"><a id=\"page-11\" class=\"invisible\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#page-11\" name=\"page-11\"> <\/a>\r\n<span class=\"grey\"><a href=\"https:\/\/tools.ietf.org\/html\/rfc1035\">RFC 1035<\/a>        Domain Implementation and Specification    November 1987<\/span>\r\n\r\n\r\n<\/pre>\n<h3><a class=\"selflink\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#section-3.2\" name=\"section-3.2\">3.2<\/a>. RR definitions<\/h3>\n<pre class=\"newpage\">\r\n<\/pre>\n<h4><a class=\"selflink\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#section-3.2.1\" name=\"section-3.2.1\">3.2.1<\/a>. Format<\/h4>\n<pre class=\"newpage\">\r\nAll RRs have the same top level format shown below:\r\n\r\n                                    1  1  1  1  1  1\r\n      0  1  2  3  4  5  6  7  8  9  0  1  2  3  4  5\r\n    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+\r\n    |                                               |\r\n    \/                                               \/\r\n    \/                      NAME                     \/\r\n    |                                               |\r\n    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+\r\n    |                      TYPE                     |\r\n    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+\r\n    |                     CLASS                     |\r\n    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+\r\n    |                      TTL                      |\r\n    |                                               |\r\n    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+\r\n    |                   RDLENGTH                    |\r\n    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--|\r\n    \/                     RDATA                     \/\r\n    \/                                               \/\r\n    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+\r\n\r\n\r\nwhere:\r\n\r\nNAME            an owner name, i.e., the name of the node to which this\r\n                resource record pertains.\r\n\r\nTYPE            two octets containing one of the RR TYPE codes.\r\n\r\nCLASS           two octets containing one of the RR CLASS codes.\r\n\r\nTTL             a 32 bit signed integer that specifies the time interval\r\n                that the resource record may be cached before the source\r\n                of the information should again be consulted.  Zero\r\n                values are interpreted to mean that the RR can only be\r\n                used for the transaction in progress, and should not be\r\n                cached.  For example, SOA records are always distributed\r\n                with a zero TTL to prohibit caching.  Zero values can\r\n                also be used for extremely volatile data.\r\n\r\nRDLENGTH        an unsigned 16 bit integer that specifies the length in\r\n                octets of the RDATA field.\r\n\r\n\r\n\r\n<span class=\"grey\">Mockapetris                                                    [Page 11]<\/span><\/pre>\n<hr class=\"noprint\" align=\"left\" \/>\n<pre class=\"newpage\"><a id=\"page-12\" class=\"invisible\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#page-12\" name=\"page-12\"> <\/a>\r\n<span class=\"grey\"><a href=\"https:\/\/tools.ietf.org\/html\/rfc1035\">RFC 1035<\/a>        Domain Implementation and Specification    November 1987<\/span>\r\n\r\n\r\nRDATA           a variable length string of octets that describes the\r\n                resource.  The format of this information varies\r\n                according to the TYPE and CLASS of the resource record.\r\n\r\n<\/pre>\n<h4><a class=\"selflink\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#section-3.2.2\" name=\"section-3.2.2\">3.2.2<\/a>. TYPE values<\/h4>\n<pre class=\"newpage\">\r\nTYPE fields are used in resource records.  Note that these types are a\r\nsubset of QTYPEs.\r\n\r\nTYPE            value and meaning\r\n\r\nA               1 a host address\r\n\r\nNS              2 an authoritative name server\r\n\r\nMD              3 a mail destination (Obsolete - use MX)\r\n\r\nMF              4 a mail forwarder (Obsolete - use MX)\r\n\r\nCNAME           5 the canonical name for an alias\r\n\r\nSOA             6 marks the start of a zone of authority\r\n\r\nMB              7 a mailbox domain name (EXPERIMENTAL)\r\n\r\nMG              8 a mail group member (EXPERIMENTAL)\r\n\r\nMR              9 a mail rename domain name (EXPERIMENTAL)\r\n\r\nNULL            10 a null RR (EXPERIMENTAL)\r\n\r\nWKS             11 a well known service description\r\n\r\nPTR             12 a domain name pointer\r\n\r\nHINFO           13 host information\r\n\r\nMINFO           14 mailbox or mail list information\r\n\r\nMX              15 mail exchange\r\n\r\nTXT             16 text strings\r\n\r\n<\/pre>\n<h4><a class=\"selflink\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#section-3.2.3\" name=\"section-3.2.3\">3.2.3<\/a>. QTYPE values<\/h4>\n<pre class=\"newpage\">\r\nQTYPE fields appear in the question part of a query.  QTYPES are a\r\nsuperset of TYPEs, hence all TYPEs are valid QTYPEs.  In addition, the\r\nfollowing QTYPEs are defined:\r\n\r\n\r\n\r\n<span class=\"grey\">Mockapetris                                                    [Page 12]<\/span><\/pre>\n<hr class=\"noprint\" align=\"left\" \/>\n<pre class=\"newpage\"><a id=\"page-13\" class=\"invisible\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#page-13\" name=\"page-13\"> <\/a>\r\n<span class=\"grey\"><a href=\"https:\/\/tools.ietf.org\/html\/rfc1035\">RFC 1035<\/a>        Domain Implementation and Specification    November 1987<\/span>\r\n\r\n\r\nAXFR            252 A request for a transfer of an entire zone\r\n\r\nMAILB           253 A request for mailbox-related records (MB, MG or MR)\r\n\r\nMAILA           254 A request for mail agent RRs (Obsolete - see MX)\r\n\r\n*               255 A request for all records\r\n\r\n<\/pre>\n<h4><a class=\"selflink\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#section-3.2.4\" name=\"section-3.2.4\">3.2.4<\/a>. CLASS values<\/h4>\n<pre class=\"newpage\">\r\nCLASS fields appear in resource records.  The following CLASS mnemonics\r\nand values are defined:\r\n\r\nIN              1 the Internet\r\n\r\nCS              2 the CSNET class (Obsolete - used only for examples in\r\n                some obsolete RFCs)\r\n\r\nCH              3 the CHAOS class\r\n\r\nHS              4 Hesiod [Dyer 87]\r\n\r\n<\/pre>\n<h4><a class=\"selflink\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#section-3.2.5\" name=\"section-3.2.5\">3.2.5<\/a>. QCLASS values<\/h4>\n<pre class=\"newpage\">\r\nQCLASS fields appear in the question section of a query.  QCLASS values\r\nare a superset of CLASS values; every CLASS is a valid QCLASS.  In\r\naddition to CLASS values, the following QCLASSes are defined:\r\n\r\n*               255 any class\r\n\r\n<\/pre>\n<h3><a class=\"selflink\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#section-3.3\" name=\"section-3.3\">3.3<\/a>. Standard RRs<\/h3>\n<pre class=\"newpage\">\r\nThe following RR definitions are expected to occur, at least\r\npotentially, in all classes.  In particular, NS, SOA, CNAME, and PTR\r\nwill be used in all classes, and have the same format in all classes.\r\nBecause their RDATA format is known, all domain names in the RDATA\r\nsection of these RRs may be compressed.\r\n\r\n&lt;domain-name&gt; is a domain name represented as a series of labels, and\r\nterminated by a label with zero length.  &lt;character-string&gt; is a single\r\nlength octet followed by that number of characters.  &lt;character-string&gt;\r\nis treated as binary information, and can be up to 256 characters in\r\nlength (including the length octet).\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n<span class=\"grey\">Mockapetris                                                    [Page 13]<\/span><\/pre>\n<hr class=\"noprint\" align=\"left\" \/>\n<pre class=\"newpage\"><a id=\"page-14\" class=\"invisible\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#page-14\" name=\"page-14\"> <\/a>\r\n<span class=\"grey\"><a href=\"https:\/\/tools.ietf.org\/html\/rfc1035\">RFC 1035<\/a>        Domain Implementation and Specification    November 1987<\/span>\r\n\r\n\r\n<\/pre>\n<h4><a class=\"selflink\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#section-3.3.1\" name=\"section-3.3.1\">3.3.1<\/a>. CNAME RDATA format<\/h4>\n<pre class=\"newpage\">\r\n    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+\r\n    \/                     CNAME                     \/\r\n    \/                                               \/\r\n    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+\r\n\r\nwhere:\r\n\r\nCNAME           A &lt;domain-name&gt; which specifies the canonical or primary\r\n                name for the owner.  The owner name is an alias.\r\n\r\nCNAME RRs cause no additional section processing, but name servers may\r\nchoose to restart the query at the canonical name in certain cases.  See\r\nthe description of name server logic in [<a href=\"https:\/\/tools.ietf.org\/html\/rfc1034\">RFC-1034<\/a>] for details.\r\n\r\n<\/pre>\n<h4><a class=\"selflink\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#section-3.3.2\" name=\"section-3.3.2\">3.3.2<\/a>. HINFO RDATA format<\/h4>\n<pre class=\"newpage\">\r\n    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+\r\n    \/                      CPU                      \/\r\n    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+\r\n    \/                       OS                      \/\r\n    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+\r\n\r\nwhere:\r\n\r\nCPU             A &lt;character-string&gt; which specifies the CPU type.\r\n\r\nOS              A &lt;character-string&gt; which specifies the operating\r\n                system type.\r\n\r\nStandard values for CPU and OS can be found in [<a title=\"&quot;Assigned Numbers&quot;\" href=\"https:\/\/tools.ietf.org\/html\/rfc1010\">RFC-1010<\/a>].\r\n\r\nHINFO records are used to acquire general information about a host.  The\r\nmain use is for protocols such as FTP that can use special procedures\r\nwhen talking between machines or operating systems of the same type.\r\n\r\n<\/pre>\n<h4><a class=\"selflink\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#section-3.3.3\" name=\"section-3.3.3\">3.3.3<\/a>. MB RDATA format (EXPERIMENTAL)<\/h4>\n<pre class=\"newpage\">\r\n    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+\r\n    \/                   MADNAME                     \/\r\n    \/                                               \/\r\n    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+\r\n\r\nwhere:\r\n\r\nMADNAME         A &lt;domain-name&gt; which specifies a host which has the\r\n                specified mailbox.\r\n\r\n\r\n\r\n<span class=\"grey\">Mockapetris                                                    [Page 14]<\/span><\/pre>\n<hr class=\"noprint\" align=\"left\" \/>\n<pre class=\"newpage\"><a id=\"page-15\" class=\"invisible\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#page-15\" name=\"page-15\"> <\/a>\r\n<span class=\"grey\"><a href=\"https:\/\/tools.ietf.org\/html\/rfc1035\">RFC 1035<\/a>        Domain Implementation and Specification    November 1987<\/span>\r\n\r\n\r\nMB records cause additional section processing which looks up an A type\r\nRRs corresponding to MADNAME.\r\n\r\n<\/pre>\n<h4><a class=\"selflink\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#section-3.3.4\" name=\"section-3.3.4\">3.3.4<\/a>. MD RDATA format (Obsolete)<\/h4>\n<pre class=\"newpage\">\r\n    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+\r\n    \/                   MADNAME                     \/\r\n    \/                                               \/\r\n    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+\r\n\r\nwhere:\r\n\r\nMADNAME         A &lt;domain-name&gt; which specifies a host which has a mail\r\n                agent for the domain which should be able to deliver\r\n                mail for the domain.\r\n\r\nMD records cause additional section processing which looks up an A type\r\nrecord corresponding to MADNAME.\r\n\r\nMD is obsolete.  See the definition of MX and [<a title=\"&quot;Mail routing and the domain system&quot;\" href=\"https:\/\/tools.ietf.org\/html\/rfc974\">RFC-974<\/a>] for details of\r\nthe new scheme.  The recommended policy for dealing with MD RRs found in\r\na master file is to reject them, or to convert them to MX RRs with a\r\npreference of 0.\r\n\r\n<\/pre>\n<h4><a class=\"selflink\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#section-3.3.5\" name=\"section-3.3.5\">3.3.5<\/a>. MF RDATA format (Obsolete)<\/h4>\n<pre class=\"newpage\">\r\n    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+\r\n    \/                   MADNAME                     \/\r\n    \/                                               \/\r\n    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+\r\n\r\nwhere:\r\n\r\nMADNAME         A &lt;domain-name&gt; which specifies a host which has a mail\r\n                agent for the domain which will accept mail for\r\n                forwarding to the domain.\r\n\r\nMF records cause additional section processing which looks up an A type\r\nrecord corresponding to MADNAME.\r\n\r\nMF is obsolete.  See the definition of MX and [<a title=\"&quot;Mail routing and the domain system&quot;\" href=\"https:\/\/tools.ietf.org\/html\/rfc974\">RFC-974<\/a>] for details ofw\r\nthe new scheme.  The recommended policy for dealing with MD RRs found in\r\na master file is to reject them, or to convert them to MX RRs with a\r\npreference of 10.\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n<span class=\"grey\">Mockapetris                                                    [Page 15]<\/span><\/pre>\n<hr class=\"noprint\" align=\"left\" \/>\n<pre class=\"newpage\"><a id=\"page-16\" class=\"invisible\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#page-16\" name=\"page-16\"> <\/a>\r\n<span class=\"grey\"><a href=\"https:\/\/tools.ietf.org\/html\/rfc1035\">RFC 1035<\/a>        Domain Implementation and Specification    November 1987<\/span>\r\n\r\n\r\n<\/pre>\n<h4><a class=\"selflink\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#section-3.3.6\" name=\"section-3.3.6\">3.3.6<\/a>. MG RDATA format (EXPERIMENTAL)<\/h4>\n<pre class=\"newpage\">\r\n    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+\r\n    \/                   MGMNAME                     \/\r\n    \/                                               \/\r\n    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+\r\n\r\nwhere:\r\n\r\nMGMNAME         A &lt;domain-name&gt; which specifies a mailbox which is a\r\n                member of the mail group specified by the domain name.\r\n\r\nMG records cause no additional section processing.\r\n\r\n<\/pre>\n<h4><a class=\"selflink\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#section-3.3.7\" name=\"section-3.3.7\">3.3.7<\/a>. MINFO RDATA format (EXPERIMENTAL)<\/h4>\n<pre class=\"newpage\">\r\n    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+\r\n    \/                    RMAILBX                    \/\r\n    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+\r\n    \/                    EMAILBX                    \/\r\n    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+\r\n\r\nwhere:\r\n\r\nRMAILBX         A &lt;domain-name&gt; which specifies a mailbox which is\r\n                responsible for the mailing list or mailbox.  If this\r\n                domain name names the root, the owner of the MINFO RR is\r\n                responsible for itself.  Note that many existing mailing\r\n                lists use a mailbox X-request for the RMAILBX field of\r\n                mailing list X, e.g., Msgroup-request for Msgroup.  This\r\n                field provides a more general mechanism.\r\n\r\n\r\nEMAILBX         A &lt;domain-name&gt; which specifies a mailbox which is to\r\n                receive error messages related to the mailing list or\r\n                mailbox specified by the owner of the MINFO RR (similar\r\n                to the ERRORS-TO: field which has been proposed).  If\r\n                this domain name names the root, errors should be\r\n                returned to the sender of the message.\r\n\r\nMINFO records cause no additional section processing.  Although these\r\nrecords can be associated with a simple mailbox, they are usually used\r\nwith a mailing list.\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n<span class=\"grey\">Mockapetris                                                    [Page 16]<\/span><\/pre>\n<hr class=\"noprint\" align=\"left\" \/>\n<pre class=\"newpage\"><a id=\"page-17\" class=\"invisible\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#page-17\" name=\"page-17\"> <\/a>\r\n<span class=\"grey\"><a href=\"https:\/\/tools.ietf.org\/html\/rfc1035\">RFC 1035<\/a>        Domain Implementation and Specification    November 1987<\/span>\r\n\r\n\r\n<\/pre>\n<h4><a class=\"selflink\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#section-3.3.8\" name=\"section-3.3.8\">3.3.8<\/a>. MR RDATA format (EXPERIMENTAL)<\/h4>\n<pre class=\"newpage\">\r\n    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+\r\n    \/                   NEWNAME                     \/\r\n    \/                                               \/\r\n    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+\r\n\r\nwhere:\r\n\r\nNEWNAME         A &lt;domain-name&gt; which specifies a mailbox which is the\r\n                proper rename of the specified mailbox.\r\n\r\nMR records cause no additional section processing.  The main use for MR\r\nis as a forwarding entry for a user who has moved to a different\r\nmailbox.\r\n\r\n<\/pre>\n<h4><a class=\"selflink\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#section-3.3.9\" name=\"section-3.3.9\">3.3.9<\/a>. MX RDATA format<\/h4>\n<pre class=\"newpage\">\r\n    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+\r\n    |                  PREFERENCE                   |\r\n    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+\r\n    \/                   EXCHANGE                    \/\r\n    \/                                               \/\r\n    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+\r\n\r\nwhere:\r\n\r\nPREFERENCE      A 16 bit integer which specifies the preference given to\r\n                this RR among others at the same owner.  Lower values\r\n                are preferred.\r\n\r\nEXCHANGE        A &lt;domain-name&gt; which specifies a host willing to act as\r\n                a mail exchange for the owner name.\r\n\r\nMX records cause type A additional section processing for the host\r\nspecified by EXCHANGE.  The use of MX RRs is explained in detail in\r\n[<a title=\"&quot;Mail routing and the domain system&quot;\" href=\"https:\/\/tools.ietf.org\/html\/rfc974\">RFC-974<\/a>].\r\n\r\n<\/pre>\n<h4><a class=\"selflink\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#section-3.3.10\" name=\"section-3.3.10\">3.3.10<\/a>. NULL RDATA format (EXPERIMENTAL)<\/h4>\n<pre class=\"newpage\">\r\n    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+\r\n    \/                  &lt;anything&gt;                   \/\r\n    \/                                               \/\r\n    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+\r\n\r\nAnything at all may be in the RDATA field so long as it is 65535 octets\r\nor less.\r\n\r\n\r\n\r\n\r\n<span class=\"grey\">Mockapetris                                                    [Page 17]<\/span><\/pre>\n<hr class=\"noprint\" align=\"left\" \/>\n<pre class=\"newpage\"><a id=\"page-18\" class=\"invisible\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#page-18\" name=\"page-18\"> <\/a>\r\n<span class=\"grey\"><a href=\"https:\/\/tools.ietf.org\/html\/rfc1035\">RFC 1035<\/a>        Domain Implementation and Specification    November 1987<\/span>\r\n\r\n\r\nNULL records cause no additional section processing.  NULL RRs are not\r\nallowed in master files.  NULLs are used as placeholders in some\r\nexperimental extensions of the DNS.\r\n\r\n<\/pre>\n<h4><a class=\"selflink\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#section-3.3.11\" name=\"section-3.3.11\">3.3.11<\/a>. NS RDATA format<\/h4>\n<pre class=\"newpage\">\r\n    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+\r\n    \/                   NSDNAME                     \/\r\n    \/                                               \/\r\n    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+\r\n\r\nwhere:\r\n\r\nNSDNAME         A &lt;domain-name&gt; which specifies a host which should be\r\n                authoritative for the specified class and domain.\r\n\r\nNS records cause both the usual additional section processing to locate\r\na type A record, and, when used in a referral, a special search of the\r\nzone in which they reside for glue information.\r\n\r\nThe NS RR states that the named host should be expected to have a zone\r\nstarting at owner name of the specified class.  Note that the class may\r\nnot indicate the protocol family which should be used to communicate\r\nwith the host, although it is typically a strong hint.  For example,\r\nhosts which are name servers for either Internet (IN) or Hesiod (HS)\r\nclass information are normally queried using IN class protocols.\r\n\r\n<\/pre>\n<h4><a class=\"selflink\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#section-3.3.12\" name=\"section-3.3.12\">3.3.12<\/a>. PTR RDATA format<\/h4>\n<pre class=\"newpage\">\r\n    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+\r\n    \/                   PTRDNAME                    \/\r\n    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+\r\n\r\nwhere:\r\n\r\nPTRDNAME        A &lt;domain-name&gt; which points to some location in the\r\n                domain name space.\r\n\r\nPTR records cause no additional section processing.  These RRs are used\r\nin special domains to point to some other location in the domain space.\r\nThese records are simple data, and don't imply any special processing\r\nsimilar to that performed by CNAME, which identifies aliases.  See the\r\ndescription of the IN-ADDR.ARPA domain for an example.\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n<span class=\"grey\">Mockapetris                                                    [Page 18]<\/span><\/pre>\n<hr class=\"noprint\" align=\"left\" \/>\n<pre class=\"newpage\"><a id=\"page-19\" class=\"invisible\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#page-19\" name=\"page-19\"> <\/a>\r\n<span class=\"grey\"><a href=\"https:\/\/tools.ietf.org\/html\/rfc1035\">RFC 1035<\/a>        Domain Implementation and Specification    November 1987<\/span>\r\n\r\n\r\n<\/pre>\n<h4><a class=\"selflink\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#section-3.3.13\" name=\"section-3.3.13\">3.3.13<\/a>. SOA RDATA format<\/h4>\n<pre class=\"newpage\">\r\n    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+\r\n    \/                     MNAME                     \/\r\n    \/                                               \/\r\n    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+\r\n    \/                     RNAME                     \/\r\n    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+\r\n    |                    SERIAL                     |\r\n    |                                               |\r\n    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+\r\n    |                    REFRESH                    |\r\n    |                                               |\r\n    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+\r\n    |                     RETRY                     |\r\n    |                                               |\r\n    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+\r\n    |                    EXPIRE                     |\r\n    |                                               |\r\n    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+\r\n    |                    MINIMUM                    |\r\n    |                                               |\r\n    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+\r\n\r\nwhere:\r\n\r\nMNAME           The &lt;domain-name&gt; of the name server that was the\r\n                original or primary source of data for this zone.\r\n\r\nRNAME           A &lt;domain-name&gt; which specifies the mailbox of the\r\n                person responsible for this zone.\r\n\r\nSERIAL          The unsigned 32 bit version number of the original copy\r\n                of the zone.  Zone transfers preserve this value.  This\r\n                value wraps and should be compared using sequence space\r\n                arithmetic.\r\n\r\nREFRESH         A 32 bit time interval before the zone should be\r\n                refreshed.\r\n\r\nRETRY           A 32 bit time interval that should elapse before a\r\n                failed refresh should be retried.\r\n\r\nEXPIRE          A 32 bit time value that specifies the upper limit on\r\n                the time interval that can elapse before the zone is no\r\n                longer authoritative.\r\n\r\n\r\n\r\n\r\n\r\n<span class=\"grey\">Mockapetris                                                    [Page 19]<\/span><\/pre>\n<hr class=\"noprint\" align=\"left\" \/>\n<pre class=\"newpage\"><a id=\"page-20\" class=\"invisible\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#page-20\" name=\"page-20\"> <\/a>\r\n<span class=\"grey\"><a href=\"https:\/\/tools.ietf.org\/html\/rfc1035\">RFC 1035<\/a>        Domain Implementation and Specification    November 1987<\/span>\r\n\r\n\r\nMINIMUM         The unsigned 32 bit minimum TTL field that should be\r\n                exported with any RR from this zone.\r\n\r\nSOA records cause no additional section processing.\r\n\r\nAll times are in units of seconds.\r\n\r\nMost of these fields are pertinent only for name server maintenance\r\noperations.  However, MINIMUM is used in all query operations that\r\nretrieve RRs from a zone.  Whenever a RR is sent in a response to a\r\nquery, the TTL field is set to the maximum of the TTL field from the RR\r\nand the MINIMUM field in the appropriate SOA.  Thus MINIMUM is a lower\r\nbound on the TTL field for all RRs in a zone.  Note that this use of\r\nMINIMUM should occur when the RRs are copied into the response and not\r\nwhen the zone is loaded from a master file or via a zone transfer.  The\r\nreason for this provison is to allow future dynamic update facilities to\r\nchange the SOA RR with known semantics.\r\n\r\n\r\n<\/pre>\n<h4><a class=\"selflink\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#section-3.3.14\" name=\"section-3.3.14\">3.3.14<\/a>. TXT RDATA format<\/h4>\n<pre class=\"newpage\">\r\n    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+\r\n    \/                   TXT-DATA                    \/\r\n    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+\r\n\r\nwhere:\r\n\r\nTXT-DATA        One or more &lt;character-string&gt;s.\r\n\r\nTXT RRs are used to hold descriptive text.  The semantics of the text\r\ndepends on the domain where it is found.\r\n\r\n<\/pre>\n<h3><a class=\"selflink\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#section-3.4\" name=\"section-3.4\">3.4<\/a>. Internet specific RRs<\/h3>\n<pre class=\"newpage\">\r\n<\/pre>\n<h4><a class=\"selflink\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#section-3.4.1\" name=\"section-3.4.1\">3.4.1<\/a>. A RDATA format<\/h4>\n<pre class=\"newpage\">\r\n    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+\r\n    |                    ADDRESS                    |\r\n    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+\r\n\r\nwhere:\r\n\r\nADDRESS         A 32 bit Internet address.\r\n\r\nHosts that have multiple Internet addresses will have multiple A\r\nrecords.\r\n\r\n\r\n\r\n\r\n\r\n<span class=\"grey\">Mockapetris                                                    [Page 20]<\/span><\/pre>\n<hr class=\"noprint\" align=\"left\" \/>\n<pre class=\"newpage\"><a id=\"page-21\" class=\"invisible\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#page-21\" name=\"page-21\"> <\/a>\r\n<span class=\"grey\"><a href=\"https:\/\/tools.ietf.org\/html\/rfc1035\">RFC 1035<\/a>        Domain Implementation and Specification    November 1987<\/span>\r\n\r\n\r\nA records cause no additional section processing.  The RDATA section of\r\nan A line in a master file is an Internet address expressed as four\r\ndecimal numbers separated by dots without any imbedded spaces (e.g.,\r\n\"10.2.0.52\" or \"192.0.5.6\").\r\n\r\n<\/pre>\n<h4><a class=\"selflink\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#section-3.4.2\" name=\"section-3.4.2\">3.4.2<\/a>. WKS RDATA format<\/h4>\n<pre class=\"newpage\">\r\n    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+\r\n    |                    ADDRESS                    |\r\n    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+\r\n    |       PROTOCOL        |                       |\r\n    +--+--+--+--+--+--+--+--+                       |\r\n    |                                               |\r\n    \/                   &lt;BIT MAP&gt;                   \/\r\n    \/                                               \/\r\n    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+\r\n\r\nwhere:\r\n\r\nADDRESS         An 32 bit Internet address\r\n\r\nPROTOCOL        An 8 bit IP protocol number\r\n\r\n&lt;BIT MAP&gt;       A variable length bit map.  The bit map must be a\r\n                multiple of 8 bits long.\r\n\r\nThe WKS record is used to describe the well known services supported by\r\na particular protocol on a particular internet address.  The PROTOCOL\r\nfield specifies an IP protocol number, and the bit map has one bit per\r\nport of the specified protocol.  The first bit corresponds to port 0,\r\nthe second to port 1, etc.  If the bit map does not include a bit for a\r\nprotocol of interest, that bit is assumed zero.  The appropriate values\r\nand mnemonics for ports and protocols are specified in [<a title=\"&quot;Assigned Numbers&quot;\" href=\"https:\/\/tools.ietf.org\/html\/rfc1010\">RFC-1010<\/a>].\r\n\r\nFor example, if PROTOCOL=TCP (6), the 26th bit corresponds to TCP port\r\n<\/pre>\n<h2><a class=\"selflink\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#section-25\" name=\"section-25\">25<\/a> (SMTP).<\/h2>\n<pre class=\"newpage\">If this bit is set, a SMTP server should be listening on TCP\r\nport 25; if zero, SMTP service is not supported on the specified\r\naddress.\r\n\r\nThe purpose of WKS RRs is to provide availability information for\r\nservers for TCP and UDP.  If a server supports both TCP and UDP, or has\r\nmultiple Internet addresses, then multiple WKS RRs are used.\r\n\r\nWKS RRs cause no additional section processing.\r\n\r\nIn master files, both ports and protocols are expressed using mnemonics\r\nor decimal numbers.\r\n\r\n\r\n\r\n\r\n<span class=\"grey\">Mockapetris                                                    [Page 21]<\/span><\/pre>\n<hr class=\"noprint\" align=\"left\" \/>\n<pre class=\"newpage\"><a id=\"page-22\" class=\"invisible\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#page-22\" name=\"page-22\"> <\/a>\r\n<span class=\"grey\"><a href=\"https:\/\/tools.ietf.org\/html\/rfc1035\">RFC 1035<\/a>        Domain Implementation and Specification    November 1987<\/span>\r\n\r\n\r\n<\/pre>\n<h3><a class=\"selflink\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#section-3.5\" name=\"section-3.5\">3.5<\/a>. IN-ADDR.ARPA domain<\/h3>\n<pre class=\"newpage\">\r\nThe Internet uses a special domain to support gateway location and\r\nInternet address to host mapping.  Other classes may employ a similar\r\nstrategy in other domains.  The intent of this domain is to provide a\r\nguaranteed method to perform host address to host name mapping, and to\r\nfacilitate queries to locate all gateways on a particular network in the\r\nInternet.\r\n\r\nNote that both of these services are similar to functions that could be\r\nperformed by inverse queries; the difference is that this part of the\r\ndomain name space is structured according to address, and hence can\r\nguarantee that the appropriate data can be located without an exhaustive\r\nsearch of the domain space.\r\n\r\nThe domain begins at IN-ADDR.ARPA and has a substructure which follows\r\nthe Internet addressing structure.\r\n\r\nDomain names in the IN-ADDR.ARPA domain are defined to have up to four\r\nlabels in addition to the IN-ADDR.ARPA suffix.  Each label represents\r\none octet of an Internet address, and is expressed as a character string\r\nfor a decimal value in the range 0-255 (with leading zeros omitted\r\nexcept in the case of a zero octet which is represented by a single\r\nzero).\r\n\r\nHost addresses are represented by domain names that have all four labels\r\nspecified.  Thus data for Internet address 10.2.0.52 is located at\r\ndomain name 52.0.2.10.IN-ADDR.ARPA.  The reversal, though awkward to\r\nread, allows zones to be delegated which are exactly one network of\r\naddress space.  For example, 10.IN-ADDR.ARPA can be a zone containing\r\ndata for the ARPANET, while 26.IN-ADDR.ARPA can be a separate zone for\r\nMILNET.  Address nodes are used to hold pointers to primary host names\r\nin the normal domain space.\r\n\r\nNetwork numbers correspond to some non-terminal nodes at various depths\r\nin the IN-ADDR.ARPA domain, since Internet network numbers are either 1,\r\n2, or 3 octets.  Network nodes are used to hold pointers to the primary\r\nhost names of gateways attached to that network.  Since a gateway is, by\r\ndefinition, on more than one network, it will typically have two or more\r\nnetwork nodes which point at it.  Gateways will also have host level\r\npointers at their fully qualified addresses.\r\n\r\nBoth the gateway pointers at network nodes and the normal host pointers\r\nat full address nodes use the PTR RR to point back to the primary domain\r\nnames of the corresponding hosts.\r\n\r\nFor example, the IN-ADDR.ARPA domain will contain information about the\r\nISI gateway between net 10 and 26, an MIT gateway from net 10 to MIT's\r\n\r\n\r\n\r\n<span class=\"grey\">Mockapetris                                                    [Page 22]<\/span><\/pre>\n<hr class=\"noprint\" align=\"left\" \/>\n<pre class=\"newpage\"><a id=\"page-23\" class=\"invisible\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#page-23\" name=\"page-23\"> <\/a>\r\n<span class=\"grey\"><a href=\"https:\/\/tools.ietf.org\/html\/rfc1035\">RFC 1035<\/a>        Domain Implementation and Specification    November 1987<\/span>\r\n\r\n\r\nnet 18, and hosts A.ISI.EDU and MULTICS.MIT.EDU.  Assuming that ISI\r\ngateway has addresses 10.2.0.22 and 26.0.0.103, and a name MILNET-\r\nGW.ISI.EDU, and the MIT gateway has addresses 10.0.0.77 and 18.10.0.4\r\nand a name GW.LCS.MIT.EDU, the domain database would contain:\r\n\r\n    10.IN-ADDR.ARPA.           PTR MILNET-GW.ISI.EDU.\r\n    10.IN-ADDR.ARPA.           PTR GW.LCS.MIT.EDU.\r\n    18.IN-ADDR.ARPA.           PTR GW.LCS.MIT.EDU.\r\n    26.IN-ADDR.ARPA.           PTR MILNET-GW.ISI.EDU.\r\n    22.0.2.10.IN-ADDR.ARPA.    PTR MILNET-GW.ISI.EDU.\r\n    103.0.0.26.IN-ADDR.ARPA.   PTR MILNET-GW.ISI.EDU.\r\n    77.0.0.10.IN-ADDR.ARPA.    PTR GW.LCS.MIT.EDU.\r\n    4.0.10.18.IN-ADDR.ARPA.    PTR GW.LCS.MIT.EDU.\r\n    103.0.3.26.IN-ADDR.ARPA.   PTR A.ISI.EDU.\r\n    6.0.0.10.IN-ADDR.ARPA.     PTR MULTICS.MIT.EDU.\r\n\r\nThus a program which wanted to locate gateways on net 10 would originate\r\na query of the form QTYPE=PTR, QCLASS=IN, QNAME=10.IN-ADDR.ARPA.  It\r\nwould receive two RRs in response:\r\n\r\n    10.IN-ADDR.ARPA.           PTR MILNET-GW.ISI.EDU.\r\n    10.IN-ADDR.ARPA.           PTR GW.LCS.MIT.EDU.\r\n\r\nThe program could then originate QTYPE=A, QCLASS=IN queries for MILNET-\r\nGW.ISI.EDU. and GW.LCS.MIT.EDU. to discover the Internet addresses of\r\nthese gateways.\r\n\r\nA resolver which wanted to find the host name corresponding to Internet\r\nhost address 10.0.0.6 would pursue a query of the form QTYPE=PTR,\r\nQCLASS=IN, QNAME=6.0.0.10.IN-ADDR.ARPA, and would receive:\r\n\r\n    6.0.0.10.IN-ADDR.ARPA.     PTR MULTICS.MIT.EDU.\r\n\r\nSeveral cautions apply to the use of these services:\r\n   - Since the IN-ADDR.ARPA special domain and the normal domain\r\n     for a particular host or gateway will be in different zones,\r\n     the possibility exists that that the data may be inconsistent.\r\n\r\n   - Gateways will often have two names in separate domains, only\r\n     one of which can be primary.\r\n\r\n   - Systems that use the domain database to initialize their\r\n     routing tables must start with enough gateway information to\r\n     guarantee that they can access the appropriate name server.\r\n\r\n   - The gateway data only reflects the existence of a gateway in a\r\n     manner equivalent to the current HOSTS.TXT file.  It doesn't\r\n     replace the dynamic availability information from GGP or EGP.\r\n\r\n\r\n\r\n<span class=\"grey\">Mockapetris                                                    [Page 23]<\/span><\/pre>\n<hr class=\"noprint\" align=\"left\" \/>\n<pre class=\"newpage\"><a id=\"page-24\" class=\"invisible\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#page-24\" name=\"page-24\"> <\/a>\r\n<span class=\"grey\"><a href=\"https:\/\/tools.ietf.org\/html\/rfc1035\">RFC 1035<\/a>        Domain Implementation and Specification    November 1987<\/span>\r\n\r\n\r\n<\/pre>\n<h3><a class=\"selflink\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#section-3.6\" name=\"section-3.6\">3.6<\/a>. Defining new types, classes, and special namespaces<\/h3>\n<pre class=\"newpage\">\r\nThe previously defined types and classes are the ones in use as of the\r\ndate of this memo.  New definitions should be expected.  This section\r\nmakes some recommendations to designers considering additions to the\r\nexisting facilities.  The mailing list NAMEDROPPERS@SRI-NIC.ARPA is the\r\nforum where general discussion of design issues takes place.\r\n\r\nIn general, a new type is appropriate when new information is to be\r\nadded to the database about an existing object, or we need new data\r\nformats for some totally new object.  Designers should attempt to define\r\ntypes and their RDATA formats that are generally applicable to all\r\nclasses, and which avoid duplication of information.  New classes are\r\nappropriate when the DNS is to be used for a new protocol, etc which\r\nrequires new class-specific data formats, or when a copy of the existing\r\nname space is desired, but a separate management domain is necessary.\r\n\r\nNew types and classes need mnemonics for master files; the format of the\r\nmaster files requires that the mnemonics for type and class be disjoint.\r\n\r\nTYPE and CLASS values must be a proper subset of QTYPEs and QCLASSes\r\nrespectively.\r\n\r\nThe present system uses multiple RRs to represent multiple values of a\r\ntype rather than storing multiple values in the RDATA section of a\r\nsingle RR.  This is less efficient for most applications, but does keep\r\nRRs shorter.  The multiple RRs assumption is incorporated in some\r\nexperimental work on dynamic update methods.\r\n\r\nThe present system attempts to minimize the duplication of data in the\r\ndatabase in order to insure consistency.  Thus, in order to find the\r\naddress of the host for a mail exchange, you map the mail domain name to\r\na host name, then the host name to addresses, rather than a direct\r\nmapping to host address.  This approach is preferred because it avoids\r\nthe opportunity for inconsistency.\r\n\r\nIn defining a new type of data, multiple RR types should not be used to\r\ncreate an ordering between entries or express different formats for\r\nequivalent bindings, instead this information should be carried in the\r\nbody of the RR and a single type used.  This policy avoids problems with\r\ncaching multiple types and defining QTYPEs to match multiple types.\r\n\r\nFor example, the original form of mail exchange binding used two RR\r\ntypes one to represent a \"closer\" exchange (MD) and one to represent a\r\n\"less close\" exchange (MF).  The difficulty is that the presence of one\r\nRR type in a cache doesn't convey any information about the other\r\nbecause the query which acquired the cached information might have used\r\na QTYPE of MF, MD, or MAILA (which matched both).  The redesigned\r\n\r\n\r\n\r\n<span class=\"grey\">Mockapetris                                                    [Page 24]<\/span><\/pre>\n<hr class=\"noprint\" align=\"left\" \/>\n<pre class=\"newpage\"><a id=\"page-25\" class=\"invisible\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#page-25\" name=\"page-25\"> <\/a>\r\n<span class=\"grey\"><a href=\"https:\/\/tools.ietf.org\/html\/rfc1035\">RFC 1035<\/a>        Domain Implementation and Specification    November 1987<\/span>\r\n\r\n\r\nservice used a single type (MX) with a \"preference\" value in the RDATA\r\nsection which can order different RRs.  However, if any MX RRs are found\r\nin the cache, then all should be there.\r\n\r\n<\/pre>\n<h2><a class=\"selflink\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#section-4\" name=\"section-4\">4<\/a>. MESSAGES<\/h2>\n<pre class=\"newpage\">\r\n<\/pre>\n<h3><a class=\"selflink\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#section-4.1\" name=\"section-4.1\">4.1<\/a>. Format<\/h3>\n<pre class=\"newpage\">\r\nAll communications inside of the domain protocol are carried in a single\r\nformat called a message.  The top level format of message is divided\r\ninto 5 sections (some of which are empty in certain cases) shown below:\r\n\r\n    +---------------------+\r\n    |        Header       |\r\n    +---------------------+\r\n    |       Question      | the question for the name server\r\n    +---------------------+\r\n    |        Answer       | RRs answering the question\r\n    +---------------------+\r\n    |      Authority      | RRs pointing toward an authority\r\n    +---------------------+\r\n    |      Additional     | RRs holding additional information\r\n    +---------------------+\r\n\r\nThe header section is always present.  The header includes fields that\r\nspecify which of the remaining sections are present, and also specify\r\nwhether the message is a query or a response, a standard query or some\r\nother opcode, etc.\r\n\r\nThe names of the sections after the header are derived from their use in\r\nstandard queries.  The question section contains fields that describe a\r\nquestion to a name server.  These fields are a query type (QTYPE), a\r\nquery class (QCLASS), and a query domain name (QNAME).  The last three\r\nsections have the same format: a possibly empty list of concatenated\r\nresource records (RRs).  The answer section contains RRs that answer the\r\nquestion; the authority section contains RRs that point toward an\r\nauthoritative name server; the additional records section contains RRs\r\nwhich relate to the query, but are not strictly answers for the\r\nquestion.\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n<span class=\"grey\">Mockapetris                                                    [Page 25]<\/span><\/pre>\n<hr class=\"noprint\" align=\"left\" \/>\n<pre class=\"newpage\"><a id=\"page-26\" class=\"invisible\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#page-26\" name=\"page-26\"> <\/a>\r\n<span class=\"grey\"><a href=\"https:\/\/tools.ietf.org\/html\/rfc1035\">RFC 1035<\/a>        Domain Implementation and Specification    November 1987<\/span>\r\n\r\n\r\n<\/pre>\n<h4><a class=\"selflink\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#section-4.1.1\" name=\"section-4.1.1\">4.1.1<\/a>. Header section format<\/h4>\n<pre class=\"newpage\">\r\nThe header contains the following fields:\r\n\r\n                                    1  1  1  1  1  1\r\n      0  1  2  3  4  5  6  7  8  9  0  1  2  3  4  5\r\n    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+\r\n    |                      ID                       |\r\n    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+\r\n    |QR|   Opcode  |AA|TC|RD|RA|   Z    |   RCODE   |\r\n    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+\r\n    |                    QDCOUNT                    |\r\n    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+\r\n    |                    ANCOUNT                    |\r\n    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+\r\n    |                    NSCOUNT                    |\r\n    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+\r\n    |                    ARCOUNT                    |\r\n    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+\r\n\r\nwhere:\r\n\r\nID              A 16 bit identifier assigned by the program that\r\n                generates any kind of query.  This identifier is copied\r\n                the corresponding reply and can be used by the requester\r\n                to match up replies to outstanding queries.\r\n\r\nQR              A one bit field that specifies whether this message is a\r\n                query (0), or a response (1).\r\n\r\nOPCODE          A four bit field that specifies kind of query in this\r\n                message.  This value is set by the originator of a query\r\n                and copied into the response.  The values are:\r\n\r\n                0               a standard query (QUERY)\r\n\r\n                1               an inverse query (IQUERY)\r\n\r\n                2               a server status request (STATUS)\r\n\r\n                3-15            reserved for future use\r\n\r\nAA              Authoritative Answer - this bit is valid in responses,\r\n                and specifies that the responding name server is an\r\n                authority for the domain name in question section.\r\n\r\n                Note that the contents of the answer section may have\r\n                multiple owner names because of aliases.  The AA bit\r\n\r\n\r\n\r\n<span class=\"grey\">Mockapetris                                                    [Page 26]<\/span><\/pre>\n<hr class=\"noprint\" align=\"left\" \/>\n<pre class=\"newpage\"><a id=\"page-27\" class=\"invisible\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#page-27\" name=\"page-27\"> <\/a>\r\n<span class=\"grey\"><a href=\"https:\/\/tools.ietf.org\/html\/rfc1035\">RFC 1035<\/a>        Domain Implementation and Specification    November 1987<\/span>\r\n\r\n\r\n                corresponds to the name which matches the query name, or\r\n                the first owner name in the answer section.\r\n\r\nTC              TrunCation - specifies that this message was truncated\r\n                due to length greater than that permitted on the\r\n                transmission channel.\r\n\r\nRD              Recursion Desired - this bit may be set in a query and\r\n                is copied into the response.  If RD is set, it directs\r\n                the name server to pursue the query recursively.\r\n                Recursive query support is optional.\r\n\r\nRA              Recursion Available - this be is set or cleared in a\r\n                response, and denotes whether recursive query support is\r\n                available in the name server.\r\n\r\nZ               Reserved for future use.  Must be zero in all queries\r\n                and responses.\r\n\r\nRCODE           Response code - this 4 bit field is set as part of\r\n                responses.  The values have the following\r\n                interpretation:\r\n\r\n                0               No error condition\r\n\r\n                1               Format error - The name server was\r\n                                unable to interpret the query.\r\n\r\n                2               Server failure - The name server was\r\n                                unable to process this query due to a\r\n                                problem with the name server.\r\n\r\n                3               Name Error - Meaningful only for\r\n                                responses from an authoritative name\r\n                                server, this code signifies that the\r\n                                domain name referenced in the query does\r\n                                not exist.\r\n\r\n                4               Not Implemented - The name server does\r\n                                not support the requested kind of query.\r\n\r\n                5               Refused - The name server refuses to\r\n                                perform the specified operation for\r\n                                policy reasons.  For example, a name\r\n                                server may not wish to provide the\r\n                                information to the particular requester,\r\n                                or a name server may not wish to perform\r\n                                a particular operation (e.g., zone\r\n\r\n\r\n\r\n<span class=\"grey\">Mockapetris                                                    [Page 27]<\/span><\/pre>\n<hr class=\"noprint\" align=\"left\" \/>\n<pre class=\"newpage\"><a id=\"page-28\" class=\"invisible\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#page-28\" name=\"page-28\"> <\/a>\r\n<span class=\"grey\"><a href=\"https:\/\/tools.ietf.org\/html\/rfc1035\">RFC 1035<\/a>        Domain Implementation and Specification    November 1987<\/span>\r\n\r\n\r\n                                transfer) for particular data.\r\n\r\n                6-15            Reserved for future use.\r\n\r\nQDCOUNT         an unsigned 16 bit integer specifying the number of\r\n                entries in the question section.\r\n\r\nANCOUNT         an unsigned 16 bit integer specifying the number of\r\n                resource records in the answer section.\r\n\r\nNSCOUNT         an unsigned 16 bit integer specifying the number of name\r\n                server resource records in the authority records\r\n                section.\r\n\r\nARCOUNT         an unsigned 16 bit integer specifying the number of\r\n                resource records in the additional records section.\r\n\r\n<\/pre>\n<h4><a class=\"selflink\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#section-4.1.2\" name=\"section-4.1.2\">4.1.2<\/a>. Question section format<\/h4>\n<pre class=\"newpage\">\r\nThe question section is used to carry the \"question\" in most queries,\r\ni.e., the parameters that define what is being asked.  The section\r\ncontains QDCOUNT (usually 1) entries, each of the following format:\r\n\r\n                                    1  1  1  1  1  1\r\n      0  1  2  3  4  5  6  7  8  9  0  1  2  3  4  5\r\n    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+\r\n    |                                               |\r\n    \/                     QNAME                     \/\r\n    \/                                               \/\r\n    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+\r\n    |                     QTYPE                     |\r\n    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+\r\n    |                     QCLASS                    |\r\n    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+\r\n\r\nwhere:\r\n\r\nQNAME           a domain name represented as a sequence of labels, where\r\n                each label consists of a length octet followed by that\r\n                number of octets.  The domain name terminates with the\r\n                zero length octet for the null label of the root.  Note\r\n                that this field may be an odd number of octets; no\r\n                padding is used.\r\n\r\nQTYPE           a two octet code which specifies the type of the query.\r\n                The values for this field include all codes valid for a\r\n                TYPE field, together with some more general codes which\r\n                can match more than one type of RR.\r\n\r\n\r\n\r\n<span class=\"grey\">Mockapetris                                                    [Page 28]<\/span><\/pre>\n<hr class=\"noprint\" align=\"left\" \/>\n<pre class=\"newpage\"><a id=\"page-29\" class=\"invisible\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#page-29\" name=\"page-29\"> <\/a>\r\n<span class=\"grey\"><a href=\"https:\/\/tools.ietf.org\/html\/rfc1035\">RFC 1035<\/a>        Domain Implementation and Specification    November 1987<\/span>\r\n\r\n\r\nQCLASS          a two octet code that specifies the class of the query.\r\n                For example, the QCLASS field is IN for the Internet.\r\n\r\n<\/pre>\n<h4><a class=\"selflink\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#section-4.1.3\" name=\"section-4.1.3\">4.1.3<\/a>. Resource record format<\/h4>\n<pre class=\"newpage\">\r\nThe answer, authority, and additional sections all share the same\r\nformat: a variable number of resource records, where the number of\r\nrecords is specified in the corresponding count field in the header.\r\nEach resource record has the following format:\r\n                                    1  1  1  1  1  1\r\n      0  1  2  3  4  5  6  7  8  9  0  1  2  3  4  5\r\n    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+\r\n    |                                               |\r\n    \/                                               \/\r\n    \/                      NAME                     \/\r\n    |                                               |\r\n    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+\r\n    |                      TYPE                     |\r\n    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+\r\n    |                     CLASS                     |\r\n    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+\r\n    |                      TTL                      |\r\n    |                                               |\r\n    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+\r\n    |                   RDLENGTH                    |\r\n    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--|\r\n    \/                     RDATA                     \/\r\n    \/                                               \/\r\n    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+\r\n\r\nwhere:\r\n\r\nNAME            a domain name to which this resource record pertains.\r\n\r\nTYPE            two octets containing one of the RR type codes.  This\r\n                field specifies the meaning of the data in the RDATA\r\n                field.\r\n\r\nCLASS           two octets which specify the class of the data in the\r\n                RDATA field.\r\n\r\nTTL             a 32 bit unsigned integer that specifies the time\r\n                interval (in seconds) that the resource record may be\r\n                cached before it should be discarded.  Zero values are\r\n                interpreted to mean that the RR can only be used for the\r\n                transaction in progress, and should not be cached.\r\n\r\n\r\n\r\n\r\n\r\n<span class=\"grey\">Mockapetris                                                    [Page 29]<\/span><\/pre>\n<hr class=\"noprint\" align=\"left\" \/>\n<pre class=\"newpage\"><a id=\"page-30\" class=\"invisible\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#page-30\" name=\"page-30\"> <\/a>\r\n<span class=\"grey\"><a href=\"https:\/\/tools.ietf.org\/html\/rfc1035\">RFC 1035<\/a>        Domain Implementation and Specification    November 1987<\/span>\r\n\r\n\r\nRDLENGTH        an unsigned 16 bit integer that specifies the length in\r\n                octets of the RDATA field.\r\n\r\nRDATA           a variable length string of octets that describes the\r\n                resource.  The format of this information varies\r\n                according to the TYPE and CLASS of the resource record.\r\n                For example, the if the TYPE is A and the CLASS is IN,\r\n                the RDATA field is a 4 octet ARPA Internet address.\r\n\r\n<\/pre>\n<h4><a class=\"selflink\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#section-4.1.4\" name=\"section-4.1.4\">4.1.4<\/a>. Message compression<\/h4>\n<pre class=\"newpage\">\r\nIn order to reduce the size of messages, the domain system utilizes a\r\ncompression scheme which eliminates the repetition of domain names in a\r\nmessage.  In this scheme, an entire domain name or a list of labels at\r\nthe end of a domain name is replaced with a pointer to a prior occurance\r\nof the same name.\r\n\r\nThe pointer takes the form of a two octet sequence:\r\n\r\n    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+\r\n    | 1  1|                OFFSET                   |\r\n    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+\r\n\r\nThe first two bits are ones.  This allows a pointer to be distinguished\r\nfrom a label, since the label must begin with two zero bits because\r\nlabels are restricted to 63 octets or less.  (The 10 and 01 combinations\r\nare reserved for future use.)  The OFFSET field specifies an offset from\r\nthe start of the message (i.e., the first octet of the ID field in the\r\ndomain header).  A zero offset specifies the first byte of the ID field,\r\netc.\r\n\r\nThe compression scheme allows a domain name in a message to be\r\nrepresented as either:\r\n\r\n   - a sequence of labels ending in a zero octet\r\n\r\n   - a pointer\r\n\r\n   - a sequence of labels ending with a pointer\r\n\r\nPointers can only be used for occurances of a domain name where the\r\nformat is not class specific.  If this were not the case, a name server\r\nor resolver would be required to know the format of all RRs it handled.\r\nAs yet, there are no such cases, but they may occur in future RDATA\r\nformats.\r\n\r\nIf a domain name is contained in a part of the message subject to a\r\nlength field (such as the RDATA section of an RR), and compression is\r\n\r\n\r\n\r\n<span class=\"grey\">Mockapetris                                                    [Page 30]<\/span><\/pre>\n<hr class=\"noprint\" align=\"left\" \/>\n<pre class=\"newpage\"><a id=\"page-31\" class=\"invisible\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#page-31\" name=\"page-31\"> <\/a>\r\n<span class=\"grey\"><a href=\"https:\/\/tools.ietf.org\/html\/rfc1035\">RFC 1035<\/a>        Domain Implementation and Specification    November 1987<\/span>\r\n\r\n\r\nused, the length of the compressed name is used in the length\r\ncalculation, rather than the length of the expanded name.\r\n\r\nPrograms are free to avoid using pointers in messages they generate,\r\nalthough this will reduce datagram capacity, and may cause truncation.\r\nHowever all programs are required to understand arriving messages that\r\ncontain pointers.\r\n\r\nFor example, a datagram might need to use the domain names F.ISI.ARPA,\r\nFOO.F.ISI.ARPA, ARPA, and the root.  Ignoring the other fields of the\r\nmessage, these domain names might be represented as:\r\n\r\n       +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+\r\n    20 |           1           |           F           |\r\n       +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+\r\n    22 |           3           |           I           |\r\n       +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+\r\n    24 |           S           |           I           |\r\n       +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+\r\n    26 |           4           |           A           |\r\n       +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+\r\n    28 |           R           |           P           |\r\n       +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+\r\n    30 |           A           |           0           |\r\n       +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+\r\n\r\n       +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+\r\n    40 |           3           |           F           |\r\n       +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+\r\n    42 |           O           |           O           |\r\n       +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+\r\n    44 | 1  1|                20                       |\r\n       +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+\r\n\r\n       +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+\r\n    64 | 1  1|                26                       |\r\n       +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+\r\n\r\n       +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+\r\n    92 |           0           |                       |\r\n       +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+\r\n\r\nThe domain name for F.ISI.ARPA is shown at offset 20.  The domain name\r\nFOO.F.ISI.ARPA is shown at offset 40; this definition uses a pointer to\r\nconcatenate a label for FOO to the previously defined F.ISI.ARPA.  The\r\ndomain name ARPA is defined at offset 64 using a pointer to the ARPA\r\ncomponent of the name F.ISI.ARPA at 20; note that this pointer relies on\r\nARPA being the last label in the string at 20.  The root domain name is\r\n\r\n\r\n\r\n<span class=\"grey\">Mockapetris                                                    [Page 31]<\/span><\/pre>\n<hr class=\"noprint\" align=\"left\" \/>\n<pre class=\"newpage\"><a id=\"page-32\" class=\"invisible\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#page-32\" name=\"page-32\"> <\/a>\r\n<span class=\"grey\"><a href=\"https:\/\/tools.ietf.org\/html\/rfc1035\">RFC 1035<\/a>        Domain Implementation and Specification    November 1987<\/span>\r\n\r\n\r\ndefined by a single octet of zeros at 92; the root domain name has no\r\nlabels.\r\n\r\n<\/pre>\n<h3><a class=\"selflink\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#section-4.2\" name=\"section-4.2\">4.2<\/a>. Transport<\/h3>\n<pre class=\"newpage\">\r\nThe DNS assumes that messages will be transmitted as datagrams or in a\r\nbyte stream carried by a virtual circuit.  While virtual circuits can be\r\nused for any DNS activity, datagrams are preferred for queries due to\r\ntheir lower overhead and better performance.  Zone refresh activities\r\nmust use virtual circuits because of the need for reliable transfer.\r\n\r\nThe Internet supports name server access using TCP [<a title=\"&quot;Transmission Control Protocol&quot;\" href=\"https:\/\/tools.ietf.org\/html\/rfc793\">RFC-793<\/a>] on server\r\nport 53 (decimal) as well as datagram access using UDP [<a title=\"&quot;User Datagram Protocol&quot;\" href=\"https:\/\/tools.ietf.org\/html\/rfc768\">RFC-768<\/a>] on UDP\r\nport 53 (decimal).\r\n\r\n<\/pre>\n<h4><a class=\"selflink\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#section-4.2.1\" name=\"section-4.2.1\">4.2.1<\/a>. UDP usage<\/h4>\n<pre class=\"newpage\">\r\nMessages sent using UDP user server port 53 (decimal).\r\n\r\nMessages carried by UDP are restricted to 512 bytes (not counting the IP\r\nor UDP headers).  Longer messages are truncated and the TC bit is set in\r\nthe header.\r\n\r\nUDP is not acceptable for zone transfers, but is the recommended method\r\nfor standard queries in the Internet.  Queries sent using UDP may be\r\nlost, and hence a retransmission strategy is required.  Queries or their\r\nresponses may be reordered by the network, or by processing in name\r\nservers, so resolvers should not depend on them being returned in order.\r\n\r\nThe optimal UDP retransmission policy will vary with performance of the\r\nInternet and the needs of the client, but the following are recommended:\r\n\r\n   - The client should try other servers and server addresses\r\n     before repeating a query to a specific address of a server.\r\n\r\n   - The retransmission interval should be based on prior\r\n     statistics if possible.  Too aggressive retransmission can\r\n     easily slow responses for the community at large.  Depending\r\n     on how well connected the client is to its expected servers,\r\n     the minimum retransmission interval should be 2-5 seconds.\r\n\r\nMore suggestions on server selection and retransmission policy can be\r\nfound in the resolver section of this memo.\r\n\r\n<\/pre>\n<h4><a class=\"selflink\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#section-4.2.2\" name=\"section-4.2.2\">4.2.2<\/a>. TCP usage<\/h4>\n<pre class=\"newpage\">\r\nMessages sent over TCP connections use server port 53 (decimal).  The\r\nmessage is prefixed with a two byte length field which gives the message\r\n\r\n\r\n\r\n<span class=\"grey\">Mockapetris                                                    [Page 32]<\/span><\/pre>\n<hr class=\"noprint\" align=\"left\" \/>\n<pre class=\"newpage\"><a id=\"page-33\" class=\"invisible\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#page-33\" name=\"page-33\"> <\/a>\r\n<span class=\"grey\"><a href=\"https:\/\/tools.ietf.org\/html\/rfc1035\">RFC 1035<\/a>        Domain Implementation and Specification    November 1987<\/span>\r\n\r\n\r\nlength, excluding the two byte length field.  This length field allows\r\nthe low-level processing to assemble a complete message before beginning\r\nto parse it.\r\n\r\nSeveral connection management policies are recommended:\r\n\r\n   - The server should not block other activities waiting for TCP\r\n     data.\r\n\r\n   - The server should support multiple connections.\r\n\r\n   - The server should assume that the client will initiate\r\n     connection closing, and should delay closing its end of the\r\n     connection until all outstanding client requests have been\r\n     satisfied.\r\n\r\n   - If the server needs to close a dormant connection to reclaim\r\n     resources, it should wait until the connection has been idle\r\n     for a period on the order of two minutes.  In particular, the\r\n     server should allow the SOA and AXFR request sequence (which\r\n     begins a refresh operation) to be made on a single connection.\r\n     Since the server would be unable to answer queries anyway, a\r\n     unilateral close or reset may be used instead of a graceful\r\n     close.\r\n\r\n<\/pre>\n<h2><a class=\"selflink\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#section-5\" name=\"section-5\">5<\/a>. MASTER FILES<\/h2>\n<pre class=\"newpage\">\r\nMaster files are text files that contain RRs in text form.  Since the\r\ncontents of a zone can be expressed in the form of a list of RRs a\r\nmaster file is most often used to define a zone, though it can be used\r\nto list a cache's contents.  Hence, this section first discusses the\r\nformat of RRs in a master file, and then the special considerations when\r\na master file is used to create a zone in some name server.\r\n\r\n<\/pre>\n<h3><a class=\"selflink\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#section-5.1\" name=\"section-5.1\">5.1<\/a>. Format<\/h3>\n<pre class=\"newpage\">\r\nThe format of these files is a sequence of entries.  Entries are\r\npredominantly line-oriented, though parentheses can be used to continue\r\na list of items across a line boundary, and text literals can contain\r\nCRLF within the text.  Any combination of tabs and spaces act as a\r\ndelimiter between the separate items that make up an entry.  The end of\r\nany line in the master file can end with a comment.  The comment starts\r\nwith a \";\" (semicolon).\r\n\r\nThe following entries are defined:\r\n\r\n    &lt;blank&gt;[&lt;comment&gt;]\r\n\r\n\r\n\r\n\r\n<span class=\"grey\">Mockapetris                                                    [Page 33]<\/span><\/pre>\n<hr class=\"noprint\" align=\"left\" \/>\n<pre class=\"newpage\"><a id=\"page-34\" class=\"invisible\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#page-34\" name=\"page-34\"> <\/a>\r\n<span class=\"grey\"><a href=\"https:\/\/tools.ietf.org\/html\/rfc1035\">RFC 1035<\/a>        Domain Implementation and Specification    November 1987<\/span>\r\n\r\n\r\n    $ORIGIN &lt;domain-name&gt; [&lt;comment&gt;]\r\n\r\n    $INCLUDE &lt;file-name&gt; [&lt;domain-name&gt;] [&lt;comment&gt;]\r\n\r\n    &lt;domain-name&gt;&lt;rr&gt; [&lt;comment&gt;]\r\n\r\n    &lt;blank&gt;&lt;rr&gt; [&lt;comment&gt;]\r\n\r\nBlank lines, with or without comments, are allowed anywhere in the file.\r\n\r\nTwo control entries are defined: $ORIGIN and $INCLUDE.  $ORIGIN is\r\nfollowed by a domain name, and resets the current origin for relative\r\ndomain names to the stated name.  $INCLUDE inserts the named file into\r\nthe current file, and may optionally specify a domain name that sets the\r\nrelative domain name origin for the included file.  $INCLUDE may also\r\nhave a comment.  Note that a $INCLUDE entry never changes the relative\r\norigin of the parent file, regardless of changes to the relative origin\r\nmade within the included file.\r\n\r\nThe last two forms represent RRs.  If an entry for an RR begins with a\r\nblank, then the RR is assumed to be owned by the last stated owner.  If\r\nan RR entry begins with a &lt;domain-name&gt;, then the owner name is reset.\r\n\r\n&lt;rr&gt; contents take one of the following forms:\r\n\r\n    [&lt;TTL&gt;] [&lt;class&gt;] &lt;type&gt; &lt;RDATA&gt;\r\n\r\n    [&lt;class&gt;] [&lt;TTL&gt;] &lt;type&gt; &lt;RDATA&gt;\r\n\r\nThe RR begins with optional TTL and class fields, followed by a type and\r\nRDATA field appropriate to the type and class.  Class and type use the\r\nstandard mnemonics, TTL is a decimal integer.  Omitted class and TTL\r\nvalues are default to the last explicitly stated values.  Since type and\r\nclass mnemonics are disjoint, the parse is unique.  (Note that this\r\norder is different from the order used in examples and the order used in\r\nthe actual RRs; the given order allows easier parsing and defaulting.)\r\n\r\n&lt;domain-name&gt;s make up a large share of the data in the master file.\r\nThe labels in the domain name are expressed as character strings and\r\nseparated by dots.  Quoting conventions allow arbitrary characters to be\r\nstored in domain names.  Domain names that end in a dot are called\r\nabsolute, and are taken as complete.  Domain names which do not end in a\r\ndot are called relative; the actual domain name is the concatenation of\r\nthe relative part with an origin specified in a $ORIGIN, $INCLUDE, or as\r\nan argument to the master file loading routine.  A relative name is an\r\nerror when no origin is available.\r\n\r\n\r\n\r\n\r\n\r\n<span class=\"grey\">Mockapetris                                                    [Page 34]<\/span><\/pre>\n<hr class=\"noprint\" align=\"left\" \/>\n<pre class=\"newpage\"><a id=\"page-35\" class=\"invisible\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#page-35\" name=\"page-35\"> <\/a>\r\n<span class=\"grey\"><a href=\"https:\/\/tools.ietf.org\/html\/rfc1035\">RFC 1035<\/a>        Domain Implementation and Specification    November 1987<\/span>\r\n\r\n\r\n&lt;character-string&gt; is expressed in one or two ways: as a contiguous set\r\nof characters without interior spaces, or as a string beginning with a \"\r\nand ending with a \".  Inside a \" delimited string any character can\r\noccur, except for a \" itself, which must be quoted using \\ (back slash).\r\n\r\nBecause these files are text files several special encodings are\r\nnecessary to allow arbitrary data to be loaded.  In particular:\r\n\r\n                of the root.\r\n\r\n@               A free standing @ is used to denote the current origin.\r\n\r\n\\X              where X is any character other than a digit (0-9), is\r\n                used to quote that character so that its special meaning\r\n                does not apply.  For example, \"\\.\" can be used to place\r\n                a dot character in a label.\r\n\r\n\\DDD            where each D is a digit is the octet corresponding to\r\n                the decimal number described by DDD.  The resulting\r\n                octet is assumed to be text and is not checked for\r\n                special meaning.\r\n\r\n( )             Parentheses are used to group data that crosses a line\r\n                boundary.  In effect, line terminations are not\r\n                recognized within parentheses.\r\n\r\n;               Semicolon is used to start a comment; the remainder of\r\n                the line is ignored.\r\n\r\n<\/pre>\n<h3><a class=\"selflink\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#section-5.2\" name=\"section-5.2\">5.2<\/a>. Use of master files to define zones<\/h3>\n<pre class=\"newpage\">\r\nWhen a master file is used to load a zone, the operation should be\r\nsuppressed if any errors are encountered in the master file.  The\r\nrationale for this is that a single error can have widespread\r\nconsequences.  For example, suppose that the RRs defining a delegation\r\nhave syntax errors; then the server will return authoritative name\r\nerrors for all names in the subzone (except in the case where the\r\nsubzone is also present on the server).\r\n\r\nSeveral other validity checks that should be performed in addition to\r\ninsuring that the file is syntactically correct:\r\n\r\n   1. All RRs in the file should have the same class.\r\n\r\n   2. Exactly one SOA RR should be present at the top of the zone.\r\n\r\n   3. If delegations are present and glue information is required,\r\n      it should be present.\r\n\r\n\r\n\r\n<span class=\"grey\">Mockapetris                                                    [Page 35]<\/span><\/pre>\n<hr class=\"noprint\" align=\"left\" \/>\n<pre class=\"newpage\"><a id=\"page-36\" class=\"invisible\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#page-36\" name=\"page-36\"> <\/a>\r\n<span class=\"grey\"><a href=\"https:\/\/tools.ietf.org\/html\/rfc1035\">RFC 1035<\/a>        Domain Implementation and Specification    November 1987<\/span>\r\n\r\n\r\n   4. Information present outside of the authoritative nodes in the\r\n      zone should be glue information, rather than the result of an\r\n      origin or similar error.\r\n\r\n<\/pre>\n<h3><a class=\"selflink\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#section-5.3\" name=\"section-5.3\">5.3<\/a>. Master file example<\/h3>\n<pre class=\"newpage\">\r\nThe following is an example file which might be used to define the\r\nISI.EDU zone.and is loaded with an origin of ISI.EDU:\r\n\r\n@   IN  SOA     VENERA      Action\\.domains (\r\n                                 20     ; SERIAL\r\n                                 7200   ; REFRESH\r\n                                 600    ; RETRY\r\n                                 3600000; EXPIRE\r\n                                 60)    ; MINIMUM\r\n\r\n        NS      A.ISI.EDU.\r\n        NS      VENERA\r\n        NS      VAXA\r\n        MX      10      VENERA\r\n        MX      20      VAXA\r\n\r\nA       A       26.3.0.103\r\n\r\nVENERA  A       10.1.0.52\r\n        A       128.9.0.32\r\n\r\nVAXA    A       10.2.0.27\r\n        A       128.9.0.33\r\n\r\n\r\n$INCLUDE &lt;SUBSYS&gt;ISI-MAILBOXES.TXT\r\n\r\nWhere the file &lt;SUBSYS&gt;ISI-MAILBOXES.TXT is:\r\n\r\n    MOE     MB      A.ISI.EDU.\r\n    LARRY   MB      A.ISI.EDU.\r\n    CURLEY  MB      A.ISI.EDU.\r\n    STOOGES MG      MOE\r\n            MG      LARRY\r\n            MG      CURLEY\r\n\r\nNote the use of the \\ character in the SOA RR to specify the responsible\r\nperson mailbox \"Action.domains@E.ISI.EDU\".\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n<span class=\"grey\">Mockapetris                                                    [Page 36]<\/span><\/pre>\n<hr class=\"noprint\" align=\"left\" \/>\n<pre class=\"newpage\"><a id=\"page-37\" class=\"invisible\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#page-37\" name=\"page-37\"> <\/a>\r\n<span class=\"grey\"><a href=\"https:\/\/tools.ietf.org\/html\/rfc1035\">RFC 1035<\/a>        Domain Implementation and Specification    November 1987<\/span>\r\n\r\n\r\n<\/pre>\n<h2><a class=\"selflink\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#section-6\" name=\"section-6\">6<\/a>. NAME SERVER IMPLEMENTATION<\/h2>\n<pre class=\"newpage\">\r\n<\/pre>\n<h3><a class=\"selflink\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#section-6.1\" name=\"section-6.1\">6.1<\/a>. Architecture<\/h3>\n<pre class=\"newpage\">\r\nThe optimal structure for the name server will depend on the host\r\noperating system and whether the name server is integrated with resolver\r\noperations, either by supporting recursive service, or by sharing its\r\ndatabase with a resolver.  This section discusses implementation\r\nconsiderations for a name server which shares a database with a\r\nresolver, but most of these concerns are present in any name server.\r\n\r\n<\/pre>\n<h4><a class=\"selflink\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#section-6.1.1\" name=\"section-6.1.1\">6.1.1<\/a>. Control<\/h4>\n<pre class=\"newpage\">\r\nA name server must employ multiple concurrent activities, whether they\r\nare implemented as separate tasks in the host's OS or multiplexing\r\ninside a single name server program.  It is simply not acceptable for a\r\nname server to block the service of UDP requests while it waits for TCP\r\ndata for refreshing or query activities.  Similarly, a name server\r\nshould not attempt to provide recursive service without processing such\r\nrequests in parallel, though it may choose to serialize requests from a\r\nsingle client, or to regard identical requests from the same client as\r\nduplicates.  A name server should not substantially delay requests while\r\nit reloads a zone from master files or while it incorporates a newly\r\nrefreshed zone into its database.\r\n\r\n<\/pre>\n<h4><a class=\"selflink\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#section-6.1.2\" name=\"section-6.1.2\">6.1.2<\/a>. Database<\/h4>\n<pre class=\"newpage\">\r\nWhile name server implementations are free to use any internal data\r\nstructures they choose, the suggested structure consists of three major\r\nparts:\r\n\r\n   - A \"catalog\" data structure which lists the zones available to\r\n     this server, and a \"pointer\" to the zone data structure.  The\r\n     main purpose of this structure is to find the nearest ancestor\r\n     zone, if any, for arriving standard queries.\r\n\r\n   - Separate data structures for each of the zones held by the\r\n     name server.\r\n\r\n   - A data structure for cached data. (or perhaps separate caches\r\n     for different classes)\r\n\r\nAll of these data structures can be implemented an identical tree\r\nstructure format, with different data chained off the nodes in different\r\nparts: in the catalog the data is pointers to zones, while in the zone\r\nand cache data structures, the data will be RRs.  In designing the tree\r\nframework the designer should recognize that query processing will need\r\nto traverse the tree using case-insensitive label comparisons; and that\r\n\r\n\r\n\r\n<span class=\"grey\">Mockapetris                                                    [Page 37]<\/span><\/pre>\n<hr class=\"noprint\" align=\"left\" \/>\n<pre class=\"newpage\"><a id=\"page-38\" class=\"invisible\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#page-38\" name=\"page-38\"> <\/a>\r\n<span class=\"grey\"><a href=\"https:\/\/tools.ietf.org\/html\/rfc1035\">RFC 1035<\/a>        Domain Implementation and Specification    November 1987<\/span>\r\n\r\n\r\nin real data, a few nodes have a very high branching factor (100-1000 or\r\nmore), but the vast majority have a very low branching factor (0-1).\r\n\r\nOne way to solve the case problem is to store the labels for each node\r\nin two pieces: a standardized-case representation of the label where all\r\nASCII characters are in a single case, together with a bit mask that\r\ndenotes which characters are actually of a different case.  The\r\nbranching factor diversity can be handled using a simple linked list for\r\na node until the branching factor exceeds some threshold, and\r\ntransitioning to a hash structure after the threshold is exceeded.  In\r\nany case, hash structures used to store tree sections must insure that\r\nhash functions and procedures preserve the casing conventions of the\r\nDNS.\r\n\r\nThe use of separate structures for the different parts of the database\r\nis motivated by several factors:\r\n\r\n   - The catalog structure can be an almost static structure that\r\n     need change only when the system administrator changes the\r\n     zones supported by the server.  This structure can also be\r\n     used to store parameters used to control refreshing\r\n     activities.\r\n\r\n   - The individual data structures for zones allow a zone to be\r\n     replaced simply by changing a pointer in the catalog.  Zone\r\n     refresh operations can build a new structure and, when\r\n     complete, splice it into the database via a simple pointer\r\n     replacement.  It is very important that when a zone is\r\n     refreshed, queries should not use old and new data\r\n     simultaneously.\r\n\r\n   - With the proper search procedures, authoritative data in zones\r\n     will always \"hide\", and hence take precedence over, cached\r\n     data.\r\n\r\n   - Errors in zone definitions that cause overlapping zones, etc.,\r\n     may cause erroneous responses to queries, but problem\r\n     determination is simplified, and the contents of one \"bad\"\r\n     zone can't corrupt another.\r\n\r\n   - Since the cache is most frequently updated, it is most\r\n     vulnerable to corruption during system restarts.  It can also\r\n     become full of expired RR data.  In either case, it can easily\r\n     be discarded without disturbing zone data.\r\n\r\nA major aspect of database design is selecting a structure which allows\r\nthe name server to deal with crashes of the name server's host.  State\r\ninformation which a name server should save across system crashes\r\n\r\n\r\n\r\n<span class=\"grey\">Mockapetris                                                    [Page 38]<\/span><\/pre>\n<hr class=\"noprint\" align=\"left\" \/>\n<pre class=\"newpage\"><a id=\"page-39\" class=\"invisible\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#page-39\" name=\"page-39\"> <\/a>\r\n<span class=\"grey\"><a href=\"https:\/\/tools.ietf.org\/html\/rfc1035\">RFC 1035<\/a>        Domain Implementation and Specification    November 1987<\/span>\r\n\r\n\r\nincludes the catalog structure (including the state of refreshing for\r\neach zone) and the zone data itself.\r\n\r\n<\/pre>\n<h4><a class=\"selflink\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#section-6.1.3\" name=\"section-6.1.3\">6.1.3<\/a>. Time<\/h4>\n<pre class=\"newpage\">\r\nBoth the TTL data for RRs and the timing data for refreshing activities\r\ndepends on 32 bit timers in units of seconds.  Inside the database,\r\nrefresh timers and TTLs for cached data conceptually \"count down\", while\r\ndata in the zone stays with constant TTLs.\r\n\r\nA recommended implementation strategy is to store time in two ways:  as\r\na relative increment and as an absolute time.  One way to do this is to\r\nuse positive 32 bit numbers for one type and negative numbers for the\r\nother.  The RRs in zones use relative times; the refresh timers and\r\ncache data use absolute times.  Absolute numbers are taken with respect\r\nto some known origin and converted to relative values when placed in the\r\nresponse to a query.  When an absolute TTL is negative after conversion\r\nto relative, then the data is expired and should be ignored.\r\n\r\n<\/pre>\n<h3><a class=\"selflink\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#section-6.2\" name=\"section-6.2\">6.2<\/a>. Standard query processing<\/h3>\n<pre class=\"newpage\">\r\nThe major algorithm for standard query processing is presented in\r\n[<a href=\"https:\/\/tools.ietf.org\/html\/rfc1034\">RFC-1034<\/a>].\r\n\r\nWhen processing queries with QCLASS=*, or some other QCLASS which\r\nmatches multiple classes, the response should never be authoritative\r\nunless the server can guarantee that the response covers all classes.\r\n\r\nWhen composing a response, RRs which are to be inserted in the\r\nadditional section, but duplicate RRs in the answer or authority\r\nsections, may be omitted from the additional section.\r\n\r\nWhen a response is so long that truncation is required, the truncation\r\nshould start at the end of the response and work forward in the\r\ndatagram.  Thus if there is any data for the authority section, the\r\nanswer section is guaranteed to be unique.\r\n\r\nThe MINIMUM value in the SOA should be used to set a floor on the TTL of\r\ndata distributed from a zone.  This floor function should be done when\r\nthe data is copied into a response.  This will allow future dynamic\r\nupdate protocols to change the SOA MINIMUM field without ambiguous\r\nsemantics.\r\n\r\n<\/pre>\n<h3><a class=\"selflink\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#section-6.3\" name=\"section-6.3\">6.3<\/a>. Zone refresh and reload processing<\/h3>\n<pre class=\"newpage\">\r\nIn spite of a server's best efforts, it may be unable to load zone data\r\nfrom a master file due to syntax errors, etc., or be unable to refresh a\r\nzone within the its expiration parameter.  In this case, the name server\r\n\r\n\r\n\r\n<span class=\"grey\">Mockapetris                                                    [Page 39]<\/span><\/pre>\n<hr class=\"noprint\" align=\"left\" \/>\n<pre class=\"newpage\"><a id=\"page-40\" class=\"invisible\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#page-40\" name=\"page-40\"> <\/a>\r\n<span class=\"grey\"><a href=\"https:\/\/tools.ietf.org\/html\/rfc1035\">RFC 1035<\/a>        Domain Implementation and Specification    November 1987<\/span>\r\n\r\n\r\nshould answer queries as if it were not supposed to possess the zone.\r\n\r\nIf a master is sending a zone out via AXFR, and a new version is created\r\nduring the transfer, the master should continue to send the old version\r\nif possible.  In any case, it should never send part of one version and\r\npart of another.  If completion is not possible, the master should reset\r\nthe connection on which the zone transfer is taking place.\r\n\r\n<\/pre>\n<h3><a class=\"selflink\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#section-6.4\" name=\"section-6.4\">6.4<\/a>. Inverse queries (Optional)<\/h3>\n<pre class=\"newpage\">\r\nInverse queries are an optional part of the DNS.  Name servers are not\r\nrequired to support any form of inverse queries.  If a name server\r\nreceives an inverse query that it does not support, it returns an error\r\nresponse with the \"Not Implemented\" error set in the header.  While\r\ninverse query support is optional, all name servers must be at least\r\nable to return the error response.\r\n\r\n<\/pre>\n<h4><a class=\"selflink\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#section-6.4.1\" name=\"section-6.4.1\">6.4.1<\/a>. The contents of inverse queries and responses<\/h4>\n<pre class=\"newpage\">        Inverse\r\nqueries reverse the mappings performed by standard query operations;\r\nwhile a standard query maps a domain name to a resource, an inverse\r\nquery maps a resource to a domain name.  For example, a standard query\r\nmight bind a domain name to a host address; the corresponding inverse\r\nquery binds the host address to a domain name.\r\n\r\nInverse queries take the form of a single RR in the answer section of\r\nthe message, with an empty question section.  The owner name of the\r\nquery RR and its TTL are not significant.  The response carries\r\nquestions in the question section which identify all names possessing\r\nthe query RR WHICH THE NAME SERVER KNOWS.  Since no name server knows\r\nabout all of the domain name space, the response can never be assumed to\r\nbe complete.  Thus inverse queries are primarily useful for database\r\nmanagement and debugging activities.  Inverse queries are NOT an\r\nacceptable method of mapping host addresses to host names; use the IN-\r\nADDR.ARPA domain instead.\r\n\r\nWhere possible, name servers should provide case-insensitive comparisons\r\nfor inverse queries.  Thus an inverse query asking for an MX RR of\r\n\"Venera.isi.edu\" should get the same response as a query for\r\n\"VENERA.ISI.EDU\"; an inverse query for HINFO RR \"IBM-PC UNIX\" should\r\nproduce the same result as an inverse query for \"IBM-pc unix\".  However,\r\nthis cannot be guaranteed because name servers may possess RRs that\r\ncontain character strings but the name server does not know that the\r\ndata is character.\r\n\r\nWhen a name server processes an inverse query, it either returns:\r\n\r\n   1. zero, one, or multiple domain names for the specified\r\n      resource as QNAMEs in the question section\r\n\r\n\r\n\r\n<span class=\"grey\">Mockapetris                                                    [Page 40]<\/span><\/pre>\n<hr class=\"noprint\" align=\"left\" \/>\n<pre class=\"newpage\"><a id=\"page-41\" class=\"invisible\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#page-41\" name=\"page-41\"> <\/a>\r\n<span class=\"grey\"><a href=\"https:\/\/tools.ietf.org\/html\/rfc1035\">RFC 1035<\/a>        Domain Implementation and Specification    November 1987<\/span>\r\n\r\n\r\n   2. an error code indicating that the name server doesn't support\r\n      inverse mapping of the specified resource type.\r\n\r\nWhen the response to an inverse query contains one or more QNAMEs, the\r\nowner name and TTL of the RR in the answer section which defines the\r\ninverse query is modified to exactly match an RR found at the first\r\nQNAME.\r\n\r\nRRs returned in the inverse queries cannot be cached using the same\r\nmechanism as is used for the replies to standard queries.  One reason\r\nfor this is that a name might have multiple RRs of the same type, and\r\nonly one would appear.  For example, an inverse query for a single\r\naddress of a multiply homed host might create the impression that only\r\none address existed.\r\n\r\n<\/pre>\n<h4><a class=\"selflink\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#section-6.4.2\" name=\"section-6.4.2\">6.4.2<\/a>. Inverse query and response example<\/h4>\n<pre class=\"newpage\">        The overall structure\r\nof an inverse query for retrieving the domain name that corresponds to\r\nInternet address 10.1.0.52 is shown below:\r\n\r\n                         +-----------------------------------------+\r\n           Header        |          OPCODE=IQUERY, ID=997          |\r\n                         +-----------------------------------------+\r\n          Question       |                 &lt;empty&gt;                 |\r\n                         +-----------------------------------------+\r\n           Answer        |        &lt;anyname&gt; A IN 10.1.0.52         |\r\n                         +-----------------------------------------+\r\n          Authority      |                 &lt;empty&gt;                 |\r\n                         +-----------------------------------------+\r\n         Additional      |                 &lt;empty&gt;                 |\r\n                         +-----------------------------------------+\r\n\r\nThis query asks for a question whose answer is the Internet style\r\naddress 10.1.0.52.  Since the owner name is not known, any domain name\r\ncan be used as a placeholder (and is ignored).  A single octet of zero,\r\nsignifying the root, is usually used because it minimizes the length of\r\nthe message.  The TTL of the RR is not significant.  The response to\r\nthis query might be:\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n<span class=\"grey\">Mockapetris                                                    [Page 41]<\/span><\/pre>\n<hr class=\"noprint\" align=\"left\" \/>\n<pre class=\"newpage\"><a id=\"page-42\" class=\"invisible\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#page-42\" name=\"page-42\"> <\/a>\r\n<span class=\"grey\"><a href=\"https:\/\/tools.ietf.org\/html\/rfc1035\">RFC 1035<\/a>        Domain Implementation and Specification    November 1987<\/span>\r\n\r\n\r\n                         +-----------------------------------------+\r\n           Header        |         OPCODE=RESPONSE, ID=997         |\r\n                         +-----------------------------------------+\r\n          Question       |QTYPE=A, QCLASS=IN, QNAME=VENERA.ISI.EDU |\r\n                         +-----------------------------------------+\r\n           Answer        |  VENERA.ISI.EDU  A IN 10.1.0.52         |\r\n                         +-----------------------------------------+\r\n          Authority      |                 &lt;empty&gt;                 |\r\n                         +-----------------------------------------+\r\n         Additional      |                 &lt;empty&gt;                 |\r\n                         +-----------------------------------------+\r\n\r\nNote that the QTYPE in a response to an inverse query is the same as the\r\nTYPE field in the answer section of the inverse query.  Responses to\r\ninverse queries may contain multiple questions when the inverse is not\r\nunique.  If the question section in the response is not empty, then the\r\nRR in the answer section is modified to correspond to be an exact copy\r\nof an RR at the first QNAME.\r\n\r\n<\/pre>\n<h4><a class=\"selflink\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#section-6.4.3\" name=\"section-6.4.3\">6.4.3<\/a>. Inverse query processing<\/h4>\n<pre class=\"newpage\">\r\nName servers that support inverse queries can support these operations\r\nthrough exhaustive searches of their databases, but this becomes\r\nimpractical as the size of the database increases.  An alternative\r\napproach is to invert the database according to the search key.\r\n\r\nFor name servers that support multiple zones and a large amount of data,\r\nthe recommended approach is separate inversions for each zone.  When a\r\nparticular zone is changed during a refresh, only its inversions need to\r\nbe redone.\r\n\r\nSupport for transfer of this type of inversion may be included in future\r\nversions of the domain system, but is not supported in this version.\r\n\r\n<\/pre>\n<h3><a class=\"selflink\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#section-6.5\" name=\"section-6.5\">6.5<\/a>. Completion queries and responses<\/h3>\n<pre class=\"newpage\">\r\nThe optional completion services described in <a href=\"https:\/\/tools.ietf.org\/html\/rfc882\">RFC-882<\/a> and <a href=\"https:\/\/tools.ietf.org\/html\/rfc883\">RFC-883<\/a> have\r\nbeen deleted.  Redesigned services may become available in the future.\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n<span class=\"grey\">Mockapetris                                                    [Page 42]<\/span><\/pre>\n<hr class=\"noprint\" align=\"left\" \/>\n<pre class=\"newpage\"><a id=\"page-43\" class=\"invisible\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#page-43\" name=\"page-43\"> <\/a>\r\n<span class=\"grey\"><a href=\"https:\/\/tools.ietf.org\/html\/rfc1035\">RFC 1035<\/a>        Domain Implementation and Specification    November 1987<\/span>\r\n\r\n\r\n<\/pre>\n<h2><a class=\"selflink\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#section-7\" name=\"section-7\">7<\/a>. RESOLVER IMPLEMENTATION<\/h2>\n<pre class=\"newpage\">\r\nThe top levels of the recommended resolver algorithm are discussed in\r\n[<a href=\"https:\/\/tools.ietf.org\/html\/rfc1034\">RFC-1034<\/a>].  This section discusses implementation details assuming the\r\ndatabase structure suggested in the name server implementation section\r\nof this memo.\r\n\r\n<\/pre>\n<h3><a class=\"selflink\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#section-7.1\" name=\"section-7.1\">7.1<\/a>. Transforming a user request into a query<\/h3>\n<pre class=\"newpage\">\r\nThe first step a resolver takes is to transform the client's request,\r\nstated in a format suitable to the local OS, into a search specification\r\nfor RRs at a specific name which match a specific QTYPE and QCLASS.\r\nWhere possible, the QTYPE and QCLASS should correspond to a single type\r\nand a single class, because this makes the use of cached data much\r\nsimpler.  The reason for this is that the presence of data of one type\r\nin a cache doesn't confirm the existence or non-existence of data of\r\nother types, hence the only way to be sure is to consult an\r\nauthoritative source.  If QCLASS=* is used, then authoritative answers\r\nwon't be available.\r\n\r\nSince a resolver must be able to multiplex multiple requests if it is to\r\nperform its function efficiently, each pending request is usually\r\nrepresented in some block of state information.  This state block will\r\ntypically contain:\r\n\r\n   - A timestamp indicating the time the request began.\r\n     The timestamp is used to decide whether RRs in the database\r\n     can be used or are out of date.  This timestamp uses the\r\n     absolute time format previously discussed for RR storage in\r\n     zones and caches.  Note that when an RRs TTL indicates a\r\n     relative time, the RR must be timely, since it is part of a\r\n     zone.  When the RR has an absolute time, it is part of a\r\n     cache, and the TTL of the RR is compared against the timestamp\r\n     for the start of the request.\r\n\r\n     Note that using the timestamp is superior to using a current\r\n     time, since it allows RRs with TTLs of zero to be entered in\r\n     the cache in the usual manner, but still used by the current\r\n     request, even after intervals of many seconds due to system\r\n     load, query retransmission timeouts, etc.\r\n\r\n   - Some sort of parameters to limit the amount of work which will\r\n     be performed for this request.\r\n\r\n     The amount of work which a resolver will do in response to a\r\n     client request must be limited to guard against errors in the\r\n     database, such as circular CNAME references, and operational\r\n     problems, such as network partition which prevents the\r\n\r\n\r\n\r\n<span class=\"grey\">Mockapetris                                                    [Page 43]<\/span><\/pre>\n<hr class=\"noprint\" align=\"left\" \/>\n<pre class=\"newpage\"><a id=\"page-44\" class=\"invisible\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#page-44\" name=\"page-44\"> <\/a>\r\n<span class=\"grey\"><a href=\"https:\/\/tools.ietf.org\/html\/rfc1035\">RFC 1035<\/a>        Domain Implementation and Specification    November 1987<\/span>\r\n\r\n\r\n     resolver from accessing the name servers it needs.  While\r\n     local limits on the number of times a resolver will retransmit\r\n     a particular query to a particular name server address are\r\n     essential, the resolver should have a global per-request\r\n     counter to limit work on a single request.  The counter should\r\n     be set to some initial value and decremented whenever the\r\n     resolver performs any action (retransmission timeout,\r\n     retransmission, etc.)  If the counter passes zero, the request\r\n     is terminated with a temporary error.\r\n\r\n     Note that if the resolver structure allows one request to\r\n     start others in parallel, such as when the need to access a\r\n     name server for one request causes a parallel resolve for the\r\n     name server's addresses, the spawned request should be started\r\n     with a lower counter.  This prevents circular references in\r\n     the database from starting a chain reaction of resolver\r\n     activity.\r\n\r\n   - The SLIST data structure discussed in [<a href=\"https:\/\/tools.ietf.org\/html\/rfc1034\">RFC-1034<\/a>].\r\n\r\n     This structure keeps track of the state of a request if it\r\n     must wait for answers from foreign name servers.\r\n\r\n<\/pre>\n<h3><a class=\"selflink\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#section-7.2\" name=\"section-7.2\">7.2<\/a>. Sending the queries<\/h3>\n<pre class=\"newpage\">\r\nAs described in [<a href=\"https:\/\/tools.ietf.org\/html\/rfc1034\">RFC-1034<\/a>], the basic task of the resolver is to\r\nformulate a query which will answer the client's request and direct that\r\nquery to name servers which can provide the information.  The resolver\r\nwill usually only have very strong hints about which servers to ask, in\r\nthe form of NS RRs, and may have to revise the query, in response to\r\nCNAMEs, or revise the set of name servers the resolver is asking, in\r\nresponse to delegation responses which point the resolver to name\r\nservers closer to the desired information.  In addition to the\r\ninformation requested by the client, the resolver may have to call upon\r\nits own services to determine the address of name servers it wishes to\r\ncontact.\r\n\r\nIn any case, the model used in this memo assumes that the resolver is\r\nmultiplexing attention between multiple requests, some from the client,\r\nand some internally generated.  Each request is represented by some\r\nstate information, and the desired behavior is that the resolver\r\ntransmit queries to name servers in a way that maximizes the probability\r\nthat the request is answered, minimizes the time that the request takes,\r\nand avoids excessive transmissions.  The key algorithm uses the state\r\ninformation of the request to select the next name server address to\r\nquery, and also computes a timeout which will cause the next action\r\nshould a response not arrive.  The next action will usually be a\r\ntransmission to some other server, but may be a temporary error to the\r\n\r\n\r\n\r\n<span class=\"grey\">Mockapetris                                                    [Page 44]<\/span><\/pre>\n<hr class=\"noprint\" align=\"left\" \/>\n<pre class=\"newpage\"><a id=\"page-45\" class=\"invisible\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#page-45\" name=\"page-45\"> <\/a>\r\n<span class=\"grey\"><a href=\"https:\/\/tools.ietf.org\/html\/rfc1035\">RFC 1035<\/a>        Domain Implementation and Specification    November 1987<\/span>\r\n\r\n\r\nclient.\r\n\r\nThe resolver always starts with a list of server names to query (SLIST).\r\nThis list will be all NS RRs which correspond to the nearest ancestor\r\nzone that the resolver knows about.  To avoid startup problems, the\r\nresolver should have a set of default servers which it will ask should\r\nit have no current NS RRs which are appropriate.  The resolver then adds\r\nto SLIST all of the known addresses for the name servers, and may start\r\nparallel requests to acquire the addresses of the servers when the\r\nresolver has the name, but no addresses, for the name servers.\r\n\r\nTo complete initialization of SLIST, the resolver attaches whatever\r\nhistory information it has to the each address in SLIST.  This will\r\nusually consist of some sort of weighted averages for the response time\r\nof the address, and the batting average of the address (i.e., how often\r\nthe address responded at all to the request).  Note that this\r\ninformation should be kept on a per address basis, rather than on a per\r\nname server basis, because the response time and batting average of a\r\nparticular server may vary considerably from address to address.  Note\r\nalso that this information is actually specific to a resolver address \/\r\nserver address pair, so a resolver with multiple addresses may wish to\r\nkeep separate histories for each of its addresses.  Part of this step\r\nmust deal with addresses which have no such history; in this case an\r\nexpected round trip time of 5-10 seconds should be the worst case, with\r\nlower estimates for the same local network, etc.\r\n\r\nNote that whenever a delegation is followed, the resolver algorithm\r\nreinitializes SLIST.\r\n\r\nThe information establishes a partial ranking of the available name\r\nserver addresses.  Each time an address is chosen and the state should\r\nbe altered to prevent its selection again until all other addresses have\r\nbeen tried.  The timeout for each transmission should be 50-100% greater\r\nthan the average predicted value to allow for variance in response.\r\n\r\nSome fine points:\r\n\r\n   - The resolver may encounter a situation where no addresses are\r\n     available for any of the name servers named in SLIST, and\r\n     where the servers in the list are precisely those which would\r\n     normally be used to look up their own addresses.  This\r\n     situation typically occurs when the glue address RRs have a\r\n     smaller TTL than the NS RRs marking delegation, or when the\r\n     resolver caches the result of a NS search.  The resolver\r\n     should detect this condition and restart the search at the\r\n     next ancestor zone, or alternatively at the root.\r\n\r\n\r\n\r\n\r\n\r\n<span class=\"grey\">Mockapetris                                                    [Page 45]<\/span><\/pre>\n<hr class=\"noprint\" align=\"left\" \/>\n<pre class=\"newpage\"><a id=\"page-46\" class=\"invisible\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#page-46\" name=\"page-46\"> <\/a>\r\n<span class=\"grey\"><a href=\"https:\/\/tools.ietf.org\/html\/rfc1035\">RFC 1035<\/a>        Domain Implementation and Specification    November 1987<\/span>\r\n\r\n\r\n   - If a resolver gets a server error or other bizarre response\r\n     from a name server, it should remove it from SLIST, and may\r\n     wish to schedule an immediate transmission to the next\r\n     candidate server address.\r\n\r\n<\/pre>\n<h3><a class=\"selflink\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#section-7.3\" name=\"section-7.3\">7.3<\/a>. Processing responses<\/h3>\n<pre class=\"newpage\">\r\nThe first step in processing arriving response datagrams is to parse the\r\nresponse.  This procedure should include:\r\n\r\n   - Check the header for reasonableness.  Discard datagrams which\r\n     are queries when responses are expected.\r\n\r\n   - Parse the sections of the message, and insure that all RRs are\r\n     correctly formatted.\r\n\r\n   - As an optional step, check the TTLs of arriving data looking\r\n     for RRs with excessively long TTLs.  If a RR has an\r\n     excessively long TTL, say greater than 1 week, either discard\r\n     the whole response, or limit all TTLs in the response to 1\r\n     week.\r\n\r\nThe next step is to match the response to a current resolver request.\r\nThe recommended strategy is to do a preliminary matching using the ID\r\nfield in the domain header, and then to verify that the question section\r\ncorresponds to the information currently desired.  This requires that\r\nthe transmission algorithm devote several bits of the domain ID field to\r\na request identifier of some sort.  This step has several fine points:\r\n\r\n   - Some name servers send their responses from different\r\n     addresses than the one used to receive the query.  That is, a\r\n     resolver cannot rely that a response will come from the same\r\n     address which it sent the corresponding query to.  This name\r\n     server bug is typically encountered in UNIX systems.\r\n\r\n   - If the resolver retransmits a particular request to a name\r\n     server it should be able to use a response from any of the\r\n     transmissions.  However, if it is using the response to sample\r\n     the round trip time to access the name server, it must be able\r\n     to determine which transmission matches the response (and keep\r\n     transmission times for each outgoing message), or only\r\n     calculate round trip times based on initial transmissions.\r\n\r\n   - A name server will occasionally not have a current copy of a\r\n     zone which it should have according to some NS RRs.  The\r\n     resolver should simply remove the name server from the current\r\n     SLIST, and continue.\r\n\r\n\r\n\r\n\r\n<span class=\"grey\">Mockapetris                                                    [Page 46]<\/span><\/pre>\n<hr class=\"noprint\" align=\"left\" \/>\n<pre class=\"newpage\"><a id=\"page-47\" class=\"invisible\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#page-47\" name=\"page-47\"> <\/a>\r\n<span class=\"grey\"><a href=\"https:\/\/tools.ietf.org\/html\/rfc1035\">RFC 1035<\/a>        Domain Implementation and Specification    November 1987<\/span>\r\n\r\n\r\n<\/pre>\n<h3><a class=\"selflink\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#section-7.4\" name=\"section-7.4\">7.4<\/a>. Using the cache<\/h3>\n<pre class=\"newpage\">\r\nIn general, we expect a resolver to cache all data which it receives in\r\nresponses since it may be useful in answering future client requests.\r\nHowever, there are several types of data which should not be cached:\r\n\r\n   - When several RRs of the same type are available for a\r\n     particular owner name, the resolver should either cache them\r\n     all or none at all.  When a response is truncated, and a\r\n     resolver doesn't know whether it has a complete set, it should\r\n     not cache a possibly partial set of RRs.\r\n\r\n   - Cached data should never be used in preference to\r\n     authoritative data, so if caching would cause this to happen\r\n     the data should not be cached.\r\n\r\n   - The results of an inverse query should not be cached.\r\n\r\n   - The results of standard queries where the QNAME contains \"*\"\r\n     labels if the data might be used to construct wildcards.  The\r\n     reason is that the cache does not necessarily contain existing\r\n     RRs or zone boundary information which is necessary to\r\n     restrict the application of the wildcard RRs.\r\n\r\n   - RR data in responses of dubious reliability.  When a resolver\r\n     receives unsolicited responses or RR data other than that\r\n     requested, it should discard it without caching it.  The basic\r\n     implication is that all sanity checks on a packet should be\r\n     performed before any of it is cached.\r\n\r\nIn a similar vein, when a resolver has a set of RRs for some name in a\r\nresponse, and wants to cache the RRs, it should check its cache for\r\nalready existing RRs.  Depending on the circumstances, either the data\r\nin the response or the cache is preferred, but the two should never be\r\ncombined.  If the data in the response is from authoritative data in the\r\nanswer section, it is always preferred.\r\n\r\n<\/pre>\n<h2><a class=\"selflink\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#section-8\" name=\"section-8\">8<\/a>. MAIL SUPPORT<\/h2>\n<pre class=\"newpage\">\r\nThe domain system defines a standard for mapping mailboxes into domain\r\nnames, and two methods for using the mailbox information to derive mail\r\nrouting information.  The first method is called mail exchange binding\r\nand the other method is mailbox binding.  The mailbox encoding standard\r\nand mail exchange binding are part of the DNS official protocol, and are\r\nthe recommended method for mail routing in the Internet.  Mailbox\r\nbinding is an experimental feature which is still under development and\r\nsubject to change.\r\n\r\n\r\n\r\n\r\n<span class=\"grey\">Mockapetris                                                    [Page 47]<\/span><\/pre>\n<hr class=\"noprint\" align=\"left\" \/>\n<pre class=\"newpage\"><a id=\"page-48\" class=\"invisible\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#page-48\" name=\"page-48\"> <\/a>\r\n<span class=\"grey\"><a href=\"https:\/\/tools.ietf.org\/html\/rfc1035\">RFC 1035<\/a>        Domain Implementation and Specification    November 1987<\/span>\r\n\r\n\r\nThe mailbox encoding standard assumes a mailbox name of the form\r\n\"&lt;local-part&gt;@&lt;mail-domain&gt;\".  While the syntax allowed in each of these\r\nsections varies substantially between the various mail internets, the\r\npreferred syntax for the ARPA Internet is given in [<a href=\"https:\/\/tools.ietf.org\/html\/rfc822\">RFC-822<\/a>].\r\n\r\nThe DNS encodes the &lt;local-part&gt; as a single label, and encodes the\r\n&lt;mail-domain&gt; as a domain name.  The single label from the &lt;local-part&gt;\r\nis prefaced to the domain name from &lt;mail-domain&gt; to form the domain\r\nname corresponding to the mailbox.  Thus the mailbox HOSTMASTER@SRI-\r\nNIC.ARPA is mapped into the domain name HOSTMASTER.SRI-NIC.ARPA.  If the\r\n&lt;local-part&gt; contains dots or other special characters, its\r\nrepresentation in a master file will require the use of backslash\r\nquoting to ensure that the domain name is properly encoded.  For\r\nexample, the mailbox Action.domains@ISI.EDU would be represented as\r\nAction\\.domains.ISI.EDU.\r\n\r\n<\/pre>\n<h3><a class=\"selflink\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#section-8.1\" name=\"section-8.1\">8.1<\/a>. Mail exchange binding<\/h3>\n<pre class=\"newpage\">\r\nMail exchange binding uses the &lt;mail-domain&gt; part of a mailbox\r\nspecification to determine where mail should be sent.  The &lt;local-part&gt;\r\nis not even consulted.  [<a title=\"&quot;Mail routing and the domain system&quot;\" href=\"https:\/\/tools.ietf.org\/html\/rfc974\">RFC-974<\/a>] specifies this method in detail, and\r\nshould be consulted before attempting to use mail exchange support.\r\n\r\nOne of the advantages of this method is that it decouples mail\r\ndestination naming from the hosts used to support mail service, at the\r\ncost of another layer of indirection in the lookup function.  However,\r\nthe addition layer should eliminate the need for complicated \"%\", \"!\",\r\netc encodings in &lt;local-part&gt;.\r\n\r\nThe essence of the method is that the &lt;mail-domain&gt; is used as a domain\r\nname to locate type MX RRs which list hosts willing to accept mail for\r\n&lt;mail-domain&gt;, together with preference values which rank the hosts\r\naccording to an order specified by the administrators for &lt;mail-domain&gt;.\r\n\r\nIn this memo, the &lt;mail-domain&gt; ISI.EDU is used in examples, together\r\nwith the hosts VENERA.ISI.EDU and VAXA.ISI.EDU as mail exchanges for\r\nISI.EDU.  If a mailer had a message for Mockapetris@ISI.EDU, it would\r\nroute it by looking up MX RRs for ISI.EDU.  The MX RRs at ISI.EDU name\r\nVENERA.ISI.EDU and VAXA.ISI.EDU, and type A queries can find the host\r\naddresses.\r\n\r\n<\/pre>\n<h3><a class=\"selflink\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#section-8.2\" name=\"section-8.2\">8.2<\/a>. Mailbox binding (Experimental)<\/h3>\n<pre class=\"newpage\">\r\nIn mailbox binding, the mailer uses the entire mail destination\r\nspecification to construct a domain name.  The encoded domain name for\r\nthe mailbox is used as the QNAME field in a QTYPE=MAILB query.\r\n\r\nSeveral outcomes are possible for this query:\r\n\r\n\r\n\r\n<span class=\"grey\">Mockapetris                                                    [Page 48]<\/span><\/pre>\n<hr class=\"noprint\" align=\"left\" \/>\n<pre class=\"newpage\"><a id=\"page-49\" class=\"invisible\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#page-49\" name=\"page-49\"> <\/a>\r\n<span class=\"grey\"><a href=\"https:\/\/tools.ietf.org\/html\/rfc1035\">RFC 1035<\/a>        Domain Implementation and Specification    November 1987<\/span>\r\n\r\n\r\n   1. The query can return a name error indicating that the mailbox\r\n      does not exist as a domain name.\r\n\r\n      In the long term, this would indicate that the specified\r\n      mailbox doesn't exist.  However, until the use of mailbox\r\n      binding is universal, this error condition should be\r\n      interpreted to mean that the organization identified by the\r\n      global part does not support mailbox binding.  The\r\n      appropriate procedure is to revert to exchange binding at\r\n      this point.\r\n\r\n   2. The query can return a Mail Rename (MR) RR.\r\n\r\n      The MR RR carries new mailbox specification in its RDATA\r\n      field.  The mailer should replace the old mailbox with the\r\n      new one and retry the operation.\r\n\r\n   3. The query can return a MB RR.\r\n\r\n      The MB RR carries a domain name for a host in its RDATA\r\n      field.  The mailer should deliver the message to that host\r\n      via whatever protocol is applicable, e.g., b,SMTP.\r\n\r\n   4. The query can return one or more Mail Group (MG) RRs.\r\n\r\n      This condition means that the mailbox was actually a mailing\r\n      list or mail group, rather than a single mailbox.  Each MG RR\r\n      has a RDATA field that identifies a mailbox that is a member\r\n      of the group.  The mailer should deliver a copy of the\r\n      message to each member.\r\n\r\n   5. The query can return a MB RR as well as one or more MG RRs.\r\n\r\n      This condition means the the mailbox was actually a mailing\r\n      list.  The mailer can either deliver the message to the host\r\n      specified by the MB RR, which will in turn do the delivery to\r\n      all members, or the mailer can use the MG RRs to do the\r\n      expansion itself.\r\n\r\nIn any of these cases, the response may include a Mail Information\r\n(MINFO) RR.  This RR is usually associated with a mail group, but is\r\nlegal with a MB.  The MINFO RR identifies two mailboxes.  One of these\r\nidentifies a responsible person for the original mailbox name.  This\r\nmailbox should be used for requests to be added to a mail group, etc.\r\nThe second mailbox name in the MINFO RR identifies a mailbox that should\r\nreceive error messages for mail failures.  This is particularly\r\nappropriate for mailing lists when errors in member names should be\r\nreported to a person other than the one who sends a message to the list.\r\n\r\n\r\n\r\n<span class=\"grey\">Mockapetris                                                    [Page 49]<\/span><\/pre>\n<hr class=\"noprint\" align=\"left\" \/>\n<pre class=\"newpage\"><a id=\"page-50\" class=\"invisible\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#page-50\" name=\"page-50\"> <\/a>\r\n<span class=\"grey\"><a href=\"https:\/\/tools.ietf.org\/html\/rfc1035\">RFC 1035<\/a>        Domain Implementation and Specification    November 1987<\/span>\r\n\r\n\r\nNew fields may be added to this RR in the future.\r\n\r\n\r\n<\/pre>\n<h2><a class=\"selflink\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#section-9\" name=\"section-9\">9<\/a>. REFERENCES and BIBLIOGRAPHY<\/h2>\n<pre class=\"newpage\">\r\n[Dyer 87]       S. Dyer, F. Hsu, \"Hesiod\", Project Athena\r\n                Technical Plan - Name Service, April 1987, version 1.9.\r\n\r\n                Describes the fundamentals of the Hesiod name service.\r\n\r\n[<a id=\"ref-IEN-116\" name=\"ref-IEN-116\"><\/a>IEN-116]       J. Postel, \"Internet Name Server\", IEN-116,\r\n                USC\/Information Sciences Institute, August 1979.\r\n\r\n                A name service obsoleted by the Domain Name System, but\r\n                still in use.\r\n\r\n[Quarterman 86] J. Quarterman, and J. Hoskins, \"Notable Computer Networks\",\r\n                Communications of the ACM, October 1986, volume 29, number\r\n                10.\r\n\r\n[<a id=\"ref-RFC-742\" name=\"ref-RFC-742\"><\/a>RFC-742]       K. Harrenstien, \"NAME\/FINGER\", <a href=\"https:\/\/tools.ietf.org\/html\/rfc742\">RFC-742<\/a>, Network\r\n                Information Center, SRI International, December 1977.\r\n\r\n[<a id=\"ref-RFC-768\" name=\"ref-RFC-768\"><\/a>RFC-768]       J. Postel, \"User Datagram Protocol\", <a href=\"https:\/\/tools.ietf.org\/html\/rfc768\">RFC-768<\/a>,\r\n                USC\/Information Sciences Institute, August 1980.\r\n\r\n[<a id=\"ref-RFC-793\" name=\"ref-RFC-793\"><\/a>RFC-793]       J. Postel, \"Transmission Control Protocol\", <a href=\"https:\/\/tools.ietf.org\/html\/rfc793\">RFC-793<\/a>,\r\n                USC\/Information Sciences Institute, September 1981.\r\n\r\n[<a id=\"ref-RFC-799\" name=\"ref-RFC-799\"><\/a>RFC-799]       D. Mills, \"Internet Name Domains\", <a href=\"https:\/\/tools.ietf.org\/html\/rfc799\">RFC-799<\/a>, COMSAT,\r\n                September 1981.\r\n\r\n                Suggests introduction of a hierarchy in place of a flat\r\n                name space for the Internet.\r\n\r\n[<a id=\"ref-RFC-805\" name=\"ref-RFC-805\"><\/a>RFC-805]       J. Postel, \"Computer Mail Meeting Notes\", <a href=\"https:\/\/tools.ietf.org\/html\/rfc805\">RFC-805<\/a>,\r\n                USC\/Information Sciences Institute, February 1982.\r\n\r\n[<a id=\"ref-RFC-810\" name=\"ref-RFC-810\"><\/a>RFC-810]       E. Feinler, K. Harrenstien, Z. Su, and V. White, \"DOD\r\n                Internet Host Table Specification\", <a href=\"https:\/\/tools.ietf.org\/html\/rfc810\">RFC-810<\/a>, Network\r\n                Information Center, SRI International, March 1982.\r\n\r\n                Obsolete.  See <a href=\"https:\/\/tools.ietf.org\/html\/rfc952\">RFC-952<\/a>.\r\n\r\n[<a id=\"ref-RFC-811\" name=\"ref-RFC-811\"><\/a>RFC-811]       K. Harrenstien, V. White, and E. Feinler, \"Hostnames\r\n                Server\", <a href=\"https:\/\/tools.ietf.org\/html\/rfc811\">RFC-811<\/a>, Network Information Center, SRI\r\n                International, March 1982.\r\n\r\n\r\n\r\n\r\n<span class=\"grey\">Mockapetris                                                    [Page 50]<\/span><\/pre>\n<hr class=\"noprint\" align=\"left\" \/>\n<pre class=\"newpage\"><a id=\"page-51\" class=\"invisible\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#page-51\" name=\"page-51\"> <\/a>\r\n<span class=\"grey\"><a href=\"https:\/\/tools.ietf.org\/html\/rfc1035\">RFC 1035<\/a>        Domain Implementation and Specification    November 1987<\/span>\r\n\r\n\r\n                Obsolete.  See <a href=\"https:\/\/tools.ietf.org\/html\/rfc953\">RFC-953<\/a>.\r\n\r\n[<a id=\"ref-RFC-812\" name=\"ref-RFC-812\"><\/a>RFC-812]       K. Harrenstien, and V. White, \"NICNAME\/WHOIS\", <a href=\"https:\/\/tools.ietf.org\/html\/rfc812\">RFC-812<\/a>,\r\n                Network Information Center, SRI International, March\r\n                1982.\r\n\r\n[<a id=\"ref-RFC-819\" name=\"ref-RFC-819\"><\/a>RFC-819]       Z. Su, and J. Postel, \"The Domain Naming Convention for\r\n                Internet User Applications\", <a href=\"https:\/\/tools.ietf.org\/html\/rfc819\">RFC-819<\/a>, Network\r\n                Information Center, SRI International, August 1982.\r\n\r\n                Early thoughts on the design of the domain system.\r\n                Current implementation is completely different.\r\n\r\n[<a id=\"ref-RFC-821\" name=\"ref-RFC-821\"><\/a>RFC-821]       J. Postel, \"Simple Mail Transfer Protocol\", <a href=\"https:\/\/tools.ietf.org\/html\/rfc821\">RFC-821<\/a>,\r\n                USC\/Information Sciences Institute, August 1980.\r\n\r\n[<a id=\"ref-RFC-830\" name=\"ref-RFC-830\"><\/a>RFC-830]       Z. Su, \"A Distributed System for Internet Name Service\",\r\n                <a href=\"https:\/\/tools.ietf.org\/html\/rfc830\">RFC-830<\/a>, Network Information Center, SRI International,\r\n                October 1982.\r\n\r\n                Early thoughts on the design of the domain system.\r\n                Current implementation is completely different.\r\n\r\n[<a id=\"ref-RFC-882\" name=\"ref-RFC-882\"><\/a>RFC-882]       P. Mockapetris, \"Domain names - Concepts and\r\n                Facilities,\" <a href=\"https:\/\/tools.ietf.org\/html\/rfc882\">RFC-882<\/a>, USC\/Information Sciences\r\n                Institute, November 1983.\r\n\r\n                Superceeded by this memo.\r\n\r\n[<a id=\"ref-RFC-883\" name=\"ref-RFC-883\"><\/a>RFC-883]       P. Mockapetris, \"Domain names - Implementation and\r\n                Specification,\" <a href=\"https:\/\/tools.ietf.org\/html\/rfc883\">RFC-883<\/a>, USC\/Information Sciences\r\n                Institute, November 1983.\r\n\r\n                Superceeded by this memo.\r\n\r\n[<a id=\"ref-RFC-920\" name=\"ref-RFC-920\"><\/a>RFC-920]       J. Postel and J. Reynolds, \"Domain Requirements\",\r\n                <a href=\"https:\/\/tools.ietf.org\/html\/rfc920\">RFC-920<\/a>, USC\/Information Sciences Institute,\r\n                October 1984.\r\n\r\n                Explains the naming scheme for top level domains.\r\n\r\n[<a id=\"ref-RFC-952\" name=\"ref-RFC-952\"><\/a>RFC-952]       K. Harrenstien, M. Stahl, E. Feinler, \"DoD Internet Host\r\n                Table Specification\", <a href=\"https:\/\/tools.ietf.org\/html\/rfc952\">RFC-952<\/a>, SRI, October 1985.\r\n\r\n                Specifies the format of HOSTS.TXT, the host\/address\r\n                table replaced by the DNS.\r\n\r\n\r\n\r\n\r\n\r\n<span class=\"grey\">Mockapetris                                                    [Page 51]<\/span><\/pre>\n<hr class=\"noprint\" align=\"left\" \/>\n<pre class=\"newpage\"><a id=\"page-52\" class=\"invisible\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#page-52\" name=\"page-52\"> <\/a>\r\n<span class=\"grey\"><a href=\"https:\/\/tools.ietf.org\/html\/rfc1035\">RFC 1035<\/a>        Domain Implementation and Specification    November 1987<\/span>\r\n\r\n\r\n[<a id=\"ref-RFC-953\" name=\"ref-RFC-953\"><\/a>RFC-953]       K. Harrenstien, M. Stahl, E. Feinler, \"HOSTNAME Server\",\r\n                <a href=\"https:\/\/tools.ietf.org\/html\/rfc953\">RFC-953<\/a>, SRI, October 1985.\r\n\r\n                This RFC contains the official specification of the\r\n                hostname server protocol, which is obsoleted by the DNS.\r\n                This TCP based protocol accesses information stored in\r\n                the <a href=\"https:\/\/tools.ietf.org\/html\/rfc952\">RFC-952<\/a> format, and is used to obtain copies of the\r\n                host table.\r\n\r\n[<a id=\"ref-RFC-973\" name=\"ref-RFC-973\"><\/a>RFC-973]       P. Mockapetris, \"Domain System Changes and\r\n                Observations\", <a href=\"https:\/\/tools.ietf.org\/html\/rfc973\">RFC-973<\/a>, USC\/Information Sciences\r\n                Institute, January 1986.\r\n\r\n                Describes changes to <a href=\"https:\/\/tools.ietf.org\/html\/rfc882\">RFC-882<\/a> and <a href=\"https:\/\/tools.ietf.org\/html\/rfc883\">RFC-883<\/a> and reasons for\r\n                them.\r\n\r\n[<a id=\"ref-RFC-974\" name=\"ref-RFC-974\"><\/a>RFC-974]       C. Partridge, \"Mail routing and the domain system\",\r\n                <a href=\"https:\/\/tools.ietf.org\/html\/rfc974\">RFC-974<\/a>, CSNET CIC BBN Labs, January 1986.\r\n\r\n                Describes the transition from HOSTS.TXT based mail\r\n                addressing to the more powerful MX system used with the\r\n                domain system.\r\n\r\n[<a id=\"ref-RFC-1001\" name=\"ref-RFC-1001\"><\/a>RFC-1001]      NetBIOS Working Group, \"Protocol standard for a NetBIOS\r\n                service on a TCP\/UDP transport: Concepts and Methods\",\r\n                <a href=\"https:\/\/tools.ietf.org\/html\/rfc1001\">RFC-1001<\/a>, March 1987.\r\n\r\n                This RFC and <a href=\"https:\/\/tools.ietf.org\/html\/rfc1002\">RFC-1002<\/a> are a preliminary design for\r\n                NETBIOS on top of TCP\/IP which proposes to base NetBIOS\r\n                name service on top of the DNS.\r\n\r\n[<a id=\"ref-RFC-1002\" name=\"ref-RFC-1002\"><\/a>RFC-1002]      NetBIOS Working Group, \"Protocol standard for a NetBIOS\r\n                service on a TCP\/UDP transport: Detailed\r\n                Specifications\", <a href=\"https:\/\/tools.ietf.org\/html\/rfc1002\">RFC-1002<\/a>, March 1987.\r\n\r\n[<a id=\"ref-RFC-1010\" name=\"ref-RFC-1010\"><\/a>RFC-1010]      J. Reynolds, and J. Postel, \"Assigned Numbers\", <a href=\"https:\/\/tools.ietf.org\/html\/rfc1010\">RFC-1010<\/a>,\r\n                USC\/Information Sciences Institute, May 1987.\r\n\r\n                Contains socket numbers and mnemonics for host names,\r\n                operating systems, etc.\r\n\r\n[<a id=\"ref-RFC-1031\" name=\"ref-RFC-1031\"><\/a>RFC-1031]      W. Lazear, \"MILNET Name Domain Transition\", <a href=\"https:\/\/tools.ietf.org\/html\/rfc1031\">RFC-1031<\/a>,\r\n                November 1987.\r\n\r\n                Describes a plan for converting the MILNET to the DNS.\r\n\r\n[<a id=\"ref-RFC-1032\" name=\"ref-RFC-1032\"><\/a>RFC-1032]      M. Stahl, \"Establishing a Domain - Guidelines for\r\n                Administrators\", <a href=\"https:\/\/tools.ietf.org\/html\/rfc1032\">RFC-1032<\/a>, November 1987.\r\n\r\n\r\n\r\n<span class=\"grey\">Mockapetris                                                    [Page 52]<\/span><\/pre>\n<hr class=\"noprint\" align=\"left\" \/>\n<pre class=\"newpage\"><a id=\"page-53\" class=\"invisible\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#page-53\" name=\"page-53\"> <\/a>\r\n<span class=\"grey\"><a href=\"https:\/\/tools.ietf.org\/html\/rfc1035\">RFC 1035<\/a>        Domain Implementation and Specification    November 1987<\/span>\r\n\r\n\r\n                Describes the registration policies used by the NIC to\r\n                administer the top level domains and delegate subzones.\r\n\r\n[<a id=\"ref-RFC-1033\" name=\"ref-RFC-1033\"><\/a>RFC-1033]      M. Lottor, \"Domain Administrators Operations Guide\",\r\n                <a href=\"https:\/\/tools.ietf.org\/html\/rfc1033\">RFC-1033<\/a>, November 1987.\r\n\r\n                A cookbook for domain administrators.\r\n\r\n[Solomon 82]    M. Solomon, L. Landweber, and D. Neuhengen, \"The CSNET\r\n                Name Server\", Computer Networks, vol 6, nr 3, July 1982.\r\n\r\n                Describes a name service for CSNET which is independent\r\n                from the DNS and DNS use in the CSNET.\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n<span class=\"grey\">Mockapetris                                                    [Page 53]<\/span><\/pre>\n<hr class=\"noprint\" align=\"left\" \/>\n<pre class=\"newpage\"><a id=\"page-54\" class=\"invisible\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#page-54\" name=\"page-54\"> <\/a>\r\n<span class=\"grey\"><a href=\"https:\/\/tools.ietf.org\/html\/rfc1035\">RFC 1035<\/a>        Domain Implementation and Specification    November 1987<\/span>\r\n\r\n\r\nIndex\r\n\r\n          *   13\r\n\r\n          ;   33, 35\r\n\r\n          &lt;character-string&gt;   35\r\n          &lt;domain-name&gt;   34\r\n\r\n          @   35\r\n\r\n          \\   35\r\n\r\n          A   12\r\n\r\n          Byte order   8\r\n\r\n          CH   13\r\n          Character case   9\r\n          CLASS   11\r\n          CNAME   12\r\n          Completion   42\r\n          CS   13\r\n\r\n          Hesiod   13\r\n          HINFO   12\r\n          HS   13\r\n\r\n          IN   13\r\n          IN-ADDR.ARPA domain   22\r\n          Inverse queries   40\r\n\r\n          Mailbox names   47\r\n          MB   12\r\n          MD   12\r\n          MF   12\r\n          MG   12\r\n          MINFO   12\r\n          MINIMUM   20\r\n          MR   12\r\n          MX   12\r\n\r\n          NS   12\r\n          NULL   12\r\n\r\n          Port numbers   32\r\n          Primary server   5\r\n          PTR   12, 18\r\n\r\n\r\n\r\n<span class=\"grey\">Mockapetris                                                    [Page 54]<\/span><\/pre>\n<hr class=\"noprint\" align=\"left\" \/>\n<pre class=\"newpage\"><a id=\"page-55\" class=\"invisible\" href=\"https:\/\/tools.ietf.org\/html\/rfc1035#page-55\" name=\"page-55\"> <\/a>\r\n<span class=\"grey\"><a href=\"https:\/\/tools.ietf.org\/html\/rfc1035\">RFC 1035<\/a>        Domain Implementation and Specification    November 1987<\/span>\r\n\r\n\r\n          QCLASS   13\r\n          QTYPE   12\r\n\r\n          RDATA   12\r\n          RDLENGTH  11\r\n\r\n          Secondary server   5\r\n          SOA   12\r\n          Stub resolvers   7\r\n\r\n          TCP   32\r\n          TXT   12\r\n          TYPE   11\r\n\r\n          UDP   32\r\n\r\n          WKS   12\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nMockapetris                                                    [Page 55]\r\n\r\n<\/pre>\n<p><span class=\"noprint\"><small><small>Html markup produced by rfcmarkup 1.127, available from\u00a0<a href=\"https:\/\/tools.ietf.org\/tools\/rfcmarkup\/\">https:\/\/tools.ietf.org\/tools\/rfcmarkup\/<\/a><\/small><\/small><\/span><\/p>\n<div class=\"pdfprnt-buttons pdfprnt-buttons-post pdfprnt-bottom-right\"><a href=\"https:\/\/tst-amo.net.ua\/blog\/index.php?rest_route=wpv2posts3151&print=pdf\" class=\"pdfprnt-button pdfprnt-button-pdf\" target=\"_blank\"><img decoding=\"async\" src=\"https:\/\/tst-amo.net.ua\/blog\/wp-content\/plugins\/pdf-print\/images\/pdf.png\" alt=\"image_pdf\" title=\"View PDF\" \/><\/a><a href=\"https:\/\/tst-amo.net.ua\/blog\/index.php?rest_route=wpv2posts3151&print=print\" class=\"pdfprnt-button pdfprnt-button-print\" target=\"_blank\"><img decoding=\"async\" src=\"https:\/\/tst-amo.net.ua\/blog\/wp-content\/plugins\/pdf-print\/images\/print.png\" alt=\"image_print\" title=\"Print Content\" \/><\/a><\/div>","protected":false},"excerpt":{"rendered":"<p>[Docs] [txt|pdf] [Tracker] [Errata] Updated by: 1101, 1183, 1348, 1876, 1982, 1995, INTERNET STANDARD 1996, 2065, 2136, 2181, 2137, 2308, 2535, 2673, 2845, 3425, 3658, 4033, 4034, 4035, 4343, 5936, 5966, 6604, 7766 Errata Exist Network Working Group P. Mockapetris Request for Comments: 1035 ISI November 1987 Obsoletes: RFCs 882, 883, 973 DOMAIN NAMES &#8211; &#8230;<\/p>\n<p><a href=\"https:\/\/tst-amo.net.ua\/blog\/?p=3151\" class=\"more-link\">Continue reading &lsquo;RFC 1035&rsquo; &raquo;<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[176],"tags":[],"class_list":["post-3151","post","type-post","status-publish","format-standard","hentry","category-rfc"],"_links":{"self":[{"href":"https:\/\/tst-amo.net.ua\/blog\/index.php?rest_route=\/wp\/v2\/posts\/3151"}],"collection":[{"href":"https:\/\/tst-amo.net.ua\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/tst-amo.net.ua\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/tst-amo.net.ua\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/tst-amo.net.ua\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3151"}],"version-history":[{"count":1,"href":"https:\/\/tst-amo.net.ua\/blog\/index.php?rest_route=\/wp\/v2\/posts\/3151\/revisions"}],"predecessor-version":[{"id":3152,"href":"https:\/\/tst-amo.net.ua\/blog\/index.php?rest_route=\/wp\/v2\/posts\/3151\/revisions\/3152"}],"wp:attachment":[{"href":"https:\/\/tst-amo.net.ua\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3151"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/tst-amo.net.ua\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3151"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/tst-amo.net.ua\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3151"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}