<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">

<?rfc rfcedstyle="yes"?>
<?rfc toc="yes"?>
<?rfc tocompact="yes"?>
<?rfc tocdepth="3"?>
<?rfc tocindent="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>

<rfc category="info" number="7393" submissionType="independent" ipr="trust200902">
  <front>
    <title abbrev="PCP DDNS Updates">Using the Port Control Protocol (PCP) to
    Update Dynamic DNS</title>

    <author fullname="Xiaohong Deng" initials="X." surname="Deng">
      <organization></organization>

      <address>
        <postal>
          <street></street>

          <city></city>

          <region></region>

          <code></code>

          <country></country>
        </postal>

        <email>dxhbupt@gmail.com</email>
      </address>
    </author>

    <author fullname="Mohamed Boucadair" initials="M." surname="Boucadair">
      <organization>France Telecom</organization>

      <address>
        <postal>
          <street></street>

          <city>Rennes</city>

          <region></region>

          <code>35000</code>

          <country>France</country>
        </postal>

        <email>mohamed.boucadair@orange.com</email>
      </address>
    </author>

    <author fullname="Qin Zhao" initials="Q." surname="Zhao">
      <organization>Beijing University of Posts and
      Telecommunications</organization>

      <address>
        <postal>
          <street></street>

          <country>China</country>
        </postal>

        <email>zhaoqin.bupt@gmail.com</email>
      </address>
    </author>

    <author fullname="James Huang" initials="J." surname="Huang">
      <organization>Huawei Technologies</organization>

      <address>
        <postal>
          <street></street>

          <region></region>

          <country>China</country>
        </postal>

        <phone></phone>

        <email>james.huang@huawei.com</email>
      </address>
    </author>

    <author fullname="Cathy Zhou" initials="C." surname="Zhou">
      <organization>Huawei Technologies</organization>

      <address>
        <postal>
          <street></street>

          <country>China</country>
        </postal>

        <email>cathy.zhou@huawei.com</email>
      </address>
    </author>

    <date month="October" year="2014" />


    <abstract>
      <t>This document focuses on the problems encountered when using dynamic
      DNS in address-sharing contexts (e.g., Dual-Stack Lite (DS-Lite) and 
      Network Address and Protocol Translation from IPv6 Clients to
      IPv4 Servers (NAT64)) during IPv6
      transition. Both issues and possible solutions are documented in this
      memo.</t>
    </abstract>
  </front>

  <middle>
    <section title="Introduction">
      <t></t>

      <section anchor="ps" title="Problem Statement">
        <t>Dynamic DNS (DDNS) is a widely deployed service to facilitate
        hosting servers (e.g., access to a webcam, HTTP server, FTP server,
        etc.) at customers' premises. There are a number of providers that
        offer a DDNS service, working in a client and server mode, which
        mostly use web-form-based communication.  DDNS clients are generally
        implemented in the user's router or computer; once changes are detected
        to its assigned IP address, an update message is automatically sent to the DDNS server.
        The communication between the DDNS client
        and the DDNS server is not standardized, varying from one provider to
        another, although a few standard web-based methods of updating have emerged
        over time.</t>

        <t>In address-sharing contexts, well-known port numbers (e.g., port 80) 
        won't be available for every user <xref target="RFC6269"></xref>.  As such, 
        the DDNS client will have to register the IP address and/or the external 
        port(s) on which the service is listening.  Also, the DDNS client has to 
        report any change of this IP address and/or the external port(s).  It will 
        also require the ability to configure
        corresponding port forwarding on Carrier-Grade NAT (CGN) <xref
        target="RFC6888"></xref> devices so that incoming communications
        initiated from the Internet can be routed to the appropriate server behind
        the CGN.</t>

        <t>Issues encountered in address sharing are documented in <xref
        target="RFC6269"></xref>. This document focuses on the problems
        encountered when using dynamic DNS in address-sharing contexts (e.g.,
        DS-Lite <xref target="RFC6333"></xref> and NAT64 <xref
        target="RFC6146"></xref>). The main challenges are listed below:<list
            counter="20" style="hanging">
            <t hangText="Announce and discover an alternate service port:">The
            DDNS service must be able to maintain an alternative port number
            instead of the default port number.</t>

            <t hangText="Allow for incoming connections:">Appropriate means to
            instantiate port mappings in the address-sharing device must be
            supported.</t>

            <t hangText="Detect changes and trigger DDNS updates:">The DDNS client
            must be triggered by the change of the external IP address and the
            port number. Concretely, upon change of the external IP address
            (and/or external port number), the DDNS client must refresh the
            DNS records; otherwise, the server won't be reachable from outside.
            This issue is exacerbated in the DS-Lite context because no public
            IPv4 address is assigned to the Customer Premises Equipment (CPE).</t>
          </list></t>

        <t></t>
      </section>

      <section title="Scope and Goals">
        <t>This document describes some candidate solutions to resolve the
        aforementioned issues with a particular focus on DS-Lite. These
        solutions may also be valid for other address-sharing schemes.</t>

        <t>This document sketches deployment considerations based on the
        Port Control Protocol (PCP) <xref target="RFC6887"></xref>. Note that DDNS may
        be considered as an implementation of the rendezvous service mentioned
        in <xref target="RFC6887"></xref>.</t>

        <t>Indeed, after creating an explicit mapping for incoming connections
        using PCP, it is necessary to inform remote hosts about the IP
        address, protocol, and port number for the incoming connection to
        reach the services hosted behind a DS-Lite CGN. This is usually done
        in an application-specific manner. For example, a machine hosting a
        game server might use a rendezvous server specific to that game (or
        specific to that game developer), a SIP phone would use a SIP proxy,
        a client using DNS-Based Service Discovery <xref
        target="RFC6763"></xref> would use DNS Update <xref
        target="RFC2136"> </xref><xref target="RFC3007"></xref>, etc. PCP does
        not provide this rendezvous function.</t>

        <t>The rendezvous function may support IPv4, IPv6, or both. Depending
        on that support and the application's support of IPv4 or IPv6, the PCP
        client may need an IPv4 mapping, an IPv6 mapping, or both. An example
        illustrating how the DDNS server may implement such a service
        notification functionality if necessary is provided in <xref
        target="cs"></xref>.</t>

        <t>This document does not specify any protocol extension but instead
        focuses on the elaboration of the problem space and illustrates how
        existing tools can be reused to solve the problem for some deployment
        contexts. Particularly, this document requires no changes to PCP or
        dynamic updates in the standard domain name system <xref
        target="RFC2136"></xref>; rather, it is an operational document to
        make the current DDNS service providers aware of the impacts and
        issues that IPv6 transitioning and IPv4 address sharing will bring
        to them, and it gives solutions to address the forthcoming issues. The
        current DDNS service providers usually employ a web-based form to
        maintain DDNS service registration and updates.</t>

        <t>Generic deployment considerations for DS-Lite, including Basic 
        Bridging BroadBand (B4) remote
        management and IPv4 connectivity check, can be found in <xref
        target="RFC6908"></xref>. This document complements <xref
        target="RFC6908"></xref> with deployment considerations related to
        rendezvous service maintenance. Additional PCP-related deployment
        considerations are available at <xref
        target="PCP-DEPLOYMENT"></xref>.</t>

        <t>Solutions relying on DNS-Based Service Discovery <xref
        target="RFC6763"></xref> or Apple's Back to My Mac (BTMM) Service
        <xref target="RFC6281"></xref> are not considered in this document.
        Moreover, this document does not assume that DDNS service relies on
        <xref target="RFC2136"></xref>.</t>

        <t>IPv4 addresses used in the examples are derived from the IPv4 block
        reserved for documentation in <xref target="RFC6890"></xref>. DNS name
        examples follow <xref target="RFC2606"></xref>.</t>
      </section>
    </section>

    <section anchor="sol" title="Solution Space">
      <t></t>

      <section title="Locate a Service Port">
        <t>As listed below, at least two solutions can be used to associate a
        port number with a service: <list style="numbers">
            <t>Use service URIs (e.g., FTP, SIP, HTTP) that embed an explicit
            port number. Indeed, the Uniform Resource Identifier (URI) defined in
            <xref target="RFC3986"></xref> allows the port number to be carried in the
            syntax (e.g., mydomain.example:15687).</t>

            <t>Use SRV records <xref target="RFC2782"></xref>. Unfortunately,
            the majority of browsers do not support this record type.</t>
          </list></t>

        <t>The DDNS client and DDNS server are to be updated so that an alternate
        port number is signaled and stored by the DDNS server. Requesting
        remote hosts will be then notified with the IP address and port number
        to reach the server.</t>
      </section>

      <section title="Create Explicit Mappings for Incoming Connections">
        <t>PCP is used to install the appropriate mapping(s) in the CGN so
        that incoming packets can be delivered to the appropriate server.</t>
      </section>

      <section title="Detect Changes">
        <t>In a network as described in <xref target="FlowChart"></xref>, a
        DDNS client/PCP client can be running on either a CPE or the host that is hosting some
        services itself. There are several possible ways to address the
        problems stated in <xref target="ps"></xref>:</t>

        <t><list style="numbers">
            <t> If the DDNS client is enabled, the host periodically issues
            (e.g., 60 minutes) PCP MAP requests (e.g., messages 1 and 2 in
            <xref target="FlowChart"></xref>) with short lifetimes (e.g., 30s)
            for the purpose of inquiring an external IP address and setting. If
            the purpose is to detect any change to the external port, the host
            must issue a PCP mapping to install for the internal
            server. Upon change of the external IP address, the DDNS client
            updates the records accordingly (e.g., message 3 in <xref
            target="FlowChart"></xref>). </t>

            <t>If the DDNS client is enabled, it checks the local mapping
            table maintained by the PCP client. This process is repeated
            periodically (e.g., 5 minutes, 30 minutes, 60 minutes). If there
            is no PCP mapping created by the PCP client, it issues a PCP MAP
            request (e.g., messages 1 and 2 in <xref
            target="FlowChart"></xref>) for the purpose of inquiring an external
            IP address and setting up port forwarding mappings for incoming
            connections. Upon change of the external IP address, the DDNS
            client updates the records in the DDNS server, e.g., message 3 in
            <xref target="FlowChart"></xref>.</t>
          </list></t>

        <t><figure align="center" anchor="FlowChart" title="Flow Chart">
            <artwork><![CDATA[                                    +-----------------+
                                    |  DDNS Server    |
                                    +-----------------+
                                              ^
                                              |
                                              |3. DDNS updates
                                              |  (if any)
                                              |
+---------------+                    +-----------------+
|DDNS Client    |1. PCP MAP request  | CGN/PCP Server  |
|PCP Client/IWF |------------------->| (PCP mapping for|80:8080+------+
|on CPE or      |2. PCP MAP response | port forwarding)|<------|Client|
|the host itself|<-------------------|                 |       +------+
|               |3. DDNS updates     |                 |       
|               |     (if any)       |                 |
|               |------------------->|                 |
+---------------+                    +-----------------+

IWF = Internetworking Function]]></artwork>
          </figure></t>

      </section>
    </section>

    <section anchor="cs" title="Some Deployment Solutions">
      <t></t>

      <section title="Reference Topology">
        <t><xref target="topo"></xref> illustrates the topology used for the
        deployment solutions elaborated in the following subsections.</t>

        <t><figure align="center" anchor="topo"
            title="Implementation Topology">
            <artwork><![CDATA[+--------------+   +--------+    +---------+   +--------+   +-------+
| Service      |   |  DDNS  |    |  CGN/   |   | PCP    |   |Servers|
| User         |---|  Server|----|  PCP    |---| Client |---|       |
|              |   |        |    |  Server |   | /DDNS  |   |       |
|              |   |        |    |         |   | Client |   |       |
+--------------+   +--------+    +---------+   +--------+   +-------+
    A user         DDNS Server       AFTR        B4(CPE)      A host
 from Internet                                  behind B4

]]></artwork>
          </figure></t>

        <t><xref target="topo"></xref> involves the following
        entities:<list style="symbols">
            <t>Servers: Refers to the servers that are deployed in the DS-Lite
            network, or more generally, an IP address-sharing environment.
            They are usually running on a host that has been assigned with a
            private IPv4 address. Having created a proper mapping via PCP in
            the Address Family Transition Router (AFTR), these services have 
            been made available to Internet
            users. The services may provide web, FTP, SIP, and other services
            though these may not be able to be seen as using a well-known
            port from the outside anymore, in the IP address-sharing
            context. </t>

            <t>B4(CPE): An endpoint of an IPv4-in-IPv6 tunnel <xref
            target="RFC6333"></xref>. A PCP client together with a DDNS client
            are running on it. After a PCP client establishes a mapping on the
            AFTR, an end user may register its domain name and its external
            IPv4 address plus port number to its DDNS service provider (DDNS
            server), manually or automatically by a DDNS client. 

            Later, likewise, end users may manually announce or let the DDNS client
            automatically announce IP address and/or port changes to
            the DDNS server. </t>

            <t>AFTR: Responsible for maintaining mappings between an IPv6 address, 
            the internal IPv4 address plus internal port, and the external IPv4 
            address plus port <xref
            target="RFC6333"></xref>. </t>

            <t>DDNS server: Maintains a table that associates a registered
            domain name and a registered host's external IPv4 address/port number pair. 

            When being notified of IP address and port number
            changes from a DDNS client, the DDNS server announces the updates to DNS
            servers on behalf of the end user. <xref target="RFC2136"></xref> and
            <xref target="RFC3007"></xref> may be used by DDNS servers to send
            updates to DNS servers. In many current practices, a DDNS service
            provider usually announces its own IP address as the registered
            domain names of end users.  When HTTP requests reach the DDNS
            server, they may employ URL Forwarding or HTTP 301 redirection to
            redirect the request to a proper registered end user by looking up
            the maintained link table.</t>

            <t>Service users: Refers to users who want to access services
            behind an IP address-sharing network. They issue standard DNS
            requests to locate the services, which will lead them to a DDNS
            server, provided that the requested services have been registered
            to a DDNS service provider. The DDNS server will then handle the
            rest in the same way as described before.</t>
          </list></t>

        <t></t>
      </section>

      <section title="For Web Service">
        <t>Current DDNS server implementations typically assume that the end
        servers host web servers on the default 80 port. In the DS-Lite
        context, they will have to take into account that external ports
        assigned by the AFTR may be any number other than 80, in order to maintain
        proper mapping between domain names and the external IP plus port. If a proper mapping is maintained, the HTTP request would be redirected to the AFTR, which serves the specific end host that is running the servers. </t>

        <t><xref target="ws"></xref> depicts how messages are handled in order
        to be delivered to the right server.</t>

        <t><figure align="center" anchor="ws" title="HTTP Service Messages">
            <artwork><![CDATA[Web Visitor        DDNS Server       AFTR      B4(CPE)     Web Server
                                                            behind B4
| HTTP GET*             |              |          |               |
|---------------------->|              |          |               |
| ip_DDNS_server        |------------->|          |               |
|                       | HTTP 301     |          |               |
|                       |<-------------|          |               |
| HTTP GET* ip_aftr:8001               |          |               |
|------------------------------------->|                          |
|                                      | HTTP GET* ip_websrv:8000 |
|                                      |------------------------->|
|                                      |                          |
|                       HTTP response  | HTTP response            |
|<-------------------------------------|--------------------------|
|                                      |                          |]]></artwork>
          </figure></t>

        <t>When a web user sends out an HTTP GET message to the DDNS server after a
        standard DNS query, the DDNS server redirects the request to a registered
        web server, in this case, by responding with an HTTP 301 message. Then,
        the HTTP GET message will be sent out to the AFTR, which will in turn
        find the proper hosts behind it. For simplicity, messages among AFTR,
        B4, and the web server behind B4 are not shown completely; for
        communications among those nodes, refer to <xref
        target="RFC6333"></xref>.</t>
      </section>

      <section title="For Non-web Service">
        <t>For non-web services, as mentioned in <xref target="sol"></xref>,
        other means will be needed to inform the users about the service
        information.</t>

        <t><xref target="RFC6763"></xref> includes an example of a DNS-based
        solution that allows an application running in the end user's device
        to retrieve service-related information via DNS SRV/TXT records and
        list available services. In a scenario where such an application is not
        applicable, the following provides another solution for a third party,
        e.g., a DDNS service provider, to disclose services to Internet
        users.</t>

        <t>A web portal can be used to list available services. A DDNS server
        maintains a web portal for each user's Fully Qualified Domain
        Name (FQDN), which provides service links to users. <xref target="wpu"></xref>
        assumes "websrv.example.com" is a user's FQDN provided by a DDNS
        service provider.</t>

        <t><figure align="center" anchor="wpu" title="Update Web Portal">
            <artwork><![CDATA[+-------------+    +-------------+    +----------+ Internet +-------+
|DDNS Client /|    |DDNS Server /|    |DNS Server|          |Visitor|
|  Web Server |    | Web Portal  |    |          |          |       |
+-------------+    +-------------+    +----------+          +-------+
    |      register      |                  |                    |
    |<------------------>|                  |                    |
    | websrv.example.com |  update DNS      |                    |
    |   192.0.2.1:2000   | <------------->  |                    |
    |                    |websrv.example.com|                    |
    |                    |   portal's IP    |                    |
    |              +-------------+          |                    |
    |              |update portal|          |                    |
    |              +-------------+          |  DNS resolve for   |
    |                    |                  | <----------------> |
    |                    |                  | websrv.example.com |
    |                    |                  |  get portal's IP   |
    |                    |                  |                    |
    |                    |   visit portal of websrv.example.com  |
    |                    | <-----------------------------------> |
    |                    |                  |                    |
    |                  visit http://192.0.2.1:2000               |
    | <--------------------------------------------------------->|
    |                    |                  |                    |
]]></artwork>
          </figure></t>

        <t>The DDNS client registers the server's information to the DDNS
        server, including the public IP address and port obtained via PCP, the user's
        FQDN, and other necessary information. The DDNS server also behaves as
        a portal server; it registers its IP address, port number, and the user's
        FQDN to the DNS system so that visitors can access the web
        portal.</t>

        <t>A DDNS server also maintains a web portal for each user's FQDN
        and updates the portal according to registered information from the DDNS
        client.  When a visitor accesses "websrv.example.com", a DNS query will
        resolve the portal server's address and port number, and the visitor will
        see the portal and the available services.</t>

        <t><figure align="center" anchor="wp" title="An Example of a Web Portal">
            <artwork><![CDATA[  +-------------------------------------------------------------+
  |                                                             |
  |              Portal: websrv.example.com                     |
  |                                                             |
  |    Service1: web server                                     |
  |    Link:     http://192.0.2.1:2000                          |
  |                                                             |
  |    Service2: video                                          |
  |    Link:     rtsp://192.0.2.1:8080/test.sdp                 |
  |                                                             |
  |    ......                                                   |
  |                                                             |
  +-------------------------------------------------------------+]]></artwork>
          </figure></t>

        <t>As shown in <xref target="wp"></xref>, the web portal shows the
        service URLs that are available to be accessed. Multiple services are
        accessible per a user's FQDN. </t>

        <t>Some applications that  are not HTTP based can also be delivered
        using this solution. When a user clicks on a link, the registered
        application in the client OS will be invoked to handle the link. How
        this can be achieved is out of the scope of this document.</t>
      </section>
    </section>

    <section anchor="security" title="Security Considerations">
      <t>This document does not introduce a new protocol, nor does it
      specify protocol extensions. Security-related considerations related
      to PCP <xref target="RFC6887"></xref> and DS-Lite
      <xref target="RFC6333"></xref> should be taken into account. </t>

      <t>The protocol between the DDNS client and DDNS server is proprietary
      in most cases; some extensions may be necessary, which is up to the DDNS
      operators. These operators should enforce security-related policies in
      order to keep illegitimate users from altering records installed by
      legitimate users or installing fake records that would attract
      illegitimate traffic. Means to protect the DDNS server against Denial of
      Service (DoS) should be enabled. Note that these considerations are not
      specific to address-sharing contexts but are valid for DDNS services in
      general.</t>
    </section>

  </middle>

  <back>
    <references title="Normative References">
 
<reference anchor='RFC3986' target='http://www.rfc-editor.org/info/rfc3986'>
<front>
<title abbrev='URI Generic Syntax'>Uniform Resource Identifier (URI): Generic Syntax</title>
<author initials='T.' surname='Berners-Lee' fullname='Tim Berners-Lee'>
<organization abbrev='W3C/MIT'>World Wide Web Consortium</organization>
</author>
<author initials='R.' surname='Fielding' fullname='Roy T. Fielding'>
<organization abbrev='Day Software'>Day Software</organization>
</author>
<author initials='L.' surname='Masinter' fullname='Larry Masinter'>
<organization abbrev='Adobe Systems'>Adobe Systems Incorporated</organization>
</author>
<date year='2005' month='January' />
<area>Applications</area>
</front>
<seriesInfo name='STD' value='66' />
<seriesInfo name='RFC' value='3986' />
</reference>


<reference anchor='RFC6333' target='http://www.rfc-editor.org/info/rfc6333'>
<front>
<title>Dual-Stack Lite Broadband Deployments Following IPv4 Exhaustion</title>
<author initials='A.' surname='Durand' fullname='A. Durand'>
<organization /></author>
<author initials='R.' surname='Droms' fullname='R. Droms'>
<organization /></author>
<author initials='J.' surname='Woodyatt' fullname='J. Woodyatt'>
<organization /></author>
<author initials='Y.' surname='Lee' fullname='Y. Lee'>
<organization /></author>
<date year='2011' month='August' />
</front>
<seriesInfo name='RFC' value='6333' />
</reference>

<reference anchor='RFC6887' target='http://www.rfc-editor.org/info/rfc6887'>
<front>
<title>Port Control Protocol (PCP)</title>
<author initials='D.' surname='Wing' fullname='D. Wing'>
<organization /></author>
<author initials='S.' surname='Cheshire' fullname='S. Cheshire'>
<organization /></author>
<author initials='M.' surname='Boucadair' fullname='M. Boucadair'>
<organization /></author>
<author initials='R.' surname='Penno' fullname='R. Penno'>
<organization /></author>
<author initials='P.' surname='Selkirk' fullname='P. Selkirk'>
<organization /></author>
<date year='2013' month='April' />
</front>
<seriesInfo name='RFC' value='6887' />
</reference>
    </references>

    <references title="Informative References">

<reference anchor='RFC3007' target='http://www.rfc-editor.org/info/rfc3007'>
<front>
<title>Secure Domain Name System (DNS) Dynamic Update</title>
<author initials='B.' surname='Wellington' fullname='B. Wellington'>
<organization /></author>
<date year='2000' month='November' />
</front>
<seriesInfo name='RFC' value='3007' />
</reference>

<reference anchor='RFC6890' target='http://www.rfc-editor.org/info/rfc6890'>
<front>
<title>Special-Purpose IP Address Registries</title>
<author initials='M.' surname='Cotton' fullname='M. Cotton'>
<organization /></author>
<author initials='L.' surname='Vegoda' fullname='L. Vegoda'>
<organization /></author>
<author initials='R.' surname='Bonica' fullname='R. Bonica'>
<organization /></author>
<author initials='B.' surname='Haberman' fullname='B. Haberman'>
<organization /></author>
<date year='2013' month='April' />
</front>
<seriesInfo name='BCP' value='153' />
<seriesInfo name='RFC' value='6890' />
</reference>

  
<reference anchor='RFC2606' target='http://www.rfc-editor.org/info/rfc2606'>
<front>
<title>Reserved Top Level DNS Names</title>
<author initials='D.E.' surname='Eastlake' fullname='Donald E. Eastlake 3rd'>
<organization>IBM</organization>
</author>
<author initials='A.' surname='Panitz' fullname='Aliza R. Panitz'>
<organization />
</author>
<date year='1999' month='June' />
</front>
<seriesInfo name='BCP' value='32' />
<seriesInfo name='RFC' value='2606' />
</reference>

<reference anchor='RFC2136' target='http://www.rfc-editor.org/info/rfc2136'>
<front>
<title abbrev='DNS Update'>Dynamic Updates in the Domain Name System (DNS UPDATE)</title>
<author initials='P.' surname='Vixie' fullname='Paul Vixie'>
<organization>Internet Software Consortium</organization>
</author>
<author initials='S.' surname='Thomson' fullname='Susan Thomson'>
<organization>Bellcore</organization>
</author>
<author initials='Y.' surname='Rekhter' fullname='Yakov Rekhter'>
<organization>Cisco Systems</organization>
</author>
<author initials='J.' surname='Bound' fullname='Jim Bound'>
<organization>Digital Equipment Corp.</organization>
</author>
<date year='1997' month='April' />
<area>Applications</area>
</front>
<seriesInfo name='RFC' value='2136' />
</reference>

<reference anchor='RFC6888' target='http://www.rfc-editor.org/info/rfc6888'>
<front>
<title>Common Requirements for Carrier-Grade NATs (CGNs)</title>
<author initials='S.' surname='Perreault' fullname='S. Perreault'>
<organization /></author>
<author initials='I.' surname='Yamagata' fullname='I. Yamagata'>
<organization /></author>
<author initials='S.' surname='Miyakawa' fullname='S. Miyakawa'>
<organization /></author>
<author initials='A.' surname='Nakagawa' fullname='A. Nakagawa'>
<organization /></author>
<author initials='H.' surname='Ashida' fullname='H. Ashida'>
<organization /></author>
<date year='2013' month='April' />
</front>
<seriesInfo name='BCP' value='127' />
<seriesInfo name='RFC' value='6888' />
</reference>

<reference anchor='RFC6908' target='http://www.rfc-editor.org/info/rfc6908'>
<front>
<title>Deployment Considerations for Dual-Stack Lite</title>
<author initials='Y.' surname='Lee' fullname='Y. Lee'>
<organization /></author>
<author initials='R.' surname='Maglione' fullname='R. Maglione'>
<organization /></author>
<author initials='C.' surname='Williams' fullname='C. Williams'>
<organization /></author>
<author initials='C.' surname='Jacquenet' fullname='C. Jacquenet'>
<organization /></author>
<author initials='M.' surname='Boucadair' fullname='M. Boucadair'>
<organization /></author>
<date year='2013' month='March' />
</front>
<seriesInfo name='RFC' value='6908' />
</reference>
     
<reference anchor='RFC2782' target='http://www.rfc-editor.org/info/rfc2782'>
<front>
<title abbrev='DNS SRV RR'>A DNS RR for specifying the location of services (DNS SRV)</title>
<author initials='A.' surname='Gulbrandsen' fullname='Arnt Gulbrandsen'>
<organization>Troll Tech</organization>
</author>
<author initials='P.' surname='Vixie' fullname='Paul Vixie'>
<organization>Internet Software Consortium</organization>
</author>
<author initials='L.' surname='Esibov' fullname='Levon Esibov'>
<organization>Microsoft Corporation</organization>
</author>
<date year='2000' month='February' />
</front>
<seriesInfo name='RFC' value='2782' />
</reference>

<reference anchor='RFC6763' target='http://www.rfc-editor.org/info/rfc6763'>
<front>
<title>DNS-Based Service Discovery</title>
<author initials='S.' surname='Cheshire' fullname='S. Cheshire'>
<organization /></author>
<author initials='M.' surname='Krochmal' fullname='M. Krochmal'>
<organization /></author>
<date year='2013' month='February' />
</front>
<seriesInfo name='RFC' value='6763' />
</reference>

<reference anchor='RFC6269' target='http://www.rfc-editor.org/info/rfc6269'>
<front>
<title>Issues with IP Address Sharing</title>
<author initials='M.' surname='Ford' fullname='M. Ford'>
<organization /></author>
<author initials='M.' surname='Boucadair' fullname='M. Boucadair'>
<organization /></author>
<author initials='A.' surname='Durand' fullname='A. Durand'>
<organization /></author>
<author initials='P.' surname='Levis' fullname='P. Levis'>
<organization /></author>
<author initials='P.' surname='Roberts' fullname='P. Roberts'>
<organization /></author>
<date year='2011' month='June' />
</front>
<seriesInfo name='RFC' value='6269' />
</reference>

<reference anchor='RFC6281' target='http://www.rfc-editor.org/info/rfc6281'>
<front>
<title>Understanding Apple's Back to My Mac (BTMM) Service</title>
<author initials='S.' surname='Cheshire' fullname='S. Cheshire'>
<organization /></author>
<author initials='Z.' surname='Zhu' fullname='Z. Zhu'>
<organization /></author>
<author initials='R.' surname='Wakikawa' fullname='R. Wakikawa'>
<organization /></author>
<author initials='L.' surname='Zhang' fullname='L. Zhang'>
<organization /></author>
<date year='2011' month='June' />
</front>
<seriesInfo name='RFC' value='6281' />
</reference>

<reference anchor='RFC6146' target='http://www.rfc-editor.org/info/rfc6146'>
<front>
<title>Stateful NAT64: Network Address and Protocol Translation from IPv6 Clients to IPv4 Servers</title>
<author initials='M.' surname='Bagnulo' fullname='M. Bagnulo'>
<organization /></author>
<author initials='P.' surname='Matthews' fullname='P. Matthews'>
<organization /></author>
<author initials='I.' surname='van Beijnum' fullname='I. van Beijnum'>
<organization /></author>
<date year='2011' month='April' /></front>
<seriesInfo name='RFC' value='6146' />
</reference>

<!-- I-D.boucadair-pcp-deployment-cases (I-D Exists) -->
<reference anchor='PCP-DEPLOYMENT'>
<front>
<title>Port Control Protocol (PCP) Deployment Models</title>
<author initials='M' surname='Boucadair' fullname='Mohamed Boucadair'>
    <organization />
</author>
<date month='July' day='3' year='2014' />
<abstract><t>This document lists a set of Port Control Protocol (PCP) deployment models.</t></abstract>
</front>
<seriesInfo name='Work in Progress,' value='draft-boucadair-pcp-deployment-cases-03' />
</reference>

    </references>

    <section anchor="Acknowledgements" title="Acknowledgements">
      <t>Thanks to Stuart Cheshire for bringing up DNS-Based Service Discovery
      (SD) and <xref target="RFC6281"></xref>, which covers a DNS-based SD
      scenario and gives an example of how the application is a means for a
      solution to address dynamic DNS updates; in this case, Apple's BTMM can 
      be achieved.</t>

      <t>Many thanks to D.&nbsp;Wing, D.&nbsp;Thaler, and J.&nbsp;Abley for
      their comments.</t>
    </section>

   <section title="Contributors">
      <t>The following individuals contributed text to the document:</t>

      <t><figure>
          <artwork><![CDATA[   Xiaohong Huang
   Beijing University of Posts and Telecommunications, China
   EMail: huangxh@bupt.edu.cn

   Yan Ma
   Beijing University of Posts and Telecommunications, China
   EMail: mayan@bupt.edu.cn]]></artwork>
        </figure></t>
    </section>

  </back>
</rfc>
