RFC 1526

Assignment of System Identifiers for TUBA/CLNP Hosts

πŸ“… published September 1993, from ietf

RFC 1526 πŸŽ€ is titled Assignment of System Identifiers for TUBA/CLNP Hosts πŸ’…. It's from the Network Working Group, written by D. Piscitello at Bellcore, filed as Category: Informational, and dated September 1993 ✨. The title block doesn't list anything it obsoletes or updates πŸ¦‹.


Status of this Memo πŸ“œ

Okay so the vibe here is that this memo is giving information for the Internet community πŸ’–. It does not specify an Internet standard, so this is more of a vibe check than a rulebook πŸ™ˆ. Distribution of this memo is unlimited 🌈.

Abstract ✨

This doc is about how the system identifier part of an RFC 1237 style NSAP address can get guaranteed uniqueness within a routing domain, so that autoconfiguration works in TUBA/CLNP internets 🧚. The mechanism is extensible and can provide a basis for assigning system identifiers in a globally unique fashion πŸ’œ.

Introduction ✨

Okay so this memo lays out methods for assigning a 6 octet system identifier portion of the OSI NSAP address formats described in "Guidelines for OSI NSAP Allocation in the Internet" [1], in a way that makes sure the ID is unique within a routing domain πŸ”’. It also recommends methods for assigning system identifiers having lengths other than 6 octets 🌸. The 6 octet system identifiers recommended in this RFC come from 2 globally administered spaces: IEEE 802 (aka "Ethernet") and IP numbers, administered by the Internet Assigned Numbers Authority, IANA πŸ¦‹.

At this time, the main reason we need unique system identifiers is to help with autoconfiguration of NSAP addresses in TUBA/CLNP internets [2] πŸ‘‘. The guidelines in this paper also set up an initial framework where globally unique system identifiers, also called endpoint identifiers, MAY be assigned 🧚.

Acknowledgments 🫢

Many thanks to Radia Perlman, Allison Mankin, and Ross Callon for their insights and assistance πŸ’–. Thanks also to the Ethernet connector to my MAC, which conveniently and quite inobtrusively fell out, so I got a whole day's worth of work done without email interruptions πŸ˜­πŸ“.

1. Background 🌸

Here's the NSAP layout. The general format of OSI network service access point (NSAP) addresses is shown in Figure 1 🧩.

          _______________________________________________
          |____IDP_____|_______________DSP______________|
          |__AFI_|_IDI_|_____HO-DSP______|___ID___|_SEL_|

                IDP     Initial Domain Part
                AFI     Authority and Format Identifier
                IDI     Initial Domain Identifier
                DSP     Domain Specific Part
                HO-DSP  High-order DSP
                ID      System Identifier
                SEL     NSAP Selector

                Figure 1: OSI NSAP Address Structure.

The recommended encoding and allocation of NSAP addresses in the Internet is specified in RFC 1237 πŸ“š. RFC 1237 makes the following statements about the system identifier (ID) field of the NSAPA πŸ“:

  1. the ID field MAY be from one to eight octets in length
  2. the ID MUST have a single known length in any particular routing domain
  3. the ID field MUST be unique within an area for ESs and level 1 ISs, and unique within the routing domain for level 2 ISs.
  4. the ID field is assumed to be flat

RFC 1237 also says that, within a routing domain that follows the OSI intradomain routing protocol [3], the lower-order octets of the NSAP SHOULD be structured as the ID and SEL fields shown in Figure 1, so you get the full benefit of intradomain IS-IS routing πŸš€. (End systems with addresses that don't conform MAY require additional manual configuration and be subject to inferior routing performance πŸ™ƒ.)

Both GOSIP Version 2 (under DFI-80h, see Figure 2a) and ANSI DCC NSAP addressing (Figure 2b) define a common DSP structure where the system identifier is assumed to be a fixed length of 6 octets πŸ’….

               _______________
               |<--__IDP_-->_|___________________________________
               |AFI_|__IDI___|___________<--_DSP_-->____________|
               |_47_|__0005__|DFI_|AA_|Rsvd_|_RD_|Area_|ID_|Sel_|
        octets |_1__|___2____|_1__|_3_|__2__|_2__|_2___|_6_|_1__|

                    Figure 2 (a): GOSIP Version 2 NSAP structure.
               ______________
               |<--_IDP_-->_|_____________________________________
               |AFI_|__IDI__|____________<--_DSP_-->_____________|
               |_39_|__840__|DFI_|_ORG_|Rsvd_|RD_|Area_|_ID_|Sel_|
        octets |_1__|___2___|_1__|__3__|_2___|_2_|__2__|_6__|_1__|

                     IDP   Initial Domain Part
                     AFI   Authority and Format Identifier
                     IDI   Initial Domain Identifier
                     DSP   Domain Specific Part
                     DFI   DSP Format Identifier
                     ORG   Organization Name (numeric form)
                     Rsvd  Reserved
                     RD    Routing Domain Identifier
                     Area  Area Identifier
                     ID    System Identifier
                     SEL   NSAP Selector


                 Figure 2(b): ANSI NSAP address format for DCC=840

2. Autoconfiguration πŸ¦‹

There are provisions in OSI for autoconfiguring area addresses 🌈. OSI end systems MAY learn their area addresses automatically by watching the area address shown in the IS-Hello packets that routers send using the ISO 9542 End System to Intermediate System Routing Protocol, and MAY then insert their own system identifier ✨. (Fun fact: RFC 1237 explains that when the ID portion is assigned using IEEE style 48-bit identifiers, an end system can reconfigure its entire NSAP address automatically, with no manual intervention needed 🀯.) End systems that haven't been pre-configured with an NSAPA MAY also request an address from an intermediate system in their area using [5] πŸ’–.

2.1. Autoconfiguration and 48-bit addresses πŸ’œ

There's a common misassumption that the 6-octet system identifier MUST be a 48-bit IEEE assigned (ethernet) address πŸ™ˆ. Generally speaking, autoconfiguration doesn't rely on a 48-bit ethernet style address. Any system identifier that is globally administered and unique will do πŸ’…. Using 48-bit/6 octet system identifiers is "convenient...because it is the same length as an 802 address", but the bigger deal is that a single, uniform ID length allows for "efficient packet forwarding", since routers won't have to make on-the-fly decisions about ID length (see [6], pages 156-157) 🧠. Still, system identifiers don't have to be 6 octets to run the IS-IS protocol, since IS-IS allows IDs with lengths from 1 to 8 octets 🌸.

3. System Identifiers for TUBA/CLNP πŸŽ€

Autoconfiguration is a must-have feature for TUBA/CLNP, and some people see it as "essential if a network is to scale to a truly large size" [6] 😭.

For this purpose, and to make room for communities that don't want to use ethernet style addresses, we want a generalized format that meets these criteria πŸ’–:

  • the format is compatible with installed end systems complying to RFC 1237
  • the format accommodates 6 octet, globally unique system identifiers that do not come from the ethernet address space
  • the format accommodates globally unique system identifiers having lengths other than 6 octets

The format and encoding of a globally unique system identifier that meets these criteria is shown in Figure 3 🧚:

      Octet 1     Octet 2     Octet 3 ...     Octet LLL-1  Octet LLLL
   +-----------+-----------+-----------+- ...-+-----------+-----------+
   | xxxx TTGM | xxxx xxxx | xxxx xxxx |      | xxxx xxxx | xxxx xxxx |
   +-----------+-----------+-----------+- ...-+-----------+-----------+

                   Figure 3. General format of the system identifier

3.1. IEEE 802 Form of System Identifier πŸ“

The format is compatible with globally assigned IEEE 802 addresses, because it carefully keeps the meaning of the global/local and group/individual bits πŸ”₯. Octet 1 has 2 qualifier bits, G and M, plus a subtype (TT) field whose meaning depends on those qualifier bits ✨. When a globally assigned IEEE 802 address is used as a system identifier, the qualifier bit M, which is the multicast/unicast bit, MUST always be set to zero to mark a unicast address 🌈. The qualifier bit G MAY be either 0 or 1, depending on whether the individual address is globally or locally assigned πŸ¦‹. In this case the subtype bits are "don't care", and the system identifier SHALL be read as a 48-bit, globally unique identifier assigned by the IEEE 802 committee (an ethernet address) πŸ’…. The remaining bits in octet 1, along with octets 2 and 3, are the vendor code or OUI (organizationally unique identifier), as shown in Figure 4 πŸ‘‘. The ID is encoded in IEEE 802 canonical form, meaning the low order bit of the low order hex digit of the leftmost octet is the first bit transmitted 🧠.

   Octet 1     Octet 2     Octet 3     Octet 4     Octet 5   Octet 6
+-----------+-----------+-----------+-----------+-----------+-----------+
| VVVV VV00 | VVVV VVVV | VVVV VVVV | SSSS SSSS | SSSS SSSS | SSSS SSSS |
+-----------+-----------+-----------+-----------+-----------+-----------+

|------------vendor code -----------|--------station code---------------|

                Figure 4. IEEE 802 form of system identifier

4. Embedded IP Address as System Identifier πŸ¦„

To tell 48-bit IEEE 802 addresses used as system identifiers apart from other forms of globally administered system identifiers, the qualifier bit M SHALL be set to 1 πŸ”‘. The correct reading of the M bit set to 1 SHOULD be, "this can't be an IEEE 802 multicast address, since use of multicast addresses is by convention illegal, so it MUST be some other form of system identifier" πŸ™…β€β™€οΈ. That means the subtype (TT) bits from Figure 3 suddenly become relevant 🫢.

When the subtype bits (TT) are set to a value of 0, the system identifier contains an embedded IP address πŸ’–. The rest of the 48-bit system identifier is encoded like this. The remaining nibble in octet 1 SHALL be set to zero. Octet 2 is reserved and SHALL be set to a pre-assigned value (see Figure 5) πŸ’…. Octets 3 through 6 SHALL contain a valid IP address, assigned by IANA 🌸. Each octet of the IP address is encoded in binary, in internet canonical form, meaning the leftmost bit of the network number comes first 🧚.

   Octet 1     Octet 2     Octet 3     Octet 4     Octet 5   Octet 6
+-----------+-----------+-----------+-----------+-----------+-----------+
| 0000 0001 | 1010 1010 | aaaa aaaa | bbbb bbbb | cccc cccc | dddd dddd |
+-----------+-----------+-----------+-----------+-----------+-----------+

|-len&Type--|--reserved-|---------IP address----------------------------|

                Figure 5. Embedded IP address as system identifier

As an example, the host "eve.bellcore.com = 128.96.90.55" could keep its IP address as a system identifier in a TUBA/CLNP network πŸ¦‹. The encoded ID is shown in Figure 6 πŸŽ€.

   Octet 1     Octet 2     Octet 3     Octet 4     Octet 5   Octet 6
+-----------+-----------+-----------+-----------+-----------+-----------+
| 0000 0001 | 1010 1010 | 1000 0000 | 0110 0000 | 0101 1010 | 0011 0111 |
+-----------+-----------+-----------+-----------+-----------+-----------+

|-len&Type--|--reserved-|---------IP address----------------------------|

                Figure 6. Example of IP address encoded as ID

4.2. Other forms of System Identifiers ✨

okay bestie, so the remaining subtype values are reserved πŸŽ€ for future 6-octet system identifiers that haven't been defined yet. they're basically on hold for later πŸ’…

it's also totally possible to identify system identifiers with lengths other than 6 octets πŸ¦‹ communities that want 8 octet identifiers (like embedding E.164 international numbers for the ISDN ERA πŸ“ž) must use a GOSIP/ANSI DSP format that makes room for 2 additional octets in the ID field, maybe by giving up some of the Rsvd fields πŸ₯Ί this document recommends assigning a separate DFI value just for that. the DFI value would be read as saying, among other things, "the system identifier encoded in this DSP is 64-bits/8 octets." the resulting ANSI/GOSIP DSP formats are illustrated in Figure 7:

               ______________
               |<--_IDP_-->_|______________________________
               |AFI_|__IDI__|____________<--_DSP_-->_______|
               |_39_|__840__|DFI_|_ORG_|RD_|Area_|_ID_|Sel_|
        octets |_1__|___2___|_1__|__3__|_2_|__2__|_8__|_1__|

        Figure 7a: ANSI NSAP address format for DCC=840, DFI=foo
               _______________
               |<--__IDP_-->_|___________________________________
               |AFI_|__IDI___|___________<--_DSP_-->____________|
               |_47_|__0005__|DFI_|AA_|_RD_|Area_|ID_|Sel_|
        octets |_1__|___2____|_1__|_3_|_2__|_2___|_8_|_1__|

                      IDP   Initial Domain Part
                      AFI   Authority and Format Identifier
                      IDI   Initial Domain Identifier
                      DSP   Domain Specific Part
                      DFI   DSP Format Identifier
                      AA    Administrative Authority
                      RD    Routing Domain Identifier
                      Area  Area Identifier
                      ID    System Identifier
                      SEL   NSAP Selector

       Figure 7b: GOSIP Version 2 NSAP structure, DFI=bar

similar address engineering works for communities that want shorter system identifiers too 🌸 just get another DFI assigned and expand the reserved field. ooh, flexible! πŸ¦‹


5. Conclusions πŸ’œ

okay this proposal should debunk the "if it's 48-bits, it's gotta be an ethernet address" myth πŸ™ˆ it shows how IP addresses may be encoded within the 48-bit system identifier field in a way that's compatible with IEEE 802 addresses πŸ”₯ and it also offers guidelines for anyone who wants system identifiers other than the ones listed here. main character energy ✨


6. References πŸ“š

  • [1] Callon, R., Gardner, E., and R. Colella, "Guidelines for OSI NSAP Allocation in the Internet", RFC 1237, NIST, Mitre, DEC, June 1991.
  • [2] Callon, R., "TCP and UDP with Bigger Addresses (TUBA), A Simple Proposal for Internet Addressing and Routing", RFC 1347, DEC, June 1992.
  • [3] ISO, "Intradomain routing protocol for use in conjunction with ISO 8473, Protocol for providing the OSI connectionless network service", ISO 10589.
  • [4] ISO, End-system and intermediate-system routing protocol for use in conjunction with ISO 8473, Protocol for providing the OSI connectionless network service, ISO 9542.
  • [5] ISO, "End-system and intermediate-system routing protocol for use in conjunction with ISO 8473, Protocol for providing the OSI connectionless network service. Amendment 1: Dynamic Discovery of OSI NSAP Addresses End Systems", ISO 9542/DAM1.
  • [6] Perlman, R., "Interconnections: Bridges and Routers", Addison-Wesley Publishers, Reading, MA. 1992.

7. Security Considerations 😭

Security issues are not discussed in this memo. πŸ’€ (yes, really. the whole thing is wide open for us to think about, so keep that in mind 🫢)

8. Author's Address πŸ–ŠοΈ

David M. Piscitello
Bell Communications Research
NVC 1C322
331 Newman Springs Road
Red Bank, NJ 07701

EMail: dave@mail.bellcore.com
πŸ“¦ where this page comes from