Internet DRAFT - draft-petithuguenin-p2psip-reload-one-to-many

draft-petithuguenin-p2psip-reload-one-to-many






Network Working Group                                  M. Petit-Huguenin
Internet-Draft                                        Impedance Mismatch
Intended status: Standards Track                        January 14, 2013
Expires: July 18, 2013


 Anycast, Multicast or Broadcast Bootstrap Nodes for REsource LOcation
                         And Discovery (RELOAD)
            draft-petithuguenin-p2psip-reload-one-to-many-00

Abstract

   This document describes an extension to REsource LOcation And
   Discovery (RELOAD) that permits to contact a bootstrap node using an
   Anycast, Multicast or Broadcast IP address.

Status of this Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.  This document may not be modified,
   and derivative works of it may not be created, except to format it
   for publication as an RFC or to translate it into languages other
   than English.

   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 July 18, 2013.

Copyright Notice

   Copyright (c) 2013 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



Petit-Huguenin            Expires July 18, 2013                 [Page 1]

Internet-Draft         One-To-Many Bootstrap Nodes          January 2013


   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.


Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . . . 3
   2.  Terminology . . . . . . . . . . . . . . . . . . . . . . . . . . 3
   3.  Searching for Bootstrap Node  . . . . . . . . . . . . . . . . . 3
   4.  Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . 4
   5.  Security Considerations . . . . . . . . . . . . . . . . . . . . 4
   6.  IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 4
   7.  Normative References  . . . . . . . . . . . . . . . . . . . . . 5
   Appendix A.  Example  . . . . . . . . . . . . . . . . . . . . . . . 5
   Author's Address  . . . . . . . . . . . . . . . . . . . . . . . . . 6




































Petit-Huguenin            Expires July 18, 2013                 [Page 2]

Internet-Draft         One-To-Many Bootstrap Nodes          January 2013


1.  Introduction

   RELOAD [I-D.ietf-p2psip-base] explains that to join an overlay a node
   must, if the bootstrap node cache is empty, contact one of the
   bootstrap peers listed in a <bootstrap-node> element of the
   configuration document.  The process described works only with
   unicast addresses, as TCP - and so TLS - is not supported with
   anything else than unicast addresses, and DTLS does not work at all
   with multicast or broadcast addresses, and will be unreliable with
   anycast addresses.


2.  Terminology

   The key words "MUST" and "MAY" in this document are to be interpreted
   as described in [RFC2119].

   One-to-many Address:  An Anycast, Multicast or Broadcast IP address.


3.  Searching for Bootstrap Node

   An overlay that runs one or more bootstrap node over a one-to-many
   address MUST add a <bootstrap-node> element for each of them in the
   configuration document, using the XML namespace designating them as
   such.  The same configuration document MAY also contain unicast
   <bootstrap-node> elements to let nodes that do not implement this
   specification join the overlay.

   The RELAX NG grammar for the one-to-many <bootstrap-node> element is
   as follow.  Whitespace and case processing MUST follow the rules of
   [OASIS.relax_ng] and XML Schema Datatypes
   [W3C.REC-xmlschema-2-20041028].

   namespace otm = "http://implementers.org/reload-one-to-many"

   parameter &= element otm:bootstrap-node {
       attribute address {  xsd:string },
       attribute port { xsd:int }?
   }*

   The <bootstrap-node> element has an attribute called "address" that
   contains an IPv4 or IPv6 address and an optional attribute called
   "port" that represents the port and defaults to 6084.  The IPv6
   address MUST use the hexadecimal form using standard period and colon
   separators as specified in [RFC5952].  More than one "bootstrap-node"
   element MAY be present.




Petit-Huguenin            Expires July 18, 2013                 [Page 3]

Internet-Draft         One-To-Many Bootstrap Nodes          January 2013


   Instead of the bootstrap node, a STUN [RFC5389] server implementing
   the ALTERNATE-SERVER Mechanism (Section 11) MUST run on the one-to-
   many address.  The STUN server only serves Binding Request and the
   ALTERNATE-SERVER attribute returned MUST contain the unicast address
   and the port of a bootstrap node.  Credentials MUST NOT be required
   by the STUN server.

   If no cached bootstrap nodes are available, a joining node that
   implements this specification MUST first try to join the bootstrap
   nodes designated as listening on a one-to-many address.  If trying to
   contact all the one-to-many addresses fails, the joining node MUST
   try the eventual unicast bootstrap nodes listed in the configuration
   document.  The joining node MUST send a STUN Binding Request to one
   of the one-to-many addresses, chosen randomly.  Any response other
   than a 300 will put the one-to-many address in a blacklist for 3
   minutes, and the joining node MUST try the next one-to-many address.
   The IP address and port returned in a 300 response MUST be used as if
   a unicast bootstrap address was retrieved from the configuration
   file, and MAY be cached the same way a unicast bootstrap node address
   is cached.

   As a consequence of this design, a bootstrap node running on a
   unicast address do not have to listen for other protocols than the
   Overlay Link protocols defined in RELOAD.  A client that need to know
   the Node-ID of the bootstrap node can send a Probe or Ping request
   over DTLS-UDP-SR, TLS-TCP-FH-NO-ICE or DTLS-UDP-SR-NO-ICE with a
   destination list containing a single wildcard Node-ID.  After this,
   the standard process to join the overlay described in
   [I-D.ietf-p2psip-base] can be used.


4.  Acknowledgments

   Some of the text in this document was taken from version 23 of
   [I-D.ietf-p2psip-base], authored by Cullen Jennings, Bruce B.
   Lowekamp, Eric Rescorla, Salman A. Baset and Henning Schulzrinne.


5.  Security Considerations


6.  IANA Considerations

   If this document is accepted as a standard track document this
   section will request a URN in the "XML Namespaces" class of the "IETF
   XML Registry" from IANA.  Until this is done, implementions should
   use the following URN:




Petit-Huguenin            Expires July 18, 2013                 [Page 4]

Internet-Draft         One-To-Many Bootstrap Nodes          January 2013


   http://implementers.org/reload-one-to-many


7.  Normative References

   [I-D.ietf-p2psip-base]
              Jennings, C., Lowekamp, B., Rescorla, E., Baset, S., and
              H. Schulzrinne, "REsource LOcation And Discovery (RELOAD)
              Base Protocol", draft-ietf-p2psip-base-23 (work in
              progress), November 2012.

   [OASIS.relax_ng]
              Bray, T. and M. Murata, "RELAX NG Specification".

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

   [RFC5389]  Rosenberg, J., Mahy, R., Matthews, P., and D. Wing,
              "Session Traversal Utilities for NAT (STUN)", RFC 5389,
              October 2008.

   [RFC5952]  Kawamura, S. and M. Kawashima, "A Recommendation for IPv6
              Address Text Representation", RFC 5952, August 2010.

   [W3C.REC-xmlschema-2-20041028]
              Malhotra, A. and P. Biron, "XML Schema Part 2: Datatypes
              Second Edition", World Wide Web Consortium
              Recommendation REC-xmlschema-2-20041028, October 2004,
              <http://www.w3.org/TR/2004/REC-xmlschema-2-20041028>.


Appendix A.  Example

   The following example shows that an anycast address and a multicast
   address can be used to find a bootstrap node.  A joining node that
   does not recognize the extension can still join the overlay by using
   the unicast addresses.














Petit-Huguenin            Expires July 18, 2013                 [Page 5]

Internet-Draft         One-To-Many Bootstrap Nodes          January 2013


   <?xml version="1.0" encoding="UTF-8" ?>
   <overlay xmlns="urn:ietf:params:xml:ns:p2p:config-base"
      xmlns:otm="http://implementers.org/reload-one-to-many">
      <configuration instance-name="overlay.example.org" sequence="22"
          expiration="2002-10-10T07:00:00Z">
          <bootstrap-node address="192.0.0.1" port="6084" />
          <bootstrap-node address="192.0.2.2" port="6084" />
          <bootstrap-node address="2001:DB8::1" port="6084" />
          <otm:bootstrap-node address="192.0.0.1" />
          <otm:bootstrap-node address="233.252.0.1" port="6084" />
      </configuration>
      <signature> VGhpcyBpcyBub3QgcmlnaHQhCg== </signature>
   </overlay>


Author's Address

   Marc Petit-Huguenin
   Impedance Mismatch

   Email: petithug@acm.org






























Petit-Huguenin            Expires July 18, 2013                 [Page 6]