RADIUS Working Group                                     Bernard Aboba
     INTERNET-DRAFT                                               Microsoft
     <draft-ietf-radius-clientmib-04.txt>                         Glen Zorn
     24 July 1997                                                 Microsoft
     
     
                               RADIUS Client MIB
     
     
     1.  Status of this Memo
     
     This document is an Internet-Draft.  Internet-Drafts are working docu-
     ments of the Internet Engineering Task Force (IETF),  its  areas,  and
     its  working groups.  Note that other groups may also distribute work-
     ing documents as Internet-Drafts.
     
     Internet-Drafts are draft documents valid for a maximum of six  months
     and  may  be updated, replaced, or obsoleted by other documents at any
     time.  It is inappropriate to use Internet-Drafts as  reference  mate-
     rial or to cite them other than as ``work in progress.''
     
     To  learn  the  current status of any Internet-Draft, please check the
     ``1id-abstracts.txt'' listing contained in the Internet-Drafts  Shadow
     Directories   on   ds.internic.net   (US  East  Coast),  nic.nordu.net
     (Europe), ftp.isi.edu (US West Coast), or munnari.oz.au (Pacific Rim).
     
     The  distribution  of  this memo is unlimited.  It is filed as <draft-
     ietf-radius-clientmib-04.txt>, and  expires February 1,  1998.  Please
     send comments to the authors.
     
     
     2.  Abstract
     
     This  memo  defines a set of extensions which instrument RADIUS client
     functions. These extensions represent  a  portion  of  the  Management
     Information  Base  (MIB)  for use with network management protocols in
     the Internet community.  Using these  extensions  IP-based  management
     stations can manage RADIUS clients.
     
     
     3.  Introduction
     
     This  memo  defines a portion of the Management Information Base (MIB)
     for use with network management protocols in the  Internet  community.
     In  particular,  it describes managed objects used for managing RADIUS
     clients.
     
     Today a wide range of network devices, including  routers  and  NASes,
     act  as  RADIUS clients in order to provide authentication, authoriza-
     tion, and accounting services. As a result, the  effective  management
     of RADIUS clients is of considerable importance.
     
     
     
     
     
     
     Aboba & Zorn                                                  [Page 1]


     INTERNET-DRAFT                                            24 July 1997
     
     
     4.  The SNMPv2 Network Management Framework
     
     The  SNMPv2 Network Management Framework consists of four major compo-
     nents.  They are:
     
           o  RFC 1902 which defines the SMI, the mechanisms used for
              describing and naming objects for the purpose of management.
     
           o  RFC 1905 which defines the protocol used for network access to
              managed objects.
     
           o  RFC 1907 defines the core set of managed objects for the
              Internet suite of protocols.
     
           o  RFC 1909 which defines the administrative aspects of the
              framework.
     
     The Framework permits new objects to be defined  for  the  purpose  of
     experimentation and evaluation.
     
     
     4.1.  Object Definitions
     
     Managed  objects  are accessed via a virtual information store, termed
     the Management Information Base  or  MIB.   Objects  in  the  MIB  are
     defined  using  the  subset  of  Abstract  Syntax Notation One (ASN.1)
     defined in the SMI. In particular, each object object type is named by
     an  OBJECT  IDENTIFIER, an administratively assigned name.  The object
     type together with an object instance serves to  uniquely  identify  a
     specific  instantiation of the object. For human convenience, we often
     use a textual string, termed the descriptor, to refer  to  the  object
     type.
     
     
     5.  Overview
     
     The  RADIUS  protocol, described in [1] and [2], distinguishes between
     the client function and  the  server  function;  RADIUS  clients  send
     requests,  and  RADIUS  servers  reply  to  those  requests. In RADIUS
     authentication, clients send Access-Requests, and servers  reply  with
     Access-Accepts,   Access-Rejects,  and  Access-Challenges.  In  RADIUS
     accounting, clients send Accounting-Requests, and servers  reply  with
     Accounting-Responses. Typically NAS devices implement the client func-
     tion, and thus would be expected to implement the RADIUS  client  MIB,
     while  RADIUS servers implement the server function, and thus would be
     expected to implement the RADIUS server MIB.
     
     However, it is possible for a RADIUS entity to perform both client and
     server  functions.  For example, a RADIUS proxy may act as a server to
     one or more RADIUS clients, while simultaneously acting as a client to
     one  or  more  servers. In such situations, it is expected that RADIUS
     entities combining client and server functionality will  support  both
     the client and server MIBs.
     
     
     
     
     Aboba & Zorn                                                  [Page 2]


     INTERNET-DRAFT                                            24 July 1997
     
     
     5.1.  Selected objects
     This MIB module contains two scalars as well as a single table:
     
     (1)  the RADIUS Server Table contains one row for each
          RADIUS server that the client shares a secret with.
     
     Each entry in the RADIUS Server Table includes twenty entries present-
     ing a view of the activity of the RADIUS client.
     
     
     6.  Definitions
     
     RADIUS-CLIENT-MIB DEFINITIONS ::= BEGIN
     
     IMPORTS
            MODULE-IDENTITY, OBJECT-TYPE,
            OBJECT-IDENTITY, experimental,
            Counter32, Gauge32, Integer32,
            IpAddress, TimeTicks             FROM SNMPv2-SMI
            TEXTUAL-CONVENTION, RowStatus,
            TruthValue, DisplayString        FROM SNMPv2-TC
            MODULE-COMPLIANCE, OBJECT-GROUP  FROM SNMPv2-CONF;
     
     
     radius OBJECT-IDENTITY
            STATUS  current
            DESCRIPTION
                  "The OID assigned to RADIUS MIB work by the IANA."
            ::= { experimental 79 }
     
     radiusClientMIB MODULE-IDENTITY
            LAST-UPDATED "9707211659Z"
            ORGANIZATION "IETF RADIUS Working Group."
            CONTACT-INFO
                   " Bernard Aboba
                     Microsoft
                     One Microsoft Way
                     Redmond, WA  98052
                     US
     
                     Phone: +1 425 936 6605
                     EMail: bernarda@microsoft.com"
            DESCRIPTION
                  "The MIB module for entities implementing the client side of
                   the Remote Access Dialin User Service (RADIUS) protocol."
            ::= { radius 2 }
     
     radiusClientMIBObjects     OBJECT IDENTIFIER ::= { radiusClientMIB 1 }
     
     radiusClient  OBJECT IDENTIFIER ::= { radiusClientMIBObjects 1 }
     
     radiusClientInvalidServerAddresses OBJECT-TYPE
           SYNTAX Counter32
           MAX-ACCESS read-only
     
     
     
     Aboba & Zorn                                                  [Page 3]


     INTERNET-DRAFT                                            24 July 1997
     
     
           STATUS current
           DESCRIPTION
                 "The total number of RADIUS Access-Response packets
                  received from unknown addresses since client start-up."
           ::= { radiusClient 1 }
     
     radiusClientIdentifier OBJECT-TYPE
           SYNTAX DisplayString
           MAX-ACCESS read-only
           STATUS current
           DESCRIPTION
                 "The NAS-Identifier of the RADIUS client."
           ::= { radiusClient 2 }
     
     radiusServerTable OBJECT-TYPE
           SYNTAX     SEQUENCE OF RadiusServerEntry
           MAX-ACCESS not-accessible
           STATUS     current
           DESCRIPTION
                 "The (conceptual) table listing the RADIUS servers with
                 which the client shares a secret."
           ::= { radiusClient 3 }
     
     radiusServerEntry OBJECT-TYPE
           SYNTAX     RadiusServerEntry
           MAX-ACCESS not-accessible
           STATUS     current
           DESCRIPTION
                 "An entry (conceptual row) representing a RADIUS server
                 with which the client shares a secret."
           INDEX      { radiusServerIndex }
           ::= { radiusServerTable 1 }
     
     RadiusServerEntry ::= SEQUENCE {
           radiusServerIndex                           Integer32,
           radiusServerAddress                         IpAddress,
           radiusClientRoundTripTime                   TimeTicks,
           radiusClientAccessRequests                  Counter32,
           radiusClientAccessRetransmissions           Counter32,
           radiusClientAccessAccepts                   Counter32,
           radiusClientAccessRejects                   Counter32,
           radiusClientAccessChallenges                Counter32,
           radiusClientMalformedAccessResponses        Counter32,
           radiusClientAuthenticationBadAuthenticators Counter32,
           radiusClientAuthenticationPendingRequests   Counter32,
           radiusClientAuthenticationTimeouts          Counter32,
           radiusClientAccountingRequests              Counter32,
           radiusClientAccountingRetransmissions       Counter32,
           radiusClientAccountingResponses             Counter32,
           radiusClientMalformedAccountingResponses    Counter32,
           radiusClientAccountingBadAuthenticators     Counter32,
           radiusClientAccountingPendingRequests       Counter32,
           radiusClientAccountingTimeouts              Counter32,
           radiusClientUnknownType                     Counter32
     
     
     
     Aboba & Zorn                                                  [Page 4]


     INTERNET-DRAFT                                            24 July 1997
     
     
     }
     
     radiusServerIndex OBJECT-TYPE
           SYNTAX     Integer32
           MAX-ACCESS not-accessible
           STATUS     current
           DESCRIPTION
                 "The RADIUS server with which the client interacts."
           ::= { radiusServerEntry 1 }
     
     radiusServerAddress OBJECT-TYPE
           SYNTAX     IpAddress
           MAX-ACCESS read-only
           STATUS     current
           DESCRIPTION
                 "The IP address of the RADIUS server
                 referred to in this table entry."
           ::= { radiusServerEntry 2 }
     
     radiusClientRoundTripTime  OBJECT-TYPE
           SYNTAX TimeTicks
           MAX-ACCESS read-only
           STATUS current
           DESCRIPTION
                 "The total roundtrip time of the last packet sent
                 between the client and the RADIUS server referred
                 to in this table entry."
           ::= { radiusServerEntry 3 }
     
     radiusClientAccessRequests OBJECT-TYPE
           SYNTAX Counter32
           MAX-ACCESS read-only
           STATUS current
           DESCRIPTION
                 "The total number of RADIUS Access-Request packets sent
                 to this server since client start-up. This does not
                 include retransmissions."
           ::= { radiusServerEntry 4 }
     
     radiusClientAccessRetransmissions OBJECT-TYPE
           SYNTAX Counter32
           MAX-ACCESS read-only
           STATUS current
           DESCRIPTION
                 "The total number of RADIUS Access-Request packets
                  retransmitted to the same server since client start-up."
           ::= { radiusServerEntry 5 }
     
     radiusClientAccessAccepts OBJECT-TYPE
           SYNTAX Counter32
           MAX-ACCESS read-only
           STATUS current
           DESCRIPTION
                 "The total number of RADIUS Access-Accept packets
     
     
     
     Aboba & Zorn                                                  [Page 5]


     INTERNET-DRAFT                                            24 July 1997
     
     
                  received from this server since client start-up."
           ::= { radiusServerEntry 6 }
     
     radiusClientAccessRejects OBJECT-TYPE
          SYNTAX Counter32
          MAX-ACCESS read-only
          STATUS current
          DESCRIPTION
                 "The total number of RADIUS Access-Reject packets
                  received from this server since client start-up."
           ::= { radiusServerEntry  7 }
     
     radiusClientAccessChallenges OBJECT-TYPE
           SYNTAX Counter32
           MAX-ACCESS read-only
           STATUS current
           DESCRIPTION
                 "The total number of RADIUS Access-Challenge packets
                  received from this server since client start-up."
           ::= { radiusServerEntry 8 }
     
     -- "Access-Response" includes an Access-Accept, Access-Challenge
     -- or Access-Reject
     
     radiusClientMalformedAccessResponses OBJECT-TYPE
           SYNTAX Counter32
           MAX-ACCESS read-only
           STATUS current
           DESCRIPTION
                 "The total number of malformed RADIUS Access-Response
                  packets received from this server since client
                  start-up. Bad authenticators are not included as
                  malformed access responses."
           ::= { radiusServerEntry 9 }
     
     radiusClientAuthenticationBadAuthenticators OBJECT-TYPE
           SYNTAX Counter32
           MAX-ACCESS read-only
           STATUS current
           DESCRIPTION
                 "The total number of RADIUS Access-Response packets
                 containing invalid authenticators received from this server
                 since client start-up."
           ::= { radiusServerEntry 10 }
     
     radiusClientAuthenticationPendingRequests OBJECT-TYPE
           SYNTAX Counter32
           MAX-ACCESS read-only
           STATUS current
           DESCRIPTION
                 "The total number of RADIUS Access-Request packets
                 destined for this server that have not yet timed out
                 or received a response. This variable is incremented
                 when an Access-Request is sent and decremented due to
     
     
     
     Aboba & Zorn                                                  [Page 6]


     INTERNET-DRAFT                                            24 July 1997
     
     
                 a timeout or retransmission."
           ::= { radiusServerEntry 11 }
     
     radiusClientAuthenticationTimeouts OBJECT-TYPE
          SYNTAX Counter32
          MAX-ACCESS read-only
          STATUS current
          DESCRIPTION
                 "The total number of authentication timeouts to this server
                  since client startup. After a timeout the client may
                  retry to the same server, send to a different server, or
                  give up. A retry to the same server is counted as a
                  retransmit as well as a timeout. A send to a different
                  server is counted as a Request as well as a timeout."
           ::= { radiusServerEntry  12 }
     
     radiusClientAccountingRequests OBJECT-TYPE
           SYNTAX Counter32
           MAX-ACCESS read-only
           STATUS current
           DESCRIPTION
                 "The total number of RADIUS Accounting-Request packets
                  sent since client start-up. This does not include
                  retransmissions."
           ::= { radiusServerEntry 13 }
     
     radiusClientAccountingRetransmissions OBJECT-TYPE
           SYNTAX Counter32
           MAX-ACCESS read-only
           STATUS current
           DESCRIPTION
                 "The total number of RADIUS Accounting-Request packets
                  retransmitted to the same server since client start-up.
                  Retransmissions include retries where the
                  Identifier and Acct-Delay have been updated."
           ::= { radiusServerEntry 14 }
     
     radiusClientAccountingResponses OBJECT-TYPE
           SYNTAX Counter32
           MAX-ACCESS read-only
           STATUS current
           DESCRIPTION
                 "The total number of RADIUS Accounting-Response
                 packets received from this server since client start-up."
           ::= { radiusServerEntry 15 }
     
     radiusClientMalformedAccountingResponses OBJECT-TYPE
           SYNTAX Counter32
           MAX-ACCESS read-only
           STATUS current
           DESCRIPTION
                 "The total number of malformed RADIUS Accounting-Response
                 packets received from this server since client start-up.
                 Bad authenticators are not included as malformed access
     
     
     
     Aboba & Zorn                                                  [Page 7]


     INTERNET-DRAFT                                            24 July 1997
     
     
                 responses."
           ::= { radiusServerEntry 16 }
     
     radiusClientAccountingBadAuthenticators OBJECT-TYPE
           SYNTAX Counter32
           MAX-ACCESS read-only
           STATUS current
           DESCRIPTION
                 "The total number of RADIUS Accounting-Response
                  packets which contained invalid authenticators
                  received from this server since client start-up."
           ::= { radiusServerEntry 17 }
     
     radiusClientAccountingPendingRequests OBJECT-TYPE
           SYNTAX Counter32
           MAX-ACCESS read-only
           STATUS current
           DESCRIPTION
                 "The total number of RADIUS Accounting-Request packets
                  sent to this server that have not yet timed out or
                  received a response. This variable is incremented when an
                  Accounting-Request is sent and decremented due to a timeout
                  or retransmission."
           ::= { radiusServerEntry 18 }
     
     radiusClientAccountingTimeouts OBJECT-TYPE
          SYNTAX Counter32
          MAX-ACCESS read-only
          STATUS current
          DESCRIPTION
                 "The total number of accounting timeouts to this server
                 since client startup. After a timeout the client may
                 retry to the same server, send to a different server, or
                 give up. A retry to the same server is counted as a
                 retransmit as well as a timeout. A send to a different
                 server is counted as an Accounting-Request as well as a timeout."
           ::= { radiusServerEntry  19 }
     
     radiusClientUnknownType OBJECT-TYPE
           SYNTAX Counter32
           MAX-ACCESS read-only
           STATUS current
           DESCRIPTION
                 "The total number of RADIUS packets of unknown type which
                  were received from this server since client start-up."
           ::= { radiusServerEntry  20 }
     
     -- conformance information
     
     radiusClientMIBConformance
                  OBJECT IDENTIFIER ::= { radiusClientMIB 2 }
     radiusClientMIBCompliances
                  OBJECT IDENTIFIER ::= { radiusClientMIBConformance 1 }
     radiusClientMIBGroups
     
     
     
     Aboba & Zorn                                                  [Page 8]


     INTERNET-DRAFT                                            24 July 1997
     
     
                  OBJECT IDENTIFIER ::= { radiusClientMIBConformance 2 }
     
     
     -- compliance statements
     
     radiusClientMIBCompliance MODULE-COMPLIANCE
          STATUS  current
          DESCRIPTION
                "The compliance statement for Clients implementing the
                 RADIUS Client MIB."
          MODULE  -- this module
                 MANDATORY-GROUPS { radiusClientMIBGroup }
     
          ::= { radiusClientMIBCompliances 1 }
     
     
     -- units of conformance
     
     radiusClientMIBGroup OBJECT-GROUP
          OBJECTS { radiusClientInvalidServerAddresses,
                    radiusServerAddress,
                    radiusClientRoundTripTime,
                    radiusClientAccessRequests,
                    radiusClientAccessRetransmissions,
                    radiusClientAccessAccepts,
                    radiusClientAccessRejects,
                    radiusClientAccessChallenges,
                    radiusClientMalformedAccessResponses,
                    radiusClientAuthenticationBadAuthenticators,
                    radiusClientAuthenticationPendingRequests,
                    radiusClientAuthenticationTimeouts,
                    radiusClientAccountingRequests,
                    radiusClientAccountingRetransmissions,
                    radiusClientAccountingResponses,
                    radiusClientMalformedAccountingResponses,
                    radiusClientAccountingBadAuthenticators,
                    radiusClientAccountingPendingRequests,
                    radiusClientAccountingTimeouts,
                    radiusClientUnknownType
                 }
          STATUS  current
          DESCRIPTION
                "The basic collection of objects providing management of
                 RADIUS Clients."
          ::= { radiusClientMIBGroups 1 }
     
     END
     
     
     7.  Security considerations
     
     All MIB variables described in this document are read-only.
     
     
     
     
     
     Aboba & Zorn                                                  [Page 9]


     INTERNET-DRAFT                                            24 July 1997
     
     
     8.  Acknowledgments
     
     Thanks to Narendra Gidwani of Microsoft, Allan  C.  Rubens  of  MERIT,
     Carl  Rigney of Livingston and Peter Heitman of American Internet Cor-
     poration for useful discussions of this problem space.
     
     
     9.  References
     
     [1]  C. Rigney, A. Rubens, W. Simpson, S. Willens.  "Remote  Authenti-
     cation  Dial  In  User Service (RADIUS)." RFC 2138, Livingston, Merit,
     Daydreamer, April, 1997.
     
     [2]  C. Rigney.  "RADIUS Accounting."  RFC  2139,  Livingston,  April,
     1997.
     
     [3]  C.  Rigney,  W. Willats.  "RADIUS Extensions." draft-ietf-radius-
     ext-00.txt, Livingston, January, 1997.
     
     [4] "Information processing systems - Open Systems  Interconnection  -
     Specification  of Abstract Syntax Notation One (ASN.1)", International
     Organization for Standardization, International Standard 8824,  Decem-
     ber 1987.
     
     [5]  Case, J., McCloghrie, K., Rose, M., and S. Waldbusser, "Introduc-
     tion to Community-based SNMPv2", RFC 1901, SNMP Research, Inc.,  Cisco
     Systems, Dover Beach Consulting, Inc., International Network Services,
     January, 1996.
     
     [6] Case, J., McCloghrie, K., Rose, M., and S. Waldbusser,  "Structure
     of  Management Information for Version 2 of the Simple Network Manage-
     ment Protocol (SNMPv2)", RFC 1902, SNMP Research, Inc., Cisco Systems,
     Dover Beach Consulting, Inc., International Network Services, January,
     1996.
     
     [7] Case, J., McCloghrie, K., Rose, M., and  S.  Waldbusser,  "Textual
     Conventions  for version 2 of the the Simple Network Management Proto-
     col (SNMPv2)", RFC 1903, SNMP Research,  Inc.,  Cisco  Systems,  Dover
     Beach Consulting, Inc., International Network Services, January, 1996.
     
     [8] Case, J., McCloghrie, K., Rose, M., and  S.  Waldbusser,  "Confor-
     mance  Statements  for  version 2 of the the Simple Network Management
     Protocol (SNMPv2)", RFC 1904,  SNMP  Research,  Inc.,  Cisco  Systems,
     Dover Beach Consulting, Inc., International Network Services, January,
     1996.
     
     [9] Case, J., McCloghrie, K., Rose, M., and S.  Waldbusser,  "Protocol
     Operations  for  Version  2  of the Simple Network Management Protocol
     (SNMPv2)", RFC 1905, SNMP Research, Inc., Cisco Systems,  Dover  Beach
     Consulting, Inc., International Network Services, January, 1996.
     
     [10] Case, J., McCloghrie, K., Rose, M., and S. Waldbusser, "Transport
     Mappings for Version 2  of  the  Simple  Network  Management  Protocol
     (SNMPv2)",  RFC  1906, SNMP Research, Inc., Cisco Systems, Dover Beach
     
     
     
     Aboba & Zorn                                                 [Page 10]


     INTERNET-DRAFT                                            24 July 1997
     
     
     Consulting, Inc., International Network Services, January, 1996.
     
     [11] Case, J., McCloghrie, K., Rose, M., and S.  Waldbusser,  "Manage-
     ment  Information  Base for Version 2 of the Simple Network Management
     Protocol (SNMPv2)", RFC 1907,  SNMP  Research,  Inc.,  Cisco  Systems,
     Dover Beach Consulting, Inc., International Network Services, January,
     1996.
     
     [12] Case, J., McCloghrie, K., Rose, M., and S.  Waldbusser,  "Coexis-
     tence between Version 1 and Version 2 of the Internet-standard Network
     Management Framework", RFC 1908, SNMP Research, Inc.,  Cisco  Systems,
     Dover Beach Consulting, Inc., International Network Services, January,
     1996.
     
     [13] McCloghrie, K., "An Administrative  Infrastructure  for  SNMPv2",
     RFC 1909, Cisco Systems, February, 1996.
     
     
     
     
     10.  Authors' Addresses
     
     Bernard Aboba
     Microsoft Corporation
     One Microsoft Way
     Redmond, WA 98052
     
     Phone: 425-936-6605
     EMail: bernarda@microsoft.com
     
     Glen Zorn
     Microsoft Corporation
     One Microsoft Way
     Redmond, WA 98052
     
     Phone: 425-703-1559
     EMail: glennz@microsoft.com
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     Aboba & Zorn                                                 [Page 11]