RFC 7246

Multipoint Label Distribution Protocol In-Band Signaling in a Virtual Routing and Forwarding (VRF) Table Context

πŸ“… published June 2014, from ietf

Multipoint Label Distribution Protocol In-Band Signaling in a Virtual Routing and Forwarding (VRF) Table Context πŸ¦‹

Okay bestie, this is RFC 7246 ✨, a Standards Track document (ISSN 2070-1721) published in June 2014. The lead editor is IJ. Wijnands, Ed. from Cisco Systems πŸ‘‘. The co-authors are P. Hitchen (BT), N. Leymann (Deutsche Telekom), W. Henderickx (Alcatel-Lucent), A. Gulko (Thomson Reuters), and J. Tantsura (Ericsson) 🫢. The title block doesn't list anything it obsoletes or updates, so this one stands on its own 🌈.

Abstract

So an IP Multicast Distribution Tree (MDT) can cross both MPLS regions (Multiprotocol Label Switching) and non-MPLS regions of a network 🌸. Usually the MDT starts and ends outside MPLS and only passes through an MPLS region. The idea is to build it as a pure IP MDT first, turn it into an MPLS Multipoint Label Switched Path (MP-LSP) when it enters an MPLS-enabled region, and then turn it back into a pure IP MDT when it leaves for a non-MPLS-enabled region 🧚. Other documents already explain how to build this hybrid MDT, using Protocol Independent Multicast (PIM) outside MPLS and Multipoint Label Distribution Protocol (mLDP) inside it. This document extends those procedures for the case where the link between the two regions is a Virtual Routing and Forwarding (VRF) table link, as defined in the "BGP IP/MPLS VPN" specification πŸ’–. It's mainly for use cases where VRFs support multicast applications other than multicast VPN πŸ’….

Status of This Memo

This is an Internet Standards Track document πŸŽ€. It's a product of the Internet Engineering Task Force (IETF), it represents the consensus of the IETF community, it got public review, and the Internet Engineering Steering Group (IESG) approved it for publication πŸ”₯. For more on Internet Standards, check Section 2 of RFC 5741 πŸ“š. Info about the current status, any errata, and how to send feedback lives at http://www.rfc-editor.org/info/rfc7246 🌸.

Copyright (c) 2014 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, found at http://trustee.ietf.org/license-info and in effect on the publication date ✨. Please read them carefully, because they spell out your rights and restrictions πŸ™ˆ. Code Components extracted from this document must include Simplified BSD License text, as described in Section 4.e of the Trust Legal Provisions, and they come without warranty, as described in the Simplified BSD License πŸ“.

Table of Contents

   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  3
     1.1.  Conventions Used in This Document  . . . . . . . . . . . .  4
     1.2.  Terminology  . . . . . . . . . . . . . . . . . . . . . . .  5
   2.  VRF In-Band Signaling for MP LSPs  . . . . . . . . . . . . . .  5
   3.  Encoding the Opaque Value of an LDP MP FEC . . . . . . . . . .  7
     3.1.  Transit VPNv4 Source TLV . . . . . . . . . . . . . . . . .  7
     3.2.  Transit VPNv6 Source TLV . . . . . . . . . . . . . . . . .  8
     3.3.  Transit VPNv4 Bidir TLV  . . . . . . . . . . . . . . . . .  9
     3.4.  Transit VPNv6 Bidir TLV  . . . . . . . . . . . . . . . . . 10
   4.  Security Considerations  . . . . . . . . . . . . . . . . . . . 10
   5.  IANA Considerations  . . . . . . . . . . . . . . . . . . . . . 11
   6.  Acknowledgments  . . . . . . . . . . . . . . . . . . . . . . . 11
   7.  References . . . . . . . . . . . . . . . . . . . . . . . . . . 11
     7.1.  Normative References . . . . . . . . . . . . . . . . . . . 11
     7.2.  Informative References . . . . . . . . . . . . . . . . . . 12

1. Introduction ✨

Sometimes an IP Multicast Distribution Tree (MDT) runs through both MPLS-enabled and non-MPLS-enabled regions of a network 🌈. Usually it begins and ends in non-MPLS regions and only passes through an MPLS region. In that situation, it can help to build the MDT as a pure IP MDT, convert it into an MPLS Multipoint Label Switched Path (LSP) when it enters an MPLS-enabled region, and then convert it back into a pure IP MDT when it enters a non-MPLS-enabled region πŸ¦‹. Other documents explain how to build this kind of hybrid MDT, using Protocol Independent Multicast (PIM) in the non-MPLS part of the network and Multipoint Label Distribution Protocol (mLDP) in the MPLS part. This document extends the procedures from [RFC6826] to cover the case where the link connecting the two regions is a Virtual Routing and Forwarding (VRF) table link, as defined in the "BGP IP/MPLS VPN" specification [RFC6513] πŸ’…. Still, this document is mainly aimed at use cases where VRFs support multicast applications other than multicast VPN 🌸.

In PIM, a tree is identified by a source address (or, for bidirectional trees [RFC5015], a rendezvous point address, or "RPA") and a group address. The tree is built from the leaves upward, by sending PIM control messages toward the source address or the RPA 🌳. In mLDP, a tree is identified by a root address and an "opaque value", and it's built by sending mLDP control messages toward the root 🧠. The procedures in [RFC6826] explain how to convert a PIM <source address or RPA, group address> pair into an mLDP <root node, opaque value> pair, and how to convert that mLDP pair back into the original PIM pair πŸ”.

Here's the catch though πŸ™ˆ. The procedures in [RFC6826] assume that the routers doing the PIM/mLDP conversion have routes to the source address or RPA in their global routing tables. So those procedures can't be applied exactly as written when the interfaces connecting the non-MPLS-enabled region to the MPLS-enabled region belong to a VRF, as described in [RFC4364] 😭. This specification extends the procedures of [RFC6826] so they can be applied in the VRF context πŸ”₯.

Like [RFC6826], the scope of this document is limited to cases where the multicast content is distributed in the non-MPLS-enabled regions through PIM-created source-specific or bidirectional trees. Bidirectional trees always get mapped onto multipoint-to-multipoint LSPs, and source-specific trees always get mapped onto point-to-multipoint LSPs πŸ“.

Note that the procedures described here don't support non-bidirectional PIM Any-Source Multicast (ASM) groups, don't support multicast trees other than mLDP multipoint LSPs in the core, and don't let you aggregate multiple PIM trees onto a single multipoint LSP 🚫. If you need any of those features, [RFC6513] and [RFC6514] can provide them πŸ“š. However, there are cases where multicast services are offered through interfaces associated with a VRF, mLDP is used in the core, and aggregation isn't wanted πŸ‘‘. For example, some service providers offer multicast content to their customers but use VRFs to keep the various customers and services isolated πŸŽ€. That's a simpler scenario than one where customers bring their own multicast content, outside the service provider's control, and it can be handled with a simpler solution 🧚. Also, when PIM trees are mapped one-to-one onto multipoint LSPs, it's really helpful for troubleshooting to have the PIM source/group addresses encoded into the mLDP FEC (Forwarding Equivalence Class) element, which this document calls "mLDP in-band signaling" πŸ”.

To use the mLDP in-band signaling procedures for a particular group address in the context of a particular set of VRFs, those VRFs MUST be configured with a range of multicast group addresses for which mLDP in-band signaling is to be enabled πŸ’–. This configuration is defined per VRF in [RFC4364]). For those groups, and only those groups, the procedures of this document are used 🌈. For other groups, the general-purpose multicast VPN procedures MAY be used, although it's more likely that the VRF is dedicated to mLDP in-band signaling and all other groups are discarded πŸ—‘οΈ. The configuration MUST be present in all PE routers that attach to sites containing senders or receivers for the given set of group addresses 🫢. And because the provider most likely owns the multicast content and the transport method across the network, both of which are invisible to the end user, no coordination needs to happen between the end user and the provider 🌸.

1.1. Conventions Used in This Document πŸŽ€

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 RFC 2119 [RFC2119] πŸ“–.

1.2. Terminology πŸ’…

  • In-band signaling: Using the opaque value of an mLDP FEC element to encode the (S,G) or (*,G) that identifies a particular IP multicast tree 🧩.
  • Ingress LSR: The source of a P2MP LSP, also called the root node 🌱.
  • IP multicast tree: An IP multicast distribution tree identified by a source IP address and/or an IP multicast destination address, also referred to as (S,G) and (*,G) 🌳.
  • mLDP: Multipoint LDP πŸ“‘.
  • MP LSP: A multipoint LSP, which is either a P2MP or an MP2MP LSP πŸ¦‹.
  • MP2MP LSP: An LSP that connects a set of leaf nodes, which act interchangeably as ingress or egress (see [RFC6388]) πŸ”.
  • P2MP LSP: An LSP that has one Ingress LSR and one or more Egress LSRs (see [RFC6388]) ✨.
  • RPA: Rendezvous Point Address, the address used as the root of the distribution tree for a range of multicast groups 🎯.
  • RD: Route Distinguisher, an identifier that makes a route unique in the context of a VRF 🏷️.
  • UMH: Upstream Multicast Hop, the upstream router on the path to reach the source of the multicast flow 🧭.
  • VRF: Virtual Routing and Forwarding table 🌈.

2. VRF In-Band Signaling for MP LSPs ✨

okay so picture this πŸŽ€ a PE router, PE1, gets a PIM Join(S,G) message on one of its interfaces that's tied to a VRF. Following the procedure in Section 5.1 of [RFC6513], PE1 works out the "upstream RD", the "upstream PE", and the "upstream multicast hop" (UMH) for the source address S. 🧚

To carry the multicast tree over a multipoint (MP) LSP using VRF in-band signaling, PE1 sends an mLDP Label Mapping message πŸ’Œ. That message has either a P2MP FEC or an MP2MP FEC (see [RFC6388]), depending on whether the PIM tree is source-specific or bidirectional. The FEC has a "root" and an "opaque value". ✨

If the UMH and the upstream PE have the same IP address (so the upstream PE is the UMH), the root of the multipoint FEC gets set to the IP address of the upstream PE. If, in this VPN's context, (S,G) is a source-specific MDT, then the values of S, G, and the upstream RD go into the opaque value. And if, in this VPN's context, G is a bidirectional group address, then S gets replaced with the RPA associated with G. πŸ’…

The encoding details are in Section 3. Conceptually, the multipoint FEC is an ordered pair: {root=<Upstream-PE>; opaque_value=<S or RPA , G, Upstream-RD>}. The mLDP Label Mapping message is then sent by PE1 on its LDP session to the "next hop" on the message's path to the upstream PE. The "next hop" is usually the directly connected one, but see [RFC7060] for cases where it isn't directly connected. 🌸

If the UMH and the upstream PE do not have the same IP address, the procedures of Section 2 of [RFC6512] should be applied. The root node of the multipoint FEC is set to the UMH, and the recursive opaque value is set up like this: the root node is the upstream PE, and the opaque value is the multipoint FEC from the paragraph above. So the whole thing looks like {root=<UMH>; opaque_value=<root=Upstream-PE, opaque_value=<S or RPA, G, Upstream-RD>>}. It's giving matryoshka doll πŸͺ†

The encoding of the multipoint FEC also says which "type" of PIM MDT is getting spliced onto the multipoint LSP. Four opaque encodings are defined in [RFC6826]: IPv4 source-specific tree, IPv6 source-specific tree, IPv4 bidirectional tree, and IPv6 bidirectional tree. πŸ¦‹

When a PE router gets an mLDP message with a P2MP or MP2MP FEC, and the PE router itself is the root node, and the opaque value is one of the types defined in Section 3, then it uses the RD encoded in the opaque value field to figure out the VRF context. (This RD will be associated with one of the PE's VRFs.) Then, in that VRF context, the PE follows the procedure specified in section 2 of [RFC6826]. main character energy πŸ‘‘

3. Encoding the Opaque Value of an LDP MP FEC

this section is where we document all the different transit opaque encodings 🧁

3.1. Transit VPNv4 Source TLV

this opaque value type is used when we're transporting a source-specific mode multicast tree whose source and group addresses are IPv4 addresses πŸ’œ

    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                        | Source
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                                                   | Group
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                                                   |               ~
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   ~                   RD                          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  • Type: 250
  • Length: 16
  • Source: the IPv4 multicast source address, 4 octets.
  • Group: the IPv4 multicast group address, 4 octets.
  • RD: the Route Distinguisher, 8 octets.

3.2. Transit VPNv6 Source TLV

this one's the IPv6 version! same idea, but the source and group addresses are IPv6 addresses 🌈

    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                        | Source        ~
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   ~                                               | Group         ~
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   ~                                               |               ~
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   ~                 RD                            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  • Type: 251
  • Length: 40
  • Source: the IPv6 multicast source address, 16 octets.
  • Group: the IPv6 multicast group address, 16 octets.
  • RD: the Route Distinguisher, 8 octets.

3.3. Transit VPNv4 Bidir TLV

this opaque value type is for transporting a bidirectional multicast tree whose group address is an IPv4 address. The RP address is also IPv4 in this case πŸ“

    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                        | Mask Len      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                              RP                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                            Group                              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   ~                              RD                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  • Type: 9
  • Length: 17
  • Mask Len: the number of contiguous one bits that are left justified and used as a mask, 1 octet.
  • RP: the Rendezvous Point (RP) IPv4 address used for the encoded Group, 4 octets.
  • Group: the IPv4 multicast group address, 4 octets.
  • RD: the Route Distinguisher, 8 octets.

3.4. Transit VPNv6 Bidir TLV

last encoding! this one's the bidirectional version for IPv6 group addresses, and the RP address is IPv6 too πŸ§šβ€β™€οΈ

    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                        | Mask Len      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                              RP                               ~
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   ~                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                            Group                              ~
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   ~                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   ~                              RD                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  • Type: 10
  • Length: 41
  • Mask Len: the number of contiguous one bits that are left justified and used as a mask, 1 octet.
  • RP: the Rendezvous Point (RP) IPv6 address used for the encoded group, 16 octets.
  • Group: the IPv6 multicast group address, 16 octets.
  • RD: the Route Distinguisher, 8 octets.

4. Security Considerations πŸ”

the same security considerations apply as for the base LDP specification, described in [RFC5036], and the base mLDP specification, described in [RFC6388].

⚠️ Operators MUST configure packet filters to ensure that the mechanism described in this memo does not cause non-global-scoped IPv6 multicast packets to be tunneled outside of their intended scope. this is the big one, bestie. no leaks, no drama. πŸ’€

5. IANA Considerations πŸ“‹

[RFC6388] defines a registry for the "LDP MP Opaque Value Element basic type". IANA has assigned four new code points in this registry:

  • Transit VPNv4 Source TLV type - 250
  • Transit VPNv6 Source TLV type - 251
  • Transit VPNv4 Bidir TLV type - 9
  • Transit VPNv6 Bidir TLV type - 10

6. Acknowledgments 🫢

thank you to Eric Rosen, Andy Green, Yakov Rekhter, and Eric Gray for their comments on the document. you're all iconic πŸ‘‘

7. References πŸ“š

7.1. Normative References

  • [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.
  • [RFC4364] Rosen, E. and Y. Rekhter, "BGP/MPLS IP Virtual Private Networks (VPNs)", RFC 4364, February 2006.
  • [RFC5015] Handley, M., Kouvelas, I., Speakman, T., and L. Vicisano, "Bidirectional Protocol Independent Multicast (BIDIR-PIM)", RFC 5015, October 2007.
  • [RFC5036] Andersson, L., Ed., Minei, I., Ed., and B. Thomas, Ed., "LDP Specification", RFC 5036, October 2007.
  • [RFC6388] Wijnands, IJ., Ed., Minei, I., Ed., Kompella, K., and B. Thomas, "Label Distribution Protocol Extensions for Point-to-Multipoint and Multipoint-to-Multipoint Label Switched Paths", RFC 6388, November 2011.
  • [RFC6512] Wijnands, IJ., Rosen, E., Napierala, M., and N. Leymann, "Using Multipoint LDP When the Backbone Has No Route to the Root", RFC 6512, February 2012.
  • [RFC6826] Wijnands, IJ., Ed., Eckert, T., Leymann, N., and M. Napierala, "Multipoint LDP In-Band Signaling for Point-to-Multipoint and Multipoint-to-Multipoint Label Switched Paths", RFC 6826, January 2013.

7.2. Informative References

  • [RFC6513] Rosen, E., Ed., and R. Aggarwal, Ed., "Multicast in MPLS/BGP IP VPNs", RFC 6513, February 2012.
  • [RFC6514] Aggarwal, R., Rosen, E., Morin, T., and Y. Rekhter, "BGP Encodings and Procedures for Multicast in MPLS/BGP IP VPNs", RFC 6514, February 2012.
  • [RFC7060] Napierala, M., Rosen, E., and IJ. Wijnands, "Using LDP Multipoint Extensions on Targeted LDP Sessions", RFC 7060, November 2013.

Authors' Addresses πŸ’Œ

   IJsbrand Wijnands (editor)
   Cisco Systems
   De kleetlaan 6a
   Diegem  1831
   Belgium
   EMail: ice@cisco.com

   Paul Hitchen
   BT
   BT Adastral Park
   Ipswich  IP53RE
   United Kingdom
   EMail: paul.hitchen@bt.com

   Nicolai Leymann
   Deutsche Telekom
   Winterfeldtstrasse 21
   Berlin  10781
   Germany
   EMail: n.leymann@telekom.de

   Wim Henderickx
   Alcatel-Lucent
   Copernicuslaan 50
   Antwerp  2018
   Belgium
   EMail: wim.henderickx@alcatel-lucent.com

   Arkadiy Gulko
   Thomson Reuters
   195 Broadway
   New York, NY  10007
   United States
   EMail: arkadiy.gulko@thomsonreuters.com

   Jeff Tantsura
   Ericsson
   300 Holger Way
   San Jose, CA  95134
   United States
   EMail: jeff.tantsura@ericsson.com

that's the whole RFC, bestie! πŸŒˆπŸŽ€ you made it πŸ’–

πŸ“¦ where this page comes from