mLDP in a VRF: Multipoint Label Distribution Protocol In-Band Signaling in a Virtual Routing and Forwarding (VRF) Table Context
How a multicast tree crosses between IP and MPLS regions when the link between them sits in a VRF table.
Wijnands, IJ., Ed., Hitchen, P., Leymann, N., Henderickx, W., Gulko, A., and J. Tantsura, "Multipoint Label Distribution Protocol In-Band Signaling in a Virtual Routing and Forwarding (VRF) Table Context", RFC 7246, DOI 10.17487/RFC7246, June 2014, <https://www.rfc-editor.org/info/rfc7246>.
@misc{rfc7246,
series = {Request for Comments},
number = 7246,
howpublished = {RFC 7246},
publisher = {RFC Editor},
doi = {10.17487/RFC7246},
url = {https://www.rfc-editor.org/info/rfc7246},
author = {IJ. Wijnands and P. Hitchen and N. Leymann and W. Henderickx and A. Gulko and J. Tantsura},
title = {{Multipoint Label Distribution Protocol In-Band Signaling in a Virtual Routing and Forwarding (VRF) Table Context}},
pagetotal = 13,
year = 2014,
month = jun,
} RFC text
Contents
Internet Engineering Task Force (IETF) IJ. Wijnands, Ed.
Request for Comments: 7246 Cisco Systems
Category: Standards Track P. Hitchen
ISSN: 2070-1721 BT
N. Leymann
Deutsche Telekom
W. Henderickx
Alcatel-Lucent
A. Gulko
Thomson Reuters
J. Tantsura
Ericsson
June 2014
Multipoint Label Distribution Protocol In-Band Signaling in
a Virtual Routing and Forwarding (VRF) Table Context
Abstract
An IP Multicast Distribution Tree (MDT) may traverse both label
switching (i.e., Multiprotocol Label Switching, or MPLS) and non-
label switching regions of a network. Typically, the MDT begins and
ends in non-MPLS regions, but travels through an MPLS region. In
such cases, it can be useful to begin building the MDT as a pure IP
MDT, then convert it to an MPLS Multipoint Label Switched Path
(MP-LSP) when it enters an MPLS-enabled region, and then convert it
back to a pure IP MDT when it enters a non-MPLS-enabled region.
Other documents specify the procedures for building such a hybrid
MDT, using Protocol Independent Multicast (PIM) in the non-MPLS
region of the network, and using Multipoint Label Distribution
Protocol (mLDP) in the MPLS region. This document extends those
procedures to handle 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. However, this
document is primarily aimed at particular use cases where VRFs are
used to support multicast applications other than multicast VPN.
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 5741.
Information about the current status of this document, any errata,
and how to provide feedback on it may be obtained 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
(http://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 . . . . . . . . . . . . . . . . . . . . . . . . . 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) traverses both
MPLS-enabled and non-MPLS-enabled regions of a network. Typically,
the MDT begins and ends in non-MPLS regions, but travels through an
MPLS region. In such cases, it can be useful to begin building the
MDT as a pure IP MDT, then convert it to an MPLS Multipoint Label
Switched Path (LSP) when it enters an MPLS-enabled region, and then
convert it back to a pure IP MDT when it enters a non-MPLS-enabled
region. Other documents specify the procedures for building such a
hybrid MDT, using Protocol Independent Multicast (PIM) in the non-
MPLS region of the network, and using Multipoint Label Distribution
Protocol (mLDP) in the MPLS region. This document extends the
procedures from [RFC6826] to handle 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]. However, this document is primarily aimed at particular
use cases where VRFs are used to support multicast applications other
than multicast VPN.
In PIM, a tree is identified by a source address (or in the case of
bidirectional trees [RFC5015], a rendezvous point address or "RPA")
and a group address. The tree is built from the leaves up, by
sending PIM control messages in the direction of the source address
or the RPA. In mLDP, a tree is identified by a root address and an
"opaque value", and is built by sending mLDP control messages in the
direction of the root. The procedures of [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 the mLDP <root
node, opaque value> pair back into the original PIM <source address
or RPA, group address> pair.
However, 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. Thus, the procedures cannot be applied
exactly as specified when the interfaces connecting the non-MPLS-
enabled region to the MPLS-enabled region are interfaces that belong
to a VRF as described in [RFC4364]. This specification extends the
procedures of [RFC6826] so that they may be applied in the VRF
context.
As in [RFC6826], the scope of this document is limited to the case
where the multicast content is distributed in the non-MPLS-enabled
regions via PIM-created source-specific or bidirectional trees.
Bidirectional trees are always mapped onto multipoint-to-multipoint
LSPs, and source-specific trees are always mapped onto point-to-
multipoint LSPs.
Note that the procedures described herein do not support non-
bidirectional PIM Any-Source Multicast (ASM) groups, do not support
the use of multicast trees other than mLDP multipoint LSPs in the
core, and do not provide the capability to aggregate multiple PIM
trees onto a single multipoint LSP. If any of those features are
needed, they can be provided by the procedures of [RFC6513] and
[RFC6514]. However, there are cases where multicast services are
offered through interfaces associated with a VRF, and where mLDP is
used in the core, but where aggregation is not desired. For example,
some service providers offer multicast content to their customers,
but have chosen to use VRFs to isolate the various customers and
services. This is a simpler scenario than one in which the customers
provide their own multicast content, out of the control of the
service provider, and can be handled with a simpler solution. Also,
when PIM trees are mapped one-to-one to multipoint LSPs, it is
helpful for troubleshooting purposes to have the PIM source/group
addresses encoded into the mLDP FEC (Forwarding Equivalence Class)
element in what this document terms "mLDP in-band signaling".
In order 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 per VRF defined in [RFC4364]). For those groups,
and those groups only, the procedures of this document are used. For
other groups, the general-purpose multicast VPN procedures MAY be
used, although it is more likely this VRF is dedicated to mLDP in-
band signaling procedures 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.
Note that because the provider most likely owns the multicast content
and the method of transportation across the network, which are both
transparent 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) identifying a particular IP multicast
tree.
Ingress LSR: Source of a P2MP LSP, also referred to as root node.
IP multicast tree: An IP multicast distribution tree identified by a
source IP address and/or IP multicast destination address, also
referred to as (S,G) and (*,G).
mLDP: Multipoint LDP.
MP LSP: A multipoint LSP, either a P2MP or an MP2MP LSP.
MP2MP LSP: An LSP that connects a set of leaf nodes, acting
indifferently 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 that is 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 in that is in the
path to reach the source of the multicast flow.
VRF: Virtual Routing and Forwarding table.
2. VRF In-Band Signaling for MP LSPs
Suppose that a PE router, PE1, receives a PIM Join(S,G) message over
one of its interfaces that is associated with a VRF. Following the
procedure of Section 5.1 of [RFC6513], PE1 determines the "upstream
RD", the "upstream PE", and the "upstream multicast hop" (UMH) for
the source address S.
In order to transport the multicast tree via a multipoint (MP) LSP
using VRF in-band signaling, an mLDP Label Mapping message is sent by
PE1. This message will contain either a P2MP FEC or an MP2MP FEC
(see [RFC6388]), depending upon whether the PIM tree being
transported is a source-specific tree, or a bidirectional tree,
respectively. The FEC contains a "root" and an "opaque value".
If the UMH and the upstream PE have the same IP address (i.e., the
upstream PE is the UMH), then the root of the multipoint FEC is set
to the IP address of the upstream PE. If, in the context of this
VPN, (S,G) refers to a source-specific MDT, then the values of S, G,
and the upstream RD are encoded into the opaque value. If, in the
context of this VPN, G is a bidirectional group address, then S is
replaced with the value of the RPA associated with G.
The encoding details are specified in Section 3. Conceptually, the
multipoint FEC can be thought of as 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 next hop, but see [RFC7060]
for cases in which the next hop is not 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. The recursive opaque
value is then set as follows: the root node is set to the upstream
PE, and the opaque value is set to the multipoint FEC described in
the previous paragraph. That is, the multipoint FEC can be thought
of as the following recursive ordered pair: {root=<UMH>;
opaque_value=<root=Upstream-PE, opaque_value=<S or RPA, G,
Upstream-RD>>}.
The encoding of the multipoint FEC also specifies the "type" of PIM
MDT being 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 receives an mLDP message with a P2MP or MP2MP FEC,
where 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 determine the VRF context. (This RD will
be associated with one of the PEs VRFs.) Then, in the context of
that VRF, the PE follows the procedure specified in section 2 of
[RFC6826].
3. Encoding the Opaque Value of an LDP MP FEC
This section documents the different transit opaque encodings.
3.1. Transit VPNv4 Source TLV
This opaque value type is used when 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: IPv4 multicast source address, 4 octets.
Group: IPv4 multicast group address, 4 octets.
RD: Route Distinguisher, 8 octets.
3.2. Transit VPNv6 Source TLV
This opaque value type is used when transporting a source-specific
mode multicast tree whose 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: IPv6 multicast source address, 16 octets.
Group: IPv6 multicast group address, 16 octets.
RD: Route Distinguisher, 8 octets.
3.3. Transit VPNv4 Bidir TLV
This opaque value type is used when transporting a bidirectional
multicast tree whose group address is an IPv4 address. The RP
address is also an IPv4 address 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: Rendezvous Point (RP) IPv4 address used for the encoded Group, 4
octets.
Group: IPv4 multicast group address, 4 octets.
RD: Route Distinguisher, 8 octets.
3.4. Transit VPNv6 Bidir TLV
This opaque value type is used when transporting a bidirectional
multicast tree whose group address is an IPv6 address. The RP
address is also an IPv6 address 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: 10
Length: 41
Mask Len: The number of contiguous one bits that are left justified
and used as a mask, 1 octet.
RP: Rendezvous Point (RP) IPv6 address used for the encoded group,
16 octets.
Group: IPv6 multicast group address, 16 octets.
RD: 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.
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
Thanks to Eric Rosen, Andy Green, Yakov Rekhter, and Eric Gray for
their comments on the document.
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
ISO Plain Language
On this page
§1Introduction
An IP multicast distribution tree often starts and ends in regions of the network that do not use labels, and crosses a region that does. It is useful to build the tree as a plain IP tree, convert it into an MPLS multipoint label switched path when it enters the labelled region, and convert it back to a plain IP tree when it leaves.
RFC 6826 gives the procedures for that conversion: PIM in the non-MPLS regions, mLDP in the MPLS region, with the routers at the boundary converting between them. A PIM tree is identified by a source address and a group address, or by a rendezvous point address and a group address for a bidirectional tree. An mLDP tree is identified by a root address and an opaque value.
The procedures in RFC 6826 assume that the boundary routers have routes to the source address or the rendezvous point in their global routing tables. This RFC extends the procedures to the case where the interfaces that connect the two regions belong to a virtual routing and forwarding (VRF) table, as defined in the BGP IP/MPLS VPN specification. The RFC is aimed at cases where VRFs carry multicast applications other than multicast VPN.
A multicast tree often has to cross a network that uses labels in the middle and plain IP at both ends. RFC 6826 explains how to convert the tree at the borders. This RFC handles the harder case where the border link sits in a VRF table, so the routers there have no global route to the source.
§1.2Terms and Acronyms
In-band signaling means using the opaque value of an mLDP FEC element to encode the source and group pair that identifies an IP multicast tree. The ingress LSR is the source of a point-to-multipoint path, also called the root node. An IP multicast tree is identified by a source IP address, a group address, or both. mLDP is Multipoint LDP. An MP LSP is a multipoint path, either point-to-multipoint or multipoint-to-multipoint.
The RPA is the rendezvous point address, used as the root of the distribution tree for a range of multicast groups. The RD is the route distinguisher, an identifier that makes a route unique in the context of a VRF. The UMH is the upstream multicast hop, the upstream router that lies on the path to the source of the multicast flow. A VRF is a virtual routing and forwarding table.
The RFC uses short names for its parts. In-band signaling means writing the multicast source and group into the mLDP signalling. The RPA is the address where a bidirectional tree is rooted. The RD is the number that makes a route unique inside a VRF. The UMH is the upstream router on the path to the source.
§1Scope and Configuration
The scope is limited to multicast content distributed in the non-MPLS regions by PIM-created source-specific or bidirectional trees. Bidirectional trees are always mapped onto multipoint-to-multipoint paths, and source-specific trees are always mapped onto point-to-multipoint paths.
The procedures do not support non-bidirectional PIM any-source multicast groups, do not support multicast trees other than mLDP multipoint paths in the core, and do not aggregate several PIM trees onto one multipoint path. Where those features are needed, the procedures of RFC 6513 and RFC 6514 apply. The RFC points at the case the procedures fit: a service provider offers multicast content to customers and uses VRFs to isolate those customers, without wanting aggregation.
To use the procedures for a group address in a given set of VRFs, those VRFs must be configured with a range of multicast group addresses for which mLDP in-band signaling is enabled. The configuration is per VRF, and the procedures apply to those groups only. The configuration must be present in every PE router attached to sites with senders or receivers for those groups.
Only two kinds of PIM tree are covered: source-specific trees and bidirectional trees. Any-source groups and merging several PIM trees into one path are not covered. Each VRF must list the group addresses that use this method, and every router that touches those groups must have that list.
§2Signalling the Tree Across the VRF Link
Suppose a PE router, PE1, receives a PIM Join(S,G) message over an interface that belongs to a VRF. Following Section 5.1 of RFC 6513, PE1 determines the upstream route distinguisher, the upstream PE, and the upstream multicast hop (UMH) for the source address S.
To carry the tree over a multipoint path, PE1 sends an mLDP Label Mapping message. It holds a point-to-multipoint FEC for a source-specific PIM tree, or a multipoint-to-multipoint FEC for a bidirectional tree. The FEC has a root and an opaque value.
If the UMH and the upstream PE share an IP address, the root of the FEC is the IP address of the upstream PE. The opaque value then carries S, G and the upstream route distinguisher, and the S value is replaced by the rendezvous point address when the group is bidirectional. If the UMH and the upstream PE differ, the procedures of Section 2 of RFC 6512 apply: the root becomes the UMH, and the opaque value holds another FEC whose root is the upstream PE and whose own opaque value holds S or the rendezvous point, G and the upstream route distinguisher.
PE1 sends the Label Mapping on its LDP session to the next hop on the path to the upstream PE. When a PE router receives an mLDP message with such a FEC, and that router is itself the root, it uses the route distinguisher in the opaque value to work out which VRF it belongs to, and then follows the procedure of Section 2 of RFC 6826 in that VRF.
When a router receives a PIM join for a group, it looks up the upstream router and the route distinguisher for the source. It then sends an mLDP label mapping message whose root is that upstream router and whose opaque value holds the source address, the group address and the route distinguisher. The router at the root reads the route distinguisher, finds the matching VRF, and converts the mLDP tree back into a PIM tree there.
- PIM Join(S,G)PE1 receives the join over a VRF interface and looks up the upstream PE, UMH and route distinguisher.
- mLDP Label MappingPE1 sends it on its LDP session to the next hop towards the upstream PE, with the root and the opaque value.
- mLDP Label MappingThe root PE reads the route distinguisher from the opaque value, finds the VRF, and converts the tree back to PIM.
§3The Four Opaque Value Encodings
The RFC defines four encodings for the opaque value, one for each combination of address family and tree type. Each is a TLV with a type code and a length, followed by the fields listed below.
- Transit VPNv4 Source TLV: type 250, length 16. It carries an IPv4 source address (4 octets), an IPv4 group address (4 octets) and the route distinguisher (8 octets). It is used for a source-specific tree with IPv4 addresses.
- Transit VPNv6 Source TLV: type 251, length 40. It carries an IPv6 source address (16 octets), an IPv6 group address (16 octets) and the route distinguisher (8 octets).
- Transit VPNv4 Bidir TLV: type 9, length 17. It carries a mask length (1 octet), the IPv4 rendezvous point address (4 octets), the IPv4 group address (4 octets) and the route distinguisher (8 octets).
- Transit VPNv6 Bidir TLV: type 10, length 41. It carries a mask length (1 octet), the IPv6 rendezvous point address (16 octets), the IPv6 group address (16 octets) and the route distinguisher (8 octets).
The mask length is the number of contiguous one bits, left justified, used as a mask. In the two bidirectional encodings the rendezvous point is the address used as the root of the distribution tree for the encoded group.
There are four ways to write the opaque value, one per combination of address family and tree type. The two source-specific encodings hold the source address, the group address and the route distinguisher. The two bidirectional encodings hold a mask length, the rendezvous point address, the group address and the route distinguisher instead of the source address.
| Field | Name | Size | Value | Description |
|---|---|---|---|---|
TYPE | Type | 2 bytes | 250 | Code point 250 for this encoding. |
LENGTH | Length | 2 bytes | 16 | Octets that follow the type and length. |
SOURCE | Source | 4 bytes | IPv4 multicast source address, 4 octets. | |
GROUP | Group | 4 bytes | IPv4 multicast group address, 4 octets. | |
RD | RD | 8 bytes | Route distinguisher, 8 octets. |
| Encoding | Type | Length | Tree and address family |
|---|---|---|---|
| Transit VPNv4 Source THIS RFC | 250 | 16 | Source-specific, IPv4 |
| Transit VPNv6 Source THIS RFC | 251 | 40 | Source-specific, IPv6 |
| Transit VPNv4 Bidir THIS RFC | 9 | 17 | Bidirectional, IPv4 |
| Transit VPNv6 Bidir THIS RFC | 10 | 41 | Bidirectional, IPv6 |
§4Security Considerations
The same security considerations apply as for the base LDP specification in RFC 5036 and the base mLDP specification in RFC 6388.
Operators MUST configure packet filters so that the mechanism does not tunnel non-global-scoped IPv6 multicast packets outside their intended scope.
The RFC adds no new security problems beyond LDP and mLDP themselves. Operators must set packet filters so that IPv6 multicast packets with a non-global scope stay inside their scope.