RFC 5003

Attachment Individual Identifier (AII) Types for Aggregation

πŸ“… published September 2007, from ietf

RFC 5003: Attachment Individual Identifier (AII) Types for Aggregation πŸŽ€

Okay bestie, let's start with the title block πŸ’– This one is from the Network Working Group and it's a Standards Track doc, so it's the real deal, not an experiment. It came out in September 2007 πŸ“… and the authors are C. Metz, L. Martini, F. Balus, and J. Sugimoto. They were at Cisco Systems Inc., Alcatel-Lucent, and Nortel Networks. The header doesn't list anything it obsoletes or updates, so it's a standalone spec πŸ¦‹

Status of This Memo

Okay, so this doc specifies an Internet standards track protocol for the Internet community 🌸 It's also asking people to discuss it and send suggestions for making it better. If you want to know the standardization state and status of this protocol, go check the current edition of the "Internet Official Protocol Standards" (STD 1) ✨ Distribution of this memo is unlimited, so share it with everyone 🫢

Abstract

Pseudowires are point-to-point connections, and the signaling protocols that set them up carry type-length-value (TLV) fields that identify their endpoints. Those endpoint identifiers are called attachment individual identifiers (AIIs) 🧚 This doc defines AII structures as new AII TLV fields that let you aggregate AIIs. That means better scalability and easier Virtual Private Network (VPN) auto-discovery, and it's giving efficiency πŸ’… The vision is that this is super useful in big inter-domain virtual private wire service networks, where pseudowires get set up between selected local and remote provider edge (PE) nodes based on what customers need πŸ‘‘

Table of Contents

1. Introduction ....................................................2
2. Specification of Requirements ...................................3
3. Structure for the New AII Type ..................................3
   3.1. AII Type 1 .................................................3
   3.2. AII Type 2 .................................................3
4. IANA Considerations .............................................5
5. Security Considerations .........................................5
6. Acknowledgments .................................................5
7. Normative References ............................................5
8. Informative References ..........................................5

1. Introduction ✨

Okay so [RFC4447] is the one that defines the signaling mechanisms for setting up point-to-point pseudowires (PWs) between two provider edge (PE) nodes πŸ”₯ When a PW gets set up, the LDP signaling messages carry a forwarding equivalence class (FEC) element. That element has info about the PW type and an endpoint identifier. The identifier is used to pick the PW forwarder that binds the PW to the attachment circuit at each end πŸ’–

There are two FEC element types for this: PWid FEC (type 128) and the Generalized ID (GID) FEC (type 129) πŸ¦‹ The PWid FEC element has a fixed-length 32-bit value called the PWid, and that's its endpoint identifier. The same PWid value must be configured on the local and remote PE before the PW gets set up. No skipping this step, bestie πŸ™ˆ

The GID FEC element has TLV fields for attachment individual identifiers (AIIs). Together with an attachment group identifier (AGI), those AIIs work as PW endpoint identifiers 🌈 The endpoint identifier on the local PE, written as <AGI, source AII, or SAII>, is called the source attachment identifier (SAI). The endpoint identifier on the remote PE, written as <AGI, target AII, or TAII>, is called the target attachment identifier (TAI). The SAI and TAI can be different values, and that's actually useful. It's for setups where the local PE, with its particular SAI, doesn't know the remote TAI values and has to somehow learn them before it sends PW setup messages to the remote PE. An example of learning them is Multiprotocol BGP (MP-BGP) auto-discovery 🧚

The GID FEC TLV lets you structure the source or target AII values however fits your application or provisioning model best [L2VPN-SIG] ✨ For example, an AII structure that lets many individual AII values be identified as one single value could seriously cut the burden on AII distribution mechanisms (like MP-BGP) and on the PE memory needed to store this AII info. Obviously, this is the kind of thing you'd want, periodt πŸ’… Also, it should be noted that Pseudowire Emulation Edge-to-Edge (PWE3) signaling messages will always include a fully qualified AII value 🫢

A globally unique AII would make PW management and security way easier in large inter-AS (autonomous system) and inter-provider environments 🌸 Providers wouldn't have to stress about AII value overlap during provisioning, or about needing AII network address translation (NAT) boxes during signaling. Globally unique AII values could also help with troubleshooting, and they could get source-validity checks during AII distribution and signaling. And if an AII is automatically derived from a provider's existing IP address space, provisioning gets so much simpler πŸŽ€

This doc defines an AII structure based on [RFC4447] that does two big things πŸ‘‘

  • It lets many discrete attachment individual identifiers get summarized into one single AII summary value. That boosts scalability by cutting the burden on AII distribution mechanisms and on PE memory πŸ’–
  • It ensures global uniqueness, if the provider wants it. That makes Internet-wide PW connectivity possible and gives providers a way to do source validation on the AII distribution (like MP-BGP) and signaling (like LDP) channels πŸ¦‹

It's all accomplished by defining new AII types and the formats of their value fields. Iconic πŸ’…

2. Specification of Requirements

Here's the official key word stuff πŸ“œ 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 [RFC2119] 🫢

3. Structure for the New AII Type

Okay, so [RFC4447] defines the format of the GID FEC TLV, plus the use and semantics of the attachment group identifier (AGI) 🧚

3.1. AII Type 1

AII Type 1 has been allocated by IANA for provisioning models that need a fixed-length 32-bit value [L2VPN-SIG] 🌸 This value is unique on the local PE πŸ’œ

3.2. AII Type 2

The AII Type 2 structure lets you do varying levels of AII summarization. That means less scaling burden on the AII distribution mechanisms mentioned above, plus less PE memory used πŸ¦‹ Basically, you no longer have to distribute or configure every single individual AII value on local PEs before you set up PWs to remote PEs. There could be tens of thousands of them or more, so this is lowkey a lifesaver πŸ™ˆ The details of how and where AII values get aggregated, and then distributed as AII reachability information, aren't covered in this document 🌈

AII Type 2 uses a combination of three things to make globally unique AII values: a provider's globally unique identifier (Global ID), a 32-bit prefix field, and a 4-octet attachment circuit identifier (AC ID) field ✨

The encoding of AII Type 2 is shown in Figure 1 πŸ‘‘

    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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  AII Type=02  |    Length     |        Global ID              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |       Global ID (contd.)      |        Prefix                 |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |       Prefix (contd.)         |        AC ID                  |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |      AC ID                    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                    Figure 1. AII Type 2 TLV Structure

Now let's go field by field πŸŽ€

  • AII Type = 0x02
  • Length = length of value field in octets. The length is set to 12 🧚
  • Global ID = This is a 4-octet field containing a value that is unique to the provider. The global ID can contain the 2-octet or 4-octet value of the provider's Autonomous System Number (ASN). It's expected that the global ID will be derived from the globally unique ASN of the autonomous system hosting the PEs that contain the actual AIIs. Having a global ID based on the provider's ASN makes sure the AII is globally unique πŸ’–

If the global ID is derived from a 2-octet AS number, then the two high-order octets of this 4-octet field MUST be set to zero πŸ™ˆ

Please note that the use of the provider's ASN as a global ID DOES NOT have anything at all to do with the use of the ASN in protocols such as BGP πŸ›‘

  • Prefix = The 32-bit prefix is a value assigned by the provider, or it can be automatically derived from the PE's /32 IPv4 loopback address πŸ¦‹ Also, for IP reachability, it is not required that the 32-bit prefix have any association with the IPv4 address space used in the provider's IGP or BGP 🌈
  • Attachment Circuit (AC) ID = This is a fixed-length 4-octet field used to further refine identification of an attachment circuit on the PE 🫢 Including the AC ID is how you identify individual attachment circuits that share a common prefix πŸ‘‘

Okay so the legal part, but make it cute πŸŽ€. The IETF Trust owns the copyright on this one: Copyright (C) The IETF Trust (2007). πŸ“œ

This document is subject to the rights, licenses and restrictions in BCP 78. Except for what BCP 78 says, the authors keep all their rights. πŸ¦‹

And the disclaimer is giving serious energy, so I'm keeping the caps lock on:

This document and the information contained herein are provided on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. πŸ’€

Intellectual Property 🌸

Okay, so the IETF is not saying whether any patents or other IP rights cover the tech in this doc. It also isn't saying whether you could get a license for them, and it didn't go hunting for any. πŸ™ˆ If you want the procedures for IP rights in RFC docs, check BCP 78 and BCP 79. πŸ“š

Copies of IPR disclosures sent to the IETF Secretariat are on the online IPR repository at http://www.ietf.org/ipr. You'll also find any license assurances there, plus the results of any attempt to get a general license or permission for implementers or users to use the proprietary rights in this spec. πŸ”

And the IETF is literally inviting anyone to say something if they know about copyrights, patents, patent applications, or other proprietary rights that might cover tech needed to implement this standard. 🫢 Send that info to the IETF at ietf-ipr@ietf.org. ✨

πŸ“¦ where this page comes from