RFC 7213

MPLS Transport Profile (MPLS-TP) Next-Hop Ethernet Addressing

πŸ“… published June 2014, from ietf

RFC 7213: MPLS Transport Profile (MPLS-TP) Next-Hop Ethernet Addressing πŸŽ€

okay bestie, let's get into the title block 🫢

  • Request for Comments: 7213
  • Category: Standards Track
  • ISSN: 2070-1721
  • Date: June 2014
  • Authors: D. Frost (Blue Sun), S. Bryant (Cisco Systems), M. Bocci (Alcatel-Lucent)
  • Obsoletes / Updates: nothing is listed for either one in the title block πŸ™ˆ

Abstract ✨

okay so MPLS-TP is basically the bundle of MPLS protocol functions used to build and run packet-switched transport networks πŸš†. this doc is all about link-layer addressing for Ethernet frames that carry MPLS-TP packets πŸ’Œ.

Status of This Memo 🌸

this is an Internet Standards Track document πŸ’…

it's a product of the Internet Engineering Task Force (IETF), so it reflects 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 out Section 2 of RFC 5741.

for the current status, any errata, and how to give feedback on this doc, go to http://www.rfc-editor.org/info/rfc7213.

Copyright (c) 2014 IETF Trust and the persons identified as the document authors. All rights reserved. 🌈

this doc 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 them carefully because they spell out your rights and restrictions for this doc. any Code Components pulled out of this doc have to include the Simplified BSD License text described in Section 4.e of the Trust Legal Provisions, and they come with no warranty, as described in the Simplified BSD License.


1. Introduction ✨

okay so MPLS-TP [RFC5921] is the set of protocol functions that meet the requirements in [RFC5654] for using MPLS to build and run packet-switched transport networks πŸ¦‹. its data plane is the part that handles encapsulating and forwarding MPLS-TP packets, and that's described in [RFC5960] πŸ’œ.

this doc covers link-layer addressing for Ethernet frames carrying MPLS-TP packets. MPLS-TP packets are still MPLS packets, so the existing rules for sending MPLS packets over Ethernet ([RFC3032], [RFC5332]) apply here too 🫢. the catch is that IP is optional in an MPLS-TP network. that means IP-based ways of learning MAC addresses, like the Address Resolution Protocol (ARP) [RFC826] and IPv6 Neighbor Discovery [RFC4861], may not be around πŸ™ˆ. this doc lays out the options for figuring out and picking the next-hop Ethernet MAC address when MPLS-TP runs between nodes that don't have an IP data plane πŸ”₯.

1.1. Terminology πŸ“

Term    Definition
------- ---------------------------
ARP     Address Resolution Protocol
G-ACh   Generic Associated Channel
LSP     Label Switched Path
LSR     Label Switching Router
MAC     Media Access Control
MPLS-TP MPLS Transport Profile

more definitions and terminology live in [RFC5960] and [RFC5654] πŸ“š.

1.2. Requirements Language πŸ’…

the key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this doc are to be read as described in [RFC2119] ✨. these are the official BCP 14 words, so they're the ones that carry the real weight.

okay so when two MPLS-TP nodes are linked by a point-to-point Ethernet link, the big question is which destination Ethernet MAC address goes in the frames sent to the peer over that link πŸ‘€. in IP/MPLS networks this isn't a problem, because the Ethernet Address Resolution Protocol (usually just called ARP) [RFC826] or the IPv6 Neighbor Discovery (ND) protocol [RFC4861] can dynamically learn the unicast MAC address of the peer device 🌸.

if the MPLS-TP network already has existing ways to find the destination unicast MAC addresses of its peers, like when it's also an IP/MPLS network or when the Link Layer Discovery Protocol (LLDP) [LLDP] is running, then these methods SHOULD be used πŸ’–. if ARP, ND, and LLDP aren't available, and both peers implement the procedures in Section 4 of this doc, then the GAP mechanism described in this memo SHOULD be used 🫢. the rest of this section talks about other options you might use when none of those MAC-learning mechanisms are around 🧚.

one common approach is to statically configure each node with its peer's MAC address πŸŽ€. but static MAC configuration can be a real admin headache and cause operational problems 😭. for example, if you swap out an Ethernet interface to fix a hardware fault, the peer node has to be manually reconfigured with the new MAC address. that's extra painful when the peer belongs to another provider πŸ’€.

another approach you might consider is using the Ethernet broadcast address FF-FF-FF-FF-FF-FF as the destination MAC address in frames carrying MPLS-TP packets over a link that's known to be point-to-point ✨. but this can lead to excessive frame distribution and processing at the Ethernet layer πŸŒͺ️. some devices also treat broadcast traffic specially, and that might not be what you want for MPLS-TP data frames πŸ™ˆ.

with all that in mind, this doc recommends that, if a non-negotiated address is going to be used, both nodes get configured to use an Ethernet multicast address reserved for MPLS-TP over point-to-point links as the destination MAC address πŸ’œ. the address the Internet Assigned Numbers Authority (IANA) allocated for this purpose is 01-00-5E-90-00-00. an MPLS-TP implementation MUST default to passing to the MPLS sub-system any MPLS packets it receives from a point-to-point Ethernet link with this destination MAC address πŸ”₯.

the broadcast or multicast addressing trick in this section, where the address stands in as a placeholder for the unknown unicast MAC address of the destination, only works when the attached Ethernet link is known to be point-to-point 🎯. if a link isn't known to be point-to-point, these forms of broadcast or multicast addressing MUST NOT be used 🚫. so the implementation MUST give the operator a way to declare that a link is point-to-point if it supports these addressing modes πŸ› οΈ. the operator should also know that it isn't always clear whether a link is, or will stay, strictly point-to-point. this gets especially murky when an external provider supplies the link, so point-to-point declarations need to be handled with care πŸ‘€. because of these caveats, it is RECOMMENDED that implementations support the procedures in Section 4 so unicast addressing can be used πŸ‘‘.

when a multipoint Ethernet link serves as a section [RFC5960] for a point-to-multipoint MPLS-TP LSP, and multicast destination MAC addressing is used at the Ethernet layer for that LSP, the addressing and encapsulation procedures specified in [RFC5332] SHALL be used 🧚.

when a multipoint Ethernet link (meaning one that isn't known to be point-to-point) serves as a section for a point-to-point MPLS-TP LSP, unicast destination MAC addresses MUST be used for the Ethernet frames carrying the LSP's packets πŸ’–. based on what we just covered, that means you either use static MAC address configuration or a protocol that enables peer MAC address discovery ✨.

4. MAC Address Discovery via the G-ACh Advertisement Protocol ✨

okay so the G-ACh Advertisement Protocol (GAP) [RFC7212] is basically the group chat where everyone announces what they can do and how they're set up πŸ’… on an Ethernet link, GAP messages get multicast to 01-00-5e-80-00-0d (see Section 7 of [RFC7212]). if those messages include the sender's unicast MAC address, listeners can learn it and reuse it later when they send frames carrying MPLS-TP packets πŸ¦‹ and since GAP doesn't need IP at all, this gives you unicast MAC discovery even for MPLS-TP nodes with no IP support. literally iconic 🫢

this doc defines a new GAP application called "Ethernet Interface Parameters" (0x0001) πŸŽ€ it's for advertising the Ethernet-specific stuff about the sending interface. these are the TLV objects for it (the TLV format is the one from [RFC7212]):

  • Source MAC Address (type = 0, length = 8): the Value is an EUI-64 [EUI-64] unicast MAC address that's assigned to one of the sender's interfaces that's connected to this data link. the IEEE-defined mapping from 48-bit MAC addresses to EUI-64 form is used 🌸
  • Maximum Frame Size (MFS) (type = 1, length = 4): the Value is a 32-bit unsigned integer in network byte order. it says the max frame size, in octets, of an Ethernet Frame that can go out over the sending interface. where MAC address learning happens some other way, this TLV group MAY be used to advertise only the MFS. if there are multiple advertisements for the same parameter, what happens with them is undefined πŸ™ˆ
 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=0    |    Reserved   |           Length=8            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                MAC Address in EUI-64 Format                   |
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                 Source MAC Address Object Format

 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=1    |    Reserved   |          Length=4            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                     Maximum Frame Size (MFS)                  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                         MFS Object Format

ok so per [RFC7212], MAC address discovery info has to be sent again periodically, and the receiver holds onto it for as long as the associated Lifetime field says πŸ•°οΈ to speed up link setup, it is RECOMMENDED that a node which has been reconfigured, rebooted, or knows it's been disconnected from its peer sends a GAP Ethernet Interface Parameters message. it should also send a GAP Request message asking for the Ethernet Interface Parameters of its peers, at the earliest opportunity ⚑

when the MAC address in a received Source MAC Address TLV changes, the new MAC address MUST be used (see Section 5.2 of [RFC7212]) πŸ’œ

if a minimum MFS is configured for a link and the MFS the peer advertises is lower than that minimum, the operator MUST be notified of the MFS mismatch 🚨 at that point the operator may choose to have the LSR shut the link down, which triggers a fault so the end-to-end path gets repaired. or they may leave the link up so an OAM message can check the actual MFS. your call, bestie πŸ“

one more thing: a peer could stop sending G-ACh advertisements, stop including a Source MAC Address TLV in them, or just stop being connected. any of those will let the TLV lifetime run out. once the Source MAC Address TLV lifetime has expired, this MAC Address MUST NOT be used as the peer MAC address. the node MUST go back to picking MAC addresses as though no advertisements were received, using whatever method is configured for that situation 🧚


5. Manageability Considerations πŸŽ€

the values this protocol sends and receives MUST be accessible for network operators to inspect πŸ‘€ and if received info changes the local config, it MUST be clear why the configured value changed. if the received values change, the new values MUST be used and the change MUST be made visible to the network operators πŸ’…

the Ethernet address and related parameters advertised for an interface SHOULD stay persistent across restarts. if the system restarts, any data kept because of earlier Ethernet Interface Parameters advertisements from GAP peers MUST be thrown out πŸ—‘οΈ this stops things from breaking because of stale data, which is so important πŸ’€

if the link changes to a new type, like going from point-to-point to point-to-multipoint, the network operator SHOULD be told πŸ“£ and if the new link type doesn't work with the Ethernet addressing method in use, the system MUST take whatever action is configured for that case πŸ”₯


6. Security Considerations πŸ”

this part is serious, bestie, so listen up 🫒 using a broadcast or multicast Ethernet destination MAC address for frames that carry MPLS-TP data packets can end up getting those frames delivered to devices other than the intended destination node or nodes, if the Ethernet link is not point-to-point. the operator should make sure MPLS-TP nodes know the Ethernet link type (point-to-point or multipoint). on multipoint links, the operator should either make sure no unauthorized devices are attached to the link, or take steps to cut down the chance of excessive frame distribution. for example, they could set up the Ethernet switch to properly limit multicast frame delivery to authorized ports πŸ›‘οΈ

an attacker could mess with communications by changing the Source MAC Address or MFS values 😀 that's mitigated by the cryptographic authentication described in [RFC7212], which also covers other considerations for the GAP protocol. seeing what's inside either TLV could also hand an attacker useful info. the best fix for that is physical security of the links πŸ”’


7. IANA Considerations πŸ“‹

7.1. Ethernet Multicast Address Allocation

IANA has allocated an Ethernet multicast address from the "IANA Multicast 48-bit MAC Addresses" address block in the "Ethernet Numbers" registry 🌈 it's for use by MPLS-TP LSRs over point-to-point links, as described in Section 2. the allocated address is 01-00-5E-90-00-00. IANA also updated the reference to point to the RFC number given to this document ✨

7.2. G-ACh Advertisement Protocol Allocation

IANA has allocated a new Application ID in the "G-ACh Advertisement Protocol Application Registry" πŸ¦‹ it looks like this:

Application ID Description                   Reference
-------------- ----------------------------- ---------
0x0001         Ethernet Interface Parameters This RFC

7.3. Creation of Ethernet Interface Parameters Registry

IANA has created a new registry, "G-ACh Advertisement Protocol: Ethernet Interface Parameters", inside the "Generic Associated Channel (G-ACh) Parameters" registry πŸ’– it has these fields and initial allocations:

Type Name          Type ID Reference
------------------ ------- ---------
Source MAC Address 0       This RFC
Maximum Frame Size 1       This RFC

the range of the Type ID field is 0 - 255 πŸ”’ and the allocation policy for this registry is IETF Review or IESG Approval πŸ‘‘


8. Acknowledgements 🫢

we thank Adrian Farrel for his valuable review comments on this document 🌸 he's a real one!


9. References πŸ“š

9.1. Normative References

  • [EUI-64] IEEE, "Guidelines for 64-bit Global Identifier (EUI-64) Registration Authority", March 1997, <http://standards.ieee.org/regauth/oui/tutorials/EUI64.html>.
  • [LLDP] IEEE, "Station and Media Access Control Connectivity Discovery", IEEE 802.1AB, September 2009.
  • [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.
  • [RFC3032] Rosen, E., Tappan, D., Fedorkow, G., Rekhter, Y., Farinacci, D., Li, T., and A. Conta, "MPLS Label Stack Encoding", RFC 3032, January 2001.
  • [RFC5332] Eckert, T., Rosen, E., Aggarwal, R., and Y. Rekhter, "MPLS Multicast Encapsulations", RFC 5332, August 2008.
  • [RFC5654] Niven-Jenkins, B., Brungard, D., Betts, M., Sprecher, N., and S. Ueno, "Requirements of an MPLS Transport Profile", RFC 5654, September 2009.
  • [RFC5960] Frost, D., Bryant, S., and M. Bocci, "MPLS Transport Profile Data Plane Architecture", RFC 5960, August 2010.
  • [RFC7212] Frost, D., Bryant, S., and M. Bocci, "MPLS Generic Associated Channel (G-ACh) Advertisement Protocol", RFC 7212, June 2014.

9.2. Informative References

  • [RFC4861] Narten, T., Nordmark, E., Simpson, W., and H. Soliman, "Neighbor Discovery for IP version 6 (IPv6)", RFC 4861, September 2007.
  • [RFC5921] Bocci, M., Bryant, S., Frost, D., Levrau, L., and L. Berger, "A Framework for MPLS in Transport Networks", RFC 5921, July 2010.
  • [RFC826] Plummer, D., "Ethernet Address Resolution Protocol: Or converting network protocol addresses to 48.bit Ethernet address for transmission on Ethernet hardware", STD 37, RFC 826, November 1982.

Authors' Addresses πŸ’Œ

Dan Frost Blue Sun

EMail: frost@mm.st

Stewart Bryant Cisco Systems

EMail: stbryant@cisco.com

Matthew Bocci Alcatel-Lucent

EMail: matthew.bocci@alcatel-lucent.com

πŸ“¦ where this page comes from