鸟来家里预示什么| 幽闭恐惧症是什么| 什么是德训鞋| 市宣传部长是什么级别| 什么的搏斗| 胳膊疼是什么病的前兆| 出淤泥而不染是什么花| 勃不起来吃什么药| 洋葱生吃有什么好处| 人突然消瘦是什么原因| 吃什么药能减肥| 为什么乳头会变黑| 什么情况下需要做肠镜| 平的反义词是什么| 雪燕是什么东西| 菠萝蜜什么季节最好吃| 学英语先从什么学起| 辩证法是什么| gl值是什么意思| 吝啬什么意思| 银杏叶片治什么病| 默哀是什么意思| 四月十九是什么星座| 天天都需要你爱是什么歌| 一个万一个足念什么| ih是什么意思| 让平是什么意思| 儿童包皮挂什么科| 蛆是什么意思| 硬下疳长什么样| 这几天为什么这么热| 经常咳嗽是什么病| 空调输入功率是什么意思| 老玻璃是什么意思| 1987年属什么的| 拔牙可以吃什么| 8月15日什么星座| 胆囊息肉样病变是什么意思| c6是什么| 雨水是什么季节| 喝酒会得什么病| 醋泡花生米有什么功效| o型血溶血是什么意思| 感冒吃什么水果| 1980年五行属什么| 利涉大川是什么意思| 肾病应该吃什么| 2048年是什么年| 牛头不对马嘴是什么意思| 口蜜腹剑是什么意思| 不是省油的灯是什么意思| 过期葡萄酒有什么用途| 太平间是什么意思| 6.3是什么星座| 龙肉指的是什么肉| 肌肉萎缩是什么原因| 花期是什么意思| 蚊子怕什么颜色| 古怪是什么意思| 段子是什么意思| 口食读什么| 女孩喜欢什么礼物| 送行是什么意思| 吃什么疏通血管| 胰腺炎挂什么科| 三四月份是什么星座| 41年属什么生肖| 舌头上火是什么原因| 菊花代表什么象征意义| 吃了西瓜不能吃什么| 刍狗是什么意思| 啪啪是什么意思| 开心果是什么树的果实| 做梦梦见好多蛇是什么预兆| 滑膜炎用什么药治疗最好最快| 拌黄瓜需要什么调料| 料酒可以用什么代替| 布洛芬有什么作用| 拍拖是什么意思| hpv长什么样| 上皮细胞一个加号什么意思| 三点水加累读什么| 滋阴润燥是什么意思| 大白条是什么鱼| 日龙包什么意思| 品学兼优是什么意思| 人发胖的原因是什么引起的| 尾骨疼是什么原因| 孕妇怕冷是什么原因| tg是什么意思| 什么是直接胆红素| 吃什么补大脑| 急性肠胃炎能吃什么| 梦见穿破鞋是什么意思| 蒙古族的那达慕大会是在什么时候| 中度贫血是什么原因造成的| 莲花代表什么象征意义| 经常生病是什么原因| 18kgp是什么金| dna什么意思| 渎是什么意思| 没有斗代表什么| 檀木手串有什么好处| 浪琴表属于什么档次| 缺铁性贫血吃什么药| 肾挂什么科室| 尖锐湿疣的症状是什么| 血糖高一日三餐吃什么东西最适合| 什么是码率| 作陪是什么意思| 偶发室性早搏什么意思| 腹胀屁多是什么原因| 甲状腺有什么功能| 子不教父之过是什么意思| 什么是实性结节| 嘴唇干裂脱皮是什么原因| 鱼在鱼缸底部不动为什么| 小蝌蚪吃什么| 放任是什么意思| 山竹不能和什么水果一起吃| 老是瞌睡是什么原因| 猪与什么属相相冲| 两个克念什么| d是什么元素| 中耳炎吃什么药好| 宝宝手脚冰凉是什么原因| 手麻疼是什么原因引起| 什么鸟没有翅膀| 球鞋ep是什么意思| 螨虫长什么样子图片| 包可以加什么偏旁| 安利什么意思| 人体最长的骨头是什么| 脖子后面有痣代表什么| 友友是什么意思| 血管瘤是什么东西| 教师编制是什么意思| 为什么会孕酮低| 抗体是指什么| m型发际线适合什么发型| 高血压吃什么可以降下来| 白凉粉是什么做的| 瓜子脸适合什么刘海| 这是什么植物| 什么药可以溶解血栓| 肛门瘙痒是什么问题| 拔完火罐要注意什么| 谷氨酰转肽酶偏高是什么意思| 背部痒是什么原因| 喝什么中药补肾| 什么是感情| 什么是主动脉夹层| 违和感是什么意思| 早泄挂什么科| 什么牌子的充电宝好| 4点是什么时辰| 吃什么补血小板快| ky什么意思| 今天是什么节日吗| 酸奶坏了是什么味道| 6岁属什么生肖| 长孙皇后为什么叫观音婢| 甲状腺结节吃什么药| 百福骈臻是什么意思| 梦到点火是什么意思| 时迁的绰号是什么| 刮痧用什么油刮最好| 北瓜是什么| 检查生育能力挂什么科| 真身是什么意思| rag什么意思| 覆盖的意思是什么| 眉头长痘痘是因为什么原因引起的| 小揪揪什么意思| 大腿根疼是什么原因| 界限性脑电图是什么意思| 荷兰豆炒什么好吃| 血压低吃什么药见效快| 梦见瓜是什么意思| 血沉是什么| 精液少是什么原因| 前哨是什么意思| 经期吃什么食物比较好| 算理是什么意思| 什么牌子充电宝好| 彩虹代表什么生肖| 1908年中国发生了什么| 谶语是什么意思| 任性的女孩有什么特点| 腋窝淹了用什么药| 恶心吃什么药| 屎为什么是黑色的| q1什么意思| 梦见自己被火烧是什么意思| 腹膜透析是什么意思| 憩息是什么意思| 泪囊炎用什么眼药水| 皮蛋是什么蛋做的| 伞裙搭配什么上衣| 音序是什么| 双氢克尿噻又叫什么| 阳痿早泄吃什么药最好| 咳嗽吃什么水果最好| 月经推迟挂什么科| 属鸡的女生和什么属相最配| 空调除湿和制冷有什么区别| 骨密度挂什么科| 有什么不能说| 什么是角| 岁月的痕迹是什么意思| 梦见杀鸡是什么意思| 玉兰片和竹笋有什么区别| fps是什么意思| 外科检查一般检查什么| 什么是调和油| 脸上长痘痘用什么药膏效果好| 头上戴冠是什么生肖| 电磁波是什么| ifound是什么牌子| 跳蛋什么意思| 开心果是什么树的果实| 决断是什么意思| 双什么意思| 梦遗是什么意思| 近视和远视有什么区别| 尼特族是什么意思| 心脏早搏是什么意思| 芭蕉花炖猪心治什么病| 胃火大吃什么药效果好| 增强抵抗力免疫力吃什么| 眼睛红是什么原因| 三丧日是什么意思| 青睐是什么意思| 耽美剧是什么意思| 吹牛皮是什么意思| 眩晕停又叫什么| 红绿色盲是什么遗传| 金开什么字| 猪肉炒什么好吃| 榻榻米是什么| 大出血是什么症状| 为什么饿的很快| 梦见蘑菇是什么预兆| 心魔是什么意思| 癫痫病是什么症状| 故的偏旁是什么| 扁平苔藓是什么原因引起的| 三月二十六是什么星座| 肌酸什么时候喝| 打豆豆是什么意思| 脚有酸味是什么原因| 眉头长痘痘什么原因| 宫外孕术后可以吃什么| 胎盘植入是什么意思| 不发烧流鼻涕打喷嚏吃什么药| 急支糖浆是什么梗| 什么减肥药最安全| 一加是什么牌子| 水珠像什么| 支付宝账户是什么| 肺部感染吃什么药| 看十全十美是什么生肖| 肌酐高是什么问题| 条件兵是什么意思| 百度

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]


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]


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]


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]


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]


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]


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]


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]


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]


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]


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]


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]


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]


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]


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
                          zone_rrset<rr.name, *> = Nil
                elsif (rr.name == zname &&
                       (rr.type == SOA || rr.type == NS))
                     next [rr]
                else



Vixie, et. al.              Standards Track                    [Page 15]


RFC 2136                       DNS Update                     April 1997


                     zone_rrset<rr.name, rr.type> = Nil
           elsif (rr.class == NONE)
                if (rr.type == SOA)
                     next [rr]
                if (rr.type == NS && zone_rrset<rr.name, NS> == rr)
                     next [rr]
                zone_rr<rr.name, rr.type, rr.data> = Nil
      return (NOERROR)

   3.5 - Stability

   When a zone is modified by an UPDATE operation, the server must
   commit the change to nonvolatile storage before sending a response to
   the requestor or answering any queries or transfers for the modified
   zone.  It is reasonable for a server to store only the update records
   as long as a system reboot or power failure will cause these update
   records to be incorporated into the zone the next time the server is
   started.  It is also reasonable for the server to copy the entire
   modified zone to nonvolatile storage after each update operation,
   though this would have suboptimal performance for large zones.

   3.6 - Zone Identity

   If the zone's SOA SERIAL is changed by an update operation, that
   change must be in a positive direction (using modulo 2**32 arithmetic
   as specified by [RFC1982]).  Attempts to replace an SOA with one
   whose SERIAL is less than the current one will be silently ignored by
   the primary master server.

   If the zone's SOA's SERIAL is not changed as a result of an update
   operation, then the server shall increment it automatically before
   the SOA or any changed name or RR or RRset is included in any
   response or transfer.  The primary master server's implementor might
   choose to autoincrement the SOA SERIAL if any of the following events
   occurs:

   (1)  Each update operation.

   (2)  A name, RR or RRset in the zone has changed and has subsequently
        been visible to a DNS client since the unincremented SOA was
        visible to a DNS client, and the SOA is about to become visible
        to a DNS client.

   (3)  A configurable period of time has elapsed since the last update
        operation.  This period shall be less than or equal to one third
        of the zone refresh time, and the default shall be the lesser of
        that maximum and 300 seconds.




Vixie, et. al.              Standards Track                    [Page 16]


RFC 2136                       DNS Update                     April 1997


   (4)  A configurable number of updates has been applied since the last
        SOA change.  The default value for this configuration parameter
        shall be one hundred (100).

   It is imperative that the zone's contents and the SOA's SERIAL be
   tightly synchronized.  If the zone appears to change, the SOA must
   appear to change as well.

   3.7 - Atomicity

   During the processing of an UPDATE transaction, the server must
   ensure atomicity with respect to other (concurrent) UPDATE or QUERY
   transactions.  No two transactions can be processed concurrently if
   either depends on the final results of the other; in particular, a
   QUERY should not be able to retrieve RRsets which have been partially
   modified by a concurrent UPDATE, and an UPDATE should not be able to
   start from prerequisites that might not still hold at the completion
   of some other concurrent UPDATE.  Finally, if two UPDATE transactions
   would modify the same names, RRs or RRsets, then such UPDATE
   transactions must be serialized.

   3.8 - Response

   At the end of UPDATE processing, a response code will be known.  A
   response message is generated by copying the ID and Opcode fields
   from the request, and either copying the ZOCOUNT, PRCOUNT, UPCOUNT,
   and ADCOUNT fields and associated sections, or placing zeros (0) in
   the these "count" fields and not including any part of the original
   update.  The QR bit is set to one (1), and the response is sent back
   to the requestor.  If the requestor used UDP, then the response will
   be sent to the requestor's source UDP port.  If the requestor used
   TCP, then the response will be sent back on the requestor's open TCP
   connection.

4 - Requestor Behaviour

   4.1. From a requestor's point of view, any authoritative server for
   the zone can appear to be able to process update requests, even
   though only the primary master server is actually able to modify the
   zone's master file.  Requestors are expected to know the name of the
   zone they intend to update and to know or be able to determine the
   name servers for that zone.









Vixie, et. al.              Standards Track                    [Page 17]


RFC 2136                       DNS Update                     April 1997


   4.2. If update ordering is desired, the requestor will need to know
   the value of the existing SOA RR.  Requestors who update the SOA RR
   must update the SOA SERIAL field in a positive direction (as defined
   by [RFC1982]) and also preserve the other SOA fields unless the
   requestor's explicit intent is to change them.  The SOA SERIAL field
   must never be set to zero (0).

   4.3. If the requestor has reasonable cause to believe that all of a
   zone's servers will be equally reachable, then it should arrange to
   try the primary master server (as given by the SOA MNAME field if
   matched by some NS NSDNAME) first to avoid unnecessary forwarding
   inside the slave servers.  (Note that the primary master will in some
   cases not be reachable by all requestors, due to firewalls or network
   partitioning.)

   4.4. Once the zone's name servers been found and possibly sorted so
   that the ones more likely to be reachable and/or support the UPDATE
   opcode are listed first, the requestor composes an UPDATE message of
   the following form and sends it to the first name server on its list:

      ID:                        (new)
      Opcode:                    UPDATE
      Zone zcount:               1
      Zone zname:                (zone name)
      Zone zclass:               (zone class)
      Zone ztype:                T_SOA
      Prerequisite Section:      (see previous text)
      Update Section:            (see previous text)
      Additional Data Section:   (empty)

   4.5. If the requestor receives a response, and the response has an
   RCODE other than SERVFAIL or NOTIMP, then the requestor returns an
   appropriate response to its caller.

   4.6. If a response is received whose RCODE is SERVFAIL or NOTIMP, or
   if no response is received within an implementation dependent timeout
   period, or if an ICMP error is received indicating that the server's
   port is unreachable, then the requestor will delete the unusable
   server from its internal name server list and try the next one,
   repeating until the name server list is empty.  If the requestor runs
   out of servers to try, an appropriate error will be returned to the
   requestor's caller.









Vixie, et. al.              Standards Track                    [Page 18]


RFC 2136                       DNS Update                     April 1997


5 - Duplicate Detection, Ordering and Mutual Exclusion

   5.1. For correct operation, mechanisms may be needed to ensure
   idempotence, order UPDATE requests and provide mutual exclusion.  An
   UPDATE message or response might be delivered zero times, one time,
   or multiple times.  Datagram duplication is of particular interest
   since it covers the case of the so-called "replay attack" where a
   correct request is duplicated maliciously by an intruder.

   5.2. Multiple UPDATE requests or responses in transit might be
   delivered in any order, due to network topology changes or load
   balancing, or to multipath forwarding graphs wherein several slave
   servers all forward to the primary master.  In some cases, it might
   be required that the earlier update not be applied after the later
   update, where "earlier" and "later" are defined by an external time
   base visible to some set of requestors, rather than by the order of
   request receipt at the primary master.

   5.3. A requestor can ensure transaction idempotence by explicitly
   deleting some "marker RR" (rather than deleting the RRset of which it
   is a part) and then adding a new "marker RR" with a different RDATA
   field.  The Prerequisite Section should specify that the original
   "marker RR" must be present in order for this UPDATE message to be
   accepted by the server.

   5.4. If the request is duplicated by a network error, all duplicate
   requests will fail since only the first will find the original
   "marker RR" present and having its known previous value.  The
   decisions of whether to use such a "marker RR" and what RR to use are
   left up to the application programmer, though one obvious choice is
   the zone's SOA RR as described below.

   5.5. Requestors can ensure update ordering by externally
   synchronizing their use of successive values of the "marker RR."
   Mutual exclusion can be addressed as a degenerate case, in that a
   single succession of the "marker RR" is all that is needed.

   5.6. A special case where update ordering and datagram duplication
   intersect is when an RR validly changes to some new value and then
   back to its previous value.  Without a "marker RR" as described
   above, this sequence of updates can leave the zone in an undefined
   state if datagrams are duplicated.

   5.7. To achieve an atomic multitransaction "read-modify-write" cycle,
   a requestor could first retrieve the SOA RR, and build an UPDATE
   message one of whose prerequisites was the old SOA RR.  It would then
   specify updates that would delete this SOA RR and add a new one with
   an incremented SOA SERIAL, along with whatever actual prerequisites



Vixie, et. al.              Standards Track                    [Page 19]


RFC 2136                       DNS Update                     April 1997


   and updates were the object of the transaction.  If the transaction
   succeeds, the requestor knows that the RRs being changed were not
   otherwise altered by any other requestor.

6 - Forwarding

   When a zone slave forwards an UPDATE message upward toward the zone's
   primary master server, it must allocate a new ID and prepare to enter
   the role of "forwarding server," which is a requestor with respect to
   the forward server.

   6.1. The set of forward servers will be same as the set of servers
   this zone slave would use as the source of AXFR or IXFR data.  So,
   while the original requestor might have used the zone's NS RRset to
   locate its update server, a forwarder always forwards toward its
   designated zone master servers.

   6.2. If the original requestor used TCP, then the TCP connection from
   the requestor is still open and the forwarder must use TCP to forward
   the message.  If the original requestor used UDP, the forwarder may
   use either UDP or TCP to forward the message, at the whim of the
   implementor.

   6.3. It is reasonable for forward servers to be forwarders
   themselves, if the AXFR dependency graph being followed is a deep one
   involving firewalls and multiple connectivity realms.  In most cases
   the AXFR dependency graph will be shallow and the forward server will
   be the primary master server.

   6.4. The forwarder will not respond to its requestor until it
   receives a response from its forward server.  UPDATE transactions
   involving forwarders are therefore time synchronized with respect to
   the original requestor and the primary master server.

   6.5. When there are multiple possible sources of AXFR data and
   therefore multiple possible forward servers, a forwarder will use the
   same fallback strategy with respect to connectivity or timeout errors
   that it would use when performing an AXFR.  This is implementation
   dependent.

   6.6. When a forwarder receives a response from a forward server, it
   copies this response into a new response message, assigns its
   requestor's ID to that message, and sends the response back to the
   requestor.







Vixie, et. al.              Standards Track                    [Page 20]


RFC 2136                       DNS Update                     April 1997


7 - Design, Implementation, Operation, and Protocol Notes

   Some of the principles which guided the design of this UPDATE
   specification are as follows.  Note that these are not part of the
   formal specification and any disagreement between this section and
   any other section of this document should be resolved in favour of
   the other section.

   7.1. Using metavalues for CLASS is possible only because all RRs in
   the packet are assumed to be in the same zone, and CLASS is an
   attribute of a zone rather than of an RRset.  (It is for this reason
   that the Zone Section is not optional.)

   7.2. Since there are no data-present or data-absent errors possible
   from processing the Update Section, any necessary data-present and
   data- absent dependencies should be specified in the Prerequisite
   Section.

   7.3. The Additional Data Section can be used to supply a server with
   out of zone glue that will be needed in referrals.  For example, if
   adding a new NS RR to HOME.VIX.COM specifying a nameserver called
   NS.AU.OZ, the A RR for NS.AU.OZ can be included in the Additional
   Data Section.  Servers can use this information or ignore it, at the
   discretion of the implementor.  We discourage caching this
   information for use in subsequent DNS responses.

   7.4. The Additional Data Section might be used if some of the RRs
   later needed for Secure DNS Update are not actually zone updates, but
   rather ancillary keys or signatures not intended to be stored in the
   zone (as an update would be), yet necessary for validating the update
   operation.

   7.5. It is expected that in the absence of Secure DNS Update, a
   server will only accept updates if they come from a source address
   that has been statically configured in the server's description of a
   primary master zone.  DHCP servers would be likely candidates for
   inclusion in this statically configured list.

   7.6. It is not possible to create a zone using this protocol, since
   there is no provision for a slave server to be told who its master
   servers are.  It is expected that this protocol will be extended in
   the future to cover this case.  Therefore, at this time, the addition
   of SOA RRs is unsupported.  For similar reasons, deletion of SOA RRs
   is also unsupported.







Vixie, et. al.              Standards Track                    [Page 21]


RFC 2136                       DNS Update                     April 1997


   7.7. The prerequisite for specifying that a name own at least one RR
   differs semantically from QUERY, in that QUERY would return
   <NOERROR,ANCOUNT=0> rather than NXDOMAIN if queried for an RRset at
   this name, while UPDATE's prerequisite condition [Section 2.4.4]
   would NOT be satisfied.

   7.8. It is possible for a UDP response to be lost in transit and for
   a request to be retried due to a timeout condition.  In this case an
   UPDATE that was successful the first time it was received by the
   primary master might ultimately appear to have failed when the
   response to a duplicate request is finally received by the requestor.
   (This is because the original prerequisites may no longer be
   satisfied after the update has been applied.)  For this reason,
   requestors who require an accurate response code must use TCP.

   7.9. Because a requestor who requires an accurate response code will
   initiate their UPDATE transaction using TCP, a forwarder who receives
   a request via TCP must forward it using TCP.

   7.10. Deferral of SOA SERIAL autoincrements is made possible so that
   serial numbers can be conserved and wraparound at 2**32 can be made
   an infrequent occurance.  Visible (to DNS clients) SOA SERIALs need
   to differ if the zone differs.  Note that the Authority Section SOA
   in a QUERY response is a form of visibility, for the purposes of this
   prerequisite.

   7.11. A zone's SOA SERIAL should never be set to zero (0) due to
   interoperability problems with some older but widely installed
   implementations of DNS.  When incrementing an SOA SERIAL, if the
   result of the increment is zero (0) (as will be true when wrapping
   around 2**32), it is necessary to increment it again or set it to one
   (1).  See [RFC1982] for more detail on this subject.

   7.12. Due to the TTL minimalization necessary when caching an RRset,
   it is recommended that all TTLs in an RRset be set to the same value.
   While the DNS Message Format permits variant TTLs to exist in the
   same RRset, and this variance can exist inside a zone, such variance
   will have counterintuitive results and its use is discouraged.

   7.13. Zone cut management presents some obscure corner cases to the
   add and delete operations in the Update Section.  It is possible to
   delete an NS RR as long as it is not the last NS RR at the root of a
   zone.  If deleting all RRs from a name, SOA and NS RRs at the root of
   a zone are unaffected.  If deleting RRsets, it is not possible to
   delete either SOA or NS RRsets at the top of a zone.  An attempt to
   add an SOA will be treated as a replace operation if an SOA already
   exists, or as a no-op if the SOA would be new.




Vixie, et. al.              Standards Track                    [Page 22]


RFC 2136                       DNS Update                     April 1997


   7.14. No semantic checking is required in the primary master server
   when adding new RRs.  Therefore a requestor can cause CNAME or NS or
   any other kind of RR to be added even if their target name does not
   exist or does not have the proper RRsets to make the original RR
   useful.  Primary master servers that DO implement this kind of
   checking should take great care to avoid out-of-zone dependencies
   (whose veracity cannot be authoritatively checked) and should
   implement all such checking during the prescan phase.

   7.15. Nonterminal or wildcard CNAMEs are not well specified by
   [RFC1035] and their use will probably lead to unpredictable results.
   Their use is discouraged.

   7.16. Empty nonterminals (nodes with children but no RRs of their
   own) will cause <NOERROR,ANCOUNT=0> responses to be sent in response
   to a query of any type for that name.  There is no provision for
   empty terminal nodes -- so if all RRs of a terminal node are deleted,
   the name is no longer in use, and queries of any type for that name
   will result in an NXDOMAIN response.

   7.17. In a deep AXFR dependency graph, it has not historically been
   an error for slaves to depend mutually upon each other.  This
   configuration has been used to enable a zone to flow from the primary
   master to all slaves even though not all slaves have continuous
   connectivity to the primary master.  UPDATE's use of the AXFR
   dependency graph for forwarding prohibits this kind of dependency
   loop, since UPDATE forwarding has no loop detection analagous to the
   SOA SERIAL pretest used by AXFR.

   7.18. Previously existing names which are occluded by a new zone cut
   are still considered part of the parent zone, for the purposes of
   zone transfers, even though queries for such names will be referred
   to the new subzone's servers.  If a zone cut is removed, all parent
   zone names that were occluded by it will again become visible to
   queries.  (This is a clarification of [RFC1034].)

   7.19. If a server is authoritative for both a zone and its child,
   then queries for names at the zone cut between them will be answered
   authoritatively using only data from the child zone.  (This is a
   clarification of [RFC1034].)











Vixie, et. al.              Standards Track                    [Page 23]


RFC 2136                       DNS Update                     April 1997


   7.20. Update ordering using the SOA RR is problematic since there is
   no way to know which of a zone's NS RRs represents the primary
   master, and the zone slaves can be out of date if their SOA.REFRESH
   timers have not elapsed since the last time the zone was changed on
   the primary master.  We recommend that a zone needing ordered updates
   use only servers which implement NOTIFY (see [RFC1996]) and IXFR (see
   [RFC1995]), and that a client receiving a prerequisite error while
   attempting an ordered update simply retry after a random delay period
   to allow the zone to settle.

8 - Security Considerations

   8.1. In the absence of [RFC2137] or equivilent technology, the
   protocol described by this document makes it possible for anyone who
   can reach an authoritative name server to alter the contents of any
   zones on that server.  This is a serious increase in vulnerability
   from the current technology.  Therefore it is very strongly
   recommended that the protocols described in this document not be used
   without [RFC2137] or other equivalently strong security measures,
   e.g. IPsec.

   8.2. A denial of service attack can be launched by flooding an update
   forwarder with TCP sessions containing updates that the primary
   master server will ultimately refuse due to permission problems.
   This arises due to the requirement that an update forwarder receiving
   a request via TCP use a synchronous TCP session for its forwarding
   operation.  The connection management mechanisms of [RFC1035 4.2.2]
   are sufficient to prevent large scale damage from such an attack, but
   not to prevent some queries from going unanswered during the attack.

Acknowledgements

   We would like to thank the IETF DNSIND working group for their input
   and assistance, in particular, Rob Austein, Randy Bush, Donald
   Eastlake, Masataka Ohta, Mark Andrews, and Robert Elz.  Special
   thanks to Bill Simpson, Ken Wallich and Bob Halley for reviewing this
   document.














Vixie, et. al.              Standards Track                    [Page 24]


RFC 2136                       DNS Update                     April 1997


References

   [RFC1035]
      Mockapetris, P., "Domain Names - Implementation and
      Specification", STD 13, RFC 1035, USC/Information Sciences
      Institute, November 1987.

   [RFC1982]
      Elz, R., "Serial Number Arithmetic", RFC 1982, University of
      Melbourne, August 1996.

   [RFC1995]
      Ohta, M., "Incremental Zone Transfer", RFC 1995, Tokyo Institute
      of Technology, August 1996.

   [RFC1996]
      Vixie, P., "A Mechanism for Prompt Notification of Zone Changes",
      RFC 1996, Internet Software Consortium, August 1996.

   [RFC2065]
      Eastlake, D., and C. Kaufman, "Domain Name System Protocol
      Security Extensions", RFC 2065, January 1997.

   [RFC2137]
      Eastlake, D., "Secure Domain Name System Dynamic Update", RFC
      2137, April 1997.

Authors' Addresses

   Yakov Rekhter
   Cisco Systems
   170 West Tasman Drive
   San Jose, CA 95134-1706

   Phone: +1 914 528 0090
   EMail: yakov@cisco.com


   Susan Thomson
   Bellcore
   445 South Street
   Morristown, NJ 07960

   Phone: +1 201 829 4514
   EMail: set@thumper.bellcore.com






Vixie, et. al.              Standards Track                    [Page 25]


RFC 2136                       DNS Update                     April 1997


   Jim Bound
   Digital Equipment Corp.
   110 Spitbrook Rd ZK3-3/U14
   Nashua, NH 03062-2698

   Phone: +1 603 881 0400
   EMail: bound@zk3.dec.com


   Paul Vixie
   Internet Software Consortium
   Star Route Box 159A
   Woodside, CA 94062

   Phone: +1 415 747 0204
   EMail: paul@vix.com



































Vixie, et. al.              Standards Track                    [Page 26]
天蝎座女生配什么星座 什么是生僻字 岱是什么意思 人中发红是什么原因 普陀山求什么最灵
胸一大一小什么原因 见性成佛是什么意思 8月10号是什么星座 隽读什么 未免是什么意思
急性肠胃炎吃什么药好 凉栀是什么意思 搁浅了是什么意思 立秋什么意思 婴儿游泳有什么好处和坏处
腿不自觉的抖是什么原因 尿酸吃什么药最有效果 猫眼石是什么材质 角化型脚气用什么药 德比什么意思
月经期间吃什么补血hcv9jop3ns9r.cn 古力娜扎全名叫什么wuhaiwuya.com 外交部发言人什么级别hcv9jop5ns3r.cn 梦见办丧事是什么兆头hcv9jop5ns4r.cn 什么是富贵包hcv8jop4ns5r.cn
彩礼是什么意思hcv9jop0ns5r.cn spss是什么hcv7jop6ns2r.cn 吃什么可以拉肚子通便ff14chat.com 心发慌是什么原因hcv8jop5ns5r.cn 糖类抗原是什么hcv8jop2ns8r.cn
男生什么时候会有生理反应hcv7jop6ns4r.cn 梦见打麻将是什么意思hcv9jop0ns5r.cn 封建迷信是什么weuuu.com 91年的属什么生肖xinmaowt.com 高密度脂蛋白胆固醇偏高什么意思hcv9jop3ns6r.cn
易烊千玺属什么生肖hcv8jop9ns0r.cn 巴图是什么意思jasonfriends.com mi是什么单位hcv8jop5ns9r.cn 癫痫病是什么原因引起的hcv8jop2ns1r.cn 什么药吃了会产生幻觉hcv8jop6ns9r.cn
百度