Skip to main content

PREFIX64 PCP Option for NAT64
draft-boucadair-pcp-nat64-prefix64-option-01

The information below is for an old version of the document.
Document Type
This is an older version of an Internet-Draft whose latest revision state is "Replaced".
Author Mohamed Boucadair
Last updated 2012-09-11
Replaced by draft-ietf-pcp-nat64-prefix64, draft-ietf-pcp-nat64-prefix64, draft-ietf-pcp-nat64-prefix64, RFC 7225
RFC stream (None)
Formats
Stream Stream state (No stream defined)
Consensus boilerplate Unknown
RFC Editor Note (None)
IESG IESG state I-D Exists
Telechat date (None)
Responsible AD (None)
Send notices to (None)
draft-boucadair-pcp-nat64-prefix64-option-01
PCP Working Group                                           M. Boucadair
Internet-Draft                                            France Telecom
Intended status: Standards Track                      September 11, 2012
Expires: March 15, 2013

                     PREFIX64 PCP Option for NAT64
              draft-boucadair-pcp-nat64-prefix64-option-01

Abstract

   This document defines a new PCP Option/OpCode to learn the
   Prefix64(s) used by a PCP-controlled NAT64 device to build IPv4-
   embedded IPv6 addresses.  This Option/OpCode is needed for successful
   communications when IPv4 addresses are used in referrals (e.g., SIP).

Status of this Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at http://datatracker.ietf.org/drafts/current/.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   This Internet-Draft will expire on March 15, 2013.

Copyright Notice

   Copyright (c) 2012 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (http://trustee.ietf.org/license-info) in effect on the date of
   publication of this document.  Please review these documents
   carefully, as they describe your rights and restrictions with respect
   to this document.  Code Components extracted from this document must
   include Simplified BSD License text as described in Section 4.e of
   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.

Boucadair                Expires March 15, 2013                 [Page 1]
Internet-Draft             PREFIX64 PCP Option            September 2012

Table of Contents

   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  3
   2.  Requirements Language  . . . . . . . . . . . . . . . . . . . .  5
   3.  PREFIX64 Option  . . . . . . . . . . . . . . . . . . . . . . .  5
     3.1.  Format . . . . . . . . . . . . . . . . . . . . . . . . . .  5
     3.2.  Behaviour  . . . . . . . . . . . . . . . . . . . . . . . .  6
   4.  GET_PREFIX64 OpCode  . . . . . . . . . . . . . . . . . . . . .  6
   5.  Flow Examples  . . . . . . . . . . . . . . . . . . . . . . . .  7
     5.1.  Examples with PREFIX64 PCP Option  . . . . . . . . . . . .  7
     5.2.  Example with GET_PREFIX64 OpCode . . . . . . . . . . . . .  9
   6.  IANA Considerations  . . . . . . . . . . . . . . . . . . . . . 10
   7.  Security Considerations  . . . . . . . . . . . . . . . . . . . 11
   8.  Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 11
   9.  References . . . . . . . . . . . . . . . . . . . . . . . . . . 11
     9.1.  Normative References . . . . . . . . . . . . . . . . . . . 11
     9.2.  Informative References . . . . . . . . . . . . . . . . . . 11
   Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 11

Boucadair                Expires March 15, 2013                 [Page 2]
Internet-Draft             PREFIX64 PCP Option            September 2012

1.  Introduction

   This document defines a new PCP Option/OpCode [I-D.ietf-pcp-base] to
   inform PCP Clients about the Prefix64 [RFC6052] used by a PCP-
   controlled NAT64 device [RFC6146].

   This Option is required to help establishing communications between
   IPv6-only hosts and remote IPv4-hosts.  An illustration example is
   shown in Figure 1.  In this example, NAT64 is co-located with a PCP
   server while IPv6-only SIP UA interacts with a PCP Client.

   In Figure 1, the PCP Client issues a PCP MAP request with
   PORT_RESERVATION_OPTION to reserve a pair of ports preserving parity
   and contiguity [I-D.boucadair-pcp-rtp-rtcp].  A pair of ports and an
   external IPv4 address are then returned by the PCP server to the
   requesting PCP Client.  This information is used by the IPv6-only SIP
   UA to build its SDP offer which contains exclusively IPv4 addresses
   (especially in the "c=" line, the port indicated for media port is
   the external port assigned by the PCP server).  The INVITE request
   including the SDP offer is then forwarded by the NAT64 to the Proxy
   Server which will relay it to the called party (i.e., IPv4-only SIP
   UA) (Steps (1) to (3)).  IPv4-only SIP UA accepts the offer and sends
   back its SDP answer in a "200 OK" message which is relayed by the SIP
   Proxy Server and NAT64 until being delivered to IPv6-only SIP UA
   (Steps (4) to (6)).  At the end of this process, IPv4-only SIP UA can
   send media streams to the IPv4 address/port as indicated in the SDP
   offer while IPv6-only SIP UA can not send media streams as only IPv4
   addresses are present in the SDP answer.

Boucadair                Expires March 15, 2013                 [Page 3]
Internet-Draft             PREFIX64 PCP Option            September 2012

   +---------+              +-----+       +------------+     +---------+
   |IPv6-only|              |NAT64|       |  IPv4 SIP  |     |IPv4-only|
   | SIP UA  |              |     |       |Proxy Server|     | SIP UA  |
   +---------+              +-----+       +------------+     +---------+
       | (a) PCP MAP REQUEST   |                |                 |
       |PORT_RESERVATION_OPTION|                |                 |
       |======================>|                |                 |
       | (b) PCP MAP RESPONSE  |                |                 |
       |PORT_RESERVATION_OPTION|                |                 |
       |<======================|                |                 |
       |                       |                |                 |
       |  (1) SIP INVITE       |                |                 |
       |======================>| (2) SIP INVITE |                 |
       |                       |===============>|  (3) SIP INVITE |
       |                       |                |================>|
       |                       |                |  (4) SIP 200 OK |
       |                       | (5) SIP 200 OK |<================|
       |   (6) SIP 200 OK      |<===============|                 |
       |<======================|                |                 |
       |                       |                |                 |

                                 Figure 1

   This issue is not specific to SIP but it is valid for all
   applications using IP addresses in referrals.  The option/OpCode
   defined in this document can be used in various schemes as listed
   below (the list is not exhaustive):

   o  For hosts with DNS64 capability, added to the host's stub-
      resolver.  The stub resolver on the host will try to obtain
      (native) AAAA records and if it they are not found, the DNS64
      function on the host will query for A records and then synthesizes
      AAAA records.  Using the PREFIX64 PCP Option, the host's stub-
      resolver can learn the prefix used for IPv6/IPv4 translator and
      synthesize AAAA records accordingly.

   o  As Peer-to-Peer (P2P) communications for real-time communication
      is becoming popular with RTCWEB (e.g., P2P for Media, data
      channels for file transfer etc), this option can be used to help
      for NAT64 traversal.  SIP is only one example among those
      protocols.

   o  Can be used for any application using referrals.

   A solution is proposed in Section 3.

Boucadair                Expires March 15, 2013                 [Page 4]
Internet-Draft             PREFIX64 PCP Option            September 2012

2.  Requirements Language

   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 [RFC2119].

3.  PREFIX64 Option

3.1.  Format

   The format of PREFIX64 PCP Option is depicted in Figure 2.

        0                   1                   2                   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
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |  Option Code  |  Reserved     |   Option Length               |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                       Prefix64 (Variable)                     |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                       Figure 2: Prefix64 PCP Option

   The description of the fields is as follows:

   o  Option Code: To be assigned by IANA.

   o  Option Length: Indicates in octets the length of the Prefix64.
      Allowed values are 4, 5, 6, 7, 8, or 12 [RFC6052].

   o  Prefix64: This field identifies the IPv6 unicast prefix to be used
      for constructing an IPv4-embedded IPv6 address from an IPv4
      address.  The address synthesize MUST follow the guidelines
      documented in [RFC6052].

         Option Name: PREFIX64
         Number: To be assigned by IANA.
         Purpose: Learn the prefix used by the NAT64 to build
         IPv4-embedded IPv6 addresses. This is be used by a host
         for local address synthesis (e.g., when IPv4 address is
         present in referrals).
         Valid for Opcodes: MAP
         Length: Variable
         May appear in: request, response.
         Maximum occurrences: 1

Boucadair                Expires March 15, 2013                 [Page 5]
Internet-Draft             PREFIX64 PCP Option            September 2012

3.2.  Behaviour

   A PCP Client MAY include a PREFIX64 PCP Option in a MAP request to
   learn the IPv6 prefix used by an upstream PCP-controlled NAT64
   device.  When enclosed in a MAP request, PREFIX64 MUST be set to
   ::/96.

   A PCP Server controlling a NAT64 SHOULD be configured to return the
   value of the Prefix64 used to build IPv4-embedded IPv6 addresses to
   requesting PCP Clients.  When allowed, PREFIX64 PCP Option conveys
   the value of Prefix64.

   A PCP Server controlling a NAT64 SHOULD inject a PREFIX64 PCP Option
   in MAP responses even if the option is not listed in the associated
   request.

   Upon receipt of the PREFIX64 PCP Option, the host embedding the PCP
   Client uses Prefix64 for local address synthesize [RFC6052].

   A PCP Client SHOULD associate each received Prefix64 with the PCP
   Server from which the Prefix64 information was retrieved.

4.  GET_PREFIX64 OpCode

      Discussion: Both PREFIX64 option and OpCode are maintained in this
      version of the document.  Based on the WG inputs, both or only one
      of them will be maintained.

   This OpCode allows to retrieve the {IPv4 subnet, Prefix64::/n}
   mapping list (see Figure 3).  An IPv4 subnet is represented as "IPv4
   Address/IPv4 Prefix Length".  "Prefix64/IPv4 Prefix Count" indicates
   the count of {IPv4 subnet, Prefix64::/n} mappings.  This field MUST
   be set to 0 in a request and MUST be set to the number of included
   {IPv4 subnet, Prefix64::/n} mappings in a response.  IPv6 Prefix
   Length field indicates in bits the length of the Prefix64; allowed
   values are 32, 40, 48, 56, 64 and 96.  Prefix64 field MUST be set to
   ::/96 in a request and MUST be set to the value of the Prefix64 used
   to construct IPv4-embedded IPv6 addresses for a given IPv4 subnet. a
   wildcard "IPv4 Address/IPv4 Prefix Length" means the associated
   Prefix64 is valid for any IPv4 address.

Boucadair                Expires March 15, 2013                 [Page 6]
Internet-Draft             PREFIX64 PCP Option            September 2012

        0                   1                   2                   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
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |  Prefix64/IPv4 Prefix Count   |         Reserved (16bits)     |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |   IPv4 Prefix Length          |   IPv6 Prefix Length          |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                       IPv4 Address (32 bits)                  |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                                                               |
       :                       Prefix64 (Variable)                     :
       |                                                               |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                       Figure 3: GET_PREFIX64 Opcode

   A server MUST be configured to accept or ignore this OpCode.  At
   receipt of a request, if it is configured to accept this OpCode, the
   PCP Server controlling a NAT64 MUST return the list of configured
   Prefix64s for each IPv4 subnet.  If a single Prefix64 is configured
   for all IPv4 addresses, a wildcard IPv4 prefix MUST be returned in
   the response together with the configured Prefix64.

5.  Flow Examples

5.1.  Examples with PREFIX64 PCP Option

   Figure 4 shows an example of the use of the option defined in
   Section 3.

Boucadair                Expires March 15, 2013                 [Page 7]
Internet-Draft             PREFIX64 PCP Option            September 2012

   +---------+              +-----+       +------------+     +---------+
   |IPv6-only|              |NAT64|       |  IPv4 SIP  |     |IPv4-only|
   | SIP UA  |              |     |       |Proxy Server|     | SIP UA  |
   +---------+              +-----+       +------------+     +---------+
       | (a) PCP MAP REQUEST   |                |                 |
       |PORT_RESERVATION_OPTION|                |                 |
       |     PREFIX64_OPTION   |                |                 |
       |======================>|                |                 |
       | (b) PCP MAP RESPONSE  |                |                 |
       |PORT_RESERVATION_OPTION|                |                 |
       |     PREFIX64_OPTION   |                |                 |
       |<======================|                |                 |
       |  (1) SIP INVITE       |                |                 |
       |======================>| (2) SIP INVITE |                 |
       |                       |===============>|  (3) SIP INVITE |
       |                       |                |================>|
       |                       |                |  (4) SIP 200 OK |
       |                       | (5) SIP 200 OK |<================|
       |   (6) SIP 200 OK      |<===============|                 |
       |<======================|                |                 |
       |     (7) SIP ACK       |                |                 |
       |======================>|  (8) SIP ACK   |                 |
       |                       |===============>|    (9) SIP ACK  |
       |                       |                |================>|
       |<======IPv6 RTP=======>|<============IPv4 RTP============>|
       |<===== IPv6 RTCP======>|<============IPv4 RTCP===========>|
       |                       |                                  |

                                 Figure 4

   In Steps (a) and (b), the IPv6-only SIP UA retrieves a pair of ports
   to be used for RTP/RTCP, the external IPv4 address and the Prefix64
   to be used to build IPv4-embedded IPv6 addresses.  The retrieved IPv4
   address and port numbers are used to build the SDP offer in Step (1)
   while Prefix64 is used to construct a corresponding IPv6 address of
   the IPv4 address enclosed in the SDP answer made by the IPv4-only SIP
   UA (Step 6).  RTP/RTCP flows are exchanged between an IPv6-only SIP
   UA and an IPv4-only UA without requiring any ALG at the NAT64 and no
   particular function to be supported by the IPv4-only SIP Proxy Server
   to help establishing the session (e.g., Hosted NAT traversal).

   Now when the session is initiated from IPv4 SIP UA (see Figure 5):
   Steps (a) and (b), the IPv6-only SIP UA retrieves a pair of ports to
   be used for RTP/RTCP, the external IPv4 address and the Prefix64 to
   be used to build IPv4-embedded IPv6 addresses.  These two steps can
   be delayed until receiving the INVITE message (Step 3).  It is
   recommended to prereserve a pair of port to optimize the required

Boucadair                Expires March 15, 2013                 [Page 8]
Internet-Draft             PREFIX64 PCP Option            September 2012

   session establishment delay.  The retrieved IPv4 address and port
   numbers are used to build the SDP answer in Step (4) while Prefix64
   is used to construct a corresponding IPv6 address of the IPv4 address
   enclosed in the SDP offer made by the IPv4-only SIP UA (Step 3).
   RTP/RTCP flows are exchanged between an IPv6-only SIP UA and an IPv4-
   only UA without requiring any ALG at the NAT64 and no particular
   function to be supported by the IPv4-only SIP Proxy Server to help
   establishing the session (e.g., Hosted NAT traversal).

   +---------+              +-----+       +------------+     +---------+
   |IPv6-only|              |NAT64|       |  IPv4 SIP  |     |IPv4-only|
   | SIP UA  |              |     |       |Proxy Server|     | SIP UA  |
   +---------+              +-----+       +------------+     +---------+
       | (a) PCP MAP REQUEST   |                |                 |
       |PORT_RESERVATION_OPTION|                |                 |
       |     PREFIX64_OPTION   |                |                 |
       |======================>|                |                 |
       | (b) PCP MAP RESPONSE  |                |                 |
       |PORT_RESERVATION_OPTION|                |                 |
       |     PREFIX64_OPTION   |                |                 |
       |<======================|                |                 |
       |                       |                |  (1) SIP INVITE |
       |                       | (2) SIP INVITE |<================|
       |   (3) SIP INVITE      |<===============|                 |
       |<======================|                |                 |
       |  (4) SIP 200 OK       |                |                 |
       |======================>| (5) SIP INVITE |                 |
       |                       |===============>|  (6) SIP INVITE |
       |                       |                |================>|
       |                       |                |  (7) SIP ACK    |
       |                       | (8) SIP ACK    |<================|
       |   (9)  SIP ACK        |<===============|                 |
       |<======================|                |                 |
       |<======IPv6 RTP=======>|<============IPv4 RTP============>|
       |<===== IPv6 RTCP======>|<============IPv4 RTCP===========>|
       |                       |                                  |

                                 Figure 5

5.2.  Example with GET_PREFIX64 OpCode

   Figure 6 shows an example of the use of the OpCode defined in
   Section 4.

   Unlike previous examples, two requests are needed to place this
   session: Steps (a) and (b) are used to retrieve the list of {IPv4

Boucadair                Expires March 15, 2013                 [Page 9]
Internet-Draft             PREFIX64 PCP Option            September 2012

   subnet, Prefix64::/n} while Steps (c) and (d) are used to reserve a
   pair of port and learn the assigned IPv4 address.  The remaining
   steps are similar to Figure 4.

   +---------+              +-----+       +------------+     +---------+
   |IPv6-only|              |NAT64|       |  IPv4 SIP  |     |IPv4-only|
   | SIP UA  |              |     |       |Proxy Server|     | SIP UA  |
   +---------+              +-----+       +------------+     +---------+
       |(a)PCP GET_PREFIX64 REQ|                |                 |
       |======================>|                |                 |
       |(b)PCP GET_PREFIX64 REP|                |                 |
       |List of {IPv4 subnet,  |                |                 |
       |         Prefix64::/n} |                |                 |
       |<======================|                |                 |
       | (c) PCP MAP REQUEST   |                |                 |
       |PORT_RESERVATION_OPTION|                |                 |
       |======================>|                |                 |
       | (d) PCP MAP RESPONSE  |                |                 |
       |PORT_RESERVATION_OPTION|                |                 |
       |<======================|                |                 |
       |  (1) SIP INVITE       |                |                 |
       |======================>| (2) SIP INVITE |                 |
       |                       |===============>|  (3) SIP INVITE |
       |                       |                |================>|
       |                       |                |  (4) SIP 200 OK |
       |                       | (5) SIP 200 OK |<================|
       |   (6) SIP 200 OK      |<===============|                 |
       |<======================|                |                 |
       |     (7) SIP ACK       |                |                 |
       |======================>|  (8) SIP ACK   |                 |
       |                       |===============>|    (9) SIP ACK  |
       |                       |                |================>|
       |<======IPv6 RTP=======>|<============IPv4 RTP============>|
       |<===== IPv6 RTCP======>|<============IPv4 RTCP===========>|
       |                       |                                  |

                                 Figure 6

6.  IANA Considerations

   This document request a new PCP OpCode:

      GET_PREFIX64

   This document request a new PCP option:

Boucadair                Expires March 15, 2013                [Page 10]
Internet-Draft             PREFIX64 PCP Option            September 2012

      PREFIX64

7.  Security Considerations

   This document does not introduce any security issue in addition to
   what is taken into account in [I-D.ietf-pcp-base].

8.  Acknowledgements

   Many thanks to S. Perreault , R. Tirumaleswar and T. Tsou for the
   comments and suggestions.

9.  References

9.1.  Normative References

   [I-D.ietf-pcp-base]
              Wing, D., Cheshire, S., Boucadair, M., Penno, R., and P.
              Selkirk, "Port Control Protocol (PCP)",
              draft-ietf-pcp-base-26 (work in progress), June 2012.

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119, March 1997.

   [RFC6052]  Bao, C., Huitema, C., Bagnulo, M., Boucadair, M., and X.
              Li, "IPv6 Addressing of IPv4/IPv6 Translators", RFC 6052,
              October 2010.

   [RFC6146]  Bagnulo, M., Matthews, P., and I. van Beijnum, "Stateful
              NAT64: Network Address and Protocol Translation from IPv6
              Clients to IPv4 Servers", RFC 6146, April 2011.

9.2.  Informative References

   [I-D.boucadair-pcp-rtp-rtcp]
              Boucadair, M. and S. Sivakumar, "Reserving N and N+1 Ports
              with PCP", draft-boucadair-pcp-rtp-rtcp-04 (work in
              progress), April 2012.

Boucadair                Expires March 15, 2013                [Page 11]
Internet-Draft             PREFIX64 PCP Option            September 2012

Author's Address

   Mohamed Boucadair
   France Telecom
   Rennes,   35000
   France

   Email: mohamed.boucadair@orange.com

Boucadair                Expires March 15, 2013                [Page 12]