idnits 2.17.00 (12 Aug 2021) /tmp/idnits59254/draft-bpw-softwire-pcp-flow-examples-00.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- No issues found here. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (June 15, 2010) is 4351 days in the past. Is this intentional? Checking references for intended status: Informational ---------------------------------------------------------------------------- == Outdated reference: draft-ietf-behave-v6v4-xlate-stateful has been published as RFC 6146 == Outdated reference: draft-ietf-softwire-dual-stack-lite has been published as RFC 6333 == Outdated reference: A later version (-02) exists of draft-wing-softwire-port-control-protocol-01 Summary: 0 errors (**), 0 flaws (~~), 4 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Network Working Group M. Boucadair 3 Internet-Draft France Telecom 4 Intended status: Informational R. Penno 5 Expires: December 17, 2010 Juniper Networks 6 D. Wing 7 Cisco 8 June 15, 2010 10 PCP Flow Examples 11 draft-bpw-softwire-pcp-flow-examples-00 13 Abstract 15 This document provides a set of examples to illustrate PCP 16 operations. It is a companion document to the base PCP 17 specification. 19 Status of this Memo 21 This Internet-Draft is submitted in full conformance with the 22 provisions of BCP 78 and BCP 79. 24 Internet-Drafts are working documents of the Internet Engineering 25 Task Force (IETF). Note that other groups may also distribute 26 working documents as Internet-Drafts. The list of current Internet- 27 Drafts is at http://datatracker.ietf.org/drafts/current/. 29 Internet-Drafts are draft documents valid for a maximum of six months 30 and may be updated, replaced, or obsoleted by other documents at any 31 time. It is inappropriate to use Internet-Drafts as reference 32 material or to cite them other than as "work in progress." 34 This Internet-Draft will expire on December 17, 2010. 36 Copyright Notice 38 Copyright (c) 2010 IETF Trust and the persons identified as the 39 document authors. All rights reserved. 41 This document is subject to BCP 78 and the IETF Trust's Legal 42 Provisions Relating to IETF Documents 43 (http://trustee.ietf.org/license-info) in effect on the date of 44 publication of this document. Please review these documents 45 carefully, as they describe your rights and restrictions with respect 46 to this document. Code Components extracted from this document must 47 include Simplified BSD License text as described in Section 4.e of 48 the Trust Legal Provisions and are provided without warranty as 49 described in the Simplified BSD License. 51 Table of Contents 53 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 54 1.1. PCP Server Mapping Table . . . . . . . . . . . . . . . . . 3 55 2. Create Mapping . . . . . . . . . . . . . . . . . . . . . . . . 4 56 2.1. Create a Mapping with Mandatory IEs . . . . . . . . . . . 4 57 2.2. Create Mapping with a Hinted External Port Number . . . . 5 58 2.3. Create Mapping with a Hinted External Port Number . . . . 7 59 2.4. Create Mapping with a Preferred Lifetime . . . . . . . . . 8 60 2.5. Create Mapping with all Various Optional IEs . . . . . . . 9 61 2.6. Create a Mapping with a Port Reservation Option . . . . . 10 62 2.7. Error Encountered when Creating a Mapping (1st Example) . 11 63 2.8. Error Encountered when Creating Mapping (2nd Example) . . 12 64 2.9. Error Encountered when Creating Mapping (3rd Example) . . 13 65 2.10. Create Mapping with Distinct External IP Addresses . . . . 14 66 3. List Mappings . . . . . . . . . . . . . . . . . . . . . . . . 16 67 3.1. List all Mappings Associated with a Client/Subscriber . . 16 68 3.2. List all Mappings Associated with an IPv4 Address . . . . 19 69 3.3. Listing All Mappings Associated with an IPv4 Address 70 and a Given Transport Protocol . . . . . . . . . . . . . . 21 71 3.4. Listing All Mappings Associated with an IPv4 Address, 72 a Transport Protocol and a DSCP Code . . . . . . . . . . . 23 73 3.5. No Existing Mapping . . . . . . . . . . . . . . . . . . . 24 74 4. Delete Operation . . . . . . . . . . . . . . . . . . . . . . . 24 75 4.1. Delete All Mappings . . . . . . . . . . . . . . . . . . . 25 76 4.2. Delete all Mappings Associated with a Transport 77 Protocol . . . . . . . . . . . . . . . . . . . . . . . . . 25 78 4.3. Delete Mappings Associated with an IP Address . . . . . . 26 79 4.4. Delete all Mappings Associated with a Given Transport 80 Protocol and IP Address . . . . . . . . . . . . . . . . . 26 81 4.5. Delete an Explicit Mapping . . . . . . . . . . . . . . . . 26 82 4.6. Failed Delete Operation . . . . . . . . . . . . . . . . . 27 83 5. Modify an Existing Mapping . . . . . . . . . . . . . . . . . . 28 84 5.1. Change of the Client-ID . . . . . . . . . . . . . . . . . 28 85 5.2. Change of the Internal IP Address . . . . . . . . . . . . 28 86 6. Retrieve the External IP Address . . . . . . . . . . . . . . . 29 87 6.1. Retrieve the External IP Address . . . . . . . . . . . . . 29 88 6.2. Assess the Reachability of the PCP Server . . . . . . . . 30 89 7. Security Considerations . . . . . . . . . . . . . . . . . . . 30 90 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 30 91 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 30 92 10. Normative References . . . . . . . . . . . . . . . . . . . . . 30 93 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 31 95 1. Introduction 97 As a companion document to [I-D.wing-softwire-port-control-protocol], 98 this document provides examples to help understanding the PCP 99 machinery and exchanged PCP messages in various usage contexts. 101 For more details about PCP protocol specification, the reader is 102 invited to refer to [I-D.wing-softwire-port-control-protocol]. 104 Examples included in this document make use of the IPv4 and IPv6 105 address blocks defined in [RFC5737] and [RFC3849] for documentation 106 purposes. 108 1.1. PCP Server Mapping Table 110 The structure of the PCP Server mapping table when controlling a 111 stateful NAT44 or NAT64 [I-D.ietf-behave-v6v4-xlate-stateful] is 112 shown below. Some information such as DSCP may not be supported. 113 Internal IP addresses can be IPv4 or IPv6 addresses. 115 +----------------------+-------------+ 116 | | Entry Index | 117 +----------------------+-------------+ 118 | Client-ID | | 119 | Transport Protocol | | 120 | Internal IP Address | | 121 | Internal Port Number | | 122 | External IP Address | | 123 | External Port Number | | 124 | Internal DSCP | | 125 | External DSCP | | 126 | Lifetime | | 127 +----------------------+-------------+ 129 As for the DS-Lite [I-D.ietf-softwire-dual-stack-lite], the mapping 130 table would be as follows: 132 +----------------------+-------------+ 133 | | Entry Index | 134 +----------------------+-------------+ 135 | Client-ID | | 136 | Tunnel-ID | | 137 | Transport Protocol | | 138 | Internal IP Address | | 139 | Internal Port Number | | 140 | External IP Address | | 141 | External Port Number | | 142 | Internal DSCP | | 143 | External DSCP | | 144 | Lifetime | | 145 +----------------------+-------------+ 147 Tunnel-ID is an IPv6 address (e.g., 2001:DB8:0:0:1::1) of the B4 148 element. 150 Decimal and dotted-decimal values are used in the examples listed in 151 the following sections. 153 2. Create Mapping 155 The following figure illustrates the messages which are exchanged to 156 create a mapping in a PCP-controlled device. 158 +------+ +------+ 159 | PCP | | PCP | 160 |Client| |Server| 161 +------+ +------+ 162 | (1) PCP Map Create Request | 163 |--------------------------------->| 164 | (2) PCP Map Create Response | 165 |<---------------------------------| 166 | | 168 Figure 1: Example of creating a mapping 170 The following sub-sections provide several examples depending on the 171 included IEs in the PCP Map Create Request. 173 2.1. Create a Mapping with Mandatory IEs 175 This example illustrates the content of exchanged PCP messages when 176 the PCP Client includes only mandatory IEs: Client-ID, Transport 177 protocol (TCP), Internal Port Number and Internal IP Address. 179 1. PCP Map Create Request 181 Client-ID IE (ID) 183 Transport Protocol IE (2) 185 Internal Port Number IE (11234) 187 Internal IP Address IE (198.51.100.1) 189 2. PCP Map Create Response 191 Client-ID IE (ID) 193 Transport Protocol IE (2) 195 Internal Port Number IE (11234) 197 Internal IP Address IE (198.51.100.1) 199 External IP Address IE (192.0.2.1) 201 External Port Number IE (32654) 203 Assigned Mapping Lifetime IE (3600) 205 As a result, the following entry is added to the PCP Server mapping 206 table: 208 +----------------------+--------------+ 209 | | Entry 1 | 210 +----------------------+--------------+ 211 | Client-ID | ID | 212 | Transport Protocol | TCP | 213 | Internal IP Address | 198.51.100.1 | 214 | Internal Port Number | 11234 | 215 | External IP Address | 192.0.2.1 | 216 | External Port Number | 32654 | 217 | Internal DSCP | -- | 218 | External DSCP | -- | 219 | Lifetime | 3600 | 220 +----------------------+--------------+ 222 2.2. Create Mapping with a Hinted External Port Number 224 In this example, the PCP Client includes all mandatory IEs and a 225 preferred external port number. 227 1. PCP Map Create Request 229 Client-ID IE (ID) 231 Transport Protocol IE (2) 233 Internal Port Number IE (10001) 235 Internal IP Address IE (198.51.100.1) 237 Hinted External Port Number IE (15632) 239 2. PCP Map Create Response 241 Client-ID IE (ID) 243 Transport Protocol IE (2) 245 Internal Port Number IE (10001) 247 Internal IP Address IE (198.51.100.1) 249 External IP Address IE (192.0.2.1) 251 External Port Number IE (13568) 253 Assigned Mapping Lifetime IE (3600) 255 As a result, the following entry is added to the PCP Server mapping 256 table: 258 +----------------------+---------+--------------+ 259 | | Entry i | Entry i+1 | 260 +----------------------+---------+--------------+ 261 | Client-ID | ... | ID | 262 | Transport Protocol | .. | TCP | 263 | Internal IP Address | .. | 198.51.100.1 | 264 | Internal Port Number | .. | 10001 | 265 | External IP Address | .. | 192.0.2.1 | 266 | External Port Number | .. | 13568 | 267 | Internal DSCP | .. | -- | 268 | External DSCP | .. | -- | 269 | Lifetime | .. | 3600 | 270 +----------------------+---------+--------------+ 272 2.3. Create Mapping with a Hinted External Port Number 274 In this example the PCP Server assigns the hinted port number to the 275 requesting PCP Client. 277 1. PCP Map Create Request 279 Client-ID IE (ID) 281 Transport Protocol IE (2) 283 Internal Port Number IE (9568) 285 Internal IP Address IE (198.51.100.1) 287 Hinted External Port Number IE (15632) 289 2. PCP Map Create Response 291 Client-ID IE (ID) 293 Transport Protocol IE (2) 295 Internal Port Number IE (9568) 297 Internal IP Address IE (198.51.100.1) 299 External IP Address IE (192.0.2.1) 301 External Port Number IE (15632) 303 Assigned Mapping Lifetime IE (3600) 305 As a result, the following entry is added to the PCP Server mapping 306 table: 308 +----------------------+---------+--------------+ 309 | | Entry i | Entry i+1 | 310 +----------------------+---------+--------------+ 311 | Client-ID | ... | ID | 312 | Transport Protocol | .. | TCP | 313 | Internal IP Address | .. | 198.51.100.1 | 314 | Internal Port Number | .. | 9568 | 315 | External IP Address | .. | 192.0.2.1 | 316 | External Port Number | .. | 15632 | 317 | Internal DSCP | .. | -- | 318 | External DSCP | .. | -- | 319 | Lifetime | .. | 3600 | 320 +----------------------+---------+--------------+ 322 2.4. Create Mapping with a Preferred Lifetime 324 In this example, the PCP Client includes all mandatory IEs, a 325 preferred external port number and a preferred mapping lifetime. The 326 PCP Server returns a mapping using values it assigns according to its 327 configured policies and port numbers availability. 329 1. PCP Map Create Request 331 Client-ID IE (ID) 333 Transport Protocol IE (2) 335 Internal Port Number IE (16254) 337 Internal IP Address IE (198.51.100.1) 339 Hinted External Port Number IE (25685) 341 Requested Mapping Lifetime IE (1800) 343 2. PCP Map Create Response 345 Client-ID IE (ID) 347 Transport Protocol IE (2) 349 Internal Port Number IE (16254) 351 Internal IP Address IE (198.51.100.1) 353 External IP Address IE (192.0.2.1) 355 External Port Number IE (16532) 357 Assigned Mapping Lifetime IE (1800) 359 As a result, the following entry is added to the PCP Server mapping 360 table: 362 +----------------------+---------+--------------+ 363 | | Entry i | Entry i+1 | 364 +----------------------+---------+--------------+ 365 | Client-ID | ... | ID | 366 | Transport Protocol | .. | TCP | 367 | Internal IP Address | .. | 198.51.100.1 | 368 | Internal Port Number | .. | 16254 | 369 | External IP Address | .. | 192.0.2.1 | 370 | External Port Number | .. | 16532 | 371 | Internal DSCP | .. | -- | 372 | External DSCP | .. | -- | 373 | Lifetime | .. | 1800 | 374 +----------------------+---------+--------------+ 376 2.5. Create Mapping with all Various Optional IEs 378 This flow shows an example of the content of PCP messages that will 379 be exchanged to create a mapping in a PCP-controlled device. In this 380 example, the PCP Client indicates a requested external UDP port 381 number and also a DSCP marking policy (Internal DSCP <=> External 382 DSCP). 384 In reference to Figure 1, the content of exchanged PCP messages is as 385 follows: 387 1. PCP Map Create Request 389 Client-ID IE (Client-ID=ID) 391 Transport Protocol IE (1) 393 Internal Port Number IE (15968) 395 Internal IP Address IE (192.168.0.1) 397 Hinted External Port Number IE (15648) 399 Internal DSCP IE (45) 401 External DSCP IE (32) 403 Requested Mapping Lifetime IE (8965) 405 2. PCP Map Create Response 407 Client-ID IE (ID) 408 Transport Protocol IE (1) 410 Internal Port Number IE (15968) 412 Internal IP Address IE (192.168.0.1) 414 External IP Address IE (192.0.2.1) 416 External Port Number IE (18759) 418 Internal DSCP IE (45) 420 External DSCP IE (32) 422 Assigned Mapping Lifetime IE (3600) 424 As a result, the following entry is added to the PCP Server mapping 425 table: 427 +----------------------+---------+--------------+ 428 | | Entry i | Entry i+1 | 429 +----------------------+---------+--------------+ 430 | Client-ID | ... | ID | 431 | Transport Protocol | .. | UDP | 432 | Internal IP Address | .. | 198.51.100.1 | 433 | Internal Port Number | .. | 15968 | 434 | External IP Address | .. | 192.0.2.1 | 435 | External Port Number | .. | 18759 | 436 | Internal DSCP | .. | 45 | 437 | External DSCP | .. | 32 | 438 | Lifetime | .. | 3600 | 439 +----------------------+---------+--------------+ 441 2.6. Create a Mapping with a Port Reservation Option 443 The following example depicts a scenario where the PCP Client 444 indicates its UDP port parity preference (using Port Reservation 445 Option IE). The PCP Server, if it supports such option, may assign 446 an external port number according to the requested policy. 448 1. PCP Map Create Request 450 Client-ID IE (ID) 452 Transport Protocol IE (1) 454 Internal Port Number IE (8759) 455 Internal IP Address IE (198.51.100.1) 457 Hinted External Port Number IE (11233) 459 Port Reservation Option IE (Preserve parity) 461 Requested Mapping Lifetime IE (3600) 463 2. PCP Map Create Response 465 Client-ID IE (ID) 467 Transport Protocol IE (1) 469 Internal Port Number IE (8759) 471 Internal IP Address IE (198.51.100.1) 473 External IP Address IE (192.0.2.1) 475 External Port Number IE (13565) 477 Assigned Mapping Lifetime IE (3600) 479 As a result, the following entry is added to the PCP Server mapping 480 table: 482 +----------------------+---------+--------------+ 483 | | Entry i | Entry i+1 | 484 +----------------------+---------+--------------+ 485 | Client-ID | ... | ID | 486 | Transport Protocol | .. | UDP | 487 | Internal IP Address | .. | 198.51.100.1 | 488 | Internal Port Number | .. | 8759 | 489 | External IP Address | .. | 192.0.2.1 | 490 | External Port Number | .. | 13565 | 491 | Internal DSCP | .. | -- | 492 | External DSCP | .. | -- | 493 | Lifetime | .. | 3600 | 494 +----------------------+---------+--------------+ 496 2.7. Error Encountered when Creating a Mapping (1st Example) 498 This example shows the exchange that occurs when the PCP Server is 499 unable to meet the PCP Client's request: DSCP re-marking is not 500 supported. 502 +------+ +------+ 503 | PCP | | PCP | 504 |Client| |Server| 505 +------+ +------+ 506 | (1) PCP Map Create Request | 507 |--------------------------------->| 508 | (2) PCP Error | 509 |<---------------------------------| 510 | | 512 Figure 2: Error when creating a mapping 514 1. PCP Map Create Request 516 Client-ID IE (ID) 518 Transport Protocol IE (2) 520 Internal Port Number IE 522 Internal IP Address IE 524 Hinted External Port Number IE 526 Internal DSCP IE 528 External DSCP IE 530 Requested Mapping Lifetime IE 532 2. PCP Error 534 Client-ID IE (ID) 536 Error Code IE 538 UTF-8 Encoded Error IE (DSCP re-marking is not supported) 540 2.8. Error Encountered when Creating Mapping (2nd Example) 542 This example shows the exchange that occurs when the PCP Server is 543 unable to meet the PCP Client's request: per-subscriber limit is 544 reached. 546 1. PCP Map Create Request 547 Client-ID IE (ID) 549 Transport Protocol IE (1) 551 Internal Port Number IE 553 Internal IP Address IE 555 Hinted External Port Number IE 557 Requested Mapping Lifetime IE 559 2. PCP Error 561 Client-ID IE (ID) 563 Error Code IE (code=7, sub-code=1) 565 2.9. Error Encountered when Creating Mapping (3rd Example) 567 This example shows the exchange that occurs when the PCP Server is 568 unable to meet the PCP Client's request: Unsupported transport 569 protocol. 571 1. PCP Map Create Request 573 Client-ID IE (ID) 575 Transport Protocol IE (3) 577 Internal Port Number IE 579 Internal IP Address IE 581 Hinted External Port Number IE 583 Requested Mapping Lifetime IE 585 2. PCP Error 587 Client-ID IE (ID) 589 Error Code IE (code=6, sub-code=1) 591 UTF-8 Encoded Error IE (Unsupported transport protocol) 593 2.10. Create Mapping with Distinct External IP Addresses 595 Figure 3 shows a PCP Server with a pool of public IPv4 addresses 596 (192.0.2/24) and two PCP Clients associated with different 597 subscribers. The PCP Clients each make a port mapping request to the 598 PCP Server which creates the mapping from its 192.0.2/24 pool. 600 +--------+ +------+ +--------+ 601 | PCP | | PCP | | PCP | 602 |Client 1| |Server| |Client 2| 603 +--------+ +------+ +--------+ 604 |(1) PCP Map Create Request | | 605 |---------------------------->| | 606 |(2) PCP Map Create Response | | 607 |<----------------------------|(a) PCP Map Create Request | 608 | |<---------------------------| 609 | |(b) PCP Map Create Response | 610 | |--------------------------->| 611 | | | 613 Figure 3: Example of creating mappings with distinct external IP 614 addresses 616 In this example, the PCP Clients were mapped to different public 617 addresses as illustrated in the content of the PCP messages listed 618 below. 620 The content of PCP messages exchanged between PCP Client 1 and the 621 PCP Server is as follows: 623 1. PCP Map Create Request 625 Client-ID IE (ID) 627 Transport Protocol IE (1) 629 Internal Port Number IE (25655) 631 Internal IP Address IE (198.51.100.1) 633 2. PCP Map Create Response 635 Client-ID IE (ID) 637 Transport Protocol IE (1) 638 Internal Port Number IE (25655) 640 Internal IP Address IE (198.51.100.1) 642 External IP Address IE (192.0.2.1) 644 External Port Number IE (15659) 646 Assigned Mapping Lifetime IE (3600) 648 The content of PCP messages exchanged between PCP Client 2 and the 649 PCP Server is as follows: 651 1. PCP Map Create Request 653 Client-ID IE (ID2) 655 Transport Protocol IE (1) 657 Internal Port Number IE (19856) 659 Internal IP Address IE (198.51.100.2) 661 2. PCP Map Create Response 663 Client-ID IE (ID2) 665 Transport Protocol IE (1) 667 Internal Port Number IE (19856) 669 Internal IP Address IE (198.51.100.2) 671 External IP Address IE (192.0.2.2) 673 External Port Number IE (32654) 675 Assigned Mapping Lifetime IE (3600) 677 At the end of this exchange, the following entries are instructed in 678 the PCP Server. 680 +----------------------+--------------+--------------+ 681 | | Entry i | Entry i+1 | 682 +----------------------+--------------+--------------+ 683 | Client-ID | ID1 | ID2 | 684 | Transport Protocol | UDP | UDP | 685 | Internal IP Address | 198.51.100.1 | 198.51.100.2 | 686 | Internal Port Number | 25655 | 19856 | 687 | External IP Address | 192.0.2.1 | 192.0.2.2 | 688 | External Port Number | 15659 | 32654 | 689 | Lifetime | 3600 | 3600 | 690 +----------------------+--------------+--------------+ 692 3. List Mappings 694 In order to retrieve a list of active mappings, Figure 4 illustrates 695 the PCP messages exchange that occurs. The following sub-sections 696 describes various cases according to the IEs as included by the PCP 697 Client in the PCP Map List Request. 699 +------+ +------+ 700 | PCP | | PCP | 701 |Client| |Server| 702 +------+ +------+ 703 | (1) PCP Map List Request | 704 |-------------------------------->| 705 | (2) PCP Map List Response | 706 |<--------------------------------| 707 | | 709 Figure 4: Example of PCP Map List 711 3.1. List all Mappings Associated with a Client/Subscriber 713 This example shows the PCP exchange that occurs in order to retrieve 714 all mappings associated with a given PCP Client (or a subscriber). 715 The value of the transport protocol is positioned to 0 (i.e., all 716 transport protocols) to indicate to the PCP Server that all mappings 717 associated with a client/subscriber are to be returned whatever their 718 associated transport protocol. 720 1. PCP Map List Request 722 Client-ID IE (ID) 724 Transport Protocol IE (0) 726 2. PCP Map List Response 728 Client-ID IE (ID) 730 Forwarding IE 732 Transport Protocol IE (2) 734 Internal Port Number IE (11234) 736 Internal IP Address IE (198.51.100.1) 738 External IP Address IE (192.0.2.1) 740 External Port Number IE (32654) 742 Remaining Mapping Lifetime IE (1254) 744 Forwarding IE 746 Transport Protocol IE (2) 748 Internal Port Number IE (10001) 750 Internal IP Address IE (198.51.100.1) 752 External IP Address IE (192.0.2.1) 754 External Port Number IE (13568) 756 Remaining Mapping Lifetime IE (2500) 758 Forwarding IE 760 Transport Protocol IE (2) 762 Internal Port Number IE (9568) 764 Internal IP Address IE (198.51.100.1) 766 External IP Address IE (192.0.2.1) 768 External Port Number IE (15632) 770 Remaining Mapping Lifetime IE (2800) 772 Forwarding IE 774 Transport Protocol IE (2) 776 Internal Port Number IE (16254) 778 Internal IP Address IE (198.51.100.1) 780 External IP Address IE (192.0.2.1) 782 External Port Number IE (16532) 784 Remaining Mapping Lifetime IE (2900) 786 Forwarding IE 788 Transport Protocol IE (1) 790 Internal Port Number IE (15968) 792 Internal IP Address IE (198.51.100.1) 794 External IP Address IE (192.0.2.1) 796 External Port Number IE (18759) 798 Internal DSCP IE (45) 800 External DSCP IE (32) 802 Remaining Mapping Lifetime IE (3000) 804 Forwarding IE 806 Transport Protocol IE (1) 808 Internal Port Number IE (8759) 810 Internal IP Address IE (198.51.100.1) 812 External IP Address IE (192.0.2.1) 814 External Port Number IE (13565) 816 Remaining Mapping Lifetime IE (3200) 818 Forwarding IE 820 Transport Protocol IE (1) 822 Internal Port Number IE (25655) 824 Internal IP Address IE (198.51.100.1) 826 External IP Address IE (192.0.2.1) 828 External Port Number IE (32654) 830 Remaining Mapping Lifetime IE (3300) 832 3.2. List all Mappings Associated with an IPv4 Address 834 This example shows the PCP exchange that occurs in order to retrieve 835 all mappings associated with a given PCP Client (subscriber) and a 836 given internal IP address: 838 1. PCP Map List Request 840 Client-ID IE (ID) 842 Transport Protocol IE (0) 844 Internal IP Address IE (198.51.100.1) 846 2. PCP Map List Response 848 Client-ID IE (ID) 850 Forwarding IE 852 Transport Protocol IE (2) 854 Internal Port Number IE (11234) 856 Internal IP Address IE (198.51.100.1) 858 External IP Address IE (192.0.2.1) 860 External Port Number IE (32654) 862 Remaining Mapping Lifetime IE (1254) 864 Forwarding IE 866 Transport Protocol IE (2) 868 Internal Port Number IE (10001) 870 Internal IP Address IE (198.51.100.1) 872 External IP Address IE (192.0.2.1) 874 External Port Number IE (13568) 876 Remaining Mapping Lifetime IE (2500) 878 Forwarding IE 880 Transport Protocol IE (2) 882 Internal Port Number IE (9568) 884 Internal IP Address IE (198.51.100.1) 886 External IP Address IE (192.0.2.1) 888 External Port Number IE (15632) 890 Remaining Mapping Lifetime IE (2800) 892 Forwarding IE 894 Transport Protocol IE (2) 896 Internal Port Number IE (16254) 898 Internal IP Address IE (198.51.100.1) 900 External IP Address IE (192.0.2.1) 902 External Port Number IE (16532) 904 Remaining Mapping Lifetime IE (2900) 906 Forwarding IE 908 Transport Protocol IE (1) 910 Internal Port Number IE (15968) 911 Internal IP Address IE (198.51.100.1) 913 External IP Address IE (192.0.2.1) 915 External Port Number IE (18759) 917 Internal DSCP IE (45) 919 External DSCP IE (32) 921 Remaining Mapping Lifetime IE (3000) 923 Forwarding IE 925 Transport Protocol IE (1) 927 Internal Port Number IE (8759) 929 Internal IP Address IE (198.51.100.1) 931 External IP Address IE (192.0.2.1) 933 External Port Number IE (13565) 935 Remaining Mapping Lifetime IE (3200) 937 Forwarding IE 939 Transport Protocol IE (1) 941 Internal Port Number IE (25655) 943 Internal IP Address IE (198.51.100.1) 945 External IP Address IE (192.0.2.1) 947 External Port Number IE (32654) 949 Remaining Mapping Lifetime IE (3300) 951 3.3. Listing All Mappings Associated with an IPv4 Address and a Given 952 Transport Protocol 954 This example shows the PCP exchange that occurs in order retrieve all 955 mappings associated with a given internal IP address and a transport 956 protocol (e.g., TCP). 958 1. PCP Map List Request 960 Client-ID IE (ID) 962 Transport Protocol IE (2) 964 Internal IP Address IE 966 2. PCP Map List Response 968 Client-ID IE (ID) 970 Forwarding IE 972 Transport Protocol IE (2) 974 Internal Port Number IE (11234) 976 Internal IP Address IE (198.51.100.1) 978 External IP Address IE (192.0.2.1) 980 External Port Number IE (32654) 982 Remaining Mapping Lifetime IE (1254) 984 Forwarding IE 986 Transport Protocol IE (2) 988 Internal Port Number IE (10001) 990 Internal IP Address IE (198.51.100.1) 992 External IP Address IE (192.0.2.1) 994 External Port Number IE (13568) 996 Remaining Mapping Lifetime IE (2500) 998 Forwarding IE 1000 Transport Protocol IE (2) 1002 Internal Port Number IE (9568) 1004 Internal IP Address IE (198.51.100.1) 1005 External IP Address IE (192.0.2.1) 1007 External Port Number IE (15632) 1009 Remaining Mapping Lifetime IE (2800) 1011 Forwarding IE 1013 Transport Protocol IE (2) 1015 Internal Port Number IE (16254) 1017 Internal IP Address IE (198.51.100.1) 1019 External IP Address IE (192.0.2.1) 1021 External Port Number IE (16532) 1023 Remaining Mapping Lifetime IE (2900) 1025 3.4. Listing All Mappings Associated with an IPv4 Address, a Transport 1026 Protocol and a DSCP Code 1028 This example shows the PCP exchange that occurs when retrieving all 1029 mappings associated with a given internal IP address, a transport 1030 protocol (e.g., TCP) and an internal DSCP code. 1032 1. PCP Map List Request 1034 Client-ID IE (ID) 1036 Transport Protocol IE (1) 1038 Internal IP Address IE 1040 Internal DSCP IE 1042 2. PCP Map List Response 1044 Client-ID IE (ID) 1046 Transport Protocol IE (1) 1048 Internal Port Number IE (15968) 1049 Internal IP Address IE (198.51.100.1) 1051 External IP Address IE (192.0.2.1) 1053 External Port Number IE (18759) 1055 Internal DSCP IE (45) 1057 External DSCP IE (32) 1059 Remaining Mapping Lifetime IE (3000) 1061 3.5. No Existing Mapping 1063 This example shows the content of PCP messages when no mapping 1064 matching the requested criteria is found. 1066 1. PCP Map List Request 1068 Client-ID IE (ID) 1070 Transport Protocol IE (1) 1072 Internal IP Address IE (198.51.100.1) 1074 Internal DSCP IE (56) 1076 2. PCP Map List Response (ID) 1078 Client-ID IE (ID) 1080 4. Delete Operation 1082 In order to delete a mapping, Figure 5 illustrates the PCP messages 1083 exchange that occurs. The following sub-sections describe various 1084 cases according to the IEs included by the PCP Client in the PCP Map 1085 Delete Request. 1087 +------+ +------+ 1088 | PCP | | PCP | 1089 |Client| |Server| 1090 +------+ +------+ 1091 | (1) PCP Map Delete Request | 1092 |-------------------------------->| 1093 | (2) PCP Map Delete Response | 1094 |<--------------------------------| 1095 | | 1097 Figure 5: Delete mapping 1099 4.1. Delete All Mappings 1101 This example shows the PCP exchange that occurs in order to delete 1102 all mappings associated with a given PCP Client (subscriber). The 1103 value of the transport protocol is positioned to "0" to indicate to 1104 the PCP Server that all mappings are to be deleted whatever their 1105 associated transport protocol. 1107 1. PCP Map Delete Request 1109 Client-ID IE (ID) 1111 Transport Protocol IE (0) 1113 2. PCP Map Delete Response (ID) 1115 Client-ID IE (ID) 1117 4.2. Delete all Mappings Associated with a Transport Protocol 1119 This example shows the PCP exchange that occurs in order to delete 1120 all mappings associated with a given PCP Client (subscriber) and a 1121 given transport protocol. 1123 1. PCP Map Delete Request 1125 Client-ID IE (ID) 1127 Transport Protocol IE (1) 1129 2. PCP Map Delete Response 1131 Client-ID IE (ID) 1133 4.3. Delete Mappings Associated with an IP Address 1135 This example shows the PCP exchange that occurs in order to delete 1136 all mappings associated with an internal IP address (same PCP 1137 Client). 1139 1. PCP Map Delete Request 1141 Client-ID IE (ID) 1143 Transport Protocol IE (0) 1145 Internal IP Address IE (198.51.100.1) 1147 2. PCP Map Delete Response 1149 Client-ID IE (ID) 1151 4.4. Delete all Mappings Associated with a Given Transport Protocol and 1152 IP Address 1154 This example shows the PCP exchange that occurs in order to delete 1155 all mappings associated with an internal IP address (same PCP Client) 1156 and a given transport protocol. 1158 1. PCP Map Delete Request 1160 Client-ID IE (ID) 1162 Transport Protocol IE (2) 1164 Internal IP Address IE (198.51.100.1) 1166 2. PCP Map Delete Response 1168 Client-ID IE (ID) 1170 4.5. Delete an Explicit Mapping 1172 This example shows the PCP exchange that occurs when requesting to 1173 delete all mappings associated with an internal IP address and a 1174 given transport protocol (same PCP Client). 1176 1. PCP Map Delete Request 1178 Client-ID IE (ID) 1179 Transport Protocol IE (1) 1181 Internal Port Number IE (8759) 1183 Internal IP Address IE (198.51.100.1) 1185 2. PCP Map Delete Response 1187 Client-ID IE (ID) 1189 4.6. Failed Delete Operation 1191 This example shows the PCP exchange that occurs when requesting to 1192 delete a mapping which does not exist in the server side. 1194 [[Note to the base PCP doc: Why not returning a PCP Error with an 1195 Error Code IE set to "this mapping does not exist". Upon receipt of 1196 this message, the PCP Client updates its local states. The current 1197 PCP base document states that a a response is sent back to the PCP 1198 Client asking to delete a mapping which does not exist. The 1199 motivation is that a previous delete request has been sent by the PCP 1200 Client but the response from the PCP Server has been lost.]] 1202 +------+ +------+ 1203 | PCP | | PCP | 1204 |Client| |Server| 1205 +------+ +------+ 1206 | (1) PCP Map Delete Request | 1207 |-------------------------------->| 1208 | (2) PCP Map Delete Response | 1209 |<--------------------------------| 1210 | | 1212 Figure 6: Error when deleting a mapping 1214 1. PCP Map Delete Request 1216 Client-ID IE (ID) 1218 Transport Protocol IE (1) 1220 Internal Port Number IE (8759) 1222 Internal IP Address IE (198.51.100.1) 1224 2. PCP Map Delete Response 1226 Client-ID IE (ID) 1228 5. Modify an Existing Mapping 1230 To update an existing mapping, the exchange illustrated in Figure 7 1231 is observed. 1233 +------+ +------+ 1234 | PCP | | PCP | 1235 |Client| |Server| 1236 +------+ +------+ 1237 | (1) PCP Map Refresh Request | 1238 |-------------------------------->| 1239 | (2) PCP Map Refresh Response | 1240 |<--------------------------------| 1241 | | 1242 TBC 1244 Figure 7: Modify an existing mapping 1246 5.1. Change of the Client-ID 1248 The content of exchanged PCP messages is as follows: 1250 1. PCP Map Refresh Request 1252 Client-ID IE (ID) 1254 New Client-ID IE (ID1) 1256 2. PCP Map Refresh Response 1258 Client-ID IE (ID1) 1260 5.2. Change of the Internal IP Address 1262 The content of exchanged PCP messages is as follows: 1264 1. PCP Map Refresh Request 1266 Client-ID IE (ID) 1268 New Internal IP Address (198.51.100.2) 1270 2. PCP Map Refresh Response 1272 Client-ID IE (ID) 1274 6. Retrieve the External IP Address 1276 6.1. Retrieve the External IP Address 1278 In order to retrieve the IP address used on the external side of the 1279 PCP-controlled device (Figure 8), a PCP Client issues a PCP PING 1280 message. Once received by the PCP Server, a PCP PONG message is sent 1281 by the PCP Server in return. This message conveys only the External 1282 IP Address IE. This IE includes the external IP address used by the 1283 PCP-controlled device for all outbound communications established by 1284 the subscriber. 1286 An External IP Address IE is included in the PCP PONG response only 1287 if the PCP PING message included an Internal IP Address IE. 1289 +------+ +------+ 1290 | PCP | | PCP | 1291 |Client| |Server| 1292 +------+ +------+ 1293 | (1) PCP PING | 1294 |---------------------------->| 1295 | (2) PCP PONG | 1296 |<----------------------------| 1297 | | 1299 Figure 8: Flow Example of a PING/PONG exchange: Get the external IP 1300 address 1302 1. PCP PING 1304 Client-ID IE (ID) 1306 Internal IP Address IE (198.51.100.1) 1308 2. PCP PONG 1310 Client-ID IE (ID) 1312 Internal IP Address IE (198.51.100.1) 1314 External IP Address IE (192.0.2.1) 1316 6.2. Assess the Reachability of the PCP Server 1318 In this example, the PCP Client issues a PCP PING with no IEs to an 1319 IP address of a PCP Server. Once received by the PCP Server, since 1320 it is configured to reply to such request, it sends back a PCP PONG 1321 including a Capability IE. 1323 +------+ +------+ 1324 | PCP | | PCP | 1325 |Client| |Server| 1326 +------+ +------+ 1327 | (1) PCP PING | 1328 |---------------------------->| 1329 | (2) PCP PONG | 1330 |<----------------------------| 1331 | | 1333 Figure 9: Flow Example of a PING/PONG exchange: Check the 1334 availability of the PCP Server 1336 1. PCP PING 1338 2. PCP PONG 1340 Capability IE 1342 7. Security Considerations 1344 This document does not define any protocol nor architecture. No 1345 security issue is introduced in this document. 1347 8. IANA Considerations 1349 This document has no IANA actions. 1351 9. Acknowledgements 1353 Many thanks to C. Jacquenet for his review. 1355 10. Normative References 1357 [I-D.ietf-behave-v6v4-xlate-stateful] 1358 Bagnulo, M., Matthews, P., and I. Beijnum, "Stateful 1359 NAT64: Network Address and Protocol Translation from IPv6 1360 Clients to IPv4 Servers", 1361 draft-ietf-behave-v6v4-xlate-stateful-11 (work in 1362 progress), March 2010. 1364 [I-D.ietf-softwire-dual-stack-lite] 1365 Durand, A., Droms, R., Haberman, B., Woodyatt, J., Lee, 1366 Y., and R. Bush, "Dual-Stack Lite Broadband Deployments 1367 Following IPv4 Exhaustion", 1368 draft-ietf-softwire-dual-stack-lite-04 (work in progress), 1369 March 2010. 1371 [I-D.wing-softwire-port-control-protocol] 1372 Wing, D., Penno, R., and M. Boucadair, "Port Control 1373 Protocol (PCP)", 1374 draft-wing-softwire-port-control-protocol-01 (work in 1375 progress), March 2010. 1377 [RFC3849] Huston, G., Lord, A., and P. Smith, "IPv6 Address Prefix 1378 Reserved for Documentation", RFC 3849, July 2004. 1380 [RFC5737] Arkko, J., Cotton, M., and L. Vegoda, "IPv4 Address Blocks 1381 Reserved for Documentation", RFC 5737, January 2010. 1383 Authors' Addresses 1385 Mohamed Boucadair 1386 France Telecom 1387 Rennes, 35000 1388 France 1390 Email: mohamed.boucadair@orange-ftgroup.com 1392 Reinaldo Penno 1393 Juniper Networks 1394 1194 N Mathilda Avenue 1395 Sunnyvale, California 94089 1396 USA 1398 Email: rpenno@juniper.net 1399 Dan Wing 1400 Cisco Systems, Inc. 1401 170 West Tasman Drive 1402 San Jose, California 95134 1403 USA 1405 Email: dwing@cisco.com