<?xml version="1.0" encoding="US-ASCII"?>
<!-- This template is for creating an Internet Draft using xml2rfc,
     which is available here: http://xml.resource.org. -->
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!-- One method to get references from the online citation libraries.
     There has to be one entity for each item to be referenced.
     An alternate method (rfc include) is described in the references. -->
<!ENTITY RFC2119 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC3552 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3552.xml">
<!ENTITY RFC2136 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2136.xml">
<!ENTITY RFC4701 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4701.xml">
<!ENTITY RFC3315 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3315.xml">
<!ENTITY RFC3633 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3633.xml">
<!ENTITY RFC4703 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4703.xml">
<!ENTITY RFC4704 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4704.xml">
<!ENTITY RFC3736 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3736.xml">
<!ENTITY RFC5007 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5007.xml">
<!ENTITY RFC5460 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5460.xml">
<!ENTITY RFC5970 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5970.xml">
<!ENTITY I-D.narten-iana-considerations-rfc2434bis SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.narten-iana-considerations-rfc2434bis.xml">
]>
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<!-- used by XSLT processors -->
<!-- For a complete list and description of processing instructions (PIs),
     please see http://xml.resource.org/authoring/README.html. -->
<!-- Below are generally applicable Processing Instructions (PIs) that most I-Ds
     might want to use.
     (Here they are set differently than their defaults in xml2rfc v1.32) -->
<?rfc rfcedstyle="yes"?> 
<?rfc toc="yes"?>
<?rfc tocdepth="4"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes" ?>
<?rfc compact="yes" ?>
<?rfc subcompact="no" ?>

<rfc number="6853" category="bcp" seriesNo="180" submissionType="IETF" consensus="yes" ipr="trust200902">
  <front>
    <title abbrev="DHCPv6 Redundancy Considerations">DHCPv6 Redundancy
    Deployment Considerations</title>

    <author fullname="John Jason Brzozowski" initials="J.B."
            surname="Brzozowski">
      <organization>Comcast Cable Communications</organization>
      <address>
        <postal>
          <street>1306 Goshen Parkway</street>
          <city>West Chester</city>
          <region>PA</region>
          <code>19380</code>
          <country>USA</country>
        </postal>
        <phone>+1-609-377-6594</phone>
        <email>john_brzozowski@cable.comcast.com</email>
      </address>
    </author>

    <author fullname="Jean-Francois Tremblay" initials="J.F."
            surname="Tremblay">
      <organization>Videotron G.P.</organization>
      <address>
        <postal>
          <street>612 Saint-Jacques</street>
          <city>Montreal</city>
          <region>Quebec</region>
          <code>H3C 4M8</code>
          <country>Canada</country>
        </postal>
        <email>jf@jftremblay.com</email>
      </address>
    </author>

    <author fullname="Jack Chen" initials="J.C." surname="Chen">
      <organization>Time Warner Cable</organization>
      <address>
        <postal>
          <street>13820 Sunrise Valley Drive</street>
          <city>Herndon</city>
          <region>VA</region>
          <code>20171</code>
          <country>USA</country>
        </postal>
        <email>jack.chen@twcable.com</email>
      </address>
    </author>

    <author fullname="Tomasz Mrugalski" initials="T.M." surname="Mrugalski">
      <organization abbrev="ISC">Internet Systems Consortium,
      Inc.</organization>

      <address>
        <postal>
          <street>950 Charter St.</street>
          <city>Redwood City</city>
          <region>CA</region>
          <code>94063</code>
          <country>USA</country>
        </postal>

        <phone>+1 650 423 1345</phone>

        <email>tomasz.mrugalski@gmail.com</email>

        <!-- uri and facsimile elements may also be added -->
      </address>
    </author>

    <date month="February" year="2013"/>

    <!-- Meta-data Declarations -->

    <area>Internet</area>

    <workgroup>Dynamic Host Configuration (DHC)</workgroup>

    <!-- WG name at the upperleft corner of the doc, IETF is fine for
	 individual submissions.  If this element is not present, the
	 default is "Network Working Group", which is used by the RFC
	 Editor as a nod to the history of the IETF. -->

    <keyword>DHCPv6</keyword>
    <keyword>Redundancy</keyword>
    <keyword>Deployment Considerations</keyword>

    <!-- Keywords will be incorporated into HTML output files in a
	 meta tag but they have no effect on text or nroff output. If
	 you submit your draft to the RFC Editor, the keywords will be
	 used for the search engine. -->

    <abstract>
      <t>This document provides information for those wishing to use DHCPv6 to
      support their deployment of IPv6. In particular, it discusses the
      provision of semi-redundant DHCPv6 services.</t>
    </abstract>
  </front>

  <middle>
    <section title="Introduction">
      <t>Redundancy and high availability for many components of IPv6
      infrastructure are desirable and, in some deployments, mandatory.
      Unfortunately, for DHCPv6 there is currently no standards-based failover
      or redundancy protocol. An interim solution is to provide semi-redundant
      services: this document specifies an architecture by which this can be
      achieved.</t>
    </section>

    <section anchor="assumptions" title="Scope and Assumptions">
      <t>DHCPv6 redundancy may be useful in a wide range of scenarios.
      Although the architecture suggested in this document is able to be used
      in a wide range of networks, just two deployment environments are
      discussed here: service provider and enterprise network. All other
      scenarios may be generalized to one of these two cases.</t>

      <t>In the rest of the document, the following assumptions are made with
      regards to the existing DHCPv6 infrastructure, regardless of the
      environment being considered: <list style="numbers">
          <t>At least two DHCPv6 servers provide a service to the same
          clients. (The architecture does not limit the number of servers, and
          more may be provided if required.)</t>

          <t>The existing DHCPv6 servers will not directly communicate or
          interact with one another in the assignment of IPv6 addresses and the
          provision of configuration information to requesting clients.</t>

          <t>DHCPv6 clients are instructed to run stateful DHCPv6 to request
          at least one IPv6 address. Configuration information and other
          options (such as a delegated IPv6 prefix) may also be requested as
          part of the stateful DHCPv6 operation.</t>

          <t>Clients participating in DHCPv6 configuration have to properly
          handle the preference option, including the processing of ADVERTISE
          messages as required by <xref target="RFC3315"/>.</t>

          <t>A DHCPv6 server failure does not imply a failure of any other
          network service or protocol (e.g., TFTP servers). The redundancy of
          any additional services configured by means of DHCPv6 are outside
          the scope of this document. (For example, a single DHCPv6 server may
          configure multiple TFTP servers, with preference for each TFTP
          server, as specified in <xref target="RFC5970"/>.)</t>
        </list></t>

      <t>While the techniques described in this document provide some aspects
      of redundancy, it should be noted that complete redundancy will not be
      available until a DHCPv6 failover protocol is standardized. The
      requirements for such a protocol are described in <xref target="FAILREQ"/>.</t>

      <section title="Applicability to Prefix Delegation">
        <t>The same approaches discussed in this document can potentially be
        applied to prefix delegation (PD) <xref target="RFC3633"/>. One obvious
        drawback of using a split prefix model for PD is that use of resources is
        doubled. It should be noted that such applicability remains theoretical
        and was not investigated thoroughly during work on this document. As
        such, the applicability of presented mechanisms to the prefix delegation
        is outside of the scope of this document.</t>
      </section>
    </section>

    <section title="Service Provider Deployment">
      <t>The service provider model represents cases where the network and
      end-user devices may be administered by separate entities.</t>

      <t>The DHCPv6 clients include cable modems, customer gateways or home
      routers, and end-user devices: these are collectively referred to as
      Customer Premises Equipment (CPE). In some cases hosts may be configured
      directly using the service provider DHCPv6 infrastructure; in others,
      configuration may be via an intermediate router that is being
      configured by the provider DHCPv6 infrastructure. Either way, the
      service provider DHCPv6 infrastructure may be semi-redundant.</t>

      <t>In discussing this environment, additional assumptions to those
      listed in <xref target="assumptions"/> have been made: 

<list style="numbers">

          <t>The service provider edge routers and access routers are IPv6
enabled when required. These routers are, for example, CMTS (Cable Modem
             Termination System) for cable or DSLAM/BRAS (Digital Subscriber
Link Access Multiplexer / Broadband Remote Access Server) for DSL.</t>

          <t>CPE devices are instructed to perform stateful DHCPv6 to request
          at least one IPv6 address, delegated prefix, and/or configuration
          information. CPE devices may also be instructed to use stateless
          DHCPv6 <xref target="RFC3736"/> to acquire configuration information
          only, a situation that assumes the IPv6 address and prefix
          information has been acquired using other means.</t>

          <t>The primary application of this architecture is for native IPv6
          services. (Use and applicability to transition mechanisms are out of
          scope for this document.)</t>

          <t>The CPE devices must implement a stateful DHCPv6 client <xref
          target="RFC3315"/>. Support for DHCPv6 prefix delegation <xref
          target="RFC3633"/> or stateless DHCPv6 <xref target="RFC3736"/> may
          also be implemented.</t>
        </list></t>
    </section>

    <section title="Enterprise Deployment">
      <t>The enterprise deployment environment covers cases where end-user
      devices are direct consumers of the configuration provided by the DHCP servers without any
      intermediate devices (as was the case with home routers used in the
      service provider environment). Although enterprise IPv6 environments
      quite often use or require DHCPv6 relay agents, the relays do not
      influence or process the configuration in any way and merely act as a
      transport mechanism.</t>

      <t>The additional assumptions made for this model beyond those listed in
      <xref target="assumptions"/> are: <list style="numbers">
          <t>DHCPv6 clients are hosts and are considered end nodes, i.e., they
          consume provided configuration and do not use it to provision other
          devices. Examples of such clients include desktop computers,
          laptops, printers, other typical office equipment, and some mobile
          devices.</t>

          <t>The DHCPv6 clients generally do not require the assignment of an
          IPv6 prefix delegation, and as such they typically do not support
          DHCPv6 prefix delegation <xref target="RFC3633"/>.</t>
        </list></t>
    </section>

    <section title="Protocol Requirements">
      <t>Implementation of the architecture for semi-redundant DHCPv6 services
      using existing protocols requires the component DHCPv6 clients,
      relays, and servers to have certain capabilities. The following sections
      describe the requirements of such devices.</t>

      <section title="DHCPv6 Servers">
        <t>This interim architecture requires the DHCPv6 servers that are
        <xref target="RFC3315"/> compliant and support the necessary options.
        Support for stateful DHCPv6 and the DHCPv6 preference option <xref target="RFC3315"/> is essential to the architecture. For deployment
        scenarios where IPv6 prefix delegation is needed, DHCPv6 servers must
        support DHCPv6 prefix delegation as defined by <xref
        target="RFC3633"/>. Furthermore, the DHCPv6 servers must support <xref
        target="RFC3736"/> if stateless DHCPv6 is used.</t>
      </section>

      <section title="DHCPv6 Relays">
        <t>DHCPv6 relay agents must be <xref target="RFC3315"/> compliant and
        must support the ability to relay DHCPv6 messages to more than one
        destination.</t>

      </section>

      <section title="DHCPv6 Clients">
        <t>DHCPv6 clients are required to be compliant with <xref
        target="RFC3315"/> and support the necessary options required to
        support the solution depending on the mode of operations and desired
        behavior: <list style="symbols">
            <t>If prefix delegation is required, DHCPv6 clients must support
            DHCPv6 prefix delegation as defined in <xref
            target="RFC3633"/>.</t>

            <t>Clients must support the acquisition of at least one IPv6
            address and configuration information using stateful DHCPv6 as
            specified by <xref target="RFC3315"/>.</t>

            <t>Stateless DHCPv6 <xref target="RFC3736"/> may also be
            supported.</t>

            <t>DHCPv6 clients must recognize and adhere to the processing of
            the advertised DHCPv6 preference option sent by the DHCPv6
            servers.</t>
          </list></t>
      </section>
    </section>

    <section title="Deployment Models">

      <t>At the time of writing, a standards-based DHCPv6 redundancy protocol
      is not available. In the interim solution presented here, existing
      DHCPv6 server implementations are used as-is to provide best effort,
      semi-redundant DHCPv6 services. The behavior of these services will, in
      part, be governed by the configuration of each of the servers. Various
      aspects of the DHCPv6 protocol <xref target="RFC3315"/> are used to
      yield the desired behavior, although there is no inter-server or
      inter-process communication to coordinate DHCPv6 events and/or
      activities.</t>

      <t>The solution does not impact DHCPv4, so DHCP services for both
      IPv4 and IPv6 may operate simultaneously on the same physical server(s)
      or may operate on different ones.</t>

      <t>This section defines three semi-redundant models. Although /64
      prefixes are used throughout the following sections as examples, other
      prefix lengths may be used as well.</t>

      <section anchor="split-prefixes" title="Split Prefixes">
        <t>In the split prefixes model, each DHCPv6 server is configured with
        a unique, non-overlapping pool derived from the /64 prefix deployed
        for use within an IPv6 network. For example, distributing an allocated
        /64 such as 2001:db8:1:1::/64 between two servers would require
        that it be split into two /65 pools, 2001:db8:1:1:0000::/65 and
        2001:db8:1:1:8000::/65.</t>

        <t>Both DHCPv6 servers are simultaneously active and operational, and
        each allocates IPv6 addresses from the corresponding pools per device
        class. The address allocation is governed largely through the use of
        the DHCPv6 preference option, so the server with the higher preference
        value is always preferred. Additional proprietary mechanisms can be
        used to further enforce the favoring of one DHCP server over another.
        An example of such a scenario is presented in <xref
        target="example-1"/>.</t>

        <t>It is important to note that, over time, it is possible that
        bindings will be unevenly distributed amongst the DHCPv6 servers, and
        no one server will be authoritative for all of them.</t>

        <t>As defined in <xref target="RFC3315"/>, a DHCPv6 ADVERTISE message
        with a preference option of 255 is an indicator to a DHCPv6 client to
        immediately begin a client-initiated message exchange by transmitting
        a REQUEST message to the server that sent the ADVERTISE.
        Alternatively, a DHCPv6 ADVERTISE message with no preference option
        (or one with a value less than 255) is an indicator to the client that
        it must wait for subsequent ADVERTISE messages before choosing the
        server to which is responds, as described in Section 17.1.2 of <xref
        target="RFC3315"/>.</t>

        <t>In the event of a DHCPv6 server failure, it is desirable (but not
        essential) for a server other than the server that originally
        responded to be able to rebind the client's lease. Given the proposed
        architecture, the remaining active DHCPv6 server will have a different
        address pool configured, making it technically incorrect 
        to rebind the client in its current state. Ultimately, the rebinding
        will fail and the client will acquire a new binding from the pool
        configured in the active server.</t>

        <t>To reduce the possibility that a client or some other element on
        the network will experience a disruption in service or access to
        relevant binding data, shorter values for T1, T2, valid, and preferred
        lifetimes can be used. The values for the last three can be adjusted
        or configured to minimize service disruption. Ideally, setting them
        equal (or nearly equal) can be used to trigger a DHCPv6 client to
        reacquire the IPv6 address, prefix, and/or configuration information
        almost immediately after the rebinding fails. It is important to note,
        however, that shorter values will create an additional load on the
        DHCPv6 servers.</t>

        <t>While using a split prefix configuration model, the dynamic updates
        to DNS <xref target="RFC2136"/> can be coordinated to ensure that the
        DNS is properly updated with the current binding information.
        Challenges arise with regards to the update of the PTR resource record
        for IPv6 addresses since the DNS information may need to be
        overwritten in a failure condition. The use of split prefixes
        enables the differentiation of bindings and binding timing to
        determine which represents the current state. This becomes
        particularly important when DHCPv6 Leasequery <xref target="RFC5007"/>
        and/or DHCPv6 Bulk Leasequery <xref target="RFC5460"/> are used to
        determine lease or binding state.</t>

        <t>Finally, a benefit of this scheme is that the use of separate pools
        per DHCPv6 server makes failure conditions more obvious and
        detectable.</t>


        <figure align="center" anchor="example-1" title="Split prefixes approach">
          <artwork align="center"><![CDATA[
+----------+                 +-----------+
| Client 1 +-\            +--+ Server 1  |
+----------+  \           |  +-----------+
               \          |
                \         |
                 \        |
+----------+      \       |  +-----------+
| Client 2 +--------------+--| Server 2  |
+----------+      /       |  +-----------+
      .          /        .
      .         /         .
      .        /          .
+----------+  /           .  +-----------+
| Client N +-/            .--| n+1 Server|
+----------+                 +-----------+

Server 1
========
Prefix = 2001:db8:1:1::/64
Pool = 2001:db8:1:1:0000::/65
Preference = 255

Server 2
========
Prefix = 2001:db8:1:1::/64
Pool = 2001:db8:1:1:8000::/65
Preference = 0

Server n+1
==========
Prefix, pool, and preference would
vary based on prefix definition
]]></artwork>
        </figure>
      </section>

      <section title="Multiple Unique Prefixes">
        <t>In the multiple prefix model, each DHCPv6 server is configured with
        a unique, non-overlapping prefix. A /64 pool equal to the prefix is
        configured on each server. For example, the 2001:db8:1:1::/64 pool
        would be assigned to a single DHCPv6 server for allocation to clients
        equal to its parent prefix 2001:db8:1:1::/64. The second DHCPv6
        server could use 2001:db8:1:5::/64 as both pool and prefix. This
        would be repeated for each active DHCP server. An example of this
        scenario is presented in <xref target="example-2"/>.</t>

        <t>The major difference between the split prefixes approach and the
        multiple unique prefixes approach is that the latter does not require
        prefixes to be adjacent. In fact, the split prefixes approach can be
        considered a special case of the multiple unique prefixes
        approach.</t>

        <t>This approach uses a unique prefix and ultimately a single pool per DHCPv6
        server with the corresponding prefixes configured for use in the
        network. The corresponding network infrastructure must in turn be
        configured to use multiple prefixes on the interface(s) facing the
        DHCPv6 clients. The configuration is similar on all the servers, but a
        different prefix and a different preference are used for each DHCPv6
        server.</t>

        <t>This approach drastically increases the rate of consumption of IPv6
        prefixes and also yields operational and management challenges related
        to the underlying network since a significantly higher number of
        prefixes need to be configured and routed. It also does not provide a
        clean migration path to the desired solution using a standards-based
        DHCPv6 redundancy or failover protocol (which, of course, has yet to be
        specified).</t>

        <t>The use of multiple unique prefixes provides benefits related to
        dynamic updates to DNS similar to those referred to in <xref
        target="split-prefixes"/>. The use of multiple unique prefixes enables
        the differentiation of bindings and binding timing to determine which
        represents the current state. This becomes particularly important when
        DHCPv6 Leasequery <xref target="RFC5007"/> and/or DHCPv6 Bulk
        Leasequery <xref target="RFC5460"/> are used to determine lease or
        binding state. The use of separate prefixes and pools per DHCPv6
        server makes failure conditions more obvious and detectable.</t>

        <figure align="center" anchor="example-2" title="Multiple unique prefix
approach">
          <artwork align="center"><![CDATA[
+----------+                 +-----------+
| Client 1 +-\            +--+ Server 1  |
+----------+  \           |  +-----------+
               \          |
                \         |
                 \        |
+----------+      \       |  +-----------+
| Client 2 +--------------+--| Server 2  |
+----------+      /       |  +-----------+
      .          /        .
      .         /         .
      .        /          .
+----------+  /           .  +-----------+
| Client N +-/            .--| n+1 Server|
+----------+                 +-----------+

Server 1
========
Prefix = 2001:db8:1:1::/64
Pool = 2001:db8:1:1::/64
Preference = 255

Server 2
========
Prefix = 2001:db8:1:5::/64
Pool = 2001:db8:1:5::/64
Preference = 0

Server 3
========
Prefix = 2001:db8:1:f::/64
Pool = 2001:db8:1:f::/64
Preference = [1..254]
]]></artwork>
        </figure>
      </section>

      <section title="Identical Prefixes">
        <t>In the identical prefix model, each DHCPv6 server is configured
        with the same overlapping prefix and pool deployed for use within an
        IPv6 network. Distribution between two or more servers, for example,
        would require that the same /64 prefix and pool be configured on all
        DHCP servers. For instance, the 2001:db8:1:1::/64 pool would be
        assigned to all the DHCPv6 servers for allocation to clients derived
        from the 2001:db8:1:1::/64 prefix. This would be repeated for each
        active DHCP server. An example of such a scenario is presented in
        <xref target="example-3"/>.</t>

        <t>This approach uses the same prefix, length, and pool definition
        across multiple DHCPv6 servers.  All other configuration parameters
        remain the same, with the exception of the DHCPv6 preference. Such an
        approach conceivably eases the migration of DHCPv6 services to fully
        support a standards-based redundancy or failover protocol once such
        solution becomes available. Similar to the split prefix architecture
        described above, this approach does not place any additional addressing
        requirements on the network infrastructure.</t>

        <t>The use of identical prefixes provides no benefit or advantage
        related to dynamic DNS updates, support of DHCPv6 Leasequery <xref
        target="RFC5007"/> or DHCPv6 Bulk Leasequery <xref target="RFC5460"/>.
        In this case, all DHCP servers will use the same prefix and pool
        configurations making it less obvious that a failure condition or
        event has occurred.</t>

        <figure align="center" anchor="example-3" title="Identical prefix approach">
          <artwork align="center"><![CDATA[
+----------+                 +-----------+
| Client 1 +-\            +--+ Server 1  |
+----------+  \           |  +-----------+
               \          |
                \         |
                 \        |
+----------+      \       |  +-----------+
| Client 2 +--------------+--| Server 2  |
+----------+      /       |  +-----------+
      .          /        .
      .         /         .
      .        /          .
+----------+  /           .  +-----------+
| Client N +-/            .--| n+1 Server|
+----------+                 +-----------+

Server 1
========
Prefix = 2001:db8:1:1::/64
Pool = 2001:db8:1:1::/64
Preference = 255

Server 2
========
Prefix = 2001:db8:1:1::/64
Pool = 2001:db8:1:1::/64
Preference = 0

Server 3
========
Prefix = 2001:db8:1:1::/64
Pool = 2001:db8:1:1::/64
Preference = [1..254]
]]></artwork>
        </figure>
      </section>
    </section>

    <section title="Challenges and Issues">
      <t>The lack of interaction between DHCPv6 servers introduces a number of
      challenges related to the operations of the same service instances in a
      production environment. The following areas are of particular
      concern:</t>

      <t><list style="symbols">
          <t>In the identical prefixes scenario, both servers must follow the
          same address allocation procedure, i.e., they both must use the same
          algorithm and the same policy to determine which address is going to
          be assigned to a specific client. Otherwise, there is a distinct
          chance that each server will assign the same address to two
          different clients. It is expected that both servers will receive
          each incoming REQUEST message. Usually, no special action is
          required to achieve this as REQUEST messages are sent to a multicast
          address by clients. Relays are expected to
          forward incoming client messages to all servers. The client
          indicates the chosen server by including its DHCP Unique Identifier
          (DUID) in the Server-ID option.
          The chosen server assigns the address and other configuration
          options, while the other server discards the incoming request. In
          case of a failure of one server, the other server will assign the
          same address by following the same algorithm and the same
          policy.</t>

          <t>Interactions with DNS server(s) using dynamic update for the same
          address when one or more DHCPv6 servers have become unavailable.
          This specifically becomes a challenge when (or if) nodes that were
          initially granted a lease: <list style="numbers">
              <t>Attempt to renew or rebind the lease originally granted,
              or</t>

              <t>Attempt to obtain a new lease</t>
            </list> The DHCID resource record <xref target="RFC4701"/> allows
          identification of the current owner of the specific DNS data that is
          the target of an update <xref target="RFC2136"/>. <xref
          target="RFC4704"/> specifies how DHCPv6 servers and/or clients may
          perform updates. <xref target="RFC4703"/> provides a way to solve
          conflicts between clients. Although <xref target="RFC4703"/>
          deals with most cases, it is still possible to leave abandoned
          resource records. Consider the following scenario: there are two
          independent servers, A and B. &nbsp;Server A assigns a lease to a client
          and updates the DNS with an AAAA record for the assigned address.
          When the client renews, server A is not available and server B
          assigns a different lease. The DNS is again updated, so now two AAAA
          resource records are present for the client: there is no indication
          as to which of the two leases is active. If server A never recovers,
          its information may never be removed (although it should be noted
          that this case is somewhat similar to that of a single server
          crashing and leaving abandoned resource records).</t>

          <t>Interactions with DHCPv6 servers to facilitate the acquisition of
          IPv6 lease data by way of the DHCPv6 Leasequery <xref
          target="RFC5007"/> or DHCPv6 Bulk Leasequery <xref
          target="RFC5460"/> protocols when one or more DHCPv6 servers have
          granted leases to DHCPv6 clients and later became unavailable. If
          the lease data is required and the granting server is unavailable,
          it will not be possible to obtain any information about leases
          granted until one of the following has taken place: <list
              style="numbers">
              <t>The granting DHCPv6 server becomes available with all lease
              information restored.</t>

              <t>The client has renewed or rebound its lease against a
              different DHCPv6 server.</t>
            </list> It is important to note that any exchange of available
          leases and synchronization between DHCPv6 servers is not possible
          until a redundancy or failover protocol is standardized or
          proprietary solutions become available.</t>
        </list></t>
    </section>

    <section anchor="Security" title="Security Considerations">
      <t>Additional security considerations are created through the use of
      this interim architecture beyond what has been cited in Section 23 of
      <xref target="RFC3315"/>. In particular, the dynamic DNS update using the
      models defined in this document allows for the possibility of not
      removing abandoned DNS records even when using the conflict resolution
      mechanism defined in <xref target="RFC4703"/>. However, this is no worse
      than a case where a single deployed server crashes and its lease
      database cannot be recovered.</t>

      <t>When using the identical prefixes model, care must be taken to ensure
      that all servers use the same lease allocation procedure and are
      configured with the same policy. If this guidance is not followed, there
      is a risk of assignment of the same lease to two separate clients. In
      some cases, that situation can be recovered by using Duplicate Address
      Detection (Neighbor Discovery) and the DECLINE mechanism (DHCPv6).</t>
    </section>

    <section title="Acknowledgements">
      <t>The authors would like to thank Bernie Volz, Kim Kinnear, Ralph Droms,
      David Hankins, Chuck Anderson, Ted Lemon, Stephen Farrel, Pete McCann,
      Robert Sparks, Martin Stiemerling, Brian Haberman, and Barry Leiba for
      their input and review.</t>

      <t>Special thanks to Stephen Morris for his numerous spelling, grammar
      corrections, and proofreading.</t>

      <t>This work has been partially supported by Department of Computer
      Communications (a division of Gdansk University of Technology) and the
      National Centre for Research and Development (Poland) under the European
      Regional Development Fund, Grant No.&nbsp;POIG.01.01.02-00-045/09-00 (Future
      Internet Engineering Project).</t>
    </section>
  </middle>

  <!--  *****BACK MATTER ***** -->

  <back>
    <!-- References split into informative and normative -->

    <references title="Normative References">
      &RFC2136;

      &RFC3315;

      &RFC3633;

      &RFC3736;

      &RFC4701;

      &RFC4703;

      &RFC4704;

      &RFC5007;

      &RFC5460;

      &RFC5970;
    </references>

    <references title="Informative References">

<!-- draft-ietf-dhc-dhcpv6-failover-requirements-02: I-D Exists -->
<reference anchor="FAILREQ">
<front>
<title>DHCPv6 Failover Requirements</title>

<author initials='T' surname='Mrugalski' fullname='Tomek Mrugalski'>
    <organization />
</author>

<author initials='K' surname='Kinnear' fullname='Kim Kinnear'>
    <organization />
</author>

<date month='September' day='7' year='2012' />

<abstract><t>The DHCPv6 protocol, defined in [RFC3315] allows for multiple servers to operate on a single network, however it does not define any way the servers could share information about currently active clients and their leases.  Some sites are interested in running multiple servers in such a way as to provide increased availability in case of server failure.  In order for this to work reliably, the cooperating primary and secondary servers must maintain a consistent database of the lease information.  [RFC3315] allows for but does not define any redundancy or failover mechanisms.  This document outlines requirements for DHCPv6 failover, enumerates related problems, and discusses the proposed scope of work to be conducted.  This document does not define a DHCPv6 failover protocol.</t></abstract>

</front>

<seriesInfo name="Work in" value="Progress" />
</reference>
    </references>
  </back>
</rfc>
