RFC 6826
Multipoint LDP In-Band Signaling for Point-to-Multipoint and Multipoint-to-Multipoint Label Switched Paths
Multipoint LDP In-Band Signaling for Point-to-Multipoint and Multipoint-to-Multipoint Label Switched Paths π¦
Okay bestie, this is RFC 6826 π It came out in January 2013 from the Internet Engineering Task Force (IETF) πΈ It's a Standards Track document, so it's the real deal and not just a suggestion π The authors are IJ. Wijnands, Ed. (the editor, so they're basically the lead), T. Eckert from Cisco Systems, Inc., N. Leymann from Deutsche Telekom, and M. Napierala from AT&T Labs. It's ISSN 2070-1721 π§ The header doesn't list anything it obsoletes or updates, so it's standing on its own, iconic π
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1. Conventions Used in This Document . . . . . . . . . . . . 3
1.2. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3
2. In-Band Signaling for MP LSPs . . . . . . . . . . . . . . . . 4
2.1. Transiting Unidirectional IP Multicast Shared Trees . . . 6
2.2. Transiting IP Multicast Source Trees . . . . . . . . . . . 6
2.3. Transiting IP Multicast Bidirectional Trees . . . . . . . 7
3. LSP Opaque Encodings . . . . . . . . . . . . . . . . . . . . . 8
3.1. Transit IPv4 Source TLV . . . . . . . . . . . . . . . . . 8
3.2. Transit IPv6 Source TLV . . . . . . . . . . . . . . . . . 8
3.3. Transit IPv4 Bidir TLV . . . . . . . . . . . . . . . . . . 9
3.4. Transit IPv6 Bidir TLV . . . . . . . . . . . . . . . . . . 9
4. Security Considerations . . . . . . . . . . . . . . . . . . . 10
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 10
6. References . . . . . . . . . . . . . . . . . . . . . . . . . . 10
6.1. Normative References . . . . . . . . . . . . . . . . . . . 10
6.2. Informative References . . . . . . . . . . . . . . . . . . 10
7. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 11
Abstract β¨
Okay so picture an IP multicast tree, the kind built by Protocol Independent Multicast (PIM), that has to pass through an MPLS domain where Multipoint LDP (mLDP) point-to-multipoint and/or multipoint-to-multipoint Labels Switched Paths (LSPs) can be created π The part of that IP multicast tree crossing the MPLS domain can be turned into a multipoint LSP. When a PIM Join message shows up at the edge of the MPLS domain, its info gets encoded into mLDP messages. When those mLDP messages reach the edge of the next IP domain, the encoded info gets used to generate PIM messages that can go through that IP domain. The end result is an IP multicast tree made of a bunch of IP multicast sub-trees, spliced together with a multipoint LSP π«Ά This document explains how IP multicast trees get spliced together with multipoint LSPs. It's giving puzzle pieces, honestly π§©
Status of This Memo π
This is an Internet Standards Track document, so it's official π
It's a product of the Internet Engineering Task Force (IETF), which means it represents the consensus of the IETF community. It went through public review and got approved for publication by the Internet Engineering Steering Group (IESG). If you want more on Internet Standards, check Section 2 of RFC 5741 π₯
For the current status, any errata, and how to give feedback, go to http://www.rfc-editor.org/info/rfc6826 π
Copyright Notice β
Copyright (c) 2013 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 (http://trustee.ietf.org/license-info) as they stand on the publication date. Please read these carefully, because they spell out your rights and restrictions for this document. Any Code Components pulled out of 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 π
1. Introduction β¨
Okay, so the mLDP (Multipoint LDP) [RFC6388] spec describes how to create point-to-multipoint (P2MP) and multipoint-to-multipoint (MP2MP) LSPs (Label Switched Paths) π¦ These LSPs are usually used to carry end-user multicast packets. Here's the tea though: the mLDP spec doesn't give any rules for matching particular end-user multicast packets to any particular LSP π Other docs, like [RFC6513], describe setups where out-of-band signaling protocols, like PIM and BGP, handle building the mapping between an LSP and the multicast packets that need to ride over it π
This document describes a setup where the info needed to build that mapping between an LSP and the set of multicast packets to forward over it gets carried in the "opaque value" field of an mLDP FEC (Forwarding Equivalence Class) element π§ When an IP multicast tree (either source-specific or bidirectional) enters the MPLS network, the (S,G) or (*,G) info from the IP multicast control-plane state rides along in the opaque value field of the mLDP FEC message. As the tree leaves the MPLS network, that info gets pulled out of the FEC Element and used to build the IP multicast control plane again. PIM messages can be sent outside the MPLS domain. Also, the PIM control messages are sent periodically, but the mLDP messages aren't πΈ
Each IP multicast tree maps one-to-one to a P2MP or MP2MP LSP in the MPLS network. A network operator should expect to see as many LSPs in the MPLS network as there are IP multicast trees. A network operator should also be aware of how IP multicast state gets created in the network, so it doesn't go over the scalability numbers of the protocol, whether that's PIM or mLDP π₯
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
Here's the glossary, bestie π
ASM: PIM Any Source Multicast
Egress LSR: One of potentially many destinations of an LSP; also
referred to as leaf node in the case of P2MP and MP2MP LSPs.
In-band signaling: Using the opaque value of an mLDP FEC Element to
carry the (S,G) or (*,G) identifying a particular IP multicast
tree.
Ingress LSR: Source of the P2MP LSP; also referred to as a root
node.
IP multicast tree: An IP multicast distribution tree identified by
an IP multicast Group address and, optionally, by a Source IP
address, also referred to as (S,G) and (*,G).
LSR: Label Switching Router
LSP: Labels Switched Path
mLDP: Multipoint LDP
MP2MP LSP: An LSP that connects a set of leaf nodes that may each
independently act as ingress or egress.
MP LSP: A multipoint LSP, either a P2MP or an MP2MP LSP.
P2MP LSP: An LSP that has one Ingress Label Switching Router (LSR)
and one or more Egress LSRs.
RP: PIM Rendezvous Point
SSM: PIM Source-Specific Multicast
Transit LSP: A P2MP or MP2MP LSP whose FEC Element contains the
(S,G) or (*,G) identifying a particular IP multicast distribution
tree.
Transit LSR: An LSR that has one or more directly connected
downstream LSRs.
2. In-Band Signaling for MP LSPs π
Let's look at this topology, it's so cute π¦
|--- IPM ---|--- MPLS --|--- IPM ---|
S/RP -- (A) - (U) - (C) - (D) -- (B) -- R
Figure 1
Nodes A and B are IP-multicast-capable routers, and they connect to a Source/RP and a Receiver, respectively. Nodes U, C, and D are MPLS Label Switched Routers (LSRs) π
LSR D is attached to a network that can do MPLS multicast and IP multicast (see figure 1). D is required to create an IP multicast tree because of some IP multicast event, like a PIM Join, an MSDP Source Announcement (SA) [RFC3618], a BGP Source Active auto-discovery route [SM-MLDP], or Rendezvous Point (RP) discovery π₯ Say D can figure out that the IP multicast tree needs to travel through the MPLS network until it hits LSR U. For example, when D looks up the route to the Source or RP [RFC4601] of the IP multicast tree, it might find that the route is a BGP route with U as the BGP next hop. Then D may choose to set up a P2MP or an MP2MP LSP, with U as the root, and make that LSP part of the IP multicast distribution tree π Other methods can also work for figuring out that an IP multicast tree should be carried across an MPLS network using P2MP or MP2MP LSPs. But those methods are outside the scope of this document, so we're not getting into them here π
To set up a multicast tree through a P2MP or MP2MP LSP using "in-band signaling", LSR D encodes a P2MP or MP2MP FEC Element. It puts the IP address of LSR U in the "Root Node Address" and encodes the source and the group into the "opaque value" ([RFC6388], Sections 2.2 and 3.2). This document defines several different opaque value types. LSR D MUST NOT use a particular opaque value type unless it knows (through provisioning or through some other means outside the scope of this document) that LSR U supports the root node procedures for that opaque value type π«Ά
Which FEC Element type and opaque value get used depends on the IP address family in play, and on whether the multicast tree being set up is source-specific or bidirectional π
When an LSR gets a label mapping or withdraw whose FEC Element contains one of the opaque value types defined here, and that LSR is not the one named in the "Root Node Address" field of that FEC Element, the LSR follows the procedures in RFC 6388 π§
When an LSR gets a label mapping or withdraw whose FEC Element contains one of the opaque value types defined here, and that LSR is the one named in the Root Node Address field of that FEC Element, then this procedure runs. The multicast source and group get extracted and passed to the multicast code. If a label mapping is being processed, the multicast code adds the downstream LDP neighbor to the olist of the matching (S,G) or (,G) state, and creates that state if it doesn't already exist. If a label withdraw is being processed, the multicast code removes the downstream LDP neighbor from the olist of the matching (S,G) or (,G) state. From that point on, normal PIM processing happens β¨
Heads up, if the LSR named in the Root Node Address field doesn't recognize the opaque value type, the MP LSP still gets established, but the root node won't send any multicast data packets on it π
Source or RP addresses that are reachable in a VPN context are outside the scope of this document π
Multicast groups that operate in PIM Dense-Mode are also outside the scope of this document π
2.1. Transiting Unidirectional IP Multicast Shared Trees
Nothing stops PIM shared trees, the ones PIM-SM uses in the ASM service model, from being carried across an MPLS core πΈ However, you can't prune individual sources from the shared tree without an additional out-of-band signaling protocol, like PIM or BGP [SM-MLDP]. That's why transiting shared trees across a transit LSP is outside the scope of this document π
2.2. Transiting IP Multicast Source Trees πΈ
okay so IP multicast source trees can be made with PIM in either SSM mode [RFC4607] or ASM mode [RFC4601] β¨. When PIM-SM runs in ASM mode, the usual way to find active sources is to join a sparse-mode shared tree. BUT this document doesn't give any way to set up a sparse-mode shared tree across an MPLS network π. So if you want to use this document's technique with PIM-SM in ASM mode, you need some other way to discover the active sources. Two possibilities are MSDP [RFC3618] and BGP Source Active auto-discovery routes, as documented in [SM-MLDP] π . Finding the active sources is outside the scope of this document though, so it doesn't specify everything you need to support the ASM service model using in-band signaling. not me leaving a gap π
The source and group addresses get encoded into the transit TLV as specified in Sections 3.1 and 3.2 π.
2.3. Transiting IP Multicast Bidirectional Trees π¦
okay this one is giving main character energy. If a bidirectional IP multicast tree [RFC5015] has to be carried over an MPLS network using in-band signaling, as described in this document, it MUST be transported using MP2MP LSPs π₯. A bidirectional tree doesn't have a specific source address. Instead, the group address, subnet mask, and RP are what matter for multicast forwarding π§. This document doesn't provide procedures for discovering RP-to-group mappings dynamically across an MPLS network. It assumes the RP is statically defined. Supporting dynamic RP mappings together with in-band signaling is outside this document's scope, so no drama there π.
The RP for the group is used to select the ingress LSR and the root of the LSP β¨. The group address is encoded according to the rules in Sections 3.3 or 3.4, depending on the IP version π. The subnet mask associated with the bidirectional group is encoded in the transit TLV.
There are two types of bidirectional state in IP multicast: the group-specific state and the RP state π. The first type is typically created when a PIM Join has been received, and it has a subnet mask of 32 for IPv4 and 128 for IPv6. The RP state is typically created through the static RP mapping, and it has a variable subnet mask. The RP state is used to build a tree to the RP, and it's used for sender-only branches. Each state (group-specific and RP state) results in a separate MP2MP LSP. PIM merges the two MP2MP LSPs on the root LSR, and no special procedures are needed for PIM to do that merge. Each LSP is effectively treated as a PIM-enabled interface. Please see [RFC5015] for more details π«Ά.
For transporting the packets of a sender-only branch, we create an MP2MP LSP. Other sender-only branches receive these packets but don't forward them, because there are no receivers, so the packets get dropped π. If that effect is undesirable, some other means of transport has to be set up to forward packets to the root of the tree, for example a multipoint-to-point LSP. A technique for unicasting packets to the root of a P2MP or MP2MP LSP is documented in Section 3.2.2.1 of [MVPN-MSPMSI] πΈ.
3. LSP Opaque Encodings β¨
this section is where we document all the different transit opaque encodings. Let's go π.
3.1. Transit IPv4 Source TLV π
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 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type: 3 πLength: 8 (the octet size of the Source and Group fields)Source: the IPv4 multicast source address, 4 octetsGroup: the IPv4 multicast group address, 4 octets
3.2. Transit IPv6 Source TLV π§
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 ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~ |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type: 4Length: 32 (the octet size of the Source and Group fields)Source: the IPv6 multicast source address, 16 octetsGroup: the IPv6 multicast group address, 16 octets.
3.3. Transit IPv4 Bidir TLV π
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 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type: 5Length: 9 (the octet size of the Mask Len, RP, and Group fields)Mask Len: the number of contiguous one bits that are left-justified and used as a mask, 1 octet. The maximum value allowed is 32.RP: the Rendezvous Point (RP) IPv4 address used for the encoded Group, 4 octets.Group: the IPv4 multicast group address, 4 octets.
3.4. Transit IPv6 Bidir TLV π¦
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 ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~ |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type: 6Length: 33 (the octet size of the Mask Len, RP, and Group fields)Mask Len: the number of contiguous one bits that are left-justified and used as a mask, 1 octet. The maximum value allowed is 128.RP: the Rendezvous Point (RP) IPv6 address used for the encoded group, 16 octets.Group: the IPv6 multicast group address, 16 octets.
4. Security Considerations π¨
okay this is the serious part bestie π The same security considerations apply as for the base LDP specification, as described in [RFC5036]. Read that one too, because the security stuff is inherited from it π.
5. IANA Considerations π
IANA has allocated the following values from the "LDP MP Opaque Value Element basic type" registry:
Transit IPv4 Source TLV type - 3Transit IPv6 Source TLV type - 4Transit IPv4 Bidir TLV type - 5Transit IPv6 Bidir TLV type - 6
6. References π
6.1. Normative References π
[RFC5036] Andersson, L., Ed., Minei, I., Ed., and B. Thomas, Ed.,
"LDP Specification", RFC 5036, October 2007.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
[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.
6.2. Informative References β¨
[RFC4601] Fenner, B., Handley, M., Holbrook, H., and I. Kouvelas,
"Protocol Independent Multicast - Sparse Mode (PIM-SM):
Protocol Specification (Revised)", RFC 4601, August 2006.
[RFC4607] Holbrook, H. and B. Cain, "Source-Specific Multicast for
IP", RFC 4607, August 2006.
[RFC5015] Handley, M., Kouvelas, I., Speakman, T., and L. Vicisano,
"Bidirectional Protocol Independent Multicast (BIDIR-
PIM)", RFC 5015, October 2007.
[RFC3618] Fenner, B., Ed., and D. Meyer, Ed., "Multicast Source
Discovery Protocol (MSDP)", RFC 3618, October 2003.
[RFC6513] Rosen, E., Ed., and R. Aggarwal, Ed., "Multicast in
MPLS/BGP IP VPNs", RFC 6513, February 2012.
[SM-MLDP] Rekhter, Y., Aggarwal, R., and N. Leymann, "Carrying PIM-
SM in ASM mode Trees over P2MP mLDP LSPs", Work in
Progress, August 2011.
[MVPN-MSPMSI]
Cai, Y., Rosen, E., Ed., Napierala, M., and A. Boers,
MVPN: Optimized use of PIM via MS-PMSIs", February 2012.
7. Acknowledgments π«Ά
Thanks to Eric Rosen for his valuable comments on this document π. Thanks also to Yakov Rekhter, Adrian Farrel, Uwe Joorde, Loa Andersson, and Arkadiy Gulko for providing comments on this document πΈ.
Authors' Addresses π
IJsbrand Wijnands (editor)
Cisco Systems, Inc.
De kleetlaan 6a
Diegem 1831
Belgium
EMail: ice@cisco.com
Toerless Eckert
Cisco Systems, Inc.
170 Tasman Drive
San Jose CA, 95134
USA
EMail: eckert@cisco.com
Nicolai Leymann
Deutsche Telekom
Winterfeldtstrasse 21
Berlin 10781
Germany
EMail: n.leymann@telekom.de
Maria Napierala
AT&T Labs
200 Laurel Avenue
Middletown NJ 07748
USA
EMail: mnapierala@att.com
π¦ where this page comes from
- ietf: rfc6826 2013-01
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms