<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
   <!ENTITY rfc1982 PUBLIC '' 'reference.RFC.1982.xml'>
 <!ENTITY rfc2119 PUBLIC '' 'reference.RFC.2119.xml'>
 <!ENTITY rfc3597 PUBLIC '' 'reference.RFC.3597.xml'>
 <!ENTITY rfc4034 PUBLIC '' 'reference.RFC.4034.xml'>
 <!ENTITY rfc1034 PUBLIC '' 'reference.RFC.1034.xml'>
 <!ENTITY rfc1035 PUBLIC '' 'reference.RFC.1035.xml'>
 <!ENTITY rfc4033 PUBLIC '' 'reference.RFC.4033.xml'>
 <!ENTITY rfc4035 PUBLIC '' 'reference.RFC.4035.xml'>
 <!ENTITY rfc5226 PUBLIC '' 'reference.RFC.5226.xml'>
 <!ENTITY rfc7344 PUBLIC '' 'reference.RFC.7344.xml'>
 <!ENTITY rfc1982 PUBLIC '' 'reference.RFC.1982.xml'>
 <!ENTITY rfc3597 PUBLIC '' 'reference.RFC.3597.xml'>
 <!ENTITY rfc5226 PUBLIC '' 'reference.RFC.5226.xml'>
 <!ENTITY rfc7344 PUBLIC '' 'reference.RFC.7344.xml'>
]>
<?rfc strict="yes" ?>
<?rfc toc="yes" ?>
<?rfc tocdepth="3" ?>
<?rfc symrefs="yes" ?>
<?rfc compact="yes" ?>
<?rfc subcompact="no" ?>
<?rfc rfcedstyle="yes"?>
<rfc submissionType="IETF" category="std" consensus="yes" ipr="trust200902" number="7477">
   <front>
   <title abbrev="Child-to-Parent Synchronization in DNS">
     Child-to-Parent Synchronization in DNS
   </title>



   <author initials="W.H." surname="Hardaker" fullname="Wes Hardaker">
     <organization>Parsons, Inc.</organization>
     <address>
	<postal>
	  <street>P.O. Box 382</street>
	  <city>Davis</city>
	  <region>CA</region>
	  <code>95617</code>
	  <country>US</country>
	</postal>
	<phone>+1 530 792 1913</phone>
       <email>ietf@hardakers.net</email>
     </address>
   </author>
   <date month="March" year="2015"/>
   <area>Operations and Management</area>
   <workgroup>DNSOP</workgroup>




   <abstract>
     <t>This document specifies how a child zone in the DNS can publish a
      record to indicate to a parental agent that the parental agent may
      copy and process certain records from the child zone.  The existence
      of the record and any change in its value can be monitored by a
      parental agent and acted on depending on local policy.</t>
   </abstract>

 </front>

 <middle>
   <section title="Introduction">

     <t>This document specifies how a child zone in the DNS (<xref
     target="RFC1034" /> <xref target="RFC1035" />) can publish a
     record to indicate to a parental agent (see <xref
     target="musts" /> for a definition of "parental agent")
     that it can copy and
     process certain records from the child zone.  The existence
     of the record and any change in its value can be monitored by a
     parental agent and acted on depending on local policy.</t>

     <t>Currently, some resource records (RRs) in a parent zone are typically
     expected to be in sync with the source data in the child's zone.
     The most common records that should match are the
     nameserver (NS) records and any necessary associated address
     records (A and AAAA), also known as "glue records".  These
     records are referred to as "delegation records".</t>

     <t>It has been challenging for operators of child DNS zones to
     update their delegation records within the parent's set in a
     timely fashion.  These difficulties may stem from operator
     laziness as well as from the complexities of maintaining a
     large number of DNS zones.  Having an automated mechanism for
     signaling updates will greatly ease the child zone operator's
     maintenance burden and improve the robustness of the DNS as a
     whole.</t>

     <t>This document introduces a new Resource Record Type (RRType)
     named "CSYNC" that indicates which delegation records published
     by a child DNS operator should be processed by a parental agent
     and used to update the parent zone's DNS data.</t>

     <t>This specification was not designed to synchronize DNSSEC
     security records, such as DS RRsets. For a solution to this
     problem, see the complementary solution <xref
     target="RFC7344" />, which is designed to
     maintain security delegation information. In addition, this
     specification does not address how to perform bootstrapping
     operations, including to get the required initial DNSSEC-secured
     operating environment in place.</t>

     <section title="Terminology Used in This Document" anchor="musts">

       <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL",
	  "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY",
	  and "OPTIONAL" in this document are to be interpreted as
	  described in <xref target="RFC2119"/>.</t>

	<t>Terminology describing relationships between the
	interacting roles involved in this document are defined in
	the following list: 

	<list style="hanging">
		<t hangText="Child:">  The entity on record that has the delegation of the domain
		from the parent</t>

		<t hangText="Parent:">  The domain in which the child is registered</t>

		<t hangText="Child DNS operator:">  The entity that maintains and publishes the
		zone information for the child DNS</t>

		<t hangText="Parental agent:">  The entity that the child has relationship with,
		to change its delegation information</t>

       </list>
	</t>
     </section>
   </section>

   <section title="Definition of the CSYNC RRType" anchor="definitions">
     <t>The CSYNC RRType contains, in its RDATA component, these
     parts: an SOA serial number, a set of flags, and a simple
     bit-list indicating the DNS RRTypes in the child that should be
     processed by the parental agent in order to modify the DNS
     delegation records within the parent's zone for the child DNS operator.
     Child DNS operators wanting a parental agent to perform the
     synchronization steps outlined in this document MUST publish a
     CSYNC record at the apex of the child zone.  Parental agent
     implementations MAY choose to query child zones for this record
     and process DNS record data as indicated by the Type Bit Map
     field in the RDATA of the CSYNC record.  How the data is
     processed is described in <xref
     target="data_processing" />.</t>

     <t>Parental agents MUST process the entire set of child data
     indicated by the Type Bit Map field (i.e., all record types
     indicated along with all of the necessary records to support
     processing of that type) or else parental agents MUST NOT make
     any changes to parental records at all.  Errors due to
     unsupported Type Bit Map bits, or otherwise nonpunishable data,
     SHALL result in no change to the parent zone's delegation
     information for the child.  Parental agents MUST ignore a
     child's CSYNC RDATA set if multiple CSYNC resource records are
     found; only a single CSYNC record should ever be present.</t>

     <t>The parental agent MUST perform DNSSEC validation (<xref
     target="RFC4033" /> <xref target="RFC4034" /> <xref
     target="RFC4035" />), of the CSYNC RRType data and MUST perform
     DNSSEC validation of any data to be copied from the child to the
     parent.  Parents MUST NOT process any data from any of these
     records if any of the validation results indicate anything
     other than "Secure" <xref target="RFC4034" /> or if any the
     required data cannot be successfully retrieved.</t>

     <section title="The CSYNC Resource Record Format">
	<section title="The CSYNC Resource Record Wire Format">
	<t>The CSYNC RDATA consists of the following fields:</t>
<figure>
<artwork>
                       1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3
   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                          SOA Serial                           |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |       Flags                   |            Type Bit Map       /
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  /                     Type Bit Map (continued)                  /
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
</figure>

       <section title="The SOA Serial Field">
	  <t>The SOA Serial field contains a copy of the 32-bit SOA
	  serial number from the child zone.  If the soaminimum flag
	  is set, parental agents querying children's authoritative
	  servers MUST NOT act on data from zones advertising an SOA
	  serial number less than this value.  See <xref
	  target="RFC1982" /> for properly implementing "less than"
	  logic.  If the soaminimum flag is not set, parental agents
	  MUST ignore the value in the SOA Serial field.  Clients can
	  set the field to any value if the soaminimum flag is unset,
	  such as the number zero.</t>

	  <t>Note that a child zone's current SOA serial number may be
	  greater than the number indicated by the CSYNC record.  A
	  child SHOULD update the SOA Serial field in the CSYNC record
	  every time the data being referenced by the CSYNC record is
	  changed (e.g., an NS record or associated address record is
	  changed).  A child MAY choose to update the SOA Serial field
	  to always match the current SOA Serial field.</t>
	  
	  <t>Parental agents MAY cache SOA serial numbers from
	  data they use and refuse to process data from zones older
	  than the last instance from which they pulled data.</t>

	  <t>Although Section 3.2 of <xref target="RFC1982" />
	  describes how to properly implement a less-than comparison
	  operation with SOA serial numbers that may wrap beyond the
	  32-bit value in both the SOA record and the CSYNC record, it
	  is important that a child using the soaminimum flag must not
	  increment its SOA serial number value more than 2^16 within
	  the period of time that a parent might wait between polling
	  the child for the CSYNC record.</t>

	</section>
	<section title="The Flags Field">
	  <t>The Flags field contains 16 bits of boolean flags that define
	  operations that affect the processing of the CSYNC record.
	  The flags defined in this document are as follows:
	  <list>
	    <t>0x00 0x01: "immediate"</t>
	    <t>0x00 0x02: "soaminimum"</t>
	  </list>
	  </t>
	  <t>The definitions for how the flags are to be used can be
	  found in <xref target="data_processing" />.</t>

	  <t>The remaining flags are reserved for use by future
	  specifications.  Undefined flags MUST be set to 0 by CSYNC
	  publishers.  Parental agents MUST NOT process a CSYNC record
	  if it contains a 1 value for a flag that is unknown to or
	  unsupported by the parental agent.</t>

       <section title="The Type Bit Map Field">
	  <t>The Type Bit Map field indicates the record types to be
	  processed by the parental agent, according to the procedures
	  in <xref target="data_processing" />.  The Type Bit
	  Map field is encoded in the same way as the Type Bit Map
	  field of the NSEC record, described in <xref
	  target="RFC4034" />, Section 4.1.2. If a bit has been set
	  that a parental agent implementation does not understand,
	  the parental agent MUST NOT act upon the record.
	  Specifically, a parental agent must not simply copy the data,
	  and it must understand the semantics associated with a bit in
	  the Type Bit Map field that has been set to 1.
	  </t>
	</section>
	</section>
	</section>
     <section title="The CSYNC Presentation Format">
	<t>The CSYNC presentation format is as follows:
	<list>
	  <t>The SOA Serial field is represented as an integer.</t>
	  <t>The Flags field is represented as an integer.</t>
	  <t>The Type Bit Map field is represented as a sequence of RRType mnemonics.  When the mnemonic is not known, the TYPE
	  representation described in <xref target="RFC3597" />,
	  Section 5, MUST be used.  Implementations that support
	  parsing of presentation format records SHOULD be able to
	  read and understand these TYPE representations as well.</t>
	</list>
	</t>
     </section>

     <section title="CSYNC RR Example">
	<t>The following CSYNC RR shows an example entry for
	"example.com" that indicates the NS, A, and AAAA bits are set
	and should be processed by the parental agent for example.com.
	The parental agent should pull data only from a zone using a
	minimum SOA serial number of 66 (0x42 in hexadecimal).

<figure>
<artwork>
example.com. 3600 IN CSYNC 66 3 A NS AAAA
</artwork>
</figure>
</t>

       <t>The RDATA component of the example CSYNC RR would be
	encoded on the wire as follows:

<figure>
<artwork>
 0x00 0x00 0x00 0x42             (SOA Serial)
 0x00 0x03                       (Flags = immediate | soaminimum)
 0x00 0x04 0x60 0x00 0x00 0x08   (Type Bit Map)
</artwork>
</figure>
</t>

     </section>
   </section>
</section>
   <section title="CSYNC Data Processing" anchor="data_processing">
     <t>The CSYNC record and associated data must be processed as an
     "all or nothing" operation set.  If a parental agent fails to
     successfully query for any of the required records, the whole
     operation MUST be aborted.  (Note that a query resulting in "no
     records exist" as proven by NSEC or NSEC3 is to be considered
     successful).
     </t>

     <t>Parental agents MAY:
     <list>
	<t>Process the CSYNC record immediately if
	the "immediate" flag is set.  If the "immediate" flag is not
	set, the parental agent MUST NOT act until the zone
	administrator approves the operation through an out-of-band
	mechanism (such as through pushing a button via a web interface).</t>

	<t>Choose not to process the CSYNC record immediately, even if the
         "immediate" flag is set. That is, a parental agent might require
         the child zone administrator approve the operation through an
         out-of-band mechanism (such as through pushing a button via a web
         interface).</t>
     </list>
     </t>
     <t>Note: how the approval is done out of band is outside the
     scope of this document and is implementation specific to
     parental agents.</t>

     <section title="Processing Procedure">
	<t>The following shows a sequence of steps that SHOULD be used
	when collecting and processing CSYNC records from a child
	zone.  Because DNS queries are not allowed to contain more
	than one "question" at a time, a sequence of requests is
	needed.  When processing a CSYNC transaction request, all DNS
	queries should be sent to a single authoritative name server
	for the child zone.  To ensure a single host is being
	addressed, DNS over TCP SHOULD be used to avoid conversing
	with multiple nodes at an anycast address.
	<list style="numbers">
	  <t>Query for the child zone's SOA record</t>
	  <t>Query for the child zone's CSYNC record</t>
	  <t>Query for the child zone's data records, as required by
	  the CSYNC record's Type Bit Map field
	  <list style="symbols">
		  <t>Note: if any of the resulting records being
		  queried are not authoritative within the child zone
		  but rather in a grandchild or deeper, SOA record
		  queries must be made for the grandchildren.  This
		  will require the parental agent to determine where
		  the child/grandchild zone cuts occur.  Because of
		  the additional operational complexity, parental
		  agents MAY choose not to support this protocol with
		  children making use of records that are
		  authoritative in the grandchildren.</t>
	  </list>
	</t>
	  <t>Query for the collected SOA records again, starting with
	  the deepest and ending with the SOA of the child's.</t>
	</list>
	</t>
	<t>If the SOA records from the first, middle, and last steps
	for a given zone have different serial numbers (for example,
	because the zone was edited and republished during the
	interval between steps 1 and 4), then the CSYNC record
	obtained in the second set SHOULD NOT be processed (rapidly
	changing child zones may need special consideration or
	processing).  The operation MAY be restarted or retried in the
	future.</t>

	<t>If the soaminimum flag is set and the
       SOA serial numbers are equal but less than the CSYNC
	record's SOA Serial field <xref target="RFC1982" />,
	the record MUST NOT be processed.
	If state is being kept by the parental agent and the SOA
	serial number is less than the last time a CSYNC record was
	processed, this CSYNC record SHOULD NOT be processed.
	Similarly, if state is being kept by the parental agent and
	the SOA Serial field of the CSYNC record is less than the SOA
	Serial field of the CSYNC record from last time, then this
	CSYNC record SHOULD NOT be processed.</t>

	<t>If a failure of any kind occurs while trying to obtain any
	of the required data, or if DNSSEC fails to validate all of
	the data returned for these queries as "secure", then this
	CSYNC record MUST NOT be processed.</t>

	<t>See the "Operational Consideration" section (<xref
	target="operational" />) for additional guidance about
	processing.</t>
     </section>

     <section title="CSYNC Record Types">

     <t>This document defines how the following record types may be
     processed if the CSYNC Type Bit Map field indicates they are to
     be processed.</t>

     <section title="The NS type" anchor="ns">
	<t>The NS type flag indicates that the NS records from the
	child zone should be copied into the parent's delegation
	information records for the child.</t>

	<t>NS records found within the child's zone should be copied
	verbatim (with the exception of the Time to Live (TTL) field, for which the
	parent MAY want to select a different value) and the result
	published within the parent zone should be a
	set of NS records that match exactly. If the child has published a new NS record
	within their set, this record should be added to the parent
	zone.  Similarly, if NS records in the parent's delegation
	records for the child contain records that have been removed
	in the child's NS set, then they should be removed in the
	parent's set as well.</t>

	<t>Parental agents MAY refuse to perform NS updates if the
	replacement records fail to meet NS record policies required
	by the parent zone (e.g., "every child zone must have at least
	two NS records").  Parental agents MUST NOT perform NS updates
	if there are no NS records returned in a query, as verified by
	DNSSEC denial-of-existence protection.  This situation should
	never happen unless the child nameservers are misconfigured.</t>

       <t>Note that it is permissible for a child's nameserver to
       return a CSYNC record that removes the queried nameserver
       itself from the future NS or address set.</t>
     </section>
     <section title="The A and AAAA Types">
	<t>The A and AAAA type flags indicates that the A and AAAA
	address glue records for in-bailiwick NS records within the
	child zone should be copied verbatim (with the exception of
	the TTL field, for which the parent MAY want to select a
	different value) into the parent's delegation information.</t>

	<t>Queries should be sent by the parental agent to determine
	the A and AAAA record addresses for each NS record within a NS
	set for the child that are in bailiwick.</t>

	<t>Note: only the matching types should be
	queried.  For example, if the AAAA bit has not been set, then the
	AAAA records (if any) in the parent's delegation should remain
	as is.  If a given address type is set and the child's zone
	contains no data for that type (as proven by appropriate NSEC
	or NSEC3 records), then the result in the parent's delegation
	records for the child should be an empty set.  However, if the
	end result of processing would leave no glue records present
	in the parent zone for any of the of the in-bailiwick NS
	records, then the parent MUST NOT update the glue address
	records.  That is, if the result of the processing would leave no
	in-bailiwick A or AAAA records when there are in-bailiwick NS
	records, then processing of the address records cannot happen
	as it would leave the parent/child relationship without any
	address linkage.
	</t>

	<t>The procedure for querying for A and AAAA records MUST
	occur after the procedure, if required, for querying for NS
	records as defined in <xref target="ns" />.  This
	ensures that the right set of NS records is used as provided by
	the current NS set of the child.  That is, for CSYNC records that
	have the NS bit set, the NS set used should be the one pulled
	from the child while processing the CSYNC record.  For CSYNC
	records without the NS bit set, the existing NS records within
	the parent should be used to determine which A and/or AAAA
	records to update.</t>
     </section>
   </section>
   </section>
   <section title="Operational Considerations" anchor="operational">
     <t>There are a number of important operational aspects to consider when
     deploying a CSYNC RRType.</t>
     <section title="Error Reporting">
	<t>There is no inline mechanism for a parental agent to report
	errors to operators of child zones.  Thus, the only error
	reporting mechanisms must be out of band, such as through a
	web console or over email.  Parental agents should, at a
	minimum, at least log errors encountered when processing CSYNC
	records.  Child operators utilizing the "immediate" flag that
	fail to see an update within the parental agent's specified
	operational window should access the parental agent's error
	logging interface to determine why an update failed to be
	processed.</t>
     </section>

     <section title="Child Nameserver Selection">
     <t>Parental agents will need to poll child nameservers in search
     of CSYNC records and related data records.</t>

     <t>Parental agents MAY perform best-possible verification by
     querying all NS records for available data to determine which
     has the most recent SOA and CSYNC version (in an ideal world,
     they would all be equal, but this is not possible in practice due
     to synchronization delays and transfer failures).</t>

     <t>Parental agents may offer a configuration interface to allow
     child operators to specify which nameserver should be considered
     the master to send data queries, too.  Note that this master
     could be a different nameserver than the publicly listed
     nameservers in the NS set (i.e., it may be a "hidden
     master").</t>

     <t>Parental agents with a large number of clients may choose to
     offer a programmatic interface to let their children indicate
     that new CSYNC records and data are available for polling rather
     than polling every child on a frequent basis.</t>

     <t>Children that wish to phase out a nameserver will need to
     publish the CSYNC record to remove the nameserver and then
     wait for the parental agent to process the published record
     before turning off the service.  This is required because the
     child cannot control which nameserver in the existing NS set
     the parental agent may choose to query when performing CSYNC
     processing.</t>
     </section>

     <section title="Out-of-Bailiwick NS Records">
	<t>When a zone contains NS records where the domain name
	pointed at does not fall within the zone itself, there is no
	way for the parent to safely update the associated glue
	records.  Thus, the child DNS operator MAY indicate that the
	NS records should be synchronized, and MAY set any glue record
	flags (A, AAAA) as well, but the parent will only update those
	glue records that are below the child's delegation point.</t>

	<t>
	Children deploying NS records pointing to domain names within
	their own children (the "grandchildren") SHOULD ensure the
	grandchildren's associated glue records are properly set
	before publishing the CSYNC record.  That is, it is imperative
	that proper communication and synchronization exist
	between the child and the grandchild.
	</t>
     </section>

     <section title="Documented Parental Agent Type Support">
	<t>Parental agents that support processing CSYNC records
	SHOULD publicly document the following minimum processing
	characteristics:
	<list>
	  <t>The fact that they support CSYNC processing</t>
	  <t>The Type Bit Map bits they support</t>
	  <t>The frequency with which they poll clients (which may
	  also be configurable by the client)</t>
	  <t>If they support the "immediate" flag</t>
	  <t>If they poll a child's
	  single nameserver, a configured list of
	  nameservers, or all of the advertised nameservers when
	  querying records</t>
	  <t>If they support SOA serial number caching to avoid issues
	  with regression and/or replay</t>
	  <t>Where errors for CSYNC processing are published</t>
	  <t>If they support sending queries to a "hidden master"</t>
	</list>
     </t>
     </section>
     <section title="Removal of the CSYNC Records">
	      <t>Children MAY remove the CSYNC record upon noticing
	      that the parent zone has published the required records,
	      thus eliminating the need for the parent to continually
	      query for the CSYNC record and all corresponding
	      records.  By removing the CSYNC record from the child
	      zone, the parental agent will only need to perform the
	      query for the CSYNC record and can stop processing when
	      it finds it missing.  This will reduce resource usage by
	      both the child and the parental agent.</t>
     </section>
     <section title="Parent/Child/Grandchild Glue Synchronization">
	      <t>When a child needs to publish a CSYNC record that
	      synchronizes NS and A/AAAA glue records and the NS
	      record is actually pointing to a child of the child (a
	      grandchild of the parent), then it is critical that the
	      glue records in the child point to the proper real
	      addresses records published by the grandchild.  It is
	      assumed that if a child is using a grandchild's
	      nameserver that they must be in careful synchronization.
	      Specifically, this specification requires this to be the
	      case.</t>
     </section>
   </section>
   <section title="Security Considerations">
     <t>This specification requires the use of DNSSEC in order to
     determine that the data being updated was unmodified by
     third parties.  Parental agents implementing CSYNC processing
     MUST ensure all DNS transactions are validated by DNSSEC as
     "secure".  Clients deploying CSYNC MUST ensure their zones are
     signed, current and properly linked to the parent zone with a DS
     record that points to an appropriate DNSKEY of the child's
     zone.</t>
     <t>This specification does not address how to perform
     bootstrapping operations to get the required initial
     DNSSEC-secured operating environment in place.  Additionally,
     this specification was not designed to synchronize DNSSEC
     security records, such as DS pointers, or the CSYNC record
     itself. Thus, implementations of this protocol MUST NOT use it
     to synchronize DS records, DNSKEY materials, CDS records,
     CDNSKEY records, or CSYNC records. Similarly, future documents
     extending this protocol MUST NOT offer the ability to
     synchronize DS, DNSKEY materials, CDS records, CDNSKEY records,
     or CSYNC records. For such a solution, please see the
     complimentary solution <xref
     target="RFC7344" /> for
     maintaining security delegation information.</t>
     <t>To ensure that an older CSYNC record making use of the
     soaminimum flag cannot be replayed to revert values, the SOA
     serial number MUST NOT be incremented by more than 2^16
     during the lifetime of the signature window of the associated
     RRSIGs signing the SOA and CSYNC records.  Note that this is
     independent of whether or not the increment causes the 2^32 bit
     serial number field to wrap.</t>
   </section>
   <section title="IANA Considerations">
     <t>This document defines a new DNS Resource Record Type, named
     "CSYNC". The IANA has assigned a code point from the
     "Resource Record (RR) TYPEs" sub-registry of the "Domain Name
     System (DNS) Parameters" registry
     (http://www.iana.org/assignments/dns-parameters)
     for this record.

   <figure>
   <artwork>
  TYPE    Value    Meaning                           Reference
  -----   ------   --------------------------        -----------
  CSYNC   62       Child-to-Parent Synchronization   [RFC7477]
   </artwork>
   </figure>
         </t>

   <t>The IANA has created and maintains a sub-registry
   (the "Child Synchronization (CSYNC) Flags" registry) of the
   "Domain Name System (DNS) Parameters" registry.  The initial values
   for this registry are below.</t>

   <t>A "Standards Action" <xref target="RFC5226" /> is required for
   the assignment of new flag value.</t>

   <t>This registry holds a set of single-bit "Flags" for use in the
   CSYNC record within the 16-bit Flags field. Thus, a maximum of 16
   flags may be defined.</t>

   <t>The initial assignments in this registry are:

   <figure>
   <artwork>
  Bit      Flag        Description               Reference
  ----     ------      -------------             -----------
  Bit 0    immediate   Immediately process this  [RFC7477],
                       CSYNC record.             Section 3

  Bit 1    soaminimum  Require a SOA serial      [RFC7477],
                       number greater than the   Section 2.1.1.1
                       one specified. 
   </artwork>
   </figure>
   </t>


   </section>

   </middle>
 <back>
   <references title="Normative References">
     &rfc1982;
     &rfc2119;
     &rfc3597;
     &rfc4034;
   </references>
   <references title="Informative References">
     &rfc1034;
     &rfc1035;
     &rfc4033;
     &rfc4035;
     &rfc5226;
     &rfc7344;
   </references>

   <section title="Acknowledgments" numbered="no">
     <t>A thank you goes out to Warren Kumari and Olafur Gudmundsson,
     whose work on the CDS record type helped inspire the work in
     this document, as well as the definition for the "parental
     agent" definition and significant contributions to the text.  A
     thank you also goes out to Ed Lewis, with whom the author held
     many conversations about the issues surrounding
     parent/child relationships and synchronization.  Much of the
     work in this document is derived from the careful existing
     analysis of these three esteemed colleagues.  Thank you to the
     following people who have contributed text or detailed reviews
     to the document (in no particular order): Matthijs Mekking, Petr
     Spacek, JINMEI Tatuya, Pete Resnick, Joel Jaeggli, Brian Haberman,
     Warren Kumari, Adrian Farrel, Alia Atlas, Barry Leiba, Richard
     Barnes, Stephen Farrell, and Ted Lemon.  Lastly, the DNSOP
     WG chairs Tim Wicinski and Suzanne Woolf have been a
     tremendous help in getting this document moving forward to
     publication.</t>


     <t>A special thanks goes to Roy Arends, for taking the "bite out
     of that hamburger" challenge while discussing this document.</t>

<t>A similar project, independently designed and developed, was
   conducted by ep.net called "Child Activated DNS Refresh".</t>
   </section>
 </back>
</rfc>
