RFC 1069

Guidelines for the use of Internet-IP addresses in the ISO Connectionless-Mode Network Protocol

πŸ“… published February 1989, from ietf

RFC 1069 πŸ’– Guidelines for the use of Internet-IP addresses in the ISO Connectionless-Mode Network Protocol

Okay bestie, here's the title block tea β˜•. The authors are R. Callon (DEC) and H.W. Braun (UMich). It's dated February 1989, and it's a proposed protocol for the Internet community, so it's asking for discussion and suggestions, not a finished standard πŸ¦‹. It obsoletes RFC 986 ✨. The header doesn't list anything it updates.

Status of This Memo ✨

So the big idea is that this RFC suggests an addressing scheme for the ISO Connectionless Network Protocol (CLNP) on the Internet 🧚. It's a fix for one of the problems with using "ISO-grams" on the Internet, and it's literally begging the community for discussion and improvements πŸ™. Distribution of this memo is unlimited 🌸.

This memo is a revision of RFC 986 πŸ’…. The changes were made so the addressing used in CLNP on the Internet can be useful for routing with the new inter- and intra-domain routing protocols, and for large numbers of networks and routing domains 🌈. The scheme lets each routing domain run internal routing algorithms that use a variety of addressing formats, while still giving everyone a common addressing approach for inter-domain routing πŸ‘‘. These features matter because the Internet is growing super fast right now πŸ“ˆ.

1. Objectives πŸŽ€

Okay so the data communications protocols coming out of international standardization efforts need an early integration into the existing, massive Internet network infrastructure 😭. There are two possible approaches. The top-down one is where ISO applications like FTAM, X.400 and VTP get integrated on top of the transport function of the IP protocol suite. The bottom-up one is where the whole ISO tower gets integrated without merging the two suites πŸ“. The bottom-up approach can use the fact that ISO-CLNP and IP are very similar in function 🫢. That means it's reasonable to implement a multiprotocol function in some or all of the Internet gateways (potentially including part or all of the Internet environment) πŸ”₯. The result would be that at least large portions of the Internet, especially the backbones, could become usable for full implementations of the ISO protocol stack ✨.

The big problem is that there are open issues with ISO addressing within CLNP πŸ’€. The ISO network layer addressing standard allows a great deal of flexibility in assigning addresses, so a particular address format has to be chosen πŸ™ˆ. Another problem is the need to implement and integrate routing facilities for the ISO-compatible subset of the Internet environment 🌈.

This paper proposes addresses that are way more flexible than the addresses used in the current IP Internet environment πŸ’œ. That flexibility is needed so some routing domains can base their internal routing protocol on addresses derived from current IP addresses, so other routing domains can base routing on addresses that follow the intra-domain routing protocol being developed by ANSI and ISO [6], and so there's generality for a future inter-domain routing protocol πŸ‘‘.

The addressing scheme proposed here uses the concept of "routing domains" as used in ANSI and ISO πŸ¦‹. This concept is similar to, but not identical with, the concept of "Autonomous System" used in the Internet. Routing domains include a combination of gateways, networks, and end systems (not just gateways), and routing domain boundaries may be used to define associated access control and policy routing constraints πŸ’…. Like autonomous systems, routing domains may be assumed to be topologically contiguous 🌸. There's no a priori reason why routing domains assigned for use with the ISO IP need any particular relation with existing autonomous systems that have been assigned for use with the IP πŸ€·β€β™€οΈ. Assigning specific routing domain identifiers is an "assigned numbers" function that's necessary for using the ISO IP in the Internet, but it's beyond the scope of this document πŸ“.

This addressing scheme is expected to be appropriate for long term use with the ISO IP in the Internet 🌟. But in the long term, the Internet is also expected to be interconnected with other routing domains using other schemes, like addresses assigned to commercial internets through ANSI, and addresses assigned by national standards organizations in other countries 🌍. So in the long term, gateways in the Internet will need to be able to route datagrams to destinations in other routing domains that don't conform to the addressing format proposed here πŸš€. This is discussed in greater detail in section 6 πŸ’–.

2. Introduction 🧚

The CLNP is documented in [1]. For completeness, though, the illustration of the CLNP header is included here as Figure 1 πŸŽ€.

The addressing part of the header is the subject of this RFC, meaning the source and the destination address respectively πŸ’…. These addresses are generally discussed in [2] and [3], and this document presents a specific method for addressing in the Internet environment that's consistent with the internationally standardized NSAP addresses 🫢.

                                             Octet
   +--------------------------------------+                   +--------
   |  Network Layer Protocol Identifier   |  1                :
   |--------------------------------------|                   :
   |           Length Indicator           |  2                :
   |--------------------------------------|                   :
   |   Version/Protocol Id Extension      |  3                :   Fixed
   |--------------------------------------|                   :
   |              Lifetime                |  4                :    Part
   |--------------------------------------|                   :
   |SP|MS|E/R|      Type                  |  5                :
   |--------------------------------------|                   :
   |           Segment Length             |  6,7              :
   |--------------------------------------|                   :
   |              Checksum                |  8,9              :
   |--------------------------------------|                   +--------
   | Destination Address Length Indicator |  10               :
   |--------------------------------------|                   :
   |         Destination Address          |  11 through m-1   : Address
   |--------------------------------------|                   :
   |    Source Address Length Indicator   |  m                :    Part
   |--------------------------------------|                   :
   |            Source Address            |  m+1 through n-1  :
   |--------------------------------------|                   +--------
   |         Data Unit Identifier         |  n,n+1            :
   |--------------------------------------|                   : Segment
   |            Segment Offset            |  n+2,n+3          :   ation
   |--------------------------------------|                   :
   |             Total Length             |  n+4,n+5          :    Part
   |--------------------------------------|                   +--------
   |                Options               |  n+6 through p    : Options
                                                                   Part
   |--------------------------------------|                   +--------
   |                 Data                 |  p+1 through z    :    Data
   +--------------------------------------+                   +--------

                       Figure 1:   PDU Header Format

3. Addresses for Use in the Internet ✨

okay bestie, this section is all about the addresses used to address NSAPs in the Internet 🌸🫢

The AFI is one octet long πŸŽ€ It says this is an ISO-6523-ICD assignment, and that the DSP is based on binary. The AFI octet uses the value "47". They picked ISO-6523-ICD so it's super clear this is an administrative assignment πŸ’… Using an ISO DCC (Data Country Code) would've been possible, but it could be misleading since the Internet is pretty spread out geographically 🌍

Next up, the ISO addressing standard says the next two octets specify the Initial Domain Identifier. For the Internet, that's the ICD, which is "0006" πŸ¦‹

The rest of the NSAP address is the Domain Specific Part (DSP) πŸ’– The Internet administration assigns it, and the Internet is treated as an addressing domain. There's no particular relationship required between addressing domains and routing domains, so even though the Internet counts as a single addressing domain, it's expected to have multiple routing domains. Iconic multitasking πŸ‘‘

The DSP holds a one octet version number, a two octet global area number, a two octet routing domain number, a variable length padding field, a variable length IGP specific part, and a one octet selector field ✨

  • The version number is there for future extensions, and it must contain the value "02" 🧚
  • The global area number and routing domain number are there for inter-domain routing. Initially, the global area number is reserved and must be set to zero 🌈 The routing domain number may be set to the routing domain number of any gateway by which the associated host address is directly reachable πŸ’œ
  • The IGP specific part can hold whatever addressing format the routing domain uses. Two particular formats are expected to be used at first, and they're presented in section 4 πŸ“ Padding is used so the whole address is always 20 octets long πŸŽ€
  • The selector field does the same job as the user protocol field in the IP header 🫢 This is needed because the ISO protocol treats identifying the user protocol as an addressing issue, so it doesn't let the user protocol be specified in the protocol header separately from the address πŸ™ˆ

Assigning specific routing domain identifiers, and assigning values for the selector field, is the job of the Assigned Numbers authority for the Internet [4] πŸ’… The specific values to be used are outside the scope of this document, so don't come for me about them 😭

In summary, a source or destination address within the ISO Connectionless Protocol, when used in the Internet, looks like this:

                                              Octet

                   +------------------------+
                   |          AFI           |     1
                   +------------------------+
                   |       IDI / ICD        |     2
                   +--                    --+
                   |(specifies DoD Internet)|     3
                   +------------------------+
                   |     Version Number     |     4
                   +------------------------+
                   |      Global Area       |     5
                   +---                  ---+
                   |         Number         |     6
                   +------------------------+
                   |        Routing         |     7
                   +---                  ---+
                   |         Domain         |     8
                   +------------------------+
                   |                        |     9
                   :        Padding         :     :
                   :                        :     :
                   |                        |     n
                   +------------------------+
                   |          IGP           |   n+1
                   :                        :     :
                   :                        :     :
                   |        Specific        |    19
                   +------------------------+
                   |        Selector        |    20
                   +------------------------+

Figure 2: ISO IP address structure 🌸

The AFI is "47" (BCD) πŸŽ€ The Initial Domain Identifier (IDI) is the ICD assigned to the Internet, and it must contain the value "0006" πŸ¦‹ The Version Number must contain the value "02" πŸ’– The Global Area Number must contain the value "00" 🌈 And the Padding field is variable length, but it must contain the value zero ✨

4. Specific Values for use with the IGP specific field πŸ¦‹

Generally speaking, a routing domain can use any addressing scheme for the IGP specific part of the address, as long as it's up to 11 octets long. That's consistent with the 20 octet maximum address length πŸ’… Still, it's expected that at first, addresses in this field will be either the current IP addresses, or addresses that conform to the ones in the draft ANSI proposal for intra-domain routing 🧚

For end systems that belong to routing domains using IP addresses for internal routing, the addresses look like this:

                                              Octet

                   +------------------------+
                   |          AFI           |     1
                   +------------------------+
                   |       IDI / ICD        |     2
                   +--                    --+
                   |(specifies DoD Internet)|     3
                   +------------------------+
                   |     Version Number     |     4
                   +------------------------+
                   |      Global Area       |     5
                   +---                  ---+
                   |         Number         |     6
                   +------------------------+
                   |        Routing         |     7
                   +---                  ---+
                   |         Domain         |     8
                   +------------------------+
                   |                        |     9
                   :        Padding         :     :
                   :                        :     :
                   |                        |    15
                   +------------------------+
                   |       Four Octet       |    16
                   +---                  ---+
                   |        Internet        |    17
                   +---                  ---+
                   |          DoD           |    18
                   +---                  ---+
                   |        Address         |    19
                   +------------------------+
                   |        Selector        |    20
                   +------------------------+

Figure 3: ISO IP Address with Encoded DoD IP Address 🌈

For end systems that belong to routing domains using the address format from the draft ANSI proposal for intra-domain routing [6], the addresses look like this:

                                              Octet

                   +------------------------+
                   |          AFI           |     1
                   +------------------------+
                   |       IDI / ICD        |     2
                   +--                    --+
                   |(specifies DOD Internet)|     3
                   +------------------------+
                   |     Version Number     |     4
                   +------------------------+
                   |      Global Area       |     5
                   +---                  ---+
                   |         Number         |     6
                   +------------------------+
                   |        Routing         |     7
                   +---                  ---+
                   |         Domain         |     8
                   +------------------------+
                   |                        |     9
                   +---                  ---+
                   |        Padding         |    10
                   +---                  ---+
                   |                        |    11
                   +------------------------+
                   |                        |    12
                   +---     LOC-AREA     ---+
                   |                        |    13
                   +------------------------+
                   |                        |    14
                   :           ID           :     :
                   :                        :     :
                   |                        |    19
                   +------------------------+
                   |        Selector        |    20
                   +------------------------+

Figure 4: ISO IP Address with Encoded ANSI-format Address πŸ’œ

5. Devices Attached to PDNs 🌸

Okay so here's the deal: some end systems are only connected to the Internet indirectly, through public data networks. Simple LANs that are attached only through Public Data Networks count too πŸ›Έ These can use their own address format, based on their X.121 address πŸŽ€ For example, they might use the ISO-X.121 address format discussed in [3] 🧚

These addresses will need handling for routing in much the same way as addresses in routing domains that have been interconnected to the Internet but use other address formats, like the ones specified by national standards bodies πŸ’…βœ¨

6. Migration to Future Routing Protocols ✨

okay so bestie, for now, routing ISO datagrams across the Internet might just use the first 8 octets of the address (AFI, ICD, version, global area number, and routing domain number) as one flat field that says which routing domain you're in 🧚. it's giving simple, but if EGP is doing the inter-domain routing for now, it might need a new version that carries 8 octet routing domain numbers instead of the 3 octet network numbers it uses today 😭.

there are a bunch of groups working on what inter-autonomous system routing needs and on defining a brand new protocol πŸ”₯. one big requirement is handling a very large Internet. the number of networks is expected to keep growing over the life of the addressing scheme in this RFC, to the point where no single gateway can keep separate routes to every network πŸ’€. so routing between domains by routing domain number instead of network number is a necessary long-term step πŸ‘‘.

how fast routing domains will multiply is honestly hard to predict πŸ™ˆ. if networks grow by a factor of 100, it's not clear whether domains do too or grow by less. it's possible domains get so numerous that one gateway can't keep a route to each one either. to get ready for that, the design includes a "global area" field 🌈.

later on, gateways will need to reach destinations in routing domains that use other addressing formats, specified by other organizations like ANSI, ECMA, etc. so you can't count on the first 8 octets always naming the routing domain 😀. that means routing will eventually have to work with variable length routing domain identifiers πŸ¦‹. future inter-domain routing protocols may allow specifying either (1) an address mask, saying which part of an address matters for reaching destinations through a particular domain; or (2) a length field, saying how many leading octets of an address matter. the details of that routing protocol are out of scope for this document 🫢.


References ✨

  • [1] ISO, "Protocol for Providing the Connectionless-Mode Network Services", RFC-926, ISO, December 1984.
  • [2] ANSI, "Guidelines for the Specification of the Structure of the Domain Specific Part (DSP) of the ISO Standard NSAP Address", RFC-982, ANSI Working Document X3S3.3/85-258, April 1986.
  • [3] ISO, Draft International Standard 8348/DAD2, "Information Processing Systems -- Data Communications -- Network Service Definition, Addendum 2 Covering Network Layer Addressing", RFC-941, April 1985.
  • [4] Reynolds, J. and J. Postel, "Assigned Numbers", RFC-1010, USC/Information Sciences Institute, May 1987.
  • [5] Callon, R. and H. W. Braun, "Working Draft -- Guidelines for the use of Internet-IP addresses in the ISO Connectionless-Mode Network Protocol," RFC-986, June 1986.
  • [6] ISO TC97/SC6/WG2 working document, "Intermediate System to Intermediate System Intra-Domain Routing Exchange Protocol".
πŸ“¦ where this page comes from