throbber
Network Working Group P. Vixie, Editor
`Request for Comments: 2136 ISC
`Updates: 1035 S. Thomson
`Category: Standards Track Bellcore
` Y. Rekhter
` Cisco
` J. Bound
` DEC
` April 1997
`
` Dynamic Updates in the Domain Name System (DNS UPDATE)
`
`Status of this Memo
`
` This document specifies an Internet standards track protocol for the
` Internet community, and requests discussion and suggestions for
` improvements. Please refer to the current edition of the "Internet
` Official Protocol Standards" (STD 1) for the standardization state
` and status of this protocol. Distribution of this memo is unlimited.
`
`Abstract
`
` The Domain Name System was originally designed to support queries of
` a statically configured database. While the data was expected to
` change, the frequency of those changes was expected to be fairly low,
` and all updates were made as external edits to a zone’s Master File.
`
` Using this specification of the UPDATE opcode, it is possible to add
` or delete RRs or RRsets from a specified zone. Prerequisites are
` specified separately from update operations, and can specify a
` dependency upon either the previous existence or nonexistence of an
` RRset, or the existence of a single RR.
`
` UPDATE is atomic, i.e., all prerequisites must be satisfied or else
` no update operations will take place. There are no data dependent
` error conditions defined after the prerequisites have been met.
`
`1 - Definitions
`
` This document intentionally gives more definition to the roles of
` "Master," "Slave," and "Primary Master" servers, and their
` enumeration in NS RRs, and the SOA MNAME field. In that sense, the
` following server type definitions can be considered an addendum to
` [RFC1035], and are intended to be consistent with [RFC1996]:
`
` Slave an authoritative server that uses AXFR or IXFR to
` retrieve the zone and is named in the zone’s NS
` RRset.
`
`Vixie, et. al. Standards Track [Page 1]
`
`Petitioner Apple Inc. - Exhibit 1065, p. 1
`
`

`
`RFC 2136 DNS Update April 1997
`
` Master an authoritative server configured to be the
` source of AXFR or IXFR data for one or more slave
` servers.
`
` Primary Master master server at the root of the AXFR/IXFR
` dependency graph. The primary master is named in
` the zone’s SOA MNAME field and optionally by an NS
` RR. There is by definition only one primary master
` server per zone.
`
` A domain name identifies a node within the domain name space tree
` structure. Each node has a set (possibly empty) of Resource Records
` (RRs). All RRs having the same NAME, CLASS and TYPE are called a
` Resource Record Set (RRset).
`
` The pseudocode used in this document is for example purposes only.
` If it is found to disagree with the text, the text shall be
` considered authoritative. If the text is found to be ambiguous, the
` pseudocode can be used to help resolve the ambiguity.
`
` 1.1 - Comparison Rules
`
` 1.1.1. Two RRs are considered equal if their NAME, CLASS, TYPE,
` RDLENGTH and RDATA fields are equal. Note that the time-to-live
` (TTL) field is explicitly excluded from the comparison.
`
` 1.1.2. The rules for comparison of character strings in names are
` specified in [RFC1035 2.3.3].
`
` 1.1.3. Wildcarding is disabled. That is, a wildcard ("*") in an
` update only matches a wildcard ("*") in the zone, and vice versa.
`
` 1.1.4. Aliasing is disabled: A CNAME in the zone matches a CNAME in
` the update, and will not otherwise be followed. All UPDATE
` operations are done on the basis of canonical names.
`
` 1.1.5. The following RR types cannot be appended to an RRset. If the
` following comparison rules are met, then an attempt to add the new RR
` will result in the replacement of the previous RR:
`
` SOA compare only NAME, CLASS and TYPE -- it is not possible to
` have more than one SOA per zone, even if any of the data
` fields differ.
`
` WKS compare only NAME, CLASS, TYPE, ADDRESS, and PROTOCOL
` -- only one WKS RR is possible for this tuple, even if the
` services masks differ.
`
`Vixie, et. al. Standards Track [Page 2]
`
`Petitioner Apple Inc. - Exhibit 1065, p. 2
`
`

`
`RFC 2136 DNS Update April 1997
`
` CNAME compare only NAME, CLASS, and TYPE -- it is not possible
` to have more than one CNAME RR, even if their data fields
` differ.
`
` 1.2 - Glue RRs
`
` For the purpose of determining whether a domain name used in the
` UPDATE protocol is contained within a specified zone, a domain name
` is "in" a zone if it is owned by that zone’s domain name. See
` section 7.18 for details.
`
` 1.3 - New Assigned Numbers
`
` CLASS = NONE (254)
` RCODE = YXDOMAIN (6)
` RCODE = YXRRSET (7)
` RCODE = NXRRSET (8)
` RCODE = NOTAUTH (9)
` RCODE = NOTZONE (10)
` Opcode = UPDATE (5)
`
`2 - Update Message Format
`
` The DNS Message Format is defined by [RFC1035 4.1]. Some extensions
` are necessary (for example, more error codes are possible under
` UPDATE than under QUERY) and some fields must be overloaded (see
` description of CLASS fields below).
`
` The overall format of an UPDATE message is, following [ibid]:
`
` +---------------------+
` | Header |
` +---------------------+
` | Zone | specifies the zone to be updated
` +---------------------+
` | Prerequisite | RRs or RRsets which must (not) preexist
` +---------------------+
` | Update | RRs or RRsets to be added or deleted
` +---------------------+
` | Additional Data | additional data
` +---------------------+
`
`Vixie, et. al. Standards Track [Page 3]
`
`Petitioner Apple Inc. - Exhibit 1065, p. 3
`
`

`
`RFC 2136 DNS Update April 1997
`
` The Header Section specifies that this message is an UPDATE, and
` describes the size of the other sections. The Zone Section names the
` zone that is to be updated by this message. The Prerequisite Section
` specifies the starting invariants (in terms of zone content) required
` for this update. The Update Section contains the edits to be made,
` and the Additional Data Section contains data which may be necessary
` to complete, but is not part of, this update.
`
` 2.1 - Transport Issues
`
` An update transaction may be carried in a UDP datagram, if the
` request fits, or in a TCP connection (at the discretion of the
` requestor). When TCP is used, the message is in the format described
` in [RFC1035 4.2.2].
`
` 2.2 - Message Header
`
` The header of the DNS Message Format is defined by [RFC 1035 4.1].
` Not all opcodes define the same set of flag bits, though as a
` practical matter most of the bits defined for QUERY (in [ibid]) are
` identically defined by the other opcodes. UPDATE uses only one flag
` bit (QR).
`
` The DNS Message Format specifies record counts for its four sections
` (Question, Answer, Authority, and Additional). UPDATE uses the same
` fields, and the same section formats, but the naming and use of these
` sections differs as shown in the following modified header, after
` [RFC1035 4.1.1]:
`
` 1 1 1 1 1 1
` 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
` +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
` | ID |
` +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
` |QR| Opcode | Z | RCODE |
` +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
` | ZOCOUNT |
` +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
` | PRCOUNT |
` +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
` | UPCOUNT |
` +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
` | ADCOUNT |
` +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
`
`Vixie, et. al. Standards Track [Page 4]
`
`Petitioner Apple Inc. - Exhibit 1065, p. 4
`
`

`
`RFC 2136 DNS Update April 1997
`
` These fields are used as follows:
`
` ID A 16-bit identifier assigned by the entity that generates any
` kind of request. This identifier is copied in the
` corresponding reply and can be used by the requestor to match
` replies to outstanding requests, or by the server to detect
` duplicated requests from some requestor.
`
` QR A one bit field that specifies whether this message is a
` request (0), or a response (1).
`
` Opcode A four bit field that specifies the kind of request in this
` message. This value is set by the originator of a request
` and copied into the response. The Opcode value that
` identifies an UPDATE message is five (5).
`
` Z Reserved for future use. Should be zero (0) in all requests
` and responses. A non-zero Z field should be ignored by
` implementations of this specification.
`
` RCODE Response code - this four bit field is undefined in requests
` and set in responses. The values and meanings of this field
` within responses are as follows:
`
` Mneumonic Value Description
` ------------------------------------------------------------
` NOERROR 0 No error condition.
` FORMERR 1 The name server was unable to interpret
` the request due to a format error.
` SERVFAIL 2 The name server encountered an internal
` failure while processing this request,
` for example an operating system error
` or a forwarding timeout.
` NXDOMAIN 3 Some name that ought to exist,
` does not exist.
` NOTIMP 4 The name server does not support
` the specified Opcode.
` REFUSED 5 The name server refuses to perform the
` specified operation for policy or
` security reasons.
` YXDOMAIN 6 Some name that ought not to exist,
` does exist.
` YXRRSET 7 Some RRset that ought not to exist,
` does exist.
` NXRRSET 8 Some RRset that ought to exist,
` does not exist.
`
`Vixie, et. al. Standards Track [Page 5]
`
`Petitioner Apple Inc. - Exhibit 1065, p. 5
`
`

`
`RFC 2136 DNS Update April 1997
`
` NOTAUTH 9 The server is not authoritative for
` the zone named in the Zone Section.
` NOTZONE 10 A name used in the Prerequisite or
` Update Section is not within the
` zone denoted by the Zone Section.
`
` ZOCOUNT The number of RRs in the Zone Section.
`
` PRCOUNT The number of RRs in the Prerequisite Section.
`
` UPCOUNT The number of RRs in the Update Section.
`
` ADCOUNT The number of RRs in the Additional Data Section.
`
` 2.3 - Zone Section
`
` The Zone Section has the same format as that specified in [RFC1035
` 4.1.2], with the fields redefined as follows:
`
` 1 1 1 1 1 1
` 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
` +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
` | |
` / ZNAME /
` / /
` +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
` | ZTYPE |
` +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
` | ZCLASS |
` +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
`
` UPDATE uses this section to denote the zone of the records being
` updated. All records to be updated must be in the same zone, and
` therefore the Zone Section is allowed to contain exactly one record.
` The ZNAME is the zone name, the ZTYPE must be SOA, and the ZCLASS is
` the zone’s class.
`
` 2.4 - Prerequisite Section
`
` This section contains a set of RRset prerequisites which must be
` satisfied at the time the UPDATE packet is received by the primary
` master server. The format of this section is as specified by
` [RFC1035 4.1.3]. There are five possible sets of semantics that can
` be expressed here, summarized as follows and then explained below.
`
` (1) RRset exists (value independent). At least one RR with a
` specified NAME and TYPE (in the zone and class specified by
` the Zone Section) must exist.
`
`Vixie, et. al. Standards Track [Page 6]
`
`Petitioner Apple Inc. - Exhibit 1065, p. 6
`
`

`
`RFC 2136 DNS Update April 1997
`
` (2) RRset exists (value dependent). A set of RRs with a
` specified NAME and TYPE exists and has the same members
` with the same RDATAs as the RRset specified here in this
` Section.
`
` (3) RRset does not exist. No RRs with a specified NAME and TYPE
` (in the zone and class denoted by the Zone Section) can exist.
`
` (4) Name is in use. At least one RR with a specified NAME (in
` the zone and class specified by the Zone Section) must exist.
` Note that this prerequisite is NOT satisfied by empty
` nonterminals.
`
` (5) Name is not in use. No RR of any type is owned by a
` specified NAME. Note that this prerequisite IS satisfied by
` empty nonterminals.
`
` The syntax of these is as follows:
`
` 2.4.1 - RRset Exists (Value Independent)
`
` At least one RR with a specified NAME and TYPE (in the zone and class
` specified in the Zone Section) must exist.
`
` For this prerequisite, a requestor adds to the section a single RR
` whose NAME and TYPE are equal to that of the zone RRset whose
` existence is required. RDLENGTH is zero and RDATA is therefore
` empty. CLASS must be specified as ANY to differentiate this
` condition from that of an actual RR whose RDLENGTH is naturally zero
` (0) (e.g., NULL). TTL is specified as zero (0).
`
` 2.4.2 - RRset Exists (Value Dependent)
`
` A set of RRs with a specified NAME and TYPE exists and has the same
` members with the same RDATAs as the RRset specified here in this
` section. While RRset ordering is undefined and therefore not
` significant to this comparison, the sets be identical in their
` extent.
`
` For this prerequisite, a requestor adds to the section an entire
` RRset whose preexistence is required. NAME and TYPE are that of the
` RRset being denoted. CLASS is that of the zone. TTL must be
` specified as zero (0) and is ignored when comparing RRsets for
` identity.
`
`Vixie, et. al. Standards Track [Page 7]
`
`Petitioner Apple Inc. - Exhibit 1065, p. 7
`
`

`
`RFC 2136 DNS Update April 1997
`
` 2.4.3 - RRset Does Not Exist
`
` No RRs with a specified NAME and TYPE (in the zone and class denoted
` by the Zone Section) can exist.
`
` For this prerequisite, a requestor adds to the section a single RR
` whose NAME and TYPE are equal to that of the RRset whose nonexistence
` is required. The RDLENGTH of this record is zero (0), and RDATA
` field is therefore empty. CLASS must be specified as NONE in order
` to distinguish this condition from a valid RR whose RDLENGTH is
` naturally zero (0) (for example, the NULL RR). TTL must be specified
` as zero (0).
`
` 2.4.4 - Name Is In Use
`
` Name is in use. At least one RR with a specified NAME (in the zone
` and class specified by the Zone Section) must exist. Note that this
` prerequisite is NOT satisfied by empty nonterminals.
`
` For this prerequisite, a requestor adds to the section a single RR
` whose NAME is equal to that of the name whose ownership of an RR is
` required. RDLENGTH is zero and RDATA is therefore empty. CLASS must
` be specified as ANY to differentiate this condition from that of an
` actual RR whose RDLENGTH is naturally zero (0) (e.g., NULL). TYPE
` must be specified as ANY to differentiate this case from that of an
` RRset existence test. TTL is specified as zero (0).
`
` 2.4.5 - Name Is Not In Use
`
` Name is not in use. No RR of any type is owned by a specified NAME.
` Note that this prerequisite IS satisfied by empty nonterminals.
`
` For this prerequisite, a requestor adds to the section a single RR
` whose NAME is equal to that of the name whose nonownership of any RRs
` is required. RDLENGTH is zero and RDATA is therefore empty. CLASS
` must be specified as NONE. TYPE must be specified as ANY. TTL must
` be specified as zero (0).
`
` 2.5 - Update Section
`
` This section contains RRs to be added to or deleted from the zone.
` The format of this section is as specified by [RFC1035 4.1.3]. There
` are four possible sets of semantics, summarized below and with
` details to follow.
`
`Vixie, et. al. Standards Track [Page 8]
`
`Petitioner Apple Inc. - Exhibit 1065, p. 8
`
`

`
`RFC 2136 DNS Update April 1997
`
` (1) Add RRs to an RRset.
` (2) Delete an RRset.
` (3) Delete all RRsets from a name.
` (4) Delete an RR from an RRset.
`
` The syntax of these is as follows:
`
` 2.5.1 - Add To An RRset
`
` RRs are added to the Update Section whose NAME, TYPE, TTL, RDLENGTH
` and RDATA are those being added, and CLASS is the same as the zone
` class. Any duplicate RRs will be silently ignored by the primary
` master.
`
` 2.5.2 - Delete An RRset
`
` One RR is added to the Update Section whose NAME and TYPE are those
` of the RRset to be deleted. TTL must be specified as zero (0) and is
` otherwise not used by the primary master. CLASS must be specified as
` ANY. RDLENGTH must be zero (0) and RDATA must therefore be empty.
` If no such RRset exists, then this Update RR will be silently ignored
` by the primary master.
`
` 2.5.3 - Delete All RRsets From A Name
`
` One RR is added to the Update Section whose NAME is that of the name
` to be cleansed of RRsets. TYPE must be specified as ANY. TTL must
` be specified as zero (0) and is otherwise not used by the primary
` master. CLASS must be specified as ANY. RDLENGTH must be zero (0)
` and RDATA must therefore be empty. If no such RRsets exist, then
` this Update RR will be silently ignored by the primary master.
`
` 2.5.4 - Delete An RR From An RRset
`
` RRs to be deleted are added to the Update Section. The NAME, TYPE,
` RDLENGTH and RDATA must match the RR being deleted. TTL must be
` specified as zero (0) and will otherwise be ignored by the primary
` master. CLASS must be specified as NONE to distinguish this from an
` RR addition. If no such RRs exist, then this Update RR will be
` silently ignored by the primary master.
`
`Vixie, et. al. Standards Track [Page 9]
`
`Petitioner Apple Inc. - Exhibit 1065, p. 9
`
`

`
`RFC 2136 DNS Update April 1997
`
` 2.6 - Additional Data Section
`
` This section contains RRs which are related to the update itself, or
` to new RRs being added by the update. For example, out of zone glue
` (A RRs referred to by new NS RRs) should be presented here. The
` server can use or ignore out of zone glue, at the discretion of the
` server implementor. The format of this section is as specified by
` [RFC1035 4.1.3].
`
`3 - Server Behavior
`
` A server, upon receiving an UPDATE request, will signal NOTIMP to the
` requestor if the UPDATE opcode is not recognized or if it is
` recognized but has not been implemented. Otherwise, processing
` continues as follows.
`
` 3.1 - Process Zone Section
`
` 3.1.1. The Zone Section is checked to see that there is exactly one
` RR therein and that the RR’s ZTYPE is SOA, else signal FORMERR to the
` requestor. Next, the ZNAME and ZCLASS are checked to see if the zone
` so named is one of this server’s authority zones, else signal NOTAUTH
` to the requestor. If the server is a zone slave, the request will be
` forwarded toward the primary master.
`
` 3.1.2 - Pseudocode For Zone Section Processing
`
` if (zcount != 1 || ztype != SOA)
` return (FORMERR)
` if (zone_type(zname, zclass) == SLAVE)
` return forward()
` if (zone_type(zname, zclass) == MASTER)
` return update()
` return (NOTAUTH)
`
` Sections 3.2 through 3.8 describe the primary master’s behaviour,
` whereas Section 6 describes a forwarder’s behaviour.
`
` 3.2 - Process Prerequisite Section
`
` Next, the Prerequisite Section is checked to see that all
` prerequisites are satisfied by the current state of the zone. Using
` the definitions expressed in Section 1.2, if any RR’s NAME is not
` within the zone specified in the Zone Section, signal NOTZONE to the
` requestor.
`
`Vixie, et. al. Standards Track [Page 10]
`
`Petitioner Apple Inc. - Exhibit 1065, p. 10
`
`

`
`RFC 2136 DNS Update April 1997
`
` 3.2.1. For RRs in this section whose CLASS is ANY, test to see that
` TTL and RDLENGTH are both zero (0), else signal FORMERR to the
` requestor. If TYPE is ANY, test to see that there is at least one RR
` in the zone whose NAME is the same as that of the Prerequisite RR,
` else signal NXDOMAIN to the requestor. If TYPE is not ANY, test to
` see that there is at least one RR in the zone whose NAME and TYPE are
` the same as that of the Prerequisite RR, else signal NXRRSET to the
` requestor.
`
` 3.2.2. For RRs in this section whose CLASS is NONE, test to see that
` the TTL and RDLENGTH are both zero (0), else signal FORMERR to the
` requestor. If the TYPE is ANY, test to see that there are no RRs in
` the zone whose NAME is the same as that of the Prerequisite RR, else
` signal YXDOMAIN to the requestor. If the TYPE is not ANY, test to
` see that there are no RRs in the zone whose NAME and TYPE are the
` same as that of the Prerequisite RR, else signal YXRRSET to the
` requestor.
`
` 3.2.3. For RRs in this section whose CLASS is the same as the ZCLASS,
` test to see that the TTL is zero (0), else signal FORMERR to the
` requestor. Then, build an RRset for each unique <NAME,TYPE> and
` compare each resulting RRset for set equality (same members, no more,
` no less) with RRsets in the zone. If any Prerequisite RRset is not
` entirely and exactly matched by a zone RRset, signal NXRRSET to the
` requestor. If any RR in this section has a CLASS other than ZCLASS
` or NONE or ANY, signal FORMERR to the requestor.
`
` 3.2.4 - Table Of Metavalues Used In Prerequisite Section
`
` CLASS TYPE RDATA Meaning
` ------------------------------------------------------------
` ANY ANY empty Name is in use
` ANY rrset empty RRset exists (value independent)
` NONE ANY empty Name is not in use
` NONE rrset empty RRset does not exist
` zone rrset rr RRset exists (value dependent)
`
`Vixie, et. al. Standards Track [Page 11]
`
`Petitioner Apple Inc. - Exhibit 1065, p. 11
`
`

`
`RFC 2136 DNS Update April 1997
`
` 3.2.5 - Pseudocode for Prerequisite Section Processing
`
` for rr in prerequisites
` if (rr.ttl != 0)
` return (FORMERR)
` if (zone_of(rr.name) != ZNAME)
` return (NOTZONE);
` if (rr.class == ANY)
` if (rr.rdlength != 0)
` return (FORMERR)
` if (rr.type == ANY)
` if (!zone_name<rr.name>)
` return (NXDOMAIN)
` else
` if (!zone_rrset<rr.name, rr.type>)
` return (NXRRSET)
` if (rr.class == NONE)
` if (rr.rdlength != 0)
` return (FORMERR)
` if (rr.type == ANY)
` if (zone_name<rr.name>)
` return (YXDOMAIN)
` else
` if (zone_rrset<rr.name, rr.type>)
` return (YXRRSET)
` if (rr.class == zclass)
` temp<rr.name, rr.type> += rr
` else
` return (FORMERR)
`
` for rrset in temp
` if (zone_rrset<rrset.name, rrset.type> != rrset)
` return (NXRRSET)
`
` 3.3 - Check Requestor’s Permissions
`
` 3.3.1. Next, the requestor’s permission to update the RRs named in
` the Update Section may be tested in an implementation dependent
` fashion or using mechanisms specified in a subsequent Secure DNS
` Update protocol. If the requestor does not have permission to
` perform these updates, the server may write a warning message in its
` operations log, and may either signal REFUSED to the requestor, or
` ignore the permission problem and proceed with the update.
`
`Vixie, et. al. Standards Track [Page 12]
`
`Petitioner Apple Inc. - Exhibit 1065, p. 12
`
`

`
`RFC 2136 DNS Update April 1997
`
` 3.3.2. While the exact processing is implementation defined, if these
` verification activities are to be performed, this is the point in the
` server’s processing where such performance should take place, since
` if a REFUSED condition is encountered after an update has been
` partially applied, it will be necessary to undo the partial update
` and restore the zone to its original state before answering the
` requestor.
`
` 3.3.3 - Pseudocode for Permission Checking
`
` if (security policy exists)
` if (this update is not permitted)
` if (local option)
` log a message about permission problem
` if (local option)
` return (REFUSED)
`
` 3.4 - Process Update Section
`
` Next, the Update Section is processed as follows.
`
` 3.4.1 - Prescan
`
` The Update Section is parsed into RRs and each RR’s CLASS is checked
` to see if it is ANY, NONE, or the same as the Zone Class, else signal
` a FORMERR to the requestor. Using the definitions in Section 1.2,
` each RR’s NAME must be in the zone specified by the Zone Section,
` else signal NOTZONE to the requestor.
`
` 3.4.1.2. For RRs whose CLASS is not ANY, check the TYPE and if it is
` ANY, AXFR, MAILA, MAILB, or any other QUERY metatype, or any
` unrecognized type, then signal FORMERR to the requestor. For RRs
` whose CLASS is ANY or NONE, check the TTL to see that it is zero (0),
` else signal a FORMERR to the requestor. For any RR whose CLASS is
` ANY, check the RDLENGTH to make sure that it is zero (0) (that is,
` the RDATA field is empty), and that the TYPE is not AXFR, MAILA,
` MAILB, or any other QUERY metatype besides ANY, or any unrecognized
` type, else signal FORMERR to the requestor.
`
`Vixie, et. al. Standards Track [Page 13]
`
`Petitioner Apple Inc. - Exhibit 1065, p. 13
`
`

`
`RFC 2136 DNS Update April 1997
`
` 3.4.1.3 - Pseudocode For Update Section Prescan
`
` [rr] for rr in updates
` if (zone_of(rr.name) != ZNAME)
` return (NOTZONE);
` if (rr.class == zclass)
` if (rr.type & ANY|AXFR|MAILA|MAILB)
` return (FORMERR)
` elsif (rr.class == ANY)
` if (rr.ttl != 0 || rr.rdlength != 0
` || rr.type & AXFR|MAILA|MAILB)
` return (FORMERR)
` elsif (rr.class == NONE)
` if (rr.ttl != 0 || rr.type & ANY|AXFR|MAILA|MAILB)
` return (FORMERR)
` else
` return (FORMERR)
`
` 3.4.2 - Update
`
` The Update Section is parsed into RRs and these RRs are processed in
` order.
`
` 3.4.2.1. If any system failure (such as an out of memory condition,
` or a hardware error in persistent storage) occurs during the
` processing of this section, signal SERVFAIL to the requestor and undo
` all updates applied to the zone during this transaction.
`
` 3.4.2.2. Any Update RR whose CLASS is the same as ZCLASS is added to
` the zone. In case of duplicate RDATAs (which for SOA RRs is always
` the case, and for WKS RRs is the case if the ADDRESS and PROTOCOL
` fields both match), the Zone RR is replaced by Update RR. If the
` TYPE is SOA and there is no Zone SOA RR, or the new SOA.SERIAL is
` lower (according to [RFC1982]) than or equal to the current Zone SOA
` RR’s SOA.SERIAL, the Update RR is ignored. In the case of a CNAME
` Update RR and a non-CNAME Zone RRset or vice versa, ignore the CNAME
` Update RR, otherwise replace the CNAME Zone RR with the CNAME Update
` RR.
`
` 3.4.2.3. For any Update RR whose CLASS is ANY and whose TYPE is ANY,
` all Zone RRs with the same NAME are deleted, unless the NAME is the
` same as ZNAME in which case only those RRs whose TYPE is other than
` SOA or NS are deleted. For any Update RR whose CLASS is ANY and
` whose TYPE is not ANY all Zone RRs with the same NAME and TYPE are
` deleted, unless the NAME is the same as ZNAME in which case neither
` SOA or NS RRs will be deleted.
`
`Vixie, et. al. Standards Track [Page 14]
`
`Petitioner Apple Inc. - Exhibit 1065, p. 14
`
`

`
`RFC 2136 DNS Update April 1997
`
` 3.4.2.4. For any Update RR whose class is NONE, any Zone RR whose
` NAME, TYPE, RDATA and RDLENGTH are equal to the Update RR is deleted,
` unless the NAME is the same as ZNAME and either the TYPE is SOA or
` the TYPE is NS and the matching Zone RR is the only NS remaining in
` the RRset, in which case this Update RR is ignored.
`
` 3.4.2.5. Signal NOERROR to the requestor.
`
` 3.4.2.6 - Table Of Metavalues Used In Update Section
`
` CLASS TYPE RDATA Meaning
` ---------------------------------------------------------
` ANY ANY empty Delete all RRsets from a name
` ANY rrset empty Delete an RRset
` NONE rrset rr Delete an RR from an RRset
` zone rrset rr Add to an RRset
`
` 3.4.2.7 - Pseudocode For Update Section Processing
`
` [rr] for rr in updates
` if (rr.class == zclass)
` if (rr.type == CNAME)
` if (zone_rrset<rr.name, ˜CNAME>)
` next [rr]
` elsif (zone_rrset<rr.name, CNAME>)
` next [rr]
` if (rr.type == SOA)
` if (!zone_rrset<rr.name, SOA> ||
` zone_rr<rr.name, SOA>.serial > rr.soa.serial)
` next [rr]
` for zrr in zone_rrset<rr.name, rr.type>
` if (rr.type == CNAME || rr.type == SOA ||
` (rr.type == WKS && rr.proto == zrr.proto &&
` rr.address == zrr.address) ||
` rr.rdata == zrr.rdata)
` zrr = rr
` next [rr]
` zone_rrset<rr.name, rr.type> += rr
` elsif (rr.class == ANY)
` if (rr.type == ANY)
` if (rr.name == zname)
` zone_rrset<rr.name, ˜(SOA|NS)> = Nil
` else
`

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket