Network Working Group M. Boucadair
Internet-Draft France Telecom
Intended status: Informational R. Penno
Expires: December 17, 2010 Juniper Networks
D. Wing
Cisco
June 15, 2010
PCP Flow Examples
draft-bpw-softwire-pcp-flow-examples-00
Abstract
This document provides a set of examples to illustrate PCP
operations. It is a companion document to the base PCP
specification.
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 December 17, 2010.
Copyright Notice
Copyright (c) 2010 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
Boucadair, et al. Expires December 17, 2010 [Page 1]
Internet-Draft PCP Flow Examples June 2010
described in the Simplified BSD License.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1. PCP Server Mapping Table . . . . . . . . . . . . . . . . . 3
2. Create Mapping . . . . . . . . . . . . . . . . . . . . . . . . 4
2.1. Create a Mapping with Mandatory IEs . . . . . . . . . . . 4
2.2. Create Mapping with a Hinted External Port Number . . . . 5
2.3. Create Mapping with a Hinted External Port Number . . . . 7
2.4. Create Mapping with a Preferred Lifetime . . . . . . . . . 8
2.5. Create Mapping with all Various Optional IEs . . . . . . . 9
2.6. Create a Mapping with a Port Reservation Option . . . . . 10
2.7. Error Encountered when Creating a Mapping (1st Example) . 11
2.8. Error Encountered when Creating Mapping (2nd Example) . . 12
2.9. Error Encountered when Creating Mapping (3rd Example) . . 13
2.10. Create Mapping with Distinct External IP Addresses . . . . 14
3. List Mappings . . . . . . . . . . . . . . . . . . . . . . . . 16
3.1. List all Mappings Associated with a Client/Subscriber . . 16
3.2. List all Mappings Associated with an IPv4 Address . . . . 19
3.3. Listing All Mappings Associated with an IPv4 Address
and a Given Transport Protocol . . . . . . . . . . . . . . 21
3.4. Listing All Mappings Associated with an IPv4 Address,
a Transport Protocol and a DSCP Code . . . . . . . . . . . 23
3.5. No Existing Mapping . . . . . . . . . . . . . . . . . . . 24
4. Delete Operation . . . . . . . . . . . . . . . . . . . . . . . 24
4.1. Delete All Mappings . . . . . . . . . . . . . . . . . . . 25
4.2. Delete all Mappings Associated with a Transport
Protocol . . . . . . . . . . . . . . . . . . . . . . . . . 25
4.3. Delete Mappings Associated with an IP Address . . . . . . 26
4.4. Delete all Mappings Associated with a Given Transport
Protocol and IP Address . . . . . . . . . . . . . . . . . 26
4.5. Delete an Explicit Mapping . . . . . . . . . . . . . . . . 26
4.6. Failed Delete Operation . . . . . . . . . . . . . . . . . 27
5. Modify an Existing Mapping . . . . . . . . . . . . . . . . . . 28
5.1. Change of the Client-ID . . . . . . . . . . . . . . . . . 28
5.2. Change of the Internal IP Address . . . . . . . . . . . . 28
6. Retrieve the External IP Address . . . . . . . . . . . . . . . 29
6.1. Retrieve the External IP Address . . . . . . . . . . . . . 29
6.2. Assess the Reachability of the PCP Server . . . . . . . . 30
7. Security Considerations . . . . . . . . . . . . . . . . . . . 30
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 30
9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 30
10. Normative References . . . . . . . . . . . . . . . . . . . . . 30
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 31
Boucadair, et al. Expires December 17, 2010 [Page 2]
Internet-Draft PCP Flow Examples June 2010
1. Introduction
As a companion document to [I-D.wing-softwire-port-control-protocol],
this document provides examples to help understanding the PCP
machinery and exchanged PCP messages in various usage contexts.
For more details about PCP protocol specification, the reader is
invited to refer to [I-D.wing-softwire-port-control-protocol].
Examples included in this document make use of the IPv4 and IPv6
address blocks defined in [RFC5737] and [RFC3849] for documentation
purposes.
1.1. PCP Server Mapping Table
The structure of the PCP Server mapping table when controlling a
stateful NAT44 or NAT64 [I-D.ietf-behave-v6v4-xlate-stateful] is
shown below. Some information such as DSCP may not be supported.
Internal IP addresses can be IPv4 or IPv6 addresses.
+----------------------+-------------+
| | Entry Index |
+----------------------+-------------+
| Client-ID | |
| Transport Protocol | |
| Internal IP Address | |
| Internal Port Number | |
| External IP Address | |
| External Port Number | |
| Internal DSCP | |
| External DSCP | |
| Lifetime | |
+----------------------+-------------+
As for the DS-Lite [I-D.ietf-softwire-dual-stack-lite], the mapping
table would be as follows:
Boucadair, et al. Expires December 17, 2010 [Page 3]
Internet-Draft PCP Flow Examples June 2010
+----------------------+-------------+
| | Entry Index |
+----------------------+-------------+
| Client-ID | |
| Tunnel-ID | |
| Transport Protocol | |
| Internal IP Address | |
| Internal Port Number | |
| External IP Address | |
| External Port Number | |
| Internal DSCP | |
| External DSCP | |
| Lifetime | |
+----------------------+-------------+
Tunnel-ID is an IPv6 address (e.g., 2001:DB8:0:0:1::1) of the B4
element.
Decimal and dotted-decimal values are used in the examples listed in
the following sections.
2. Create Mapping
The following figure illustrates the messages which are exchanged to
create a mapping in a PCP-controlled device.
+------+ +------+
| PCP | | PCP |
|Client| |Server|
+------+ +------+
| (1) PCP Map Create Request |
|--------------------------------->|
| (2) PCP Map Create Response |
|<---------------------------------|
| |
Figure 1: Example of creating a mapping
The following sub-sections provide several examples depending on the
included IEs in the PCP Map Create Request.
2.1. Create a Mapping with Mandatory IEs
This example illustrates the content of exchanged PCP messages when
the PCP Client includes only mandatory IEs: Client-ID, Transport
protocol (TCP), Internal Port Number and Internal IP Address.
Boucadair, et al. Expires December 17, 2010 [Page 4]
Internet-Draft PCP Flow Examples June 2010
1. PCP Map Create Request
Client-ID IE (ID)
Transport Protocol IE (2)
Internal Port Number IE (11234)
Internal IP Address IE (198.51.100.1)
2. PCP Map Create Response
Client-ID IE (ID)
Transport Protocol IE (2)
Internal Port Number IE (11234)
Internal IP Address IE (198.51.100.1)
External IP Address IE (192.0.2.1)
External Port Number IE (32654)
Assigned Mapping Lifetime IE (3600)
As a result, the following entry is added to the PCP Server mapping
table:
+----------------------+--------------+
| | Entry 1 |
+----------------------+--------------+
| Client-ID | ID |
| Transport Protocol | TCP |
| Internal IP Address | 198.51.100.1 |
| Internal Port Number | 11234 |
| External IP Address | 192.0.2.1 |
| External Port Number | 32654 |
| Internal DSCP | -- |
| External DSCP | -- |
| Lifetime | 3600 |
+----------------------+--------------+
2.2. Create Mapping with a Hinted External Port Number
In this example, the PCP Client includes all mandatory IEs and a
preferred external port number.
Boucadair, et al. Expires December 17, 2010 [Page 5]
Internet-Draft PCP Flow Examples June 2010
1. PCP Map Create Request
Client-ID IE (ID)
Transport Protocol IE (2)
Internal Port Number IE (10001)
Internal IP Address IE (198.51.100.1)
Hinted External Port Number IE (15632)
2. PCP Map Create Response
Client-ID IE (ID)
Transport Protocol IE (2)
Internal Port Number IE (10001)
Internal IP Address IE (198.51.100.1)
External IP Address IE (192.0.2.1)
External Port Number IE (13568)
Assigned Mapping Lifetime IE (3600)
As a result, the following entry is added to the PCP Server mapping
table:
+----------------------+---------+--------------+
| | Entry i | Entry i+1 |
+----------------------+---------+--------------+
| Client-ID | ... | ID |
| Transport Protocol | .. | TCP |
| Internal IP Address | .. | 198.51.100.1 |
| Internal Port Number | .. | 10001 |
| External IP Address | .. | 192.0.2.1 |
| External Port Number | .. | 13568 |
| Internal DSCP | .. | -- |
| External DSCP | .. | -- |
| Lifetime | .. | 3600 |
+----------------------+---------+--------------+
Boucadair, et al. Expires December 17, 2010 [Page 6]
Internet-Draft PCP Flow Examples June 2010
2.3. Create Mapping with a Hinted External Port Number
In this example the PCP Server assigns the hinted port number to the
requesting PCP Client.
1. PCP Map Create Request
Client-ID IE (ID)
Transport Protocol IE (2)
Internal Port Number IE (9568)
Internal IP Address IE (198.51.100.1)
Hinted External Port Number IE (15632)
2. PCP Map Create Response
Client-ID IE (ID)
Transport Protocol IE (2)
Internal Port Number IE (9568)
Internal IP Address IE (198.51.100.1)
External IP Address IE (192.0.2.1)
External Port Number IE (15632)
Assigned Mapping Lifetime IE (3600)
As a result, the following entry is added to the PCP Server mapping
table:
+----------------------+---------+--------------+
| | Entry i | Entry i+1 |
+----------------------+---------+--------------+
| Client-ID | ... | ID |
| Transport Protocol | .. | TCP |
| Internal IP Address | .. | 198.51.100.1 |
| Internal Port Number | .. | 9568 |
| External IP Address | .. | 192.0.2.1 |
| External Port Number | .. | 15632 |
| Internal DSCP | .. | -- |
| External DSCP | .. | -- |
Boucadair, et al. Expires December 17, 2010 [Page 7]
Internet-Draft PCP Flow Examples June 2010
| Lifetime | .. | 3600 |
+----------------------+---------+--------------+
2.4. Create Mapping with a Preferred Lifetime
In this example, the PCP Client includes all mandatory IEs, a
preferred external port number and a preferred mapping lifetime. The
PCP Server returns a mapping using values it assigns according to its
configured policies and port numbers availability.
1. PCP Map Create Request
Client-ID IE (ID)
Transport Protocol IE (2)
Internal Port Number IE (16254)
Internal IP Address IE (198.51.100.1)
Hinted External Port Number IE (25685)
Requested Mapping Lifetime IE (1800)
2. PCP Map Create Response
Client-ID IE (ID)
Transport Protocol IE (2)
Internal Port Number IE (16254)
Internal IP Address IE (198.51.100.1)
External IP Address IE (192.0.2.1)
External Port Number IE (16532)
Assigned Mapping Lifetime IE (1800)
As a result, the following entry is added to the PCP Server mapping
table:
Boucadair, et al. Expires December 17, 2010 [Page 8]
Internet-Draft PCP Flow Examples June 2010
+----------------------+---------+--------------+
| | Entry i | Entry i+1 |
+----------------------+---------+--------------+
| Client-ID | ... | ID |
| Transport Protocol | .. | TCP |
| Internal IP Address | .. | 198.51.100.1 |
| Internal Port Number | .. | 16254 |
| External IP Address | .. | 192.0.2.1 |
| External Port Number | .. | 16532 |
| Internal DSCP | .. | -- |
| External DSCP | .. | -- |
| Lifetime | .. | 1800 |
+----------------------+---------+--------------+
2.5. Create Mapping with all Various Optional IEs
This flow shows an example of the content of PCP messages that will
be exchanged to create a mapping in a PCP-controlled device. In this
example, the PCP Client indicates a requested external UDP port
number and also a DSCP marking policy (Internal DSCP <=> External
DSCP).
In reference to Figure 1, the content of exchanged PCP messages is as
follows:
1. PCP Map Create Request
Client-ID IE (Client-ID=ID)
Transport Protocol IE (1)
Internal Port Number IE (15968)
Internal IP Address IE (192.168.0.1)
Hinted External Port Number IE (15648)
Internal DSCP IE (45)
External DSCP IE (32)
Requested Mapping Lifetime IE (8965)
2. PCP Map Create Response
Client-ID IE (ID)
Boucadair, et al. Expires December 17, 2010 [Page 9]
Internet-Draft PCP Flow Examples June 2010
Transport Protocol IE (1)
Internal Port Number IE (15968)
Internal IP Address IE (192.168.0.1)
External IP Address IE (192.0.2.1)
External Port Number IE (18759)
Internal DSCP IE (45)
External DSCP IE (32)
Assigned Mapping Lifetime IE (3600)
As a result, the following entry is added to the PCP Server mapping
table:
+----------------------+---------+--------------+
| | Entry i | Entry i+1 |
+----------------------+---------+--------------+
| Client-ID | ... | ID |
| Transport Protocol | .. | UDP |
| Internal IP Address | .. | 198.51.100.1 |
| Internal Port Number | .. | 15968 |
| External IP Address | .. | 192.0.2.1 |
| External Port Number | .. | 18759 |
| Internal DSCP | .. | 45 |
| External DSCP | .. | 32 |
| Lifetime | .. | 3600 |
+----------------------+---------+--------------+
2.6. Create a Mapping with a Port Reservation Option
The following example depicts a scenario where the PCP Client
indicates its UDP port parity preference (using Port Reservation
Option IE). The PCP Server, if it supports such option, may assign
an external port number according to the requested policy.
1. PCP Map Create Request
Client-ID IE (ID)
Transport Protocol IE (1)
Internal Port Number IE (8759)
Boucadair, et al. Expires December 17, 2010 [Page 10]
Internet-Draft PCP Flow Examples June 2010
Internal IP Address IE (198.51.100.1)
Hinted External Port Number IE (11233)
Port Reservation Option IE (Preserve parity)
Requested Mapping Lifetime IE (3600)
2. PCP Map Create Response
Client-ID IE (ID)
Transport Protocol IE (1)
Internal Port Number IE (8759)
Internal IP Address IE (198.51.100.1)
External IP Address IE (192.0.2.1)
External Port Number IE (13565)
Assigned Mapping Lifetime IE (3600)
As a result, the following entry is added to the PCP Server mapping
table:
+----------------------+---------+--------------+
| | Entry i | Entry i+1 |
+----------------------+---------+--------------+
| Client-ID | ... | ID |
| Transport Protocol | .. | UDP |
| Internal IP Address | .. | 198.51.100.1 |
| Internal Port Number | .. | 8759 |
| External IP Address | .. | 192.0.2.1 |
| External Port Number | .. | 13565 |
| Internal DSCP | .. | -- |
| External DSCP | .. | -- |
| Lifetime | .. | 3600 |
+----------------------+---------+--------------+
2.7. Error Encountered when Creating a Mapping (1st Example)
This example shows the exchange that occurs when the PCP Server is
unable to meet the PCP Client's request: DSCP re-marking is not
supported.
Boucadair, et al. Expires December 17, 2010 [Page 11]
Internet-Draft PCP Flow Examples June 2010
+------+ +------+
| PCP | | PCP |
|Client| |Server|
+------+ +------+
| (1) PCP Map Create Request |
|--------------------------------->|
| (2) PCP Error |
|<---------------------------------|
| |
Figure 2: Error when creating a mapping
1. PCP Map Create Request
Client-ID IE (ID)
Transport Protocol IE (2)
Internal Port Number IE
Internal IP Address IE
Hinted External Port Number IE
Internal DSCP IE
External DSCP IE
Requested Mapping Lifetime IE
2. PCP Error
Client-ID IE (ID)
Error Code IE
UTF-8 Encoded Error IE (DSCP re-marking is not supported)
2.8. Error Encountered when Creating Mapping (2nd Example)
This example shows the exchange that occurs when the PCP Server is
unable to meet the PCP Client's request: per-subscriber limit is
reached.
1. PCP Map Create Request
Boucadair, et al. Expires December 17, 2010 [Page 12]
Internet-Draft PCP Flow Examples June 2010
Client-ID IE (ID)
Transport Protocol IE (1)
Internal Port Number IE
Internal IP Address IE
Hinted External Port Number IE
Requested Mapping Lifetime IE
2. PCP Error
Client-ID IE (ID)
Error Code IE (code=7, sub-code=1)
2.9. Error Encountered when Creating Mapping (3rd Example)
This example shows the exchange that occurs when the PCP Server is
unable to meet the PCP Client's request: Unsupported transport
protocol.
1. PCP Map Create Request
Client-ID IE (ID)
Transport Protocol IE (3)
Internal Port Number IE
Internal IP Address IE
Hinted External Port Number IE
Requested Mapping Lifetime IE
2. PCP Error
Client-ID IE (ID)
Error Code IE (code=6, sub-code=1)
UTF-8 Encoded Error IE (Unsupported transport protocol)
Boucadair, et al. Expires December 17, 2010 [Page 13]
Internet-Draft PCP Flow Examples June 2010
2.10. Create Mapping with Distinct External IP Addresses
Figure 3 shows a PCP Server with a pool of public IPv4 addresses
(192.0.2/24) and two PCP Clients associated with different
subscribers. The PCP Clients each make a port mapping request to the
PCP Server which creates the mapping from its 192.0.2/24 pool.
+--------+ +------+ +--------+
| PCP | | PCP | | PCP |
|Client 1| |Server| |Client 2|
+--------+ +------+ +--------+
|(1) PCP Map Create Request | |
|---------------------------->| |
|(2) PCP Map Create Response | |
|<----------------------------|(a) PCP Map Create Request |
| |<---------------------------|
| |(b) PCP Map Create Response |
| |--------------------------->|
| | |
Figure 3: Example of creating mappings with distinct external IP
addresses
In this example, the PCP Clients were mapped to different public
addresses as illustrated in the content of the PCP messages listed
below.
The content of PCP messages exchanged between PCP Client 1 and the
PCP Server is as follows:
1. PCP Map Create Request
Client-ID IE (ID)
Transport Protocol IE (1)
Internal Port Number IE (25655)
Internal IP Address IE (198.51.100.1)
2. PCP Map Create Response
Client-ID IE (ID)
Transport Protocol IE (1)
Boucadair, et al. Expires December 17, 2010 [Page 14]
Internet-Draft PCP Flow Examples June 2010
Internal Port Number IE (25655)
Internal IP Address IE (198.51.100.1)
External IP Address IE (192.0.2.1)
External Port Number IE (15659)
Assigned Mapping Lifetime IE (3600)
The content of PCP messages exchanged between PCP Client 2 and the
PCP Server is as follows:
1. PCP Map Create Request
Client-ID IE (ID2)
Transport Protocol IE (1)
Internal Port Number IE (19856)
Internal IP Address IE (198.51.100.2)
2. PCP Map Create Response
Client-ID IE (ID2)
Transport Protocol IE (1)
Internal Port Number IE (19856)
Internal IP Address IE (198.51.100.2)
External IP Address IE (192.0.2.2)
External Port Number IE (32654)
Assigned Mapping Lifetime IE (3600)
At the end of this exchange, the following entries are instructed in
the PCP Server.
Boucadair, et al. Expires December 17, 2010 [Page 15]
Internet-Draft PCP Flow Examples June 2010
+----------------------+--------------+--------------+
| | Entry i | Entry i+1 |
+----------------------+--------------+--------------+
| Client-ID | ID1 | ID2 |
| Transport Protocol | UDP | UDP |
| Internal IP Address | 198.51.100.1 | 198.51.100.2 |
| Internal Port Number | 25655 | 19856 |
| External IP Address | 192.0.2.1 | 192.0.2.2 |
| External Port Number | 15659 | 32654 |
| Lifetime | 3600 | 3600 |
+----------------------+--------------+--------------+
3. List Mappings
In order to retrieve a list of active mappings, Figure 4 illustrates
the PCP messages exchange that occurs. The following sub-sections
describes various cases according to the IEs as included by the PCP
Client in the PCP Map List Request.
+------+ +------+
| PCP | | PCP |
|Client| |Server|
+------+ +------+
| (1) PCP Map List Request |
|-------------------------------->|
| (2) PCP Map List Response |
|<--------------------------------|
| |
Figure 4: Example of PCP Map List
3.1. List all Mappings Associated with a Client/Subscriber
This example shows the PCP exchange that occurs in order to retrieve
all mappings associated with a given PCP Client (or a subscriber).
The value of the transport protocol is positioned to 0 (i.e., all
transport protocols) to indicate to the PCP Server that all mappings
associated with a client/subscriber are to be returned whatever their
associated transport protocol.
1. PCP Map List Request
Client-ID IE (ID)
Transport Protocol IE (0)
Boucadair, et al. Expires December 17, 2010 [Page 16]
Internet-Draft PCP Flow Examples June 2010
2. PCP Map List Response
Client-ID IE (ID)
Forwarding IE
Transport Protocol IE (2)
Internal Port Number IE (11234)
Internal IP Address IE (198.51.100.1)
External IP Address IE (192.0.2.1)
External Port Number IE (32654)
Remaining Mapping Lifetime IE (1254)
Forwarding IE
Transport Protocol IE (2)
Internal Port Number IE (10001)
Internal IP Address IE (198.51.100.1)
External IP Address IE (192.0.2.1)
External Port Number IE (13568)
Remaining Mapping Lifetime IE (2500)
Forwarding IE
Transport Protocol IE (2)
Internal Port Number IE (9568)
Internal IP Address IE (198.51.100.1)
External IP Address IE (192.0.2.1)
External Port Number IE (15632)
Remaining Mapping Lifetime IE (2800)
Boucadair, et al. Expires December 17, 2010 [Page 17]
Internet-Draft PCP Flow Examples June 2010
Forwarding IE
Transport Protocol IE (2)
Internal Port Number IE (16254)
Internal IP Address IE (198.51.100.1)
External IP Address IE (192.0.2.1)
External Port Number IE (16532)
Remaining Mapping Lifetime IE (2900)
Forwarding IE
Transport Protocol IE (1)
Internal Port Number IE (15968)
Internal IP Address IE (198.51.100.1)
External IP Address IE (192.0.2.1)
External Port Number IE (18759)
Internal DSCP IE (45)
External DSCP IE (32)
Remaining Mapping Lifetime IE (3000)
Forwarding IE
Transport Protocol IE (1)
Internal Port Number IE (8759)
Internal IP Address IE (198.51.100.1)
External IP Address IE (192.0.2.1)
External Port Number IE (13565)
Remaining Mapping Lifetime IE (3200)
Boucadair, et al. Expires December 17, 2010 [Page 18]
Internet-Draft PCP Flow Examples June 2010
Forwarding IE
Transport Protocol IE (1)
Internal Port Number IE (25655)
Internal IP Address IE (198.51.100.1)
External IP Address IE (192.0.2.1)
External Port Number IE (32654)
Remaining Mapping Lifetime IE (3300)
3.2. List all Mappings Associated with an IPv4 Address
This example shows the PCP exchange that occurs in order to retrieve
all mappings associated with a given PCP Client (subscriber) and a
given internal IP address:
1. PCP Map List Request
Client-ID IE (ID)
Transport Protocol IE (0)
Internal IP Address IE (198.51.100.1)
2. PCP Map List Response
Client-ID IE (ID)
Forwarding IE
Transport Protocol IE (2)
Internal Port Number IE (11234)
Internal IP Address IE (198.51.100.1)
External IP Address IE (192.0.2.1)
External Port Number IE (32654)
Remaining Mapping Lifetime IE (1254)
Boucadair, et al. Expires December 17, 2010 [Page 19]
Internet-Draft PCP Flow Examples June 2010
Forwarding IE
Transport Protocol IE (2)
Internal Port Number IE (10001)
Internal IP Address IE (198.51.100.1)
External IP Address IE (192.0.2.1)
External Port Number IE (13568)
Remaining Mapping Lifetime IE (2500)
Forwarding IE
Transport Protocol IE (2)
Internal Port Number IE (9568)
Internal IP Address IE (198.51.100.1)
External IP Address IE (192.0.2.1)
External Port Number IE (15632)
Remaining Mapping Lifetime IE (2800)
Forwarding IE
Transport Protocol IE (2)
Internal Port Number IE (16254)
Internal IP Address IE (198.51.100.1)
External IP Address IE (192.0.2.1)
External Port Number IE (16532)
Remaining Mapping Lifetime IE (2900)
Forwarding IE
Transport Protocol IE (1)
Internal Port Number IE (15968)
Boucadair, et al. Expires December 17, 2010 [Page 20]
Internet-Draft PCP Flow Examples June 2010
Internal IP Address IE (198.51.100.1)
External IP Address IE (192.0.2.1)
External Port Number IE (18759)
Internal DSCP IE (45)
External DSCP IE (32)
Remaining Mapping Lifetime IE (3000)
Forwarding IE
Transport Protocol IE (1)
Internal Port Number IE (8759)
Internal IP Address IE (198.51.100.1)
External IP Address IE (192.0.2.1)
External Port Number IE (13565)
Remaining Mapping Lifetime IE (3200)
Forwarding IE
Transport Protocol IE (1)
Internal Port Number IE (25655)
Internal IP Address IE (198.51.100.1)
External IP Address IE (192.0.2.1)
External Port Number IE (32654)
Remaining Mapping Lifetime IE (3300)
3.3. Listing All Mappings Associated with an IPv4 Address and a Given
Transport Protocol
This example shows the PCP exchange that occurs in order retrieve all
mappings associated with a given internal IP address and a transport
protocol (e.g., TCP).
Boucadair, et al. Expires December 17, 2010 [Page 21]
Internet-Draft PCP Flow Examples June 2010
1. PCP Map List Request
Client-ID IE (ID)
Transport Protocol IE (2)
Internal IP Address IE
2. PCP Map List Response
Client-ID IE (ID)
Forwarding IE
Transport Protocol IE (2)
Internal Port Number IE (11234)
Internal IP Address IE (198.51.100.1)
External IP Address IE (192.0.2.1)
External Port Number IE (32654)
Remaining Mapping Lifetime IE (1254)
Forwarding IE
Transport Protocol IE (2)
Internal Port Number IE (10001)
Internal IP Address IE (198.51.100.1)
External IP Address IE (192.0.2.1)
External Port Number IE (13568)
Remaining Mapping Lifetime IE (2500)
Forwarding IE
Transport Protocol IE (2)
Internal Port Number IE (9568)
Internal IP Address IE (198.51.100.1)
Boucadair, et al. Expires December 17, 2010 [Page 22]
Internet-Draft PCP Flow Examples June 2010
External IP Address IE (192.0.2.1)
External Port Number IE (15632)
Remaining Mapping Lifetime IE (2800)
Forwarding IE
Transport Protocol IE (2)
Internal Port Number IE (16254)
Internal IP Address IE (198.51.100.1)
External IP Address IE (192.0.2.1)
External Port Number IE (16532)
Remaining Mapping Lifetime IE (2900)
3.4. Listing All Mappings Associated with an IPv4 Address, a Transport
Protocol and a DSCP Code
This example shows the PCP exchange that occurs when retrieving all
mappings associated with a given internal IP address, a transport
protocol (e.g., TCP) and an internal DSCP code.
1. PCP Map List Request
Client-ID IE (ID)
Transport Protocol IE (1)
Internal IP Address IE
Internal DSCP IE
2. PCP Map List Response
Client-ID IE (ID)
Transport Protocol IE (1)
Internal Port Number IE (15968)
Boucadair, et al. Expires December 17, 2010 [Page 23]
Internet-Draft PCP Flow Examples June 2010
Internal IP Address IE (198.51.100.1)
External IP Address IE (192.0.2.1)
External Port Number IE (18759)
Internal DSCP IE (45)
External DSCP IE (32)
Remaining Mapping Lifetime IE (3000)
3.5. No Existing Mapping
This example shows the content of PCP messages when no mapping
matching the requested criteria is found.
1. PCP Map List Request
Client-ID IE (ID)
Transport Protocol IE (1)
Internal IP Address IE (198.51.100.1)
Internal DSCP IE (56)
2. PCP Map List Response (ID)
Client-ID IE (ID)
4. Delete Operation
In order to delete a mapping, Figure 5 illustrates the PCP messages
exchange that occurs. The following sub-sections describe various
cases according to the IEs included by the PCP Client in the PCP Map
Delete Request.
Boucadair, et al. Expires December 17, 2010 [Page 24]
Internet-Draft PCP Flow Examples June 2010
+------+ +------+
| PCP | | PCP |
|Client| |Server|
+------+ +------+
| (1) PCP Map Delete Request |
|-------------------------------->|
| (2) PCP Map Delete Response |
|<--------------------------------|
| |
Figure 5: Delete mapping
4.1. Delete All Mappings
This example shows the PCP exchange that occurs in order to delete
all mappings associated with a given PCP Client (subscriber). The
value of the transport protocol is positioned to "0" to indicate to
the PCP Server that all mappings are to be deleted whatever their
associated transport protocol.
1. PCP Map Delete Request
Client-ID IE (ID)
Transport Protocol IE (0)
2. PCP Map Delete Response (ID)
Client-ID IE (ID)
4.2. Delete all Mappings Associated with a Transport Protocol
This example shows the PCP exchange that occurs in order to delete
all mappings associated with a given PCP Client (subscriber) and a
given transport protocol.
1. PCP Map Delete Request
Client-ID IE (ID)
Transport Protocol IE (1)
2. PCP Map Delete Response
Client-ID IE (ID)
Boucadair, et al. Expires December 17, 2010 [Page 25]
Internet-Draft PCP Flow Examples June 2010
4.3. Delete Mappings Associated with an IP Address
This example shows the PCP exchange that occurs in order to delete
all mappings associated with an internal IP address (same PCP
Client).
1. PCP Map Delete Request
Client-ID IE (ID)
Transport Protocol IE (0)
Internal IP Address IE (198.51.100.1)
2. PCP Map Delete Response
Client-ID IE (ID)
4.4. Delete all Mappings Associated with a Given Transport Protocol and
IP Address
This example shows the PCP exchange that occurs in order to delete
all mappings associated with an internal IP address (same PCP Client)
and a given transport protocol.
1. PCP Map Delete Request
Client-ID IE (ID)
Transport Protocol IE (2)
Internal IP Address IE (198.51.100.1)
2. PCP Map Delete Response
Client-ID IE (ID)
4.5. Delete an Explicit Mapping
This example shows the PCP exchange that occurs when requesting to
delete all mappings associated with an internal IP address and a
given transport protocol (same PCP Client).
1. PCP Map Delete Request
Client-ID IE (ID)
Boucadair, et al. Expires December 17, 2010 [Page 26]
Internet-Draft PCP Flow Examples June 2010
Transport Protocol IE (1)
Internal Port Number IE (8759)
Internal IP Address IE (198.51.100.1)
2. PCP Map Delete Response
Client-ID IE (ID)
4.6. Failed Delete Operation
This example shows the PCP exchange that occurs when requesting to
delete a mapping which does not exist in the server side.
[[Note to the base PCP doc: Why not returning a PCP Error with an
Error Code IE set to "this mapping does not exist". Upon receipt of
this message, the PCP Client updates its local states. The current
PCP base document states that a a response is sent back to the PCP
Client asking to delete a mapping which does not exist. The
motivation is that a previous delete request has been sent by the PCP
Client but the response from the PCP Server has been lost.]]
+------+ +------+
| PCP | | PCP |
|Client| |Server|
+------+ +------+
| (1) PCP Map Delete Request |
|-------------------------------->|
| (2) PCP Map Delete Response |
|<--------------------------------|
| |
Figure 6: Error when deleting a mapping
1. PCP Map Delete Request
Client-ID IE (ID)
Transport Protocol IE (1)
Internal Port Number IE (8759)
Internal IP Address IE (198.51.100.1)
Boucadair, et al. Expires December 17, 2010 [Page 27]
Internet-Draft PCP Flow Examples June 2010
2. PCP Map Delete Response
Client-ID IE (ID)
5. Modify an Existing Mapping
To update an existing mapping, the exchange illustrated in Figure 7
is observed.
+------+ +------+
| PCP | | PCP |
|Client| |Server|
+------+ +------+
| (1) PCP Map Refresh Request |
|-------------------------------->|
| (2) PCP Map Refresh Response |
|<--------------------------------|
| |
TBC
Figure 7: Modify an existing mapping
5.1. Change of the Client-ID
The content of exchanged PCP messages is as follows:
1. PCP Map Refresh Request
Client-ID IE (ID)
New Client-ID IE (ID1)
2. PCP Map Refresh Response
Client-ID IE (ID1)
5.2. Change of the Internal IP Address
The content of exchanged PCP messages is as follows:
1. PCP Map Refresh Request
Client-ID IE (ID)
New Internal IP Address (198.51.100.2)
Boucadair, et al. Expires December 17, 2010 [Page 28]
Internet-Draft PCP Flow Examples June 2010
2. PCP Map Refresh Response
Client-ID IE (ID)
6. Retrieve the External IP Address
6.1. Retrieve the External IP Address
In order to retrieve the IP address used on the external side of the
PCP-controlled device (Figure 8), a PCP Client issues a PCP PING
message. Once received by the PCP Server, a PCP PONG message is sent
by the PCP Server in return. This message conveys only the External
IP Address IE. This IE includes the external IP address used by the
PCP-controlled device for all outbound communications established by
the subscriber.
An External IP Address IE is included in the PCP PONG response only
if the PCP PING message included an Internal IP Address IE.
+------+ +------+
| PCP | | PCP |
|Client| |Server|
+------+ +------+
| (1) PCP PING |
|---------------------------->|
| (2) PCP PONG |
|<----------------------------|
| |
Figure 8: Flow Example of a PING/PONG exchange: Get the external IP
address
1. PCP PING
Client-ID IE (ID)
Internal IP Address IE (198.51.100.1)
2. PCP PONG
Client-ID IE (ID)
Internal IP Address IE (198.51.100.1)
External IP Address IE (192.0.2.1)
Boucadair, et al. Expires December 17, 2010 [Page 29]
Internet-Draft PCP Flow Examples June 2010
6.2. Assess the Reachability of the PCP Server
In this example, the PCP Client issues a PCP PING with no IEs to an
IP address of a PCP Server. Once received by the PCP Server, since
it is configured to reply to such request, it sends back a PCP PONG
including a Capability IE.
+------+ +------+
| PCP | | PCP |
|Client| |Server|
+------+ +------+
| (1) PCP PING |
|---------------------------->|
| (2) PCP PONG |
|<----------------------------|
| |
Figure 9: Flow Example of a PING/PONG exchange: Check the
availability of the PCP Server
1. PCP PING
2. PCP PONG
Capability IE
7. Security Considerations
This document does not define any protocol nor architecture. No
security issue is introduced in this document.
8. IANA Considerations
This document has no IANA actions.
9. Acknowledgements
Many thanks to C. Jacquenet for his review.
10. Normative References
[I-D.ietf-behave-v6v4-xlate-stateful]
Bagnulo, M., Matthews, P., and I. Beijnum, "Stateful
Boucadair, et al. Expires December 17, 2010 [Page 30]
Internet-Draft PCP Flow Examples June 2010
NAT64: Network Address and Protocol Translation from IPv6
Clients to IPv4 Servers",
draft-ietf-behave-v6v4-xlate-stateful-11 (work in
progress), March 2010.
[I-D.ietf-softwire-dual-stack-lite]
Durand, A., Droms, R., Haberman, B., Woodyatt, J., Lee,
Y., and R. Bush, "Dual-Stack Lite Broadband Deployments
Following IPv4 Exhaustion",
draft-ietf-softwire-dual-stack-lite-04 (work in progress),
March 2010.
[I-D.wing-softwire-port-control-protocol]
Wing, D., Penno, R., and M. Boucadair, "Port Control
Protocol (PCP)",
draft-wing-softwire-port-control-protocol-01 (work in
progress), March 2010.
[RFC3849] Huston, G., Lord, A., and P. Smith, "IPv6 Address Prefix
Reserved for Documentation", RFC 3849, July 2004.
[RFC5737] Arkko, J., Cotton, M., and L. Vegoda, "IPv4 Address Blocks
Reserved for Documentation", RFC 5737, January 2010.
Authors' Addresses
Mohamed Boucadair
France Telecom
Rennes, 35000
France
Email: mohamed.boucadair@orange-ftgroup.com
Reinaldo Penno
Juniper Networks
1194 N Mathilda Avenue
Sunnyvale, California 94089
USA
Email: rpenno@juniper.net
Boucadair, et al. Expires December 17, 2010 [Page 31]
Internet-Draft PCP Flow Examples June 2010
Dan Wing
Cisco Systems, Inc.
170 West Tasman Drive
San Jose, California 95134
USA
Email: dwing@cisco.com
Boucadair, et al. Expires December 17, 2010 [Page 32]