RADIUS Working Group                                     Bernard Aboba
     INTERNET-DRAFT                                               Microsoft
     Category: Standards Track                                    Glen Zorn
     <draft-ietf-radius-auth-clientmib-00.txt>
     <draft-ietf-radius-auth-clientmib-01.txt>                    Microsoft
     9 August 1997
     12 February 1998

                        RADIUS Authentication 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-auth-clientmib-00.txt>,
     ietf-radius-auth-clientmib-01.txt>,  and   expires  February  August  1,   1998.
     Please send comments to the authors.

     2.  Abstract

     This  memo defines a set of extensions which instrument RADIUS authen-
     tication client functions. These extensions represent a portion of the
     Management Information Base (MIB) for use with network management pro-
     tocols in the Internet community.   Using  these  extensions  IP-based
     management stations can manage RADIUS authentication 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
     authentication clients.

     Today a wide range of network devices, including  routers  and  NASes,
     act  as  RADIUS authentication clients in order to provide authentica-
     tion and authorization services. As a result, the effective management
     of RADIUS authentication clients is of considerable importance.

     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  authentication  protocol, described in [1], distinguishes
     between the client function and the server function. In RADIUS authen-
     tication, clients send Access-Requests, and servers reply with Access-
     Accepts, Access-Rejects, and Access-Challenges. Typically NAS  devices
     implement the client function, and thus would be expected to implement
     the RADIUS authentication  client  MIB,  while  RADIUS  authentication
     servers  implement  the server function, and thus would be expected to
     implement the RADIUS authentication server MIB.

     However, it is possible for a RADIUS authentication entity to  perform
     both  client and server functions. For example, a RADIUS proxy may act
     as a server to one or more RADIUS authentication clients, while simul-
     taneously  acting as an authentication client to one or more authenti-
     cation servers. In such situations, it is expected that  RADIUS  enti-
     ties  combining  client and server functionality will support both the
     client and server MIBs.

     5.1.  Selected objects
     This MIB module contains two scalars as well as a single table:

     (1)  the RADIUS Authentication Server Table contains one row for each
          RADIUS authentication server that the client shares a secret with.

     Each entry in the RADIUS Authentication Server Table includes thirteen
     entries presenting a view of the activity of the RADIUS authentication
     client.

     6.  Definitions

     RADIUS-AUTH-CLIENT-MIB DEFINITIONS ::= BEGIN

     IMPORTS
            MODULE-IDENTITY, OBJECT-TYPE,
            OBJECT-IDENTITY, experimental,
            Counter32, Gauge32, Integer32, Gauge32,
            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 }

     radiusAuthentication  OBJECT-IDENTIFIER ::= {radius 1}

     radiusAuthClientMIB MODULE-IDENTITY
            LAST-UPDATED "9708211659Z" "9802121659Z"
            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) authentication
                   protocol."
            ::= { radiusAuthentication 2 }

     radius OBJECT-IDENTITY
            STATUS  current
            DESCRIPTION
                  "The OID assigned to RADIUS MIB work by the IANA."
            ::= { experimental 79 }

     radiusAuthentication  OBJECT IDENTIFIER ::= {radius 1}

     radiusAuthClientMIBObjects     OBJECT IDENTIFIER ::= { radiusAuthClientMIB 1 }

     radiusAuthClient  OBJECT IDENTIFIER ::= { radiusAuthClientMIBObjects 1 }
     radiusAuthClientInvalidServerAddresses OBJECT-TYPE
           SYNTAX Counter32
           MAX-ACCESS read-only
           STATUS current
           DESCRIPTION
                 "The total number of RADIUS Access-Response packets
                  received from unknown addresses since client start-up."
           ::= { radiusAuthClient 1 }

     radiusAuthClientIdentifier OBJECT-TYPE
           SYNTAX DisplayString
           MAX-ACCESS read-only
           STATUS current
           DESCRIPTION
              "The NAS-Identifier of the RADIUS authentication client." client.
                This is not necessarily the same as sysName in MIB II."
           ::= { radiusAuthClient 2 }

     radiusAuthServerTable OBJECT-TYPE
           SYNTAX     SEQUENCE OF RadiusAuthServerEntry
           MAX-ACCESS not-accessible
           STATUS     current
           DESCRIPTION
                 "The (conceptual) table listing the RADIUS authentication
                  servers with which the client shares a secret."
           ::= { radiusAuthClient 3 }

     radiusAuthServerEntry OBJECT-TYPE
           SYNTAX     RadiusAuthServerEntry
           MAX-ACCESS not-accessible
           STATUS     current
           DESCRIPTION
                 "An entry (conceptual row) representing a RADIUS
                  authentication server with which the client shares a secret."
           INDEX      { radiusAuthServerIndex }
           ::= { radiusAuthServerTable 1 }

     RadiusAuthServerEntry ::= SEQUENCE {
           radiusAuthServerIndex                           Integer32,
           radiusAuthServerAddress                         IpAddress,
           radiusAuthClientServerPortNumber                Integer32,
           radiusAuthClientRoundTripTime                   TimeTicks,
           radiusAuthClientAccessRequests                  Counter32,
           radiusAuthClientAccessRetransmissions           Counter32,
           radiusAuthClientAccessAccepts                   Counter32,
           radiusAuthClientAccessRejects                   Counter32,
           radiusAuthClientAccessChallenges                Counter32,
           radiusAuthClientMalformedAccessResponses        Counter32,
           radiusAuthClientAuthenticationBadAuthenticators Counter32,
           radiusAuthClientAuthenticationPendingRequests
           radiusAuthClientBadAuthenticators               Counter32,
           radiusAuthClientAuthenticationTimeouts
           radiusAuthClientPendingRequests                   Gauge32,
           radiusAuthClientTimeouts                        Counter32,
           radiusAuthClientUnknownType                     Counter32
     }
     radiusAuthServerIndex OBJECT-TYPE
           SYNTAX     Integer32 (0..MAX)
           MAX-ACCESS not-accessible
           STATUS     current
           DESCRIPTION
                 "The
              "A number uniquely identifying each RADIUS authentication
                Authentication server with which
                  the this client interacts."
                communicates."
           ::= { radiusAuthServerEntry 1 }

     radiusAuthServerAddress OBJECT-TYPE
           SYNTAX     IpAddress
           MAX-ACCESS read-only
           STATUS     current
           DESCRIPTION
                 "The IP address of the RADIUS authentication server
                 referred to in this table entry."
           ::= { radiusAuthServerEntry 2 }

     radiusAuthClientServerPortNumber  OBJECT-TYPE
           SYNTAX Integer32
           MAX-ACCESS read-only
           STATUS current
           DESCRIPTION
              "The UDP port the client is using to send requests to
               this server."
           ::= { radiusAuthServerEntry 3 }

     radiusAuthClientRoundTripTime  OBJECT-TYPE
           SYNTAX TimeTicks
           MAX-ACCESS read-only
           STATUS current
           DESCRIPTION
              "The total roundtrip time of the last packet sent interval between the authentication client most recent
                Access-Reply/Access-Challenge and the RADIUS server
                 referred to in Access-Request that
                matched it from this table entry." RADIUS authentication server."
           ::= { radiusAuthServerEntry 3 4 }

     -- Request/Response statistics
     -- Ignoring Unknown Types, then
     -- AccessRequests + AccesssRetransmissions = AccessAccepts +
     -- AccessRejects + AccessChallenges + PendingRequests + Timeouts

     radiusAuthClientAccessRequests 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."
           ::= { radiusAuthServerEntry 4 5 }

     radiusAuthClientAccessRetransmissions OBJECT-TYPE
           SYNTAX Counter32
           MAX-ACCESS read-only
           STATUS current
           DESCRIPTION
                 "The total number of RADIUS Access-Request packets
                  retransmitted to the same this RADIUS authentication server
                  since client start-up."
           ::= { radiusAuthServerEntry 5 6 }

     radiusAuthClientAccessAccepts OBJECT-TYPE
           SYNTAX Counter32
           MAX-ACCESS read-only
           STATUS current
           DESCRIPTION
                 "The total number of RADIUS Access-Accept packets
                  received from this server since client start-up."
           ::= { radiusAuthServerEntry 6 7 }

     radiusAuthClientAccessRejects 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."
           ::= { radiusAuthServerEntry  7  8 }

     radiusAuthClientAccessChallenges 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."
           ::= { radiusAuthServerEntry 8 9 }

     -- "Access-Response" includes an Access-Accept, Access-Challenge
     -- or Access-Reject

     radiusAuthClientMalformedAccessResponses 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. Malformed packets include packets with
                  an invalid length. Bad authenticators or
                  Signature attributes are not
                  included as malformed access responses."
           ::= { radiusAuthServerEntry 9 10 }

     radiusAuthClientAuthenticationBadAuthenticators

     radiusAuthClientBadAuthenticators OBJECT-TYPE
           SYNTAX Counter32
           MAX-ACCESS read-only
           STATUS current
           DESCRIPTION
                 "The total number of RADIUS Access-Response packets
                 containing invalid authenticators or Signature
                 attributes received from this server since client
                 start-up."
           ::= { radiusAuthServerEntry 10 11 }

     radiusAuthClientAuthenticationPendingRequests

     radiusAuthClientPendingRequests OBJECT-TYPE
           SYNTAX Counter32 Gauge32
           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
                 receipt of an Access-Reply or Access-Challenge,
                 a timeout or retransmission."
           ::= { radiusAuthServerEntry 11 12 }
     radiusAuthClientAuthenticationTimeouts

     radiusAuthClientTimeouts 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."
           ::= { radiusAuthServerEntry  12  13 }

     radiusAuthClientUnknownType 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 on the authentication port
                  since client start-up."
           ::= { radiusAuthServerEntry  13  14 }

     -- conformance information

     radiusAuthClientMIBConformance
                  OBJECT IDENTIFIER ::= { radiusAuthClientMIB 2 }
     radiusAuthClientMIBCompliances
                  OBJECT IDENTIFIER ::= { radiusAuthClientMIBConformance 1 }
     radiusAuthClientMIBGroups
                  OBJECT IDENTIFIER ::= { radiusAuthClientMIBConformance 2 }
     -- compliance statements

     radiusAuthClientMIBCompliance MODULE-COMPLIANCE
          STATUS  current
          DESCRIPTION
                "The compliance statement for authentication clients
                 implementing the RADIUS Authentication Client MIB."
          MODULE  -- this module
                 MANDATORY-GROUPS { radiusAuthClientMIBGroup }

          ::= { radiusAuthClientMIBCompliances 1 }

     -- units of conformance

     radiusAuthClientMIBGroup OBJECT-GROUP
          OBJECTS { radiusAuthClientIdentifier,
                    radiusAuthClientInvalidServerAddresses,
                    radiusAuthServerAddress,
                    radiusAuthClientServerPortNumber,
                    radiusAuthClientRoundTripTime,
                    radiusAuthClientAccessRequests,
                    radiusAuthClientAccessRetransmissions,
                    radiusAuthClientAccessAccepts,
                    radiusAuthClientAccessRejects,
                    radiusAuthClientAccessChallenges,
                    radiusAuthClientMalformedAccessResponses,
                    radiusAuthClientAuthenticationBadAuthenticators,
                    radiusAuthClientAuthenticationPendingRequests,
                    radiusAuthClientAuthenticationTimeouts,
                    radiusAuthClientBadAuthenticators,
                    radiusAuthClientPendingRequests,
                    radiusAuthClientTimeouts,
                    radiusAuthClientUnknownType
                 }
          STATUS  current
          DESCRIPTION
                "The basic collection of objects providing management of
                 RADIUS Authentication Clients."
          ::= { radiusAuthClientMIBGroups 1 }

     END

     7.  Security considerations

     All MIB variables described in this document are read-only.

     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 Authentication." 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
     Management 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
     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