SNMP over AppleTalk
Run SNMP network management on AppleTalk instead of UDP and IP.
Minshall, G. and M. Ritter, "SNMP over AppleTalk", RFC 1419, DOI 10.17487/RFC1419, March 1993, <https://www.rfc-editor.org/info/rfc1419>.
@misc{rfc1419,
series = {Request for Comments},
number = 1419,
howpublished = {RFC 1419},
publisher = {RFC Editor},
doi = {10.17487/RFC1419},
url = {https://www.rfc-editor.org/info/rfc1419},
author = {G. Minshall and M. Ritter},
title = {{SNMP over AppleTalk}},
pagetotal = 7,
year = 1993,
month = mar,
} RFC text
Contents
Network Working Group G. Minshall
Request for Comments: 1419 Novell, Inc.
M. Ritter
Apple Computer, Inc.
March 1993
SNMP over AppleTalk
Status of this Memo
This RFC specifies an IAB standards track protocol for the Internet
community, and requests discussion and suggestions for improvements.
Please refer to the current edition of the "IAB Official Protocol
Standards" for the standardization state and status of this protocol.
Distribution of this memo is unlimited.
Introduction
This memo describes the method by which the Simple Network Management
Protocol (SNMP) as specified in [1] can be used over AppleTalk
protocols [2] instead of the Internet UDP/IP protocol stack. This
specification is useful for network elements which have AppleTalk
support but lack TCP/IP support. It should be noted that if a
network element supports multiple protocol stacks, and UDP is
available, it is the preferred network layer to use.
SNMP has been successful in managing Internet capable network
elements which support the protocol stack at least through UDP, the
connectionless Internet transport layer protocol. As originally
designed, SNMP is capable of running over any reasonable transport
mechanism (not necessarily a transport protocol) that supports bi-
directional flow and addressability.
Many non-Internet capable network elements are present in networks.
Some of these elements are equipped with the AppleTalk protocols.
One method of using SNMP to manage these elements is to define a
method of transmitting an SNMP message inside an AppleTalk protocol
data unit.
This RFC is the product of the SNMP over a Multi-protocol Internet
Working Group of the Internet Engineering Task Force (IETF).
1. Background
The AppleTalk equivalent of UDP (and IP) is DDP (Datagram Delivery
Protocol). The header field of a DDP datagram includes (at least
conceptually) source and destination network numbers, source and
destination node numbers, and source and destination socket numbers.
Additionally, DDP datagrams include a "protocol type" in the header
field which may be used to further demultiplex packets. The data
portion of a DDP datagram may contain from zero to 586 octets.
AppleTalk's Name Binding Protocol (NBP) is a distributed name-to-
address mapping protocol. NBP names are logically of the form
"object:type@zone", where "zone" is determined, loosely, by the
network on which the named entity resides; "type" is the kind of
entity being named; and "object" is any string which causes
"object:type@zone" to be unique in the AppleTalk internet.
Generally, "object" also helps an end-user determine which instance
of a specific type of service is being accessed. NBP names are not
case sensitive. Each field of the NBP name ("object", "type", and
"zone") is limited to 32 octets. The octets usually consist of
human-readable ascii characters.
2. Specification
SNMP REQUESTS encapsulated according to this standard will be sent to
DDP socket number 8; they will contain a DDP protocol type of 8. The
data octets of the DDP datagram will be a standard SNMP message as
defined in [1].
SNMP RESPONSES encapsulated according to this standard will be sent
to the DDP socket number which originated the corresponding SNMP
request; they will contain a DDP protocol type of 8. The data octets
of the DDP datagram will be a standard SNMP message as defined in
[1]. (Note: as stated in [1], section 4.1, the *source* address of
a RESPONSE PDU will be the same as the *destination* address of the
corresponding REQUEST PDU.)
A network element which is capable of responding to SNMP REQUESTS
over AppleTalk must advertise this capability via the AppleTalk Name
Binding Protocol using an NBP type of "SNMP Agent" (hex 53, 4E, 4D,
50, 20, 41, 67, 65, 6E, 74).
A network management station which is capable of receiving an SNMP
TRAP must advertise this capability via the AppleTalk Name Binding
Protocol using an NBP type of "SNMP Trap Handler" (hex 53, 4E, 4D,
50, 20, 54, 72, 61, 70, 20, 48, 61, 6E, 64, 6C, 65, 72).
SNMP TRAPS encapsulated according to this standard will be sent to
DDP socket number 9; they will contain a DDP protocol type of 8. The
data octets of the DDP datagram will be a standard SNMP message as
defined in [1]. The agent-addr field of the Trap-PDU must be filled
with a NetworkAddress of all zeros (the unknown IP address). Thus, to
identify the trap sender, the name and value of the nbpObject and
nbpZone corresponding to the nbpEntry with the nbpType equal to "SNMP
Agent" should be included in the variable-bindings of any trap that
is sent [3].
The NBP name for both an agent and a trap handler should be stable -
it should not change any more often than the IP address of a typical
TCP/IP end system changes. It is suggested that the NBP name be
stored in some form of stable storage (PRAM, local disk, etc.).
3. Discussion of AppleTalk Addressing
3.1 Introduction
The AppleTalk protocol suite has certain features not manifest in the
standard TCP/IP suite. Its unique naming strategy and the dynamic
nature of address assignment can cause problems for SNMP management
stations that wish to manage AppleTalk networks. TCP/IP end nodes,
as of this writing, have an associated IP address which distinguishes
each from the other. AppleTalk end nodes, in general, have no such
characteristic. The network level address, while often relatively
stable, can change at every reboot (or more frequently).
Thus, a thrust of this proposal is that a "name" (as opposed to an
"address") for an end system be used as the identifying attribute.
This is the equivalent, when dealing with TCP/IP end nodes, of using
the domain name. While the mapping (DNS name, IP address) is more
stable than the mapping (NBP name, DDP address), the mapping (DNS
name, IP address) is not required to exist (e.g., hosts with no host
name, only an IP address). In contrast, all AppleTalk nodes that
implement this specification are required to respond to NBP lookups
and confirms (e.g., implement the NBP protocol stub), which
guarantees that the mapping (NBP name, DDP address) will exist.
In determining the SNMP name to register for an agent, it is
suggested that the SNMP name be a name which is associated with other
network services offered by the machine. On a Macintosh system, for
example, it is suggested that the system name (the "Macintosh Name"
for System 7.0 which is used to advertise file sharing, program-to-
program communication, and possibly other services) be used as the
"object" field of the NBP name. This name has AppleTalk
significance, and is tightly bound to the network's concept of a
given system's identity.
NBP lookups, which are used to turn NBP names into DDP addresses, can
cause large amounts of network traffic as well as consume CPU
resources. It is also the case that the ability to perform an NBP
lookup is sensitive to certain network disruptions (such as zone
table inconsistencies, etc.) which would not prevent direct AppleTalk
communications between a management station and an agent.
Thus, it is recommended that NBP lookups be used infrequently with
the primary purpose being to create a cache of name-to-address
mappings. These cached mappings should then be used for any further
SNMP requests. It is recommended that SNMP management stations
maintain this cache between reboots. This caching can help minimize
network traffic, reduce CPU load on the network, and allow for (some
amount of) network trouble shooting when the basic name-to-address
translation mechanism is broken.
3.2 How To Acquire NBP names:
A management station may have a pre-configured list of names of
agents to manage. A management station may allow for an interaction
with an operator in which a list of manageable agents is acquired
(via NBP) and presented for the operator to choose which agents
should be managed by that management station. Finally, a management
station may manage all manageable agents in a set of zones or
networks.
An agent must be configured with the name of a specific management
station or group of management stations before sending SNMP traps.
In the absence of any such configured information, an agent is NOT to
generate any SNMP traps. In particular, an agent is NEVER to
initiate a wildcard NBP lookup to find a management station to
receive a trap. All NBP lookups generated by an agent must be fully
specified. Note, however, that this does not apply to a
configuration utility that might be associated with such an agent.
Such a utility may well allow a user to navigate around the network
to select a management station or stations to receive SNMP traps from
the agent.
3.3 When To Turn NBP Names Into Addresses:
When SNMP agents or management stations use a cache entry to address
an SNMP packet, they should attempt to confirm the mapping if it
hasn't been confirmed in T1 seconds. This cache entry lifetime, T1,
has a minimum, default value of 60 seconds. This value should be
configurable.
A management station may decide to prime its cache of names prior to
actually sending any SNMP requests to any given agent. In general,
it is expected that a management station may want to keep certain
mappings "more current" than other mappings. In particular, those
nodes which represent the network infrastructure (routers, etc.) may
be deemed "more important" by the management station.
Note, however, that a long-running management station starting up and
reading a configuration file containing a number of NBP names should
not attempt to prime its cache all at once. It should, instead,
issue the resolutions over an extended period of time (perhaps in
some pre-determined or configured priority order). Each resolution
might, in fact, be a wildcard lookup in a given zone.
An agent should NEVER prime its cache. It should do NBP lookups (or
confirms) only when it needs to send an SNMP trap to a given
management station. An agent does not need to confirm a cache entry
to reply to a request.
3.4 How To Turn NBP Names Into Addresses:
If the only piece of information available is the NBP name, then an
NBP lookup should be performed to turn that name into a DDP address.
However, if there is a piece of stale information, it can be used as
a hint to perform an NBP confirm (which sends a unicast to the
network address which is presumed to be the target of the name
lookup) to see if the stale information is, in fact, still valid.
An NBP name to DDP address mapping can also be confirmed implicitly
using only SNMP transactions. If a management station is sending a
get-request, it can add a request, in the same packet, for the
destination's nbpObject and nbpZone corresponding to the nbpEntry
with the nbpType equal to "SNMP Agent" [3]. The source DDP address
can be gleaned from the reply and used with the nbpObject and nbpZone
returned to confirm the cache entry.
The above notwithstanding, for set-requests, there is a race
condition that can occur where an SNMP request may go to the wrong
agent (because the old node went down and a new node came up with the
same DDP address.) This is problematic becase the wrong agent might
generate a response packet that the management station could not
distinguish from a reply from the intended agent. In the future,
when SNMP security is implemented, each packet is authenticated at
the destination, and the reply should implicitly confirm the validity
of the cache entry used and prevent this race condition.
3.5 What if NBP is broken:
Under some circumstances, there may be connectivity between a
management station and an agent, but the NBP machinery required to
turn an NBP name into a DDP address may be broken. Examples of
failures which would cause this include: NBP FwdReq (forward NBP
lookup onto locally attached network) broken at a router on the
network containing the agent; NBP BrRq (NBP broadcast request)
mechanism broken at a router on the network containing the managment
station (because of a zone table mis-configuration, for example); or
NBP broken in the target node.
A management station which is dedicated to AppleTalk management might
choose to alleviate some of these failures by implementing the router
portion of NBP within the management station itself. For example,
the management station might already know all the zones on the
AppleTalk internet and the networks on which each zone appears.
Given an NBP lookup which fails, the management station could send an
NBP FwdReq to the network in which the agent was last located. If
that failed, the station could then send an NBP LkUp (an NBP lookup
packet) as a directed (DDP) multicast to each network number on that
network. Of the above (single) failures, this combined approach will
solve the case where either the local router's BrRq to NBP FwdReq
mechanism is broken or the remote router's NBP FwdReq to NBP LkUp
mechanism is broken.
4. Acknowledgements
Some of the boilerplate in this memo is copied from [4], [5], and
[6]. The Apple-IP Working Group was instrumental in defining this
document. Their support and work was greatly appreciated.
5. References
[1] Case, J., Fedor, M., Schoffstall, M., and J. Davin, "A Simple
Network Management Protocol (SNMP)", STD 15, RFC 1157, SNMP
Research, Performance Systems International, Performance Systems
International, MIT Laboratory for Computer Science, May 1990.
[2] Sidhu, G., Andrews, R., and A. Oppenheimer, "Inside AppleTalk
(Second Edition)", Addison-Wesley, 1990.
[3] Waldbusser, S., "AppleTalk Management Information Base", RFC
1243, Carnegie Mellon University, August 1991.
[4] Schoffstall, M., Davin, C., Fedor, M., and J. Case, "SNMP over
Ethernet", RFC 1089, Rensselaer Polytechnic Institute, MIT
Laboratory for Computer Science, NYSERNet, Inc., University of
Tennessee at Knoxville, February 1989.
[5] Bostock, S., "SNMP over IPX", RFC 1420, Novell, Inc., March 1993.
[6] Piscitello, D., "Guidelines for the Specification of Protocol
Support of the SNMP", Work in Progress.
6. Security Considerations
Security issues are discussed in section 3.4.
7. Authors' Addresses
Greg Minshall
Novell, Inc.
1340 Treat Blvd, ste. 500
Walnut Creek, CA 94596
Phone: 510 947-0998
Fax: 510 947-1238
EMail: minshall@wc.novell.com
Mike Ritter
Apple Computer, Inc.
10500 North De Anza Boulevard, MS: 35-K
Cupertino, California 95014
Phone: 408 862-8088
Fax: 408 862-1159
EMail: MWRITTER@applelink.apple.com
AI ELI5
On this page
§1Introduction
The Simple Network Management Protocol (SNMP) was designed to run over UDP/IP. This RFC extends SNMP to work over AppleTalk, enabling management of network devices that support AppleTalk but lack TCP/IP.
Many non-Internet devices during the 1990s were equipped with AppleTalk protocols. Running SNMP over AppleTalk allowed administrators to monitor and manage these devices using the same SNMP tools and framework they used elsewhere, without requiring them to add TCP/IP support.
The specification is straightforward: SNMP messages are carried inside AppleTalk's DDP (Datagram Delivery Protocol) layer, and device discovery uses AppleTalk's Name Binding Protocol (NBP).
Think of SNMP like a telegram service. Normally it travels on TCP/IP roads. This document says you can also send it on AppleTalk roads, letting you manage Apple computers that only speak AppleTalk.
§2AppleTalk Basics
DDP (Datagram Delivery Protocol): AppleTalk's connectionless transport layer, equivalent to UDP in TCP/IP. DDP datagrams can carry 0 to 586 octets of data and include source and destination network numbers, node numbers, socket numbers, and a protocol type field.
NBP (Name Binding Protocol): AppleTalk's distributed name-to-address mapping service. An NBP name has the form object:type@zone, where object is a unique name, type categorizes the service, and zone identifies the network segment. Each field is limited to 32 octets and is not case-sensitive.
Unlike TCP/IP where addresses are stable IP numbers, AppleTalk network addresses can change on reboot. Therefore, SNMP over AppleTalk relies on stable NBP names rather than addresses for identifying devices.
AppleTalk has DDP, which is like UDP for sending short messages. It also has NBP, which is like a name directory that you can look up—"find the printer named LaserWriter in the office zone."
§3SNMP Message Encapsulation
SNMP Requests: Sent to DDP socket 8 with protocol type 8. The DDP datagram's data portion contains a standard SNMP message.
SNMP Responses: Sent back to the originating DDP socket (not necessarily socket 8) with protocol type 8. The source address of the response is the destination address of the request.
SNMP Traps: Sent to DDP socket 9 with protocol type 8. The agent-addr field is filled with all zeros (the unknown IP address in AppleTalk context). To identify the trap sender, the agent must include its NBP name in the variable-bindings.
Agent advertisement: Devices respond to SNMP requests via AppleTalk must advertise using NBP type SNMP Agent. Management stations receiving traps must advertise using NBP type SNMP Trap Handler. These NBP names should be stable and stored in persistent storage.
SNMP questions go to socket 8. Answers come back to wherever the question came from. Alerts (traps) go to socket 9. Each device registers its name in the NBP directory so managers can find it.
- SNMPManagement protocol and message format
- DDPAppleTalk datagram layer
- AppleTalkLink layer and hardware
§4Addressing and Name Resolution Strategy
AppleTalk's dynamic address assignment (addresses can change on reboot) creates challenges for management stations. Unlike TCP/IP systems with stable IP addresses, AppleTalk systems are identified by their NBP names.
Caching names: Management stations should cache NBP name-to-address mappings and reuse them for multiple requests. Caches should persist across reboots to reduce network traffic.
Cache lifetime: A cached mapping should be reconfirmed if it is older than T1 seconds (minimum 60 seconds, configurable). A management station can use an NBP confirm (unicast to the cached address) to check if a mapping is still valid.
Implicit confirmation: A management station can confirm a mapping using SNMP itself: include a request for the device's NBP name in the same SNMP packet. If the response includes matching name information, the address is confirmed.
When NBP breaks: If NBP name lookups fail but direct communication is possible, a management station can send NBP forwarding requests to routers or attempt network-wide broadcasts. The specification suggests dedicated management stations might implement router-level NBP functions.
Since AppleTalk addresses are temporary, managers look up names once and remember them. If an answer gets stale, they ask the device again to confirm the address is still correct. If NBP stops working, clever managers can send the question directly to known networks.
§5Security and Race Conditions
The specification notes a race condition in set-requests: if an old node goes down and a new node comes up with the same DDP address before the cache entry expires, a set-request might go to the wrong agent. The wrong agent could send a response indistinguishable from the intended agent.
This problem is inherent to using addresses instead of authenticated identities. The RFC suggests that future SNMP security mechanisms (with authentication) would prevent this, as the reply would be authenticated to the intended agent.
Agents should be configured with explicit addresses of management stations before sending traps; they must not perform wildcard NBP lookups for trap recipients. In contrast, a management station can do broader lookups to discover agents.
There is a small risk: if a device breaks and another takes over its address before the manager's cache expires, the manager might talk to the wrong device. Future security will fix this by verifying who is answering.