home *** CD-ROM | disk | FTP | other *** search
/ Internet Core Protocols / Oreilly-InternetCoreProtocols.iso / RFCs / rfc2701.txt < prev    next >
Encoding:
Text File  |  1999-10-14  |  17.7 KB  |  508 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7. Network Working Group                                         G. Malkin
  8. Request for Comments: 2701                              Nortel Networks
  9. Category: Informational                                  September 1999
  10.  
  11.  
  12.                             Nortel Networks
  13.           Multi-link Multi-node PPP Bundle Discovery Protocol
  14.  
  15. Status of this Memo
  16.  
  17.    This memo provides information for the Internet community.  It does
  18.    not specify an Internet standard of any kind.  Distribution of this
  19.    memo is unlimited.
  20.  
  21. Copyright Notice
  22.  
  23.    Copyright (C) The Internet Society (1999).  All Rights Reserved.
  24.  
  25. Abstract
  26.  
  27.    This document specifies a standard way for Multi-link PPP to operate
  28.    across multiple nodes.  Both the mechanism by which the Bundle Head
  29.    is discovered and the PPP fragment encapsulation are specified.
  30.  
  31. Acknowledgements
  32.  
  33.    I would like to thank Joe Frazier for filling in some of the details
  34.    and reviewing this document.
  35.  
  36. 1.  Introduction
  37.  
  38.    Multi-link PPP [MP] allows a dial-in user to open multiple PPP
  39.    connections to a given host.  In general, this is done on an on-
  40.    demand basis.  That is, a secondary link, or multiple secondary
  41.    links, are established when the data load on the primary link, and
  42.    any previously established secondary links, nears capacity.  As the
  43.    load decreases, the secondary link(s) may be disconnected.
  44.  
  45.    Many dial-in hosts which support multi-link PPP dial the same phone
  46.    number for all links.  This implies that there exists a rotary at the
  47.    Point Of Presence (POP) which routes incoming calls to a bank of
  48.    modems.  These may be physically independent modems connected to
  49.    Remote Access Server (RAS) and a rotary of analog phone lines, or a
  50.    RAS with internal modems connected to analog lines or a T1/E1 or
  51.    T3/E3 channel.  In any case, a given RAS can only handle just so many
  52.    simultaneous connections.  A typical POP may need to support hundreds
  53.    of connections, but no RAS today can handle that many.  This creates
  54.    a problem when a user's primary PPP connection is established to one
  55.  
  56.  
  57.  
  58. Malkin                       Informational                      [Page 1]
  59.  
  60. RFC 2701                          MMP                     September 1999
  61.  
  62.  
  63.    RAS in a POP and a secondary connection is established to another.
  64.    This may occur because the first RAS has no available modems, or
  65.    because incoming calls are assigned to ports in a round-robin
  66.    fashion, for example, and the second call is simply assigned to
  67.    another RAS.
  68.  
  69.    The solution to this problem is to provide a mechanism by which a RAS
  70.    can determine if a Multi-link PPP connection is a primary or
  71.    secondary and, if a secondary, where the Bundle Head (the process
  72.    within a RAS which reassembles the PPP fragments transmitted over the
  73.    primary and secondary links) resides.  If the Bundle Head resides on
  74.    a different RAS, a protocol must be used to transfer the PPP
  75.    fragments to the RAS containing the Bundle Head so that the PPP frame
  76.    can be reassembled.
  77.  
  78.    Section 2 of this document specifies the Discovery Mechanism.
  79.    Section 3 specifies the Transfer Protocol.  Section 4 specifies the
  80.    configuration parameters needed for the Discovery Protocol.
  81.  
  82. 2.  Bundle Head Discovery Mechanism
  83.  
  84.    When a user dials into a RAS and negotiates Multi-link PPP (MP)
  85.    during the Link Control Protocol (LCP) phase, the RAS must determine
  86.    which one of the following three cases exists:
  87.  
  88.    1- This is the primary (first) link of the MP connection.  In this
  89.       case, the RAS should create the Bundle Head.
  90.  
  91.    2- This is a secondary link of the MP connection and the Bundle Head
  92.       resides on this RAS.  In this case, the RAS should add the link to
  93.       the Bundle (standard MP).
  94.  
  95.    3- This is a secondary link of the MP connection and the Bundle Head
  96.       resides on a different RAS.  In this case, the RAS should
  97.       establish a path (see section 3) to the RAS that has the Bundle
  98.       Head, and use that path to transfer MP fragments.
  99.  
  100.    In operation, a RAS will make the determination for case 2 first
  101.    (because it is the easiest and requires no communication with other
  102.    RASes.  If the Bundle Head is not local, the Discovery Protocol is
  103.    used to determine where the Bundle Head is, if it exists at all.
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114. Malkin                       Informational                      [Page 2]
  115.  
  116. RFC 2701                          MMP                     September 1999
  117.  
  118.  
  119. 2.1 Packet Format
  120.  
  121.    See "IANA Considerations" (section 6) for UDP port number assignment.
  122.  
  123.    A Discovery Message has the following format:
  124.  
  125.       +------+------+------------+------+----======----+
  126.       | type |length| random ID  | hash | endpoint ID  |
  127.       +------+------+------------+------+----======----+
  128.  
  129.    where:
  130.  
  131.    type - 2 octets
  132.  
  133.       Message type: 1-query, 2-response.
  134.  
  135.    length - 2 octets
  136.  
  137.       The length (in octets) of the endpoint ID.
  138.  
  139.    Random ID - 4 octets
  140.  
  141.       A random identifier generated by the RAS used to resolve
  142.       contention.  See "Contention Handling" (section 2.4) for the use
  143.       of this field.
  144.  
  145.    hash - 2 octets
  146.  
  147.       The unsigned sum (modulo 2^16) of the unsigned octets of the
  148.       Endpoint ID.  A value of zero indicates that no hash has been
  149.       generated.  See "Endpoint Identifier Matching" (section 2.2) for
  150.       the use of this field.
  151.  
  152.    endpoint ID - variable length
  153.  
  154.       The endpoint identifier of the connection.  From the discovery
  155.       protocol's point of view, this is an opaque value.  However, to
  156.       ensure multi-vendor interoperability, the format of this field
  157.       must be defined.  The descriptions of, and legal values for, the
  158.       fields in the endpoint ID are defined in [MP].
  159.  
  160.  
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170. Malkin                       Informational                      [Page 3]
  171.  
  172. RFC 2701                          MMP                     September 1999
  173.  
  174.  
  175.          +------+------+--==--+------+------+--==--+------+--==--+
  176.          |remote|remote|remote|local |local |local |user  | user |
  177.          |EPD   |EPD   |EPD   |EPD   |EPD   |EPD   |name  | name |
  178.          |class |length|data  |class |length|data  |length| data |
  179.          +------+------+--==--+------+------+--==--+------+--==--+
  180.  
  181.       Notes:
  182.          EPD = EndPoint Descriminator.
  183.          remote = dial-in host.
  184.          local = RAS.
  185.          class and length fields are 1-octet in length.
  186.          data fields are of variable (including zero) length.
  187.  
  188.    The MP protocol requires that the RASes all have the same Local EPD.
  189.    For MMP, this implies that a RAS may not use its IP or Ethernet
  190.    address as an EPD.  This also implies that all RASes on a rotary must
  191.    have the same EPD.  RASes on different rotaries may share different
  192.    EPDs.  The Local EPD is included in the endpoint identifier to ensure
  193.    that RASes on different rotaries, but sharing a common Ethernet, will
  194.    not join a particular discovery if the Remote EPDs just happen to be
  195.    the same.
  196.  
  197.    Except for unicast Response Messages, all messages are sent to the
  198.    multicast address specified in "IANA Considerations".  If a system
  199.    cannot send multicast messages, the limited broadcast address
  200.    (255.255.255.255) should be used.
  201.  
  202. 2.2 Endpoint Identifier Matching
  203.  
  204.    Comparing Endpoint IDs can be time consuming.  First, the classes of
  205.    the EPDs must be determined, then the values compared.  These
  206.    comparisons might be fast arithmetic compares or slow octet-wise
  207.    compares of 20-octet long values.  To improve performance, because
  208.    the protocol is time-driven, the hash field may be used for a fast
  209.    comparison.
  210.  
  211.    When a Bundle Head is created, the hash is created and stored along
  212.    with the Endpoint ID.  When a Query or Response Message is generated,
  213.    the hash is created and stored in the message.  When a RAS receives a
  214.    message, it can do a quick comparison of the hash in the message to
  215.    the hashes in its tables.  If a hash does not match, the Endpoint ID
  216.    cannot match.  However, if a hash does match, the Endpoint IDs must
  217.    be properly compared to verify the match.
  218.  
  219.  
  220.  
  221.  
  222.  
  223.  
  224.  
  225.  
  226. Malkin                       Informational                      [Page 4]
  227.  
  228. RFC 2701                          MMP                     September 1999
  229.  
  230.  
  231.    Obviously, there is a cost associated with creating the hashes, but
  232.    they are created only once per message and once for each Bundle Head
  233.    creation.  However, the comparisons occur multiple times in multiple
  234.    RASes for each new secondary connection.  Therefore, there is a net
  235.    savings in processing.
  236.  
  237. 2.3 Protocol Operation
  238.  
  239.    Throughout this section, configurable variables are specified by
  240.    their names (e.g., ROBUSTNESS refers to the number of transmits).
  241.  
  242.    The Discovery Protocol begins by multicasting ROBUSTNESS Query
  243.    Messages at QUERY_INTERVAL intervals.  If no Response Message for
  244.    that Request is received within QUERY_INTERVAL of the last broadcast
  245.    (a total time of ROBUSTNESS * QUERY_INTERVAL), the RAS assumes that
  246.    this is the primary link and begins to build the Bundle Head.  It
  247.    then sends a multicast Response Message (in case another link comes
  248.    up after the time-out but before the Bundle Head is built).  If a
  249.    Response Message is received (i.e., a Bundle Head exists on another
  250.    RAS), no additional Query Messages are sent and the RAS establishes a
  251.    path to the RAS containing the Bundle Head.
  252.  
  253.    If a RAS receives a Query Message for an MP connection for which it
  254.    has the Bundle Head, it sends a unicast Response Message to the
  255.    querier.  Note that no repetition of the Response Message is
  256.    necessary because, if it is lost, the querier's next query message
  257.    will trigger a new Response Message.
  258.  
  259. 2.4 Contention Handling
  260.  
  261.    If, while sending Query Messages, a Query Message for the same MP
  262.    connection is received, it indicates that the Dial-in Node has
  263.    brought up multiple links simultaneously.  The resolution to this
  264.    contention is to elect the bundle head.  To do this, each RAS waits
  265.    until all Query Messages are sent (ROBUSTNESS * QUERY_INTERVAL).  At
  266.    that time, the RAS with the lowest Random ID becomes the Bundle Head.
  267.    If two or more RASes have the same Random ID, the RAS with the lowest
  268.    IP address becomes the Bundle Head.  That RAS then sends TWO Response
  269.    Messages, with a QUERY_INTERVAL interval, and indicates to the MP
  270.    process that a Bundle Head should be formed.  When the other RAS(es)
  271.    receive the Response Message, they cease broadcasting (if they
  272.    haven't already sent ROBUSTNESS Query Messages), stop listening for
  273.    additional Response Messages, and indicate to their respective MP
  274.    processes where the Bundle Head resides.
  275.  
  276.    Note that a RAS generates a Random ID for each connection and uses
  277.    that value for all Query and Response messages associated with that
  278.    connection.  The same Random ID must not be reused until it can be
  279.  
  280.  
  281.  
  282. Malkin                       Informational                      [Page 5]
  283.  
  284. RFC 2701                          MMP                     September 1999
  285.  
  286.  
  287.    guaranteed that another RAS will not mistake the message for an old
  288.    message from a previous connection.  For this reason, it is
  289.    recommended that the Random ID be either monotonically increasing or
  290.    a clock value (either time since boot or time of day).
  291.  
  292. 2.5 MP Operation
  293.  
  294.    MP must use the following algorithm to ensure that there are no
  295.    windows of vulnerability during which multiple Bundle Heads might be
  296.    created for the same MP connection.
  297.  
  298.    When an MP link is negotiated, MP first checks to see if it already
  299.    has the Bundle Head for this connection (i.e., is this a secondary
  300.    link).  If it does, it should attach to it and not initiate a
  301.    discovery.  As an optimization, if MP does not have a Bundle Head for
  302.    this connection, but does have a existing secondary link for it, MP
  303.    should attach to the known Bundle Head without initiating discovery.
  304.  
  305.    If MP knows of no Bundle Head for this connection, it should initiate
  306.    a discovery.  If the discovery should locate a Bundle Head, it should
  307.    attach to the indicated bundle head.  If no Bundle Head is found, MP
  308.    should create a Bundle Head.
  309.  
  310.    When a RAS determines that it is to become the Bundle Head for a
  311.    connection, it should establish the Bundle Head as quickly as
  312.    possible so Query Messages for that connection from other RASes will
  313.    be recognized.  If a RAS indicates that it will become the Bundle
  314.    Head, but delays establishment of it, other RASes may time out on
  315.    their discovery and begin to establish additional Bundle Heads of
  316.    their own.
  317.  
  318. 3.  Transfer Protocol
  319.  
  320.    The Layer 2 Tunneling Protocol (L2TP) [L2TP] will be used to transfer
  321.    PPP fragments from a RAS containing a secondary link to the RAS
  322.    containing the Bundle Head.  By specifying the use of an existing
  323.    protocol, it is neither necessary to create nor implement a new
  324.    protocol.
  325.  
  326. 4.  Configuration
  327.  
  328.    There are two required configuration switches and one conditional
  329.    configuration switch.  None of the switches are optional.
  330.  
  331.  
  332.  
  333.  
  334.  
  335.  
  336.  
  337.  
  338. Malkin                       Informational                      [Page 6]
  339.  
  340. RFC 2701                          MMP                     September 1999
  341.  
  342.  
  343. 4.1 Robustness - required
  344.  
  345.    This switch sets the number of transmits (repetitions) for Query
  346.    Messages.  It may be set between 1 and 15.  The default is 3.  Be
  347.    aware that lower settings may create windows of vulnerability.
  348.    Higher settings may cause MP timeouts, but may be needed on very
  349.    lossy or congested networks.
  350.  
  351. 4.2 Query Interval - required
  352.  
  353.    This switch sets the interval between Query Messages and the interval
  354.    between multicast Response Messages.  It should be calibrated in
  355.    deciseconds (1/10 second) and may be set between 1 and 15.  The
  356.    default is 1.  Be aware that higher settings may cause MP timeouts,
  357.    but may be needed on very slow systems/networks.
  358.  
  359. 4.3 TTL - conditional
  360.  
  361.    This switch sets the IP Time-To-Live (TTL) of all Discovery packets.
  362.    For systems which are using the limited broadcast address, this
  363.    switch should not be implemented and the TTL should be set to 1.  The
  364.    default value should be 1.
  365.  
  366. 5.  Security Considerations
  367.  
  368.    No security is designed into the Discovery Mechanism.  When not
  369.    forwarding multicast packets (or when using the limited broadcast
  370.    address), the discovery packets are restricted to a single LAN.  If
  371.    the LAN is physically secure, there is no need for software security.
  372.    If the multicast packets are forwarded, but the range is limited to a
  373.    small, physically secure network (e.g., a POP), there is still no
  374.    need for software security.  If the discovery packets are allowed to
  375.    cross an internet (and this is NOT recommended for timing reasons),
  376.    authentication of RASes may be done with IPSEC.  For increased
  377.    security on a LAN, or in a POP, IPSEC may still be used.
  378.  
  379.    L2TP security is discussed in [L2TP].
  380.  
  381. 6.  IANA Considerations
  382.  
  383.    UDP port number: 581
  384.    Multicast address: 224.0.1.69
  385.  
  386.  
  387.  
  388.  
  389.  
  390.  
  391.  
  392.  
  393.  
  394. Malkin                       Informational                      [Page 7]
  395.  
  396. RFC 2701                          MMP                     September 1999
  397.  
  398.  
  399. 7.  References
  400.  
  401.    [MP]    Sklower, K., Lloyd, B., McGregor, G., Carr, D. and
  402.            T. Coradetti, "The PPP Multilink Protocol (MP)", RFC 1990,
  403.            August 1996.
  404.  
  405.    [L2TP]  Townsley, W., Valencia, A., Rubens, A., Pall, G., Zorn, G.
  406.            and B. Palter, "Layer Two Tunneling Protocol "L2TP"",  RFC
  407.            2661, August 1999.
  408.  
  409. Author's Address
  410.  
  411.    Gary Scott Malkin
  412.    Nortel Networks
  413.    11 Elizabeth Drive
  414.    Chelmsford, MA  01824-4111
  415.  
  416.    Phone: +1 (978) 250-3635
  417.    Email: gmalkin@nortelnetworks.com
  418.  
  419.  
  420.  
  421.  
  422.  
  423.  
  424.  
  425.  
  426.  
  427.  
  428.  
  429.  
  430.  
  431.  
  432.  
  433.  
  434.  
  435.  
  436.  
  437.  
  438.  
  439.  
  440.  
  441.  
  442.  
  443.  
  444.  
  445.  
  446.  
  447.  
  448.  
  449.  
  450. Malkin                       Informational                      [Page 8]
  451.  
  452. RFC 2701                          MMP                     September 1999
  453.  
  454.  
  455. Full Copyright Statement
  456.  
  457.    Copyright (C) The Internet Society (1999).  All Rights Reserved.
  458.  
  459.    This document and translations of it may be copied and furnished to
  460.    others, and derivative works that comment on or otherwise explain it
  461.    or assist in its implementation may be prepared, copied, published
  462.    and distributed, in whole or in part, without restriction of any
  463.    kind, provided that the above copyright notice and this paragraph are
  464.    included on all such copies and derivative works.  However, this
  465.    document itself may not be modified in any way, such as by removing
  466.    the copyright notice or references to the Internet Society or other
  467.    Internet organizations, except as needed for the purpose of
  468.    developing Internet standards in which case the procedures for
  469.    copyrights defined in the Internet Standards process must be
  470.    followed, or as required to translate it into languages other than
  471.    English.
  472.  
  473.    The limited permissions granted above are perpetual and will not be
  474.    revoked by the Internet Society or its successors or assigns.
  475.  
  476.    This document and the information contained herein is provided on an
  477.    "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
  478.    TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
  479.    BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
  480.    HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
  481.    MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
  482.  
  483. Acknowledgement
  484.  
  485.    Funding for the RFC Editor function is currently provided by the
  486.    Internet Society.
  487.  
  488.  
  489.  
  490.  
  491.  
  492.  
  493.  
  494.  
  495.  
  496.  
  497.  
  498.  
  499.  
  500.  
  501.  
  502.  
  503.  
  504.  
  505.  
  506. Malkin                       Informational                      [Page 9]
  507.  
  508.