RFC 9081 PROPOSED STANDARD MULTICAST · VPN · BGP

MVPN and MSDP SA: Interoperation between Multicast Virtual Private Network (MVPN) and Multicast Source Directory Protocol (MSDP) Source-Active Routes

How a provider's multicast VPN and a customer's MSDP network can swap source announcements without extra sessions.

On rfc-editor.org ↗
PUBLISHED
July 2021
AUTHORS
Z. Zhang, L. Giuliano
STREAM
IETF
BUILDS ON
RFC 6514 — MVPN BGP Encodings
EXTENDED COMMUNITY SUB-TYPE
0x20
COMMUNITY TYPE
Transitive IPv4-Address-Specific
LOCAL ADMINISTRATOR FIELD
Zero
MODE COVERED
spt-only
DOI
10.17487/RFC9081

RFC text

Contents
Original text · RFC Editor View on rfc-editor.org ↗
Internet Engineering Task Force (IETF)                          Z. Zhang
Request for Comments: 9081                                   L. Giuliano
Updates: 6514                                           Juniper Networks
Category: Standards Track                                      July 2021
ISSN: 2070-1721


  Interoperation between Multicast Virtual Private Network (MVPN) and
    Multicast Source Directory Protocol (MSDP) Source-Active Routes

Abstract

   This document specifies the procedures for interoperation between
   Multicast Virtual Private Network (MVPN) Source-Active (SA) routes
   and customer Multicast Source Discovery Protocol (MSDP) SA routes,
   which is useful for MVPN provider networks offering services to
   customers with an existing MSDP infrastructure.  Without the
   procedures described in this document, VPN-specific MSDP sessions are
   required among the Provider Edge (PE) routers that are customer MSDP
   peers.  This document updates RFC 6514.

Status of This Memo

   This is an Internet Standards Track document.

   This document is a product of the Internet Engineering Task Force
   (IETF).  It represents the consensus of the IETF community.  It has
   received public review and has been approved for publication by the
   Internet Engineering Steering Group (IESG).  Further information on
   Internet Standards is available in Section 2 of RFC 7841.

   Information about the current status of this document, any errata,
   and how to provide feedback on it may be obtained at
   https://www.rfc-editor.org/info/rfc9081.

Copyright Notice

   Copyright (c) 2021 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
   (https://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
   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.

Table of Contents

   1.  Introduction
     1.1.  MVPN RPT-SPT Mode
   2.  Terminology
     2.1.  Requirements Language
   3.  Specification
   4.  Security Considerations
   5.  IANA Considerations
   6.  References
     6.1.  Normative References
     6.2.  Informative References
   Acknowledgements
   Authors' Addresses

1.  Introduction

   Section 14 ("Supporting PIM-SM without Inter-Site Shared C-Trees") of
   [RFC6514] specifies the procedures for MVPN PEs to discover (C-S,C-G)
   via MVPN Source-Active A-D routes and then send Source Tree Join
   (C-S,C-G) C-multicast routes towards the ingress PEs to establish
   shortest path trees (SPTs) for customer Any-Source Multicast (ASM)
   flows for which they have downstream receivers.  (C-*,C-G)
   C-multicast routes are not sent among the PEs, so inter-site shared
   C-Trees are not used, and the method is generally referred to as
   "spt-only" mode.

   With this mode, the MVPN Source-Active routes are functionally
   similar to MSDP Source-Active messages.  For a VPN, one or more of
   the PEs, say PE1, either acts as a C-RP and learns of (C-S,C-G) via
   PIM Register messages or has MSDP sessions with some MSDP peers and
   learns of (C-S,C-G) via MSDP SA messages.  In either case, PE1 will
   then originate MVPN SA routes for other PEs to learn (C-S,C-G).

   [RFC6514] only specifies that a PE receiving the MVPN SA routes, say
   PE2, will advertise Source Tree Join (C-S,C-G) C-multicast routes if
   it has corresponding (C-*,C-G) state learnt from its Customer Edge
   (CE).  PE2 may also have MSDP sessions for the VPN with other C-RPs
   at its site, but [RFC6514] does not specify that PE2 advertises MSDP
   SA messages to those MSDP peers for the (C-S,C-G) that it learns via
   MVPN SA routes.  PE2 would need to have an MSDP session with PE1
   (that advertised the MVPN SA messages) to learn the sources via MSDP
   SA messages for it to advertise the MSDP SA to its local peers.  To
   make things worse, unless blocked by policy control, PE2 would in
   turn advertise MVPN SA routes because of those MSDP SA messages that
   it receives from PE1, which are redundant and unnecessary.  Also
   notice that the PE1-PE2 MSDP session is VPN specific (i.e., only for
   a single VPN), while the BGP sessions over which the MVPN routes are
   advertised are not.

   If a PE does advertise MSDP SA messages based on received MVPN SA
   routes, the VPN-specific MSDP sessions with other PEs are no longer
   needed.  Additionally, this MVPN/MSDP SA interoperation has the
   following inherent benefits for a BGP-based solution.

   *  MSDP SA refreshes are replaced with BGP hard state.

   *  Route reflectors can be used instead of having peer-to-peer
      sessions.

   *  VPN extranet [RFC2764] mechanisms can be used to propagate
      (C-S,C-G) information across VPNs with flexible policy control.

   While MSDP Source-Active routes contain the source, group, and RP
   addresses of a given multicast flow, MVPN Source-Active routes only
   contain the source and group.  MSDP requires the RP address
   information in order to perform MSDP peer Reverse Path Forwarding
   (RPF).  Therefore, this document describes how to convey the RP
   address information into the MVPN Source-Active route using an
   Extended Community so this information can be shared with an existing
   MSDP infrastructure.

   The procedures apply to Global Table Multicast (GTM) [RFC7716] as
   well.

1.1.  MVPN RPT-SPT Mode

   For comparison, another method of supporting customer ASM is
   generally referred to as "rpt-spt" mode.  Section 13 ("Switching from
   a Shared C-Tree to a Source C-Tree") of [RFC6514] specifies the MVPN
   SA procedures for that mode, but those SA routes are a replacement
   for PIM-ASM assert and (s,g,rpt) prune mechanisms, not for source
   discovery purposes.  MVPN/MSDP SA interoperation for the "rpt-spt"
   mode is outside the scope of this document.  In the rest of the
   document, the "spt-only" mode is assumed.

2.  Terminology

   Familiarity with MVPN [RFC6513] [RFC6514] and MSDP [RFC3618]
   protocols and procedures is assumed.  Some terminology is listed
   below for convenience.

   ASM:          Any-Source Multicast

   SPT:          source-specific Shortest Path Tree

   RPT:          Rendezvous Point Tree

   C-S:          a multicast source address, identifying a multicast
                 source located at a VPN customer site

   C-G:          a multicast group address used by a VPN customer

   C-RP:         a multicast Rendezvous Point for a VPN customer

   C-multicast:  a multicast for a VPN customer

   EC:           Extended Community

   GTM:          Global Table Multicast, i.e., a multicast in the
                 default or global routing table vs. a VPN Routing and
                 Forwarding (VRF) table

2.1.  Requirements Language

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
   "OPTIONAL" in this document are to be interpreted as described in BCP
   14 [RFC2119] [RFC8174] when, and only when, they appear in all
   capitals, as shown here.

3.  Specification

   The MVPN PEs that act as customer RPs or have one or more MSDP
   sessions in a VPN (or the global table in case of GTM) are treated as
   an MSDP mesh group for that VPN (or the global table).  In the rest
   of the document, it is referred to as the PE mesh group.  This PE
   mesh group MUST NOT include other MSDP speakers and is integrated
   into the rest of the MSDP infrastructure for the VPN (or the global
   table) following normal MSDP rules and practices.

   When an MVPN PE advertises an MVPN SA route following procedures in
   [RFC6514] for the "spt-only" mode, it MUST attach an "MVPN SA RP-
   address Extended Community".  This is a Transitive IPv4-Address-
   Specific Extended Community.  The Local Administrator field is set to
   zero, and the Global Administrator field is set to an RP address
   determined as the following:

   *  If the (C-S,C-G) is learnt as a result of the PIM Register
      mechanism, the local RP address for the C-G is used.

   *  If the (C-S,C-G) is learnt as a result of incoming MSDP SA
      messages, the RP address in the selected MSDP SA message is used.

   In addition to the procedures in [RFC6514], an MVPN PE may be
   provisioned to generate MSDP SA messages from received MVPN SA
   routes, with or without local policy control.  If a received MVPN SA
   route triggers an MSDP SA message, the MVPN SA route is treated as if
   a corresponding MSDP SA message was received from within the PE mesh
   group and normal MSDP procedure is followed (e.g., an MSDP SA message
   is advertised to other MSDP peers outside the PE mesh group).  The
   (S,G) information comes from the (C-S,C-G) encoding in the MVPN SA
   Network Layer Reachability Information (NLRI), and the RP address
   comes from the "MVPN SA RP-address EC" mentioned above.  If the
   received MVPN SA route does not have the EC (this could be from a
   legacy PE that does not have the capability to attach the EC), the
   local RP address for the C-G is used.  In that case, it is possible
   that the RP inserted into the MSDP SA message for the C-G is actually
   the MSDP peer to which the generated MSDP message is advertised,
   causing the peer to discard it due to RPF failure.  To get around
   that problem, the peer SHOULD use local policy to accept the MSDP SA
   message.

   An MVPN PE MAY treat only the best MVPN SA route selected by the BGP
   route selection process (instead of all MVPN SA routes) for a given
   (C-S,C-G) as a received MSDP SA message (and advertise the
   corresponding MSDP message).  In that case, if the selected best MVPN
   SA route does not have the "MVPN SA RP-address EC" but another route
   for the same (C-S, C-G) does, then the next best route with the EC
   SHOULD be chosen.  As a result, if/when the best MVPN SA route with
   the EC changes, a new MSDP SA message is advertised if the RP address
   determined according to the newly selected MVPN SA route is different
   from before.  The MSDP SA state associated with the previously
   advertised MSDP SA message with the older RP address will be timed
   out.

4.  Security Considerations

   [RFC6514] specifies the procedure for a PE to generate an MVPN SA
   upon discovering a (C-S,C-G) flow (e.g., via a received MSDP SA
   message) in a VPN.  This document extends this capability in the
   reverse direction -- upon receiving an MVPN SA route in a VPN,
   generate a corresponding MSDP SA and advertise it to MSDP peers in
   the same VPN.  As such, the capabilities specified in this document
   introduce no additional security considerations beyond those already
   specified in [RFC6514] and [RFC3618].  Moreover, the capabilities
   specified in this document actually eliminate the control message
   amplification that exists today where VPN-specific MSDP sessions are
   required among the PEs that are customer MSDP peers, which lead to
   redundant messages (MSDP SAs and MVPN SAs) being carried in parallel
   between PEs.

5.  IANA Considerations

   IANA registered the following in the "Transitive IPv4-Address-
   Specific Extended Community Sub-Types" registry:

             +=======+=======================================+
             | Value | Description                           |
             +=======+=======================================+
             | 0x20  | MVPN SA RP-address Extended Community |
             +-------+---------------------------------------+

                                  Table 1

6.  References

6.1.  Normative References

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119,
              DOI 10.17487/RFC2119, March 1997,
              <https://www.rfc-editor.org/info/rfc2119>.

   [RFC3618]  Fenner, B., Ed. and D. Meyer, Ed., "Multicast Source
              Discovery Protocol (MSDP)", RFC 3618,
              DOI 10.17487/RFC3618, October 2003,
              <https://www.rfc-editor.org/info/rfc3618>.

   [RFC6514]  Aggarwal, R., Rosen, E., Morin, T., and Y. Rekhter, "BGP
              Encodings and Procedures for Multicast in MPLS/BGP IP
              VPNs", RFC 6514, DOI 10.17487/RFC6514, February 2012,
              <https://www.rfc-editor.org/info/rfc6514>.

   [RFC8174]  Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
              2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
              May 2017, <https://www.rfc-editor.org/info/rfc8174>.

6.2.  Informative References

   [RFC2764]  Gleeson, B., Lin, A., Heinanen, J., Armitage, G., and A.
              Malis, "A Framework for IP Based Virtual Private
              Networks", RFC 2764, DOI 10.17487/RFC2764, February 2000,
              <https://www.rfc-editor.org/info/rfc2764>.

   [RFC6513]  Rosen, E., Ed. and R. Aggarwal, Ed., "Multicast in MPLS/
              BGP IP VPNs", RFC 6513, DOI 10.17487/RFC6513, February
              2012, <https://www.rfc-editor.org/info/rfc6513>.

   [RFC7716]  Zhang, J., Giuliano, L., Rosen, E., Ed., Subramanian, K.,
              and D. Pacella, "Global Table Multicast with BGP Multicast
              VPN (BGP-MVPN) Procedures", RFC 7716,
              DOI 10.17487/RFC7716, December 2015,
              <https://www.rfc-editor.org/info/rfc7716>.

Acknowledgements

   The authors thank Eric Rosen, Vinod Kumar, Yajun Liu, Stig Venaas,
   Mankamana Mishra, Gyan Mishra, Qin Wu, and Jia He for their reviews,
   comments, questions, and suggestions for this document.

Authors' Addresses

   Zhaohui Zhang
   Juniper Networks

   Email: zzhang@juniper.net


   Lenny Giuliano
   Juniper Networks

   Email: lenny@juniper.net

AI ELI5

On this page
PROBLEMA provider running multicast VPN (MVPN) learns about active sources through BGP Source-Active routes, while customers may use MSDP. Without glue, the provider edge routers need VPN-specific MSDP sessions with each other.
MECHANISMA PE attaches an Extended Community carrying the RP address to each MVPN Source-Active route, and other PEs can turn received MVPN SA routes into MSDP SA messages for their customer peers.
WHY IT MATTERSThe VPN-specific MSDP sessions between PEs are no longer needed, and redundant parallel MSDP and MVPN SA messages are avoided.

§1The Gap Between MVPN and MSDP

In the "spt-only" mode of RFC 6514, provider edge (PE) routers find out about active customer sources through MVPN Source-Active (SA) routes and then join the shortest path tree for each (C-S,C-G) flow. These routes work much like MSDP Source-Active messages.

RFC 6514 only covers the receiving PE (PE2) joining trees. It does not say that PE2 should advertise MSDP SA messages to its own customer MSDP peers. PE2 would need its own MSDP session with the originating PE (PE1) to do that. Worse, PE2 could then originate redundant MVPN SA routes from those MSDP messages.

Such a PE-to-PE MSDP session is specific to a single VPN, while the BGP sessions carrying MVPN routes are not. The procedures also apply to Global Table Multicast.

One router shouts news in one language and its neighbor only listens in another. Without a translator, they would need a private line just for each club.

§2Why Bridge Them: RP Addresses and Benefits

Passing MVPN SA information on as MSDP SA messages removes the VPN-specific MSDP sessions between PEs. The RFC lists further benefits of a BGP-based solution:

  • MSDP SA refreshes are replaced with BGP hard state.
  • Route reflectors can be used instead of peer-to-peer sessions.
  • VPN extranet mechanisms from RFC 2764 can spread (C-S,C-G) information across VPNs with flexible policy control.

There is one catch. An MSDP SA carries the source, group and rendezvous point (RP) address, but an MVPN SA carries only source and group. MSDP needs the RP address for its peer Reverse Path Forwarding (RPF) check, so the RP address has to be added to the MVPN SA route.

The old announcement slip had a line for the meeting spot, and the new one did not. This document adds that line back so the old system can still read it.

§3Scope: spt-only Mode

The RFC covers the "spt-only" mode. The other approach, "rpt-spt" mode, is described in Section 13 of RFC 6514, where SA routes replace PIM-ASM assert and (s,g,rpt) prune mechanisms and are not used for source discovery.

Interoperation between MVPN and MSDP SA for the rpt-spt mode is explicitly outside the scope of this document.

There are two ways to run the game. This document explains the translator for only one of them.

§4The RP-address Extended Community

The MVPN PEs that act as customer RPs or have MSDP sessions in a VPN are treated as an MSDP mesh group, called the PE mesh group. It MUST NOT include other MSDP speakers and fits into the rest of the VPN's MSDP network by normal MSDP rules.

When a PE advertises an MVPN SA route in spt-only mode, it MUST attach an MVPN SA RP-address Extended Community. This is a Transitive IPv4-Address-Specific Extended Community with the Local Administrator field set to zero and the Global Administrator field set to an RP address:

  • If the source was learned through a PIM Register, the local RP address for the group is used.
  • If it was learned from an incoming MSDP SA message, the RP address in the selected message is used.

Every announcement now gets a sticker saying which meeting spot it belongs to, so the old system knows where it came from.

§5Generating MSDP SA Messages from MVPN SA Routes

A PE may be provisioned to generate MSDP SA messages from received MVPN SA routes, with or without local policy control. Such a route is treated as if an MSDP SA message had arrived from within the PE mesh group, and normal MSDP procedure follows, for example advertising to MSDP peers outside the mesh group. The (S,G) comes from the (C-S,C-G) in the NLRI and the RP address from the Extended Community.

If the route has no Extended Community, perhaps because it came from a legacy PE, the local RP address for the group is used. That RP could turn out to be the very MSDP peer receiving the message, which would discard it after an RPF failure. The peer SHOULD use local policy to accept the message.

A PE MAY act on only the best MVPN SA route chosen by BGP route selection. If that route lacks the Extended Community but another route for the same (C-S,C-G) has it, the next best route with the community SHOULD be chosen. If the selected route changes the RP address, a new MSDP SA is advertised, and the state for the old RP times out.

When a router hears an announcement in the new language, it repeats it in the old language to its old-style friends. If the sticker is missing, it guesses the meeting spot from its own list.

MVPN SA TO MSDP SA FLOW (ILLUSTRATIVE, BASED ON RFC TEXT)
PE1PE2Customer MSDP peer
  1. MVPN SA route + RP-address ECPE1 learned (C-S,C-G) by PIM Register or MSDP SA.
  2. MSDP SA messageBuilt from the NLRI and the RP address in the EC.

§6Security Considerations

The RFC extends what RFC 6514 does in one direction (MSDP to MVPN SA) to the reverse direction (MVPN SA to MSDP SA). It concludes that this adds no security considerations beyond those of RFC 6514 and RFC 3618.

It also argues that the procedures remove the control message amplification that exists today, where VPN-specific MSDP sessions among PEs lead to redundant MSDP and MVPN SA messages being carried in parallel.

The translator adds no new ways to cheat. It actually stops the same news from being passed along twice.

§7IANA Registration

IANA registered value 0x20 in the "Transitive IPv4-Address-Specific Extended Community Sub-Types" registry, with the description "MVPN SA RP-address Extended Community".

The new sticker got its own official number so nobody else uses it for something different.

§8References