DNS NSAP RR: DNS NSAP Resource Records
Adding a new DNS record type to map domain names to OSI NSAP addresses
Manning, B. and R. Colella, "DNS NSAP Resource Records", RFC 1637, DOI 10.17487/RFC1637, June 1994, <https://www.rfc-editor.org/info/rfc1637>.
@misc{rfc1637,
series = {Request for Comments},
number = 1637,
howpublished = {RFC 1637},
publisher = {RFC Editor},
doi = {10.17487/RFC1637},
url = {https://www.rfc-editor.org/info/rfc1637},
author = {B. Manning and R. Colella},
title = {{DNS NSAP Resource Records}},
pagetotal = 11,
year = 1994,
month = jun,
} RFC text
Contents
Network Working Group B. Manning
Request for Comments: 1637 Rice University
Obsoletes: 1348 R. Colella
Category: Experimental NIST
June 1994
DNS NSAP Resource Records
Status of this Memo
This memo defines an Experimental Protocol for the Internet
community. This memo does not specify an Internet standard of any
kind. Discussion and suggestions for improvement are requested.
Distribution of this memo is unlimited.
Abstract
The Internet is moving towards the deployment of an OSI lower layers
infrastructure. This infrastructure comprises the connectionless
network protocol (CLNP) and supporting routing protocols. Also
required as part of this infrastructure is support in the Domain Name
System (DNS) for mapping between names and NSAP addresses.
This document defines the format of one new Resource Record (RR) for
the DNS for domain name-to-NSAP mapping. The RR may be used with any
NSAP address format. This document supercedes RFC 1348.
NSAP-to-name translation is accomplished through use of the PTR RR
(see STD 13, RFC 1035 for a description of the PTR RR). This paper
describes how PTR RRs are used to support this translation.
1. Introduction
The Internet is moving towards the deployment of an OSI lower layers
infrastructure. This infrastructure comprises the connectionless
network protocol (CLNP) [6] and supporting routing protocols. Also
required as part of this infrastructure is support in the Domain Name
System (DNS) [8] [9] for mapping between domain names and OSI Network
Service Access Point (NSAP) addresses [7] [Note: NSAP and NSAP
address are used interchangeably throughout this memo].
This document defines the format of one new Resource Record (RR) for
the DNS for domain name-to-NSAP mapping. The RR may be used with any
NSAP address format.
NSAP-to-name translation is accomplished through use of the PTR RR
(see RFC 1035 for a description of the PTR RR). This paper describes
how PTR RRs are used to support this translation.
This memo assumes that the reader is familiar with the DNS. Some
familiarity with NSAPs is useful; see [2] or [7] for additional
information.
2. Background
The reason for defining DNS mappings for NSAPs is to support CLNP in
the Internet. Debugging with CLNP ping and traceroute is becoming
more difficult with only numeric NSAPs as the scale of deployment
increases. Current debugging is supported by maintaining and
exchanging a configuration file with name/NSAP mappings similar in
function to hosts.txt. This suffers from the lack of a central
coordinator for this file and also from the perspective of scaling.
The former is the most serious short-term problem. Scaling of a
hosts.txt-like solution has well-known long-term scaling
difficiencies.
A second reason for this work is the proposal to use CLNP as an
alternative to IP: "TCP and UDP with Bigger Addresses (TUBA), A
Simple Proposal for Internet Addressing and Routing" [1]. For this to
be practical, the DNS must be capable of supporting CLNP addresses.
3. Scope
The methods defined in this paper are applicable to all NSAP formats.
This includes support for the notion of a custom-defined NSAP format
based on an AFI obtained by the IAB for use in the Internet.
As a point of reference, there is a distinction between registration
and publication of addresses. For IP addresses, the IANA is the root
registration authority and the DNS a publication method. For NSAPs,
addendum two of the network service definition, ISO8348/Ad2 [7] is
the root registration authority and this memo defines how the DNS is
used as a publication method.
4. Structure of NSAPs
NSAPs are hierarchically structured to allow distributed
administration and efficient routing. Distributed administration
permits subdelegated addressing authorities to, as allowed by the
delegator, further structure the portion of the NSAP space under
their delegated control. Accomodating this distributed authority
requires that there be little or no a priori knowledge of the
structure of NSAPs built into DNS resolvers and servers.
For the purposes of this memo, NSAPs can be thought of as a tree of
identifiers. The root of the tree is ISO8348/Ad2 [7], and has as its
immediately registered subordinates the one-octet Authority and
Format Identifiers (AFIs) defined there. The size of subsequently-
defined fields depends on which branch of the tree is taken. The
depth of the tree varies according to the authority responsible for
defining subsequent fields.
An example is the authority under which U.S. GOSIP defines NSAPs [3].
Under the AFI of 47, NIST (National Institute of Standards and
Technology) obtained a value of 0005 (the AFI of 47 defines the next
field as being two octets consisting of four BCD digits from the
International Code Designator space [4]). NIST defined the subsequent
fields in [3], as shown in Figure 1. The field immediately following
0005 is a format identifier for the rest of the U.S. GOSIP NSAP
structure, with a hex value of 80. Following this is the three-octet
field, values for which are allocated to network operators; the
registration authority for this field is delegated to GSA (General
Services Administration).
The last octet of the NSAP is the NSelector (NSel). In practice, the
NSAP minus the NSel identifies the CLNP protocol machine on a given
system, and the NSel identifies the CLNP user. Since there can be
more than one CLNP user (meaning multiple NSel values for a given
"base" NSAP), the representation of the NSAP should be CLNP-user
independent. To achieve this, an NSel value of zero shall be used
with all NSAP values stored in the DNS. An NSAP with NSel=0
identifies the network layer itself. It is left to the application
retrieving the NSAP to determine the appropriate value to use in that
instance of communication.
|--------------|
| <-- IDP --> |
|--------------|-------------------------------------|
| AFI | IDI | <-- DSP --> |
|-----|--------|-------------------------------------|
| 47 | 0005 | DFI | AA |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
AA Administrative Authority
Rsvd Reserved
RD Routing Domain Identifier
Area Area Identifier
ID System Identifier
SEL NSAP Selector
Figure 1: GOSIP Version 2 NSAP structure.
When CLNP is used to support TCP and UDP services, the NSel value
used is the appropriate IP PROTO value as registered with the IANA.
For "standard" OSI, the selection of NSel values is left as a matter
of local administration. Administrators of systems that support the
OSI transport protocol [5] in addition to TCP/UDP must select NSels
for use by OSI Transport that do not conflict with the IP PROTO
values.
In the NSAP RRs in Master Files and in the printed text in this memo,
NSAPs are often represented as a string of "."-separated hex values.
The values correspond to convenient divisions of the NSAP to make it
more readable. For example, the "."-separated fields might correspond
to the NSAP fields as defined by the appropriate authority (ISOC,
RARE, U.S. GOSIP, ANSI, etc.). The use of this notation is strictly
for readability. The "."s do not appear in DNS packets and DNS
servers can ignore them when reading Master Files. For example, a
printable representation of the first four fields of a U.S. GOSIP
NSAP might look like
47.0005.80.005a00
and a full U.S. GOSIP NSAP might appear as
47.0005.80.005a00.0000.1000.0020.00800a123456.00.
Other NSAP formats have different lengths and different
administratively defined field widths to accomodate different
requirements. For more information on NSAP formats in use see RFC
1629 [2].
5. The NSAP RR
The NSAP RR is defined with mnemonic "NSAP" and TYPE code 22
(decimal) and is used to map from domain names to NSAPs. Name-to-NSAP
mapping in the DNS using the NSAP RR operates analogously to IP
address lookup. A query is generated by the resolver requesting an
NSAP RR for a provided domain name.
NSAP RRs conform to the top level RR format and semantics as defined
in Section 3.2.1 of RFC 1035.
1 1 1 1 1 1
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| |
/ /
/ NAME /
| |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| TYPE = NSAP |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| CLASS = IN |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| TTL |
| |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| RDLENGTH |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
/ RDATA /
/ /
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
where:
* NAME: an owner name, i.e., the name of the node to which this
resource record pertains.
* TYPE: two octets containing the NSAP RR TYPE code of 22 (decimal).
* CLASS: two octets containing the RR IN CLASS code of 1.
* TTL: a 32 bit signed integer that specifies the time interval in
seconds that the resource record may be cached before the source
of the information should again be consulted. Zero values are
interpreted to mean that the RR can only be used for the
transaction in progress, and should not be cached. For example,
SOA records are always distributed with a zero TTL to prohibit
caching. Zero values can also be used for extremely volatile data.
* RDLENGTH: an unsigned 16 bit integer that specifies the length in
octets of the RDATA field.
* RDATA: a variable length string of octets containing the NSAP.
The value is the binary encoding of the NSAP as it would appear in
the CLNP source or destination address field. A typical example of
such an NSAP (in hex) is shown below. For this NSAP, RDLENGTH is
20 (decimal); "."s have been omitted to emphasize that they don't
appear in the DNS packets.
39840f80005a0000000001e13708002010726e00
5.1 Additional Section Processing
[The specification in this section is necessary for completeness in
describing name server support for TUBA. For the time being, name
servers participating in TUBA demonstrations MAY ELECT to implement
this behavior; it SHOULD NOT be the default behavior of name servers
because the IPng sweepstakes are still outstanding and further
consideration is required for truncation and other issues.]
RFC 1035 describes the additional section processing (ASP) required
when servers encounter NS records during query processing. From
Section 3.3.11, "NS RDATA format":
NS records cause both the usual additional section processing to
locate a type A record, and, when used in a referral, a special
search of the zone in which they reside for glue information.
For TUBA, identical ASP is required on type NSAP records to support
servers and resolvers that use CLNP, either because of preference or
because it is the only internetworking protocol available (i.e., in
the absense of IPv4). Thus, NS records cause ASP which locates a type
NSAP record in addition to a type A record. Both type A and NSAP
records should be returned, if available.
6. NSAP-to-name Mapping Using the PTR RR
The PTR RR is defined in RFC 1035. This RR is typically used under
the "IN-ADDR.ARPA" domain to map from IPv4 addresses to domain names.
Similarly, the PTR RR is used to map from NSAPs to domain names under
the "NSAP.INT" domain. A domain name is generated from the NSAP
according to the rules described below. A query is sent by the
resolver requesting a PTR RR for the provided domain name.
A domain name is generated from an NSAP by reversing the hex nibbles
of the NSAP, treating each nibble as a separate subdomain, and
appending the top-level subdomain name "NSAP.INT" to it. For example,
the domain name used in the reverse lookup for the NSAP
47.0005.80.005a00.0000.0001.e133.ffffff000162.00
would appear as
0.0.2.6.1.0.0.0.f.f.f.f.f.f.3.3.1.e.1.0.0.0.0.0.0.0.0.0.a.5.0.0. \
0.8.5.0.0.0.7.4.NSAP.INT.
[Implementation note: For sanity's sake user interfaces should be
designed to allow users to enter NSAPs using their natural order,
i.e., as they are typically written on paper. Also, arbitrary "."s
should be allowed (and ignored) on input.]
7. Master File Format
The format of NSAP RRs (and NSAP-related PTR RRs) in Master Files
conforms to Section 5, "Master Files," of RFC 1035. Below are
examples of the use of these RRs in Master Files to support name-to-
NSAP and NSAP-to-name mapping.
The NSAP RR introduces a new hex string format for the RDATA field.
The format is "0x" (i.e., a zero followed by an 'x' character)
followed by a variable length string of hex characters (0 to 9, a to
f). The hex string is case-insensitive. "."s (i.e., periods) may be
inserted in the hex string anywhere after the "0x" for readability.
The "."s have no significance other than for readability and are not
propagated in the protocol (e.g., queries or zone transfers).
;;;;;;
;;;;;; Master File for domain nsap.nist.gov.
;;;;;;
@ IN SOA emu.ncsl.nist.gov. root.emu.ncsl.nist.gov. (
1994041800 ; Serial - date
1800 ; Refresh - 30 minutes
300 ; Retry - 5 minutes
604800 ; Expire - 7 days
3600 ) ; Minimum - 1 hour
IN NS emu.ncsl.nist.gov.
IN NS tuba.nsap.lanl.gov.
;
;
$ORIGIN nsap.nist.gov.
;
; hosts
;
bsdi1 IN NSAP 0x47.0005.80.005a00.0000.0001.e133.ffffff000161.00
IN A 129.6.224.161
IN HINFO PC_486 BSDi1.1(TUBA)
;
bsdi2 IN NSAP 0x47.0005.80.005a00.0000.0001.e133.ffffff000162.00
IN A 129.6.224.162
IN HINFO PC_486 BSDi1.1(TUBA)
;
cursive IN NSAP 0x47.0005.80.005a00.0000.0001.e133.ffffff000171.00
IN A 129.6.224.171
IN HINFO PC_386 DOS_5.0/NCSA_Telnet(TUBA)
;
infidel IN NSAP 0x47.0005.80.005a00.0000.0001.e133.ffffff000164.00
IN A 129.6.55.164
IN HINFO PC/486 BSDi1.0(TUBA)
;
; routers
;
cisco1 IN NSAP 0x47.0005.80.005a00.0000.0001.e133.aaaaaa000151.00
IN A 129.6.224.151
IN A 129.6.225.151
IN A 129.6.229.151
;
3com1 IN NSAP 0x47.0005.80.005a00.0000.0001.e133.aaaaaa000111.00
IN A 129.6.224.111
IN A 129.6.225.111
IN A 129.6.228.111
;;;;;;
;;;;;; Master File for reverse mapping of NSAPs under the
;;;;;; NSAP prefix:
;;;;;;
;;;;;; 47.0005.80.005a00.0000.0001.e133
;;;;;;
@ IN SOA emu.ncsl.nist.gov. root.emu.ncsl.nist.gov. (
1994041800 ; Serial - date
1800 ; Refresh - 30 minutes
300 ; Retry - 5 minutes
604800 ; Expire - 7 days
3600 ) ; Minimum - 1 hour
IN NS emu.ncsl.nist.gov.
IN NS tuba.nsap.lanl.gov.
;
;
$ORIGIN 3.3.1.e.1.0.0.0.0.0.0.0.0.0.a.5.0.0.0.8.5.0.0.0.7.4.NSAP.INT.
;
0.0.1.6.1.0.0.0.f.f.f.f.f.f IN PTR bsdi1.nsap.nist.gov.
;
0.0.2.6.1.0.0.0.f.f.f.f.f.f IN PTR bsdi2.nsap.nist.gov.
;
0.0.1.7.1.0.0.0.f.f.f.f.f.f IN PTR cursive.nsap.nist.gov.
;
0.0.4.6.1.0.0.0.f.f.f.f.f.f IN PTR infidel.nsap.nist.gov.
;
0.0.1.5.1.0.0.0.a.a.a.a.a.a IN PTR cisco1.nsap.nist.gov.
;
0.0.1.1.1.0.0.0.a.a.a.a.a.a IN PTR 3com1.nsap.nist.gov.
8. Security Considerations
Security issues are not discussed in this memo.
9. Authors' Addresses
Bill Manning
Rice University -- ONCS
P.O. Box 1892
6100 South Main
Houston, Texas 77251-1892
USA
Phone: +1.713.285.5415
EMail: bmanning@rice.edu
Richard Colella
National Institute of Standards and Technology
Technology/B217
Gaithersburg, MD 20899
USA
Phone: +1 301-975-3627
Fax: +1 301 590-0932
EMail: colella@nist.gov
10. References
[1] Callon R., "TCP and UDP with Bigger Addresses (TUBA), A Simple
Proposal for Internet Addressing and Routing", RFC 1347, DEC,
June 1992.
[2] Colella, R., Gardner, E., Callon, R., and Y. Rekhter, "Guidelines
for OSI NSAP Allocation inh the Internet", RFC 1629, NIST,
Wellfleet, Mitre, T.J. Watson Research Center, IBM Corp., May
1994.
[3] GOSIP Advanced Requirements Group. Government Open Systems
Interconnection Profile (GOSIP) Version 2. Federal Information
Processing Standard 146-1, U.S. Department of Commerce, National
Institute of Standards and Technology, Gaithersburg, MD, April
1991.
[4] ISO/IEC. Data interchange - structures for the identification of
organization. International Standard 6523, ISO/IEC JTC 1,
Switzerland, 1984.
[5] ISO/IEC. Connection oriented transport protocol specification.
International Standard 8073, ISO/IEC JTC 1, Switzerland, 1986.
[6] ISO/IEC. Protocol for Providing the Connectionless-mode Network
Service. International Standard 8473, ISO/IEC JTC 1,
Switzerland, 1986.
[7] ISO/IEC. Information Processing Systems -- Data Communications --
Network Service Definition Addendum 2: Network Layer Addressing.
International Standard 8348/Addendum 2, ISO/IEC JTC 1,
Switzerland, 1988.
[8] Mockapetris, P., "Domain Names -- Concepts and Facilities", STD
13, RFC 1034, USC/Information Sciences Institute, November 1987.
[9] Mockapetris, P., "Domain Names -- Implementation and
Specification", STD 13, RFC 1035, USC/Information Sciences
Institute, November 1987.
AI ELI5
On this page
§1Introduction and Background
In the early 1990s, the Internet was exploring the deployment of OSI (Open Systems Interconnection) lower-layer protocols as a complement to IP-based networking. Central to this effort was CLNP (Connectionless Network Protocol), which operates at the network layer and uses NSAP addresses (Network Service Access Point addresses) instead of IP addresses.
RFC 1637 defines a new DNS resource record type to support this transition. The motivation is practical: as CLNP debugging tools like ping and traceroute became more common, administrators needed a way to translate human-readable domain names to NSAP addresses, just as DNS does for IP addresses. Without DNS support, administrators had to maintain manual configuration files with name-to-NSAP mappings, similar to the old hosts.txt file. This approach does not scale and requires a central coordinator.
The RFC also mentions the TUBA proposal (TCP and UDP with Bigger Addresses), which suggested using CLNP as an alternative to IP entirely, replacing IP's 32-bit addresses with NSAP addresses to support much larger address spaces.
There was a new way to address computers on networks called NSAPs. DNS needed a new entry type so it could translate names to NSAP addresses, just like it does for regular Internet addresses.
§2NSAP Structure and Format
NSAP addresses are hierarchically structured, much like domain names, to allow distributed administration and efficient routing. An NSAP begins with an AFI (Authority and Format Identifier), which designates one octet and identifies the top-level authority that defined the rest of the address structure.
Below the AFI is the IDI (Initial Domain Identifier), followed by the DSP (Domain Specific Part), which varies in length and structure depending on the authority. For example, U.S. GOSIP (Government Open Systems Interconnection Profile) defines NSAPs starting with AFI 47 and IDI 0005, followed by organizational and administrative identifiers. The last octet of every NSAP is the NSel (NSAP Selector), which identifies the transport service using that NSAP. To maintain transport independence, NSAPs stored in DNS use NSel=0.
In the DNS, NSAPs are represented as hex strings with dots for readability, such as 47.0005.80.005a00.0000.0001.e133.ffffff000162.00, though the dots are not part of the binary encoding in DNS packets.
NSAP addresses are built in layers: first a code saying which organization made the rule, then fields for different levels of the organization. The last number identifies which service on that computer.
§3The NSAP Resource Record
The NSAP RR uses type code 22 and follows the standard DNS resource record format defined in RFC 1035. Like an A record that maps a domain name to an IPv4 address, an NSAP RR maps a domain name to an NSAP address.
The RR contains the following fields: NAME (the domain name), TYPE (22 for NSAP), CLASS (typically IN for Internet), TTL (time-to-live, controlling caching), RDLENGTH (the length of the data), and RDATA (the binary NSAP address itself). The RDATA field holds the raw binary encoding of the NSAP, exactly as it appears in CLNP packets.
In DNS zone files, NSAP addresses are written using a hexadecimal format: 0x followed by hex digits, with optional dots for readability. For example:
bsdi1.nsap.nist.gov. IN NSAP 0x47.0005.80.005a00.0000.0001.e133.ffffff000161.00
The RFC also discusses additional section processing, which extends NS record handling to include NSAP records alongside A records when name servers are queried, supporting both CLNP and IP-based systems.
Like a regular DNS entry for an Internet address, the NSAP entry has the domain name, the type of record, and the address written in hexadecimal.
| Field | Name | Size | Value | Description |
|---|---|---|---|---|
AFI | AFI | 1 byte | Authority and Format Identifier (e.g., 47 for GOSIP) | |
IDI | IDI | 2 bytes | Initial Domain Identifier (e.g., 0005) | |
DFI | DFI | 1 byte | DSP Format Identifier | |
AA | AA | 3 bytes | Administrative Authority | |
RSVD | Reserved | 2 bytes | Reserved field | |
RD | RD | 2 bytes | Routing Domain Identifier | |
AREA | Area | 2 bytes | Area Identifier | |
ID | ID | 6 bytes | System Identifier | |
SEL | SEL | 1 byte | NSAP Selector (transport service identifier) |
§4Reverse Mapping with PTR Records
Just as DNS supports reverse lookup (finding a name given an IP address) using PTR records under the IN-ADDR.ARPA domain, RFC 1637 defines how to perform the same operation for NSAPs using the NSAP.INT domain.
To perform a reverse lookup for an NSAP, the hex nibbles (half-bytes) of the NSAP are reversed, each nibble becomes a separate subdomain label, and the result is appended to NSAP.INT. For example, the NSAP 47.0005.80.005a00.0000.0001.e133.ffffff000162.00 becomes the reverse-lookup domain name:
0.0.2.6.1.0.0.0.f.f.f.f.f.f.3.3.1.e.1.0.0.0.0.0.0.0.0.0.a.5.0.0.0.8.5.0.0.0.7.4.NSAP.INT.
A PTR record at this name holds the corresponding domain name, allowing tools like ping and traceroute to display human-readable names when given an NSAP address.
To find a name when you know the NSAP address, you write the address backward, one hex digit at a time, and look it up under NSAP.INT in the DNS.
§5Scope and Deployment
RFC 1637 is scoped to support all NSAP formats, including custom formats based on an AFI (Authority and Format Identifier) obtained by the IAB for Internet use. The RFC emphasizes that NSAP allocation and registration are governed by ISO standards (specifically ISO8348/Ad2), not by IANA, though DNS serves as the publication mechanism.
The RFC includes examples of DNS zone files showing how to set up NSAP records for hosts and routers, as well as PTR records for reverse lookup. These examples illustrate deployment in a TUBA-enabled network environment where both IPv4 addresses and NSAP addresses are used.
The document notes that these mechanisms are necessary for practical debugging and configuration of CLNP networks and support the TUBA proposal if it were to replace IP as the Internet's primary addressing scheme.
The record type works with any kind of NSAP address, and the DNS can store as many NSAP records as needed alongside regular address records.