RFC 2603

ILMI-Based Server Discovery for NHRP

πŸ“… published June 1999, from ietf

RFC 2603: ILMI-Based Server Discovery for NHRP ✨

Network Working Group 🌸 Request for Comments: 2603 πŸ’– Category: Standards Track πŸŽ€ Date: June 1999 πŸ¦‹ Author: Mike Davison, Cisco Systems πŸ‘‘ Obsoletes / Updates: this doc doesn't list either one πŸ™ˆ


Status of This Memo ✨

This document specifies an Internet standards track protocol for the Internet community, and requests discussion and suggestions for improvements. Please refer to the current edition of the "Internet Official Protocol Standards" (STD 1) for the standardization state and status of this protocol. Distribution of this memo is unlimited.

Copyright (C) The Internet Society (1999). All Rights Reserved.

Abstract πŸ’œ

okay so this memo explains how ILMI-based Server Discovery gets used to find NHRP servers 🧚 It's the method where ATM-attached hosts and routers figure out the ATM addresses of servers all on their own, no manual setup needed. literally the whole point πŸ’…

1. Introduction πŸ“

okay so right now setting up a host or router for NHRP [1] is a whole mess 😭 You have to hand-configure at least one ATM address on every single host or router in the network. And diskless hosts? Can't even do NHRP, because they have no local config to lean on πŸ’€ ILMI-based Server Discovery (we'll call it "server discovery") fixes all of that 🫢

This memo gives a quick tour of the Integrated Local Management Interface (ILMI) and the Service Registry MIB, both from the ATM Forum ✨ If you want the full deep dive, go read [2]. But what's in here is enough to get how NHRP server discovery works πŸ¦‹

2. Integrated Local Management Interface πŸŽ€

The Integrated Local Management Interface (ILMI) [2] is how ATM-attached devices like hosts, routers, and ATM switches pass management info back and forth πŸ’Œ It's built on Simple Network Management Protocol (SNMP) Version 1 and supports get, get-next, set and trap operations πŸ”₯

The ILMI spec calls the switch side of the ATM link the 'network side', and the host/router side the 'user side'. The Service Registry MIB (more on it in Section 3) lives on the network side, and the user side is what queries it πŸ‘‘

3. ILMI 4.0 Service Registry MIB 🧚

Server discovery runs on the Service Registry MIB, which the ATM Forum defined in ILMI Specification Version 4.0 [2] ✨ To keep the existing IP over ATM setup working, ATM switches MUST support the Service Registry MIB πŸ’…

Each row in the service registry table [2] looks like this:

AtmfSrvcRegEntry ::= SEQUENCE {
    atmfSrvcRegPort          INTEGER,
    atmfSrvcRegServiceID     OBJECT IDENTIFIER,
    atmfSrvcRegATMAddress    AtmAddress,
    atmfSrvcRegAddressIndex  INTEGER,
    atmfSrvcRegParm1         OCTET STRING
}

Here's what each field does 🫢

  • atmfSrvcRegPort: the ATM port number this entry has info for. A value of zero MAY be used to mean whichever ATM interface the management request came in on 🌸
  • atmfSrvcRegServiceID: the service identifier that uniquely names the type of service at the address in the table (see Section 3.2 for the NHRP OID) πŸŽ€
  • atmfSrvcRegATMAddress: the full address of the service. The ATM client uses this to set up a connection with the service πŸ¦‹
  • atmfSrvcRegAddressIndex: an arbitrary integer that tells apart multiple rows with different ATM addresses for the same service on the same port πŸ’–
  • atmfSrvcRegParm1: an octet string whose size and meaning depend on the value of atmfSrvcRegServiceID 🧚

The service registry table is indexed by atmfSrvcRegPort, atmfSrvcRegServiceID and atmfSrvcRegAddressIndex πŸ’œ

3.1 Service Parameter String 🌈

The service registry table has a generic parameter string, so protocol-specific parameters can be specified ✨ To stay consistent with [1], the parameter string for NHRP SHALL be:

    ar$pro.type   16   bits     Protocol type
    ar$pro.snap   40   bits     Optional extension to protocol type
    ar$plen        8   bits     Length of protocol address
    ar$addr       plen octets   Network address
    ar$mask       plen octets   Network mask

Where:

    ar$pro.type   - See [1]. (IPv4 is 0x0800, IPv6 is 0x86DD)

    ar$pro.snap   - See [1]. (IPv4 and IPv6 are 0)

    ar$plen       - Length of the protocol address.
                     (IPv4 is 4, IPv6 is 16)

    ar$addr       - Network address represented in network byte
                     order

    ar$mask       - Network mask represented in network byte order

3.2 Service Object Identifier πŸ¦‹

This OID is assigned in the ATM Forum Service Registry MIB, and it names ATMARP within the context of server discovery πŸ’…

atmfSrvcRegNHRP OBJECT IDENTIFIER ::= { 1.3.6.1.4.1.353.1.5.5 }

It doesn't name any managed objects. It's just used to find the right rows in the service registry table πŸ™ˆ

4. Next Hop Client Behavior πŸŽ€

A Next Hop Client (NHC) reads the service registry table over ILMI with the SNMP GetNext operator 🌸 It "sweeps" (SNMP lingo for a linear search) starting from {Port = 0, ServiceID = <see Section 3.2>, Index = 0}, keeping the port number and serviceID fixed the whole time. (Port number 0 is what ILMI uses to mean "this port" 🧚)

An NHC with no local configuration, like a diskless workstation, MUST use the row with the lowest index value when several Next Hop Servers (NHS) are listed, possibly for multiple networks πŸ’–

An NHC that has local IP configuration MUST use a row with the matching IP address πŸ”₯ For example, say an IP router has 3 logical interfaces on one physical interface, with IP addresses 1.0.0.1/8, 128.10.0.1/16 and 171.69.150.226/24. The router sweeps the service registry table looking for rows whose atmfSrvcRegParm1 values match these 🫢

  Net number/mask  atmfSrvcRegParm1
  ---------------- --------------------------------------------------
  1.0.0.0/8        08 00 00 00 00 00 00  04  01 00 00 00  ff 00 00 00
  128.10.0.0/16    08 00 00 00 00 00 00  04  80 0a 00 00  ff ff 00 00
  171.69.150.0/24  08 00 00 00 00 00 00  04  ab 45 96 00  ff ff ff 00

Once the right atmfSrvcRegParm1 values turn up, the router MAY set up an SVC to the chosen NHS and run the protocol operations it needs πŸ’…

Redundant NHS are supported through multiple rows in the service registry table ✨ The NHS list is ordered, with the primary NHS holding the lowest index value. The NHC MUST try the primary NHS before it tries a secondary NHS 🌈 Administrators MUST make sure the listed NHS are synchronized πŸ‘‘

5. NHRP Server (NHS) Behavior πŸ’œ

A Next Hop Server (NHS) SHALL be configured locally 🧚 The NHS MAY pull the NHRP service registry data to validate the results. If it grabs an incorrect row, the error MAY be flagged in a way that only matters locally πŸ™ˆ

6. Relationship with PNNI Augmented Routing πŸ¦‹

The ATM Forum made an augmented version of PNNI, called "PNNI Augmented Routing" (PAR) [3] ✨ PAR can distribute data such as NHS addresses. The ATM Forum is also working on a proxy mechanism for PAR (Proxy PAR), which would let a UNI-attached host or router get PAR data without running a full PAR implementation πŸŽ€

These mechanisms are a promising way to manage the service registry tables kept on each switch in an ATM network 🌸 They wouldn't need any changes to the mechanism this memo defines. Hosts and routers can keep using ILMI-based or Proxy PAR-based server discovery, and network admins can manage the service registry data through local config or via PAR and Proxy PAR πŸ’–

7. Security Considerations πŸ”₯

Okay, this part is serious bestie 😭 The server discovery mechanism is built on the ILMI management framework and whatever security that framework has. Access to user-side or network-side info is controlled by how the MIB is designed, NOT by protocol security mechanisms πŸ’€

The service registry MIB, the table with the server discovery info, is defined in [2] with read-only access. So any user-side device MAY query the service registry, but it may not change it via ILMI. The service registry table MUST be modified through local configuration on the ATM switch instead 🫢


References 🌈

[1]  Luciani, J., et al., "NBMA Next Hop Resolution Protocol", RFC
     2332, April 1998.

[2]  ATM Forum, "Integrated Local Management Interface (ILMI)
     Specification Version 4.0," af-ilmi-0065.000, September 1996.

[3]  ATM Forum, "PNNI Augmented Routing (PAR) Version 1.0," af-ra-
     0104, January 1999.

Author's Address πŸŽ€

Mike Davison
Cisco Systems
170 West Tasman Drive
San Jose, California 95134

Phone: (408) 526-4000
EMail: mike.davison@cisco.com

Copyright (C) The Internet Society (1999). All Rights Reserved.

This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to the Internet Society or other Internet organizations, except as needed for the purpose of developing Internet standards in which case the procedures for copyrights defined in the Internet Standards process must be followed, or as required to translate it into languages other than English.

The limited permissions granted above are perpetual and will not be revoked by the Internet Society or its successors or assigns.

This document and the information contained herein is provided on an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS 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.

Acknowledgement 🧚

Funding for the RFC Editor function is currently provided by the Internet Society. ✨

πŸ“¦ where this page comes from