PCP Working Group                                               T. Reddy
Internet-Draft                                                  P. Patil
Intended status: Standards Track                                 D. Wing
Expires: December 25, 2012                                      F. Baker
                                                                   Cisco
                                                           June 23, 2012


                PCP Server Discovery in IPv6 Multihoming
                  draft-reddy-pcp-server-discovery-00

Abstract

   A multihomed network may have a PCP server on each router connecting
   to each upstream network, providing firewall or prefix translation
   functions to hosts in the network.  In these networks, a PCP client
   needs to discover all of those PCP servers and then send PCP requests
   to them individually.

   This document proposes a multicast mechanism to discover PCP servers.

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 25, 2012.

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



Reddy, et al.           Expires December 25, 2012               [Page 1]


Internet-Draft   PCP Serv Discovery in IPv6 Multihoming        June 2012


   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.


Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . . . 3
   2.  Notational Conventions  . . . . . . . . . . . . . . . . . . . . 3
   3.  DISCOVER OpCode . . . . . . . . . . . . . . . . . . . . . . . . 3
     3.1.  PCP Server joining a multicast group  . . . . . . . . . . . 4
     3.2.  Generating a DISCOVER Request . . . . . . . . . . . . . . . 4
     3.3.  Processing a DISCOVER Request . . . . . . . . . . . . . . . 5
     3.4.  Processing a DISCOVER Response  . . . . . . . . . . . . . . 5
     3.5.  Discover Option Packet Format . . . . . . . . . . . . . . . 6
   4.  Operational Considerations  . . . . . . . . . . . . . . . . . . 6
   5.  Security Considerations . . . . . . . . . . . . . . . . . . . . 7
   6.  IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 7
   7.  References  . . . . . . . . . . . . . . . . . . . . . . . . . . 7
     7.1.  Normative References  . . . . . . . . . . . . . . . . . . . 7
     7.2.  Informative References  . . . . . . . . . . . . . . . . . . 8
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . . . 8




























Reddy, et al.           Expires December 25, 2012               [Page 2]


Internet-Draft   PCP Serv Discovery in IPv6 Multihoming        June 2012


1.  Introduction

   Using Port Control Protocol (PCP) [I-D.ietf-pcp-base] a host can
   create mappings with its NAT or firewall.  PCP expects only one PCP
   server.  In a multihomed network, there may be multiple PCP servers
   and the PCP client is unaware of all designated PCP Servers in the
   network.  For example, there may be a PCP server integrated into
   every firewall device connecting to each network.  Hence there is a
   need for PCP client to discover all such PCP Servers with specific
   functionalities so that the PCP client can make appropriate PCP
   requests to each one of them.

   This document proposes a means by which a PCP client can discover all
   such PCP servers within the network.  Each PCP server in the network
   joins a certain multicast.  Using the new DISCOVER OpCode, defined in
   this document, each PCP client sends a DISCOVER request to that
   multicast group address.  Each PCP server responds with a DISCOVER
   response.  The PCP client then sends regular unicast PCP request
   messages (e.g., MAP or PEER OpCodes) to each of those discovered PCP
   servers.


2.  Notational Conventions

   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.  DISCOVER OpCode

   DISCOVER : Discover PCP servers listening on specific multicast
   groups.

   PCP Servers SHOULD provide a configuration option to allow
   administrators to disable DISCOVER support if they wish.  PCP
   DISCOVER requests are only designed to discover appropriate PCP
   servers on the network.  The request does not offer functionality
   defined by other Opcodes described in [I-D.ietf-pcp-base].

   The following diagram shows the usage of DISCOVER OpCode, where PCP
   Server1 and PCP Server2 join the same multicast group (for e.g.  ALL-
   IPv6-FIREWALLS)








Reddy, et al.           Expires December 25, 2012               [Page 3]


Internet-Draft   PCP Serv Discovery in IPv6 Multihoming        June 2012


     +------+                 +-------------+       +-------------+
     | PCP  |                 | PCP Server1 |       | PCP Server2 |
     |Client|                 |             |       |             |
     +------+                 +-------------+       +-------------+
       |                            |                      |
       | PCP DISCOVER Request to ALL-IPv6-FIREWALLS        |
       |                            |                      |
       |--------------------------->|--------------------->|
       |  PCP DISCOVER  Response    |                      |
       |<---------------------------|                      |
       |  PCP DISCOVER  Response    |                      |
       |<--------------------------------------------------|
       |                            |                      |
       |                            |                      |
       |   PCP MAP/PEER Request     |                      |
       |--------------------------->|                      |
       |   PCP MAP/PEER Request     |                      |
       |-------------------------------------------------->|
       |                            |                      |
       |   PCP MAP/PEER Response    |                      |
       |<--------------------------------------------------|
       |   PCP MAP/PEER Response    |                      |
       |<---------------------------|                      |
       |                            |                      |

                       Figure 1: PCP Server Discover

3.1.  PCP Server joining a multicast group

   Each PCP server in the network joins a certain multicast group based
   on other functionalities embedded with it.  Consider a scenario in
   which a firewall also implements a Port Control Protocol (PCP)
   [I-D.ietf-pcp-base] Server, in which case it joins a multicast group
   ALL-IPv6-FIREWALLS.

   A PCP server can join more than one mutlicast groups if it offers
   multiple functionalities within the same device.

3.2.  Generating a DISCOVER Request

   To discover the PCP servers listening on each of the assigned
   multicast addresses of interest to the PCP client, the PCP client
   sends a DISCOVER request to each of those multicast addresses.

   A Discover Nonce is included in the request by the PCP client.  The
   Discover Nonce is randomly chosen by the PCP client, and is used as
   part of validation of PCP responses.




Reddy, et al.           Expires December 25, 2012               [Page 4]


Internet-Draft   PCP Serv Discovery in IPv6 Multihoming        June 2012


   To accommodate packet loss, the request SHOULD be transmitted several
   times with a random jitter between them to each of the multicast
   address.  It is RECOMMENDED to transmit the DISCOVER Request a total
   of three times with the first retransmission after 5 seconds plus a
   random value between 0-2.5 seconds, and again at 10 seconds plus a
   random value between 0-5 seconds.

   Periodic PCP DISCOVER requests should be made to determine the
   updated list of PCP servers in the network.  A PCP client can send
   DISCOVER messages periodically every 600 seconds to each of the
   multicast addresses.

3.3.  Processing a DISCOVER Request

   When a PCP server listening on one of the multicast groups as
   described in Section 3.1 receives a PCP DISCOVER Opcode, after
   successful parsing and processing, it generates a SUCCESS response
   with zero Assigned Lifetime.  If a PCP DISCOVER Request is received
   on an unassigned multicast group, it should be ignored.

   Each PCP Server sends a separate DISCOVER response with unicast
   source address signaling to the PCP client that the source IPv6
   address of DISCOVER response is the PCP Server address.  The Discover
   Nonce field from the request is copied into the PCP DISCOVER
   response.

3.4.  Processing a DISCOVER Response

   A DISCOVER request sent to the multicast group will result in zero,
   one, or more responses from each of the addresses multicasted in
   Section 3.1.  If the network contains multiple servers then multiple
   DISCOVER responses will normally be received.  After regular PCP
   response processing, a PCP client should check using the Discover
   Nonce from the response to match with a previously sent DISCOVER
   request and hence also determine the capability of the PCP server.

   If a DISCOVER request results in one or more DISCOVER response then
   the client can update its PCP server list with the source addresses
   of all DISCOVER responses.  This list is essentially a list of all
   PCP Servers in the network.  Future specifications that use PCP
   DISCOVER to discover PCP servers will also define how PCP clients
   will use the discovered PCP server list.

   A PCP server may join or leave a network unexpectedly (e.g., device
   failure, link failure, or link recovery).  To accommodate these
   situations, the PCP client should also periodically send PCP DISCOVER
   requests to each of the multicast groups to ensure that the client
   has an updated list of PCP Servers.



Reddy, et al.           Expires December 25, 2012               [Page 5]


Internet-Draft   PCP Serv Discovery in IPv6 Multihoming        June 2012


3.5.  Discover Option Packet Format

   The DISCOVER Opcode has a similar layout for both request and
   response.

   The following diagram shows the format of the Opcode-specific
   information in a request for the DISCOVER Opcode:

   The Requested Lifetime value MUST be set to zero in the PCP common
   header.

        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
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                                                               |
       |                 Discover Nonce (96 bits)                      |
       |                                                               |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+


  Discover Nonce:  Random value chosen by the PCP client.

   The following diagram shows the format of Opcode-specific information
   in a response packet for the DISCOVER Opcode:

        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
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                                                               |
       |                 Discover Nonce (96 bits)                      |
       |                                                               |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+


  Discover Nonce:  Copied from the request.


4.  Operational Considerations

   This document defines a set of multicast addresses in several scopes.
   Operationally, the choice of which scope is appropriate is made by
   the administration.  A reasonable default value in system
   configurations might be Organization-Local (e.g., all firewalls
   operated by the organization).  However, a large organization might
   well choose Site-Local or Admin-Local, and consider that "site" or
   "administrative" domain to include the set of Firewalls advertising a
   default route into a specific part of its network.




Reddy, et al.           Expires December 25, 2012               [Page 6]


Internet-Draft   PCP Serv Discovery in IPv6 Multihoming        June 2012


5.  Security Considerations

   The principal security threat in this algorithm is a security threat
   inherent to IP multicast routing and any application that runs on it.
   A rogue system can join a multicast group and respond to discovery
   requests pretending to be PCP servers.  Discovery of such rogue
   systems as PCP servers, in itself, is not a security threat if there
   is a means for the PCP client to authenticate and authorize the
   discovered PCP servers.

   In addition, the security considerations in [I-D.ietf-pcp-base] also
   apply to this use.


6.  IANA Considerations

   This note requests of the IANA the assignment of a new PCP Opcode

              value            Opcode
              -----            ---------
               TBD             DISCOVER

   This note also requests of the IANA the assignment of a set of
   multicast addresses as described in Section 2.7 of the IP Version 6
   Addressing Architecture [RFC4291] from the registry [v6mult].  This
   set of addresses is referred to as "ALL-IPv6-FIREWALLS".  One address
   should be assigned for each of the following scopes: Link-Local,
   Admin-Local, Site-Local, and Organization-Local.


7.  References

7.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.

   [RFC4291]  Hinden, R. and S. Deering, "IP Version 6 Addressing
              Architecture", RFC 4291, February 2006.







Reddy, et al.           Expires December 25, 2012               [Page 7]


Internet-Draft   PCP Serv Discovery in IPv6 Multihoming        June 2012


7.2.  Informative References

   [v6mult]   IANA, "IPv6 Multicast Address Space Registry",
              December 2011, <http://www.iana.org/assignments/
              ipv6-multicast-addresses/ipv6-multicast-addresses.xml>.


Authors' Addresses

   Tirumaleswar Reddy
   Cisco Systems, Inc.
   Cessna Business Park, Varthur Hobli
   Sarjapur Marathalli Outer Ring Road
   Bangalore, Karnataka  560103
   India

   Email: tireddy@cisco.com


   Prashanth Patil
   Cisco Systems, Inc.
   Cessna Business Park, Varthur Hobli
   Sarjapur Marthalli Outer Ring Road
   Bangalore, Karnataka  560103
   India

   Email: praspati@cisco.com


   Dan Wing
   Cisco Systems, Inc.
   170 West Tasman Drive
   San Jose, California  95134
   USA

   Email: dwing@cisco.com


   Fred Baker
   Cisco Systems, Inc.
   Santa Barbara, California  93117
   USA

   Email: fred@cisco.com







Reddy, et al.           Expires December 25, 2012               [Page 8]