RFC 2602

ILMI-Based Server Discovery for MARS

πŸ“… published June 1999, from ietf

ILMI-Based Server Discovery for MARS πŸ¦‹

okay bestie, this is RFC 2602 πŸ’– It's from the Network Working Group, written by Mike Davison at Cisco Systems, and it's a Standards Track doc dated June 1999. It doesn't list anything it obsoletes or updates. πŸŽ€

Status of this Memo ✨

this is an Internet standards track protocol for the Internet community, and it's asking for discussion and suggestions for improvements 🫢 for the current standardization state and status, check the current edition of the "Internet Official Protocol Standards" (STD 1). distribution of this memo is unlimited 🌈

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

Abstract 🌸

this memo explains how ILMI-based Server Discovery works. it gives ATM-attached hosts and routers a way to dynamically find out the ATM addresses of servers, and it's the method that's used to locate MARS servers πŸ”₯

1. Introduction 🧚

so, right now setting up a host or router to use MARS [1] is a whole mess 😭 it's cumbersome and error-prone because at least one ATM address has to be statically configured on every host or router in the network. and diskless hosts basically can't use MARS at all, since they need local configuration to work. ILMI-based Server Discovery (we'll just call it "server discovery") is the fix for all of this πŸ’œ

this memo also gives a quick overview of the Integrated Local Management Interface (ILMI) and the Service Registry MIB, which the ATM Forum defined. you can read [2] for the full details on ILMI and this MIB, but what's here is enough to understand how it supports MARS server discovery πŸ¦‹

2. Integrated Local Management Interface πŸŽ€

the Integrated Local Management Interface (ILMI) [2] is how ATM-attached devices (hosts, routers, and ATM switches) pass management information back and forth. it's based on SNMP Version 1 and supports get, get-next, set and trap operations πŸ’…

the ILMI spec labels the switch side of the ATM link as the 'network side', and the host/router side as the 'user side'. the Service Registry MIB (more on that in Section 3) lives on the network side and gets queried from the user side πŸ‘‘

3. ILMI 4.0 Service Registry MIB ✨

server discovery uses the Service Registry MIB that the ATM Forum defined in ILMI Specification Version 4.0 [2] πŸ”₯ to support the existing IP over ATM setup (ATMARP and MARS), ATM switches shall support the Service Registry MIB. (the text says "must", so this one's a requirement, bestie.)

a 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 means πŸ’–

  • atmfSrvcRegPort: the ATM port number this entry has management info for. a value of zero can be used to mean the ATM interface where the management request came in.
  • atmfSrvcRegServiceID: the service identifier that uniquely names the type of service at the address in the table. (see Section 3.2 for the MARS 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 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 MARS shall be πŸŽ€

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

where:

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

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

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

mar$addr       - Network address represented in network byte
                 order

mar$mask       - Network mask represented in network byte order

3.2 Service Object Identifier πŸ’œ

this OID was assigned in the ATM Forum Service Registry MIB, and it names MARS within the context of server discovery πŸ¦‹

atmfSrvcRegMARS   OBJECT IDENTIFIER ::= { 1.3.6.1.4.1.353.1.5.4 }

it doesn't name any managed objects. instead, it's used to find the right rows in the service registry table πŸ“

4. MARS Client Behavior πŸ’…

a MARS client accesses the service registry table through ILMI, using the SNMP GetNext operator to "sweep" it (SNMP lingo for a linear search) πŸ” starting at {Port = 0, ServiceID = <see Section 3.2>, Index = 0}. while it sweeps, it keeps the port number and the serviceID constant ✨

(port number 0 is what ILMI uses to mean "this port" 🧚)

a MARS client with no local configuration, like a diskless workstation, must use the row with the lowest index value if multiple MARS servers (maybe for multiple networks) are listed πŸ‘‘

MARS clients that have local IP configuration must use a row with the matching IP address 🫢 for example, picture an IP router with 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 are found, the router may set up an SVC to the chosen server and do the protocol operations it needs 🌸

redundant MARS servers are supported with multiple rows in the service registry table 🌈 this list is ordered so the primary MARS server has the lowest index value. the MARS client must try the primary MARS server before it uses a secondary one. administrators must make sure the listed MARS servers are synchronized πŸ”₯

5. MARS Server Behavior πŸŽ€

a MARS server shall be configured locally 🧚 the MARS server may pull the MARS service registry data to check its results. if it pulls an incorrect row, the error may be flagged in a locally significant way πŸ‘€

6. Relationship with PNNI Augmented Routing πŸ¦‹

the ATM Forum made an augmented version of PNNI, called "PNNI Augmented Routing" (or PAR) [3] ✨ PAR can distribute data like MARS server addresses. the ATM Forum is also working on a proxy mechanism for PAR (Proxy PAR), which would let a UNI-attached host or router access PAR data without a full PAR implementation πŸ’œ

these mechanisms are a promising way to manage the service registry tables kept on each switch in an ATM network πŸ’… and they wouldn't require any changes to the mechanism in this memo. hosts and routers can keep using ILMI-based or Proxy PAR-based server discovery, and admins can manage the service registry data with local configuration or through PAR and Proxy PAR 🫢

7. Security Considerations πŸ”₯

the server discovery mechanism is built on the ILMI management framework, and on the security that comes with it 😳 access to user- or network-side information is controlled by MIB design, not by protocol security mechanisms.

the Service Registry MIB (the table that holds the server discovery info) is defined in [2] with read-only access πŸ”’ that means any user-side device can query the service registry, but it can't modify the table through ILMI. the service registry table has to be changed through local configuration on the ATM switch instead 🚨

References πŸ“š

[1]  Armitage, G., "Support for Multicast over UNI 3.0/3.1 based ATM
     Networks", RFC 2022, November 1996.

[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. derivative works that comment on or otherwise explain it, or help implement it, 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