RFC 3618 - Multicast Source Discovery Protocol (MSDP)(2)

时间:2006-10-21 来源: 作者: 点击:
E7-A8||E4-A4| E8-A8||| E9-A8|V| \+-------------+/ --------------|ESTABLISHED|--------- +-------------+ |^ || E10-A9\______/ 11.1.Events E1)EnableMSDPpeeringwithP E2)OwnIPaddressP’sIPaddress E3)OwnIP
  
   E7->A8   |                      |E4->A4            |
   E8->A8   |                      |                  |
   E9->A8   |                      V                  |
            \               +-------------+          /
              --------------| ESTABLISHED |<---------
                            +-------------+
                               |       ^
                               |       |
                       E10->A9 \______/

11.1.  Events

   E1) Enable MSDP peering with P
   E2) Own IP address < P’s IP address
   E3) Own IP address > P’s IP address
   E4) TCP established (active side)
   E5) TCP established (passive side)
   E6) ConnectRetry timer expired
   E7) Disable MSDP peering with P (e.g., when one’s own address is
       changed)
   E8) Hold Timer expired
   E9) MSDP TLV format error detected
   E10) Any other error detected

11.2.  Actions

   A1) Allocate resources for peering with P Compare one’s own and
       peer’s IP addresses
   A2) TCP active OPEN Set ConnectRetry timer to
       [ConnectRetry-Period]
   A3) TCP passive OPEN (listen)

   A4) Delete ConnectRetry timer Send KeepAlive TLV
       Set KeepAlive timer to [KeepAlive-Period]
       Set Hold Timer to [HoldTime-Period]
   A5) Send KeepAlive TLV
       Set KeepAlive timer to [KeepAlive-Period]
       Set Hold Timer to [HoldTime-Period]
   A6) Abort TCP active OPEN attempt
       Release resources allocated for peering with P
   A7) Abort TCP passive OPEN attempt
       Release resources allocated for peering with P
   A8) Close the TCP connection
       Release resources allocated for peering with P
   A9) Drop the packet

11.3.  Peer-specific Events

   The following peer-specific events can occur in the ESTABLISHED
   state, they do not cause a state transition.  Appropriate actions are
   listed for each event.

   *) KeepAlive timer expired:
      -> Send KeepAlive TLV
      -> Set KeepAlive timer to [KeepAlive-Period]
   *) KeepAlive TLV received:
      -> Set Hold Timer to [HoldTime-Period]
   *) Source-Active TLV received:
      -> Set Hold Timer to [HoldTime-Period]
      -> Run Peer-RPF Forwarding algorithm
      -> Set KeepAlive timer to [KeepAlive-Period] for those peers
         the Source-Active TLV is forwarded to
      -> Send information to PIM-SM
      -> Store information in cache

11.4.  Peer-independent Events

   There are also a number of events that affect more than one peering
   session, but still require actions to be performed on a per-peer
   basis.

   *) SA-Advertisement-Timer expired:
      -> Start periodic transmission of Source-Active TLV(s)
       -> Set KeepAlive timer to [KeepAlive-Period] each time a
          Source-Active TLV is sent
   *) MSDP learns of a new active internal source (e.g., PIM-SM
      register received for a new source):
      -> Send Source-Active TLV
      -> Set KeepAlive timer to [KeepAlive-Period]
   *) SG-State-Timer expired (one timer per cache entry):

      -> Implementation specific, typically mark the cache entry
         for deletion

12.  Packet Formats

   MSDP messages are encoded in TLV format.  If an implementation
   receives a TLV whose length exceeds the maximum TLV length specified
   below, the TLV SHOULD be accepted.  Any additional data, including
   possible next TLV’s in the same message, SHOULD be ignored, and the
   MSDP session should not be reset.

12.1.  MSDP TLV format

    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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |    Type       |           Length              |  Value ....   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   Type (8 bits)
    Describes the format of the Value field.

   Length (16 bits)
    Length of Type, Length, and Value fields in octets.  Minimum length
    required is 4 octets, except for Keepalive messages.  The maximum
    TLV length is 9192.

   Value (variable length)
    Format is based on the Type value.  See below.  The length of the
    value field is Length field minus 3.  All reserved fields in the
    Value field MUST be transmitted as zeros and ignored on receipt.

12.2.  Defined TLVs

   The following TLV Types are defined:

   Code                        Type
   ===================================================
     1                  IPv4 Source-Active
     2                  IPv4 Source-Active Request
     3                  IPv4 Source-Active Response
     4                  KeepAlive
     5                  Reserved (Previously: Notification)

   Each TLV is described below.

   In addition, the following TLV Types are assigned but not described
   in this memo:

   Code                        Type
   ====================================================
     6                  MSDP traceroute in progress
     7                  MSDP traceroute reply

12.2.1.  IPv4 Source-Active TLV

   The maximum size SA message that can be sent is 9192 octets.  The
   9192 octet size does not include the TCP, IP, layer-2 headers.

 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|       1       |           x + y               |  Entry Count  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                          RP Address                           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                           Reserved            |  Sprefix Len  | \
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  \
|                         Group Address                         |   ) z
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  /
|                         Source Address                        | /
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   Type
    IPv4 Source-Active TLV is type 1.

   Length x
    Is the length of the control information in the message.  x is 8
    octets (for the first two 32-bit quantities) plus 12 times Entry
    Count octets.

   Length y
    If 0, then there is no data encapsulated.  Otherwise an IPv4 packet
    follows and y is the value of the total length field in the header
    of the encapsulated IP packet.  If there are multiple (S,G) entries
    in an SA message, only the last entry may have encapsulated data and
    it must reflect the source and destination addresses in the header
    of the encapsulated IP packet.

   Entry Count
    Is the count of z entries (note above) which follow the RP address
    field.  This is so multiple (S,G)s from the same domain can be
    encoded efficiently for the same RP address.  An SA message
    containing encapsulated data typically has an entry count of 1
    (i.e., only contains a single entry, for the (S,G) representing the
    encapsulated packet).

   RP Address
    The address of the RP in the domain the source has become active in.

   Reserved
    The Reserved field MUST be transmitted as zeros and MUST be ignored
    by a receiver.

   Sprefix Len
    The route prefix length associated with source address.  This field
    MUST be transmitted as 32 (/32).

   Group Address
    The group address the active source has sent data to.

   Source Address
    The IP address of the active source.

   Multiple (S,G) entries MAY appear in the same SA and can be batched
   for efficiency at the expense of data latency.  This would typically
   occur on intermediate forwarding of SA messages.

12.2.2.  KeepAlive TLV

   A KeepAlive TLV is sent to an MSDP peer if and only if there were no
   MSDP messages sent to the peer within [KeepAlive-Period] seconds.
   This message is necessary to keep the MSDP connection alive.

    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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |       4       |             3                 |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   The length of the message is 3 octets which encompasses the one octet
   Type field and the two octet Length field.

13.  MSDP Error Handling

   If an MSDP message is received with a TLV format error, the session
   SHOULD be reset with that peer.  MSDP messages with other errors,
   such as unrecognized type code, received from MSDP peers, SHOULD be
   silently discarded and the session SHOULD not be reset.

14.  SA Data Encapsulation

   As discussed earlier, TCP encapsulation of data in SA messages MAY be
   supported for backwards compatibility with legacy MSDP peers.

15.  Applicability Statement

   MSDP is used primarily in two deployment scenarios:

15.1.  Between PIM Domains

   MSDP can be used between PIM domains to convey information about
   active sources available in other domains.  MSDP peering used in such
   cases is generally one to one peering, and utilizes the deterministic
   peer-RPF rules described in this spec (i.e., does not use mesh-
   groups).  Peerings can be aggregated on a single MSDP peer, typically
   from one to hundreds of peerings, similar in scale, although not
   necessarily consistent, with BGP peerings.

15.2.  Between Anycast-RPs

   MSDP is also used between Anycast-RPs [RFC3446] within a PIM domain
   to synchronize information about the active sources being served by
   each Anycast-RP peer (by virtue of IGP reachability).  MSDP peering
   used in this scenario is typically based on MSDP mesh groups, where
   anywhere from two to tens of peers can comprise a given mesh group,
   although more than ten is not typical.  One or more of these mesh-
   group peers may then also have additional one-to-one peering with
   msdp peers outside that PIM domain as described in scenario A, for
   discovery of external sources.  MSDP for anycast-RP without external
   MSDP peering is a valid deployment option and common.

16.  Intellectual Property

   The IETF takes no position regarding the validity or scope of any
   intellectual property or other rights that might be claimed to
   pertain to the implementation or use of the technology described in
   this document or the extent to which any license under such rights
   might or might not be available; neither does it represent that it
   has made any effort to identify any such rights.  Information on the
   IETF’s procedures with respect to rights in standards-track and

   standards-related documentation can be found in BCP-11.  Copies of
   claims of rights made available for publication and any assurances of
   licenses to be made available, or the result of an attempt made to
   obtain a general license or permission for the use of such
   proprietary rights by implementors or users of this specification can
   be obtained from the IETF Secretariat.

   The IETF invites any interested party to bring to its attention any
   copyrights, patents or patent applications, or other proprietary
   rights which may cover technology that may be required to practice
   this standard.  Please address the information to the IETF Executive
   Director.

17.  Acknowledgments

   The editors would like to thank the original authors, Dino Farinacci,
   Yakov Rehkter, Peter Lothberg, Hank Kilmer, and Jermey Hall for their
   original contribution to the MSDP specification.  In addition, Bill
   Nickless, John Meylor, Liming Wei, Manoj Leelanivas, Mark Turner,
   John Zwiebel, Cristina Radulescu-Banu, Brian Edwards, Selina
   Priestley, IJsbrand Wijnands, Tom Pusateri, Kristofer Warell, Henning
   Eriksson, Thomas Eriksson, Dave Thaler, and Ravi Shekhar provided
   useful and productive design feedback and comments.  Toerless Eckert,
   Leonard Giuliano, Mike McBride, David Meyer, John Meylor, Pekka
   Savola, Ishan Wu, and Swapna Yelamanchi contributed to the final
   version of the document.

18.  Security Considerations

   An MSDP implementation MUST implement Keyed MD5 [RFC2385] to secure
   control messages, and MUST be capable of interoperating with peers
   that do not support it.  However, if one side of the connection is
   configured with Keyed MD5 and the other side is not, the connection
   SHOULD NOT be established.

   In addition, to mitigate state explosion during denial of service and
   other attacks, SA filters and limits SHOULD be used with MSDP to
   limit the sources and  groups that will be passed between RPs
   [DEPLOY].  These filtering and limiting functions may include, for
   example, access lists of source or group addresses which should not
   be propagated to other domains using MSDP, the absolute highest
   acceptable number of SA-state entries or a rate-limit of for the
   creation of new SA-state entries after the connection has been
   established.

   If follow-on work is done in this area, a more robust integrity
   mechanism, such as HMAC-SHA1 [RFC2104, RFC2202] ought to be employed.

19.  IANA Considerations

   This document creates a new namespace called "MSDP TLV Values" that
   the IANA will manage.  The initial seven MSDP TLV values are
   specified in Section 12.2.  The following two sections describe the
   rules for allocating new MSDP TLV values.

19.1.  IANA Allocated TLV Range

   MSDP TLV values in the range [8,200] (inclusive) are to be allocated
   using an IESG Approval or Standards Action process [RFC2434].

19.2.  Experimental TLV Range

   TLV values in the range [201,255] (inclusive) are allocated for
   experimental use.

20.  References

20.1.  Normative References

   [RFC1142]       Oran, D., Ed., "OSI IS-IS Intra-domain Routing
                   Protocol", RFC 1142, February 1990.

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

   [RFC2328]       Moy, J., "OSPF Version 2", STD 54, RFC 2328, April
                   1998.

   [RFC2858]       Bates, T., Rekhter, Y., Chandra, R. and D. Katz,
                   "Multiprotocol Extensions for BGP-4", RFC 2858, June
                   2000.

   [RFC2362]       Estrin, D., Farinacci, D., Helmy, A., Thaler, D.,
                   Deering, S., Handley, M., Jacobson, V., Lin, C.,
                   Sharma, P. and L. Wei, "Protocol Independent
                   Multicast - Sparse Mode (PIM-SM):  Protocol
                   Specification", RFC 2362, June 1998.

   [RFC2365]       Meyer, D., "Administratively Scoped IP Multicast",
                   BCP 23, RFC 2365, July 1998.

   [RFC2385]       Heffernan, A., "Protection of BGP Sessions via the
                   TCP MD5 Signature Option", RFC 2385, August 1998.

   [RFC2434]       Narten, T. and H. Alvestrand, "Guidelines for Writing
                   an IANA Considerations Section in RFCs", BCP 26, RFC
                   2434, October 1998.

   [RFC3446]       Kim, D., Meyer, D., Kilmer, H. and D. Farinacci,
                   "Anycast Rendezvous Point (RP) Mechanism using
                   Protocol Independent Multicast (PIM) and Multicast
                   Source Discovery Protocol (MSDP)", RFC 3446, January
                   2003.

20.2.  Informative References

   [DEPLOY]        McBride, M., Meylor, J. and D. Meyer, "Multicast
                   Source Discovery Protocol (MSDP) Deployment
                   Scenarios", Work in Progress, July 2003.

   [RFC2104]       Krawczyk, H., Bellare, M. and R.  Canetti, "HMAC:
                   Keyed-Hashing for Message Authentication", RFC 2104,
                   February 1997.

   [RFC2202]       Cheng, P. and R. Glenn, "Test Cases for HMAC-MD5 and
                   HMAC-SHA-1", RFC 2202, September 1997.

21.  Editors’ Addresses

   Bill Fenner
   AT&T Labs -- Research
   75 Willow Road
   Menlo Park, CA 94025

   EMail: fenner@research.att.com

   David Meyer

   EMail: dmm@1-4-5.net

22.  Full Copyright Statement

   Copyright (C) The Internet Society (2003).  All Rights Reserved.

   This document and translations of it may be copied and furnished to
   others, and derivative works that comment on or otherwise explain it
   or assist in its implementation may be prepared, copied, published
   and distributed, in whole or in part, without restriction of any
   kind, provided that the above copyright notice and this paragraph are
   included on all such copies and derivative works.  However, this
   document itself may not be modified in any way, such as by removing
   the copyright notice or references to the Internet Society or other
   Internet organizations, except as needed for the purpose of
   developing Internet standards in which case the procedures for
   copyrights defined in the Internet Standards process must be
   followed, or as required to translate it into languages other than
   English.

   The limited permissions granted above are perpetual and will not be
   revoked by the Internet Society or its successors or assignees.

   This document and the information contained herein is provided on an
   "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
   TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
   BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
   HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
   MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

Acknowledgement

   Funding for the RFC Editor function is currently provided by the
   Internet Society.
------分隔线----------------------------
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
最新评论 查看所有评论
发表评论 查看所有评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
推荐内容