RFC 7246
Multipoint Label Distribution Protocol In-Band Signaling in a Virtual Routing and Forwarding (VRF) Table Context
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 Notice
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
- ietf: rfc7246 2014-06
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms