RFC 4672

RADIUS Dynamic Authorization Client MIB

๐Ÿ“… published September 2006, from ietf

RFC 4672: RADIUS Dynamic Authorization Client MIB ๐ŸŽ€

Network Working Group, September 2006. This one is Informational ๐Ÿ“–, which means it gives info to the Internet community and doesn't set an Internet standard. โœจ

Authors: S. De Cnodder (Alcatel), N. Jonnala (Cisco Systems, Inc.), and M. Chiba (Cisco Systems, Inc.) ๐Ÿ’–

The header doesn't list anything this RFC obsoletes or updates. ๐Ÿงš


Status of This Memo ๐Ÿ“œ

okay so this memo is giving info to the Internet community. It is NOT a standard of any kind ๐Ÿ™ˆ Distribution is unlimited, so share it with everyone bestie ๐ŸŒˆ

Copyright (C) The Internet Society (2006). ๐Ÿ’œ

Abstract ๐Ÿ’…

this doc defines a chunk of the Management Information Base (MIB) for network management protocols used across the Internet. The main focus is the client side of RADIUS (RFC2865) Dynamic Authorization, which is the DAC part that handles the dynamic authorization extensions from RFC 3576. literally the whole vibe ๐Ÿ”ฅ

Table of Contents ๐Ÿ—‚๏ธ

   1. Introduction ....................................................2
      1.1. Requirements Notation ......................................2
      1.2. Terminology ................................................2
   2. The Internet-Standard Management Framework ......................3
   3. Overview ........................................................3
   4. RADIUS Dynamic Authorization Client MIB Definitions .............3
   5. Security Considerations ........................................19
   6. IANA Considerations ............................................20
   7. Acknowledgements ...............................................20
   8. References .....................................................21
      8.1. Normative References ......................................21
      8.2. Informative References ....................................21

1. Introduction โœจ

okay so the big picture: this memo defines a piece of the MIB for network management protocols in the Internet community. The specific piece is the RADIUS [RFC2865] Dynamic Authorization Client (DAC) functions, which support the dynamic authorization extensions in RFC 3576. ๐ŸŒธ

It's getting more and more important for network access server (NAS) devices to support Dynamic Authorization extensions, so they can handle the Disconnect and Change-of-Authorization (CoA) messages from [RFC3576]. That makes managing RADIUS Dynamic Authorization entities a big deal ๐Ÿ‘‘ This RADIUS Dynamic Authorization Client MIB is the buddy of the MIBs for managing RADIUS authentication and accounting servers, which are described in [RFC4669] and [RFC4671] respectively. ๐Ÿซถ

1.1. Requirements Notation ๐Ÿ“

the key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be read as described in [RFC2119]. ๐Ÿ’…

1.2. Terminology ๐Ÿงš

Dynamic Authorization Server (DAS)

this is the component on the NAS that processes the Disconnect and Change-of-Authorization (CoA) Request packets [RFC3576] sent by the Dynamic Authorization Client. ๐Ÿฆ‹

Dynamic Authorization Client (DAC)

this is the component that sends Disconnect and CoA-Request packets to the Dynamic Authorization Server. It often lives on the RADIUS server, but it can also sit on a separate host, like a Rating Engine. โœจ

Dynamic Authorization Server Port

this is the UDP port that the Dynamic Authorization Server listens on for the Disconnect and CoA requests sent by the Dynamic Authorization Client. ๐Ÿ”ฅ

2. The Internet-Standard Management Framework ๐ŸŒˆ

if you want the full tea on the current Internet-Standard Management Framework docs, check out section 7 of [RFC3410]. ๐Ÿ’–

Managed objects get accessed through a virtual information store called the Management Information Base, or MIB. MIB objects are usually accessed through the Simple Network Management Protocol (SNMP). The objects get defined using the Structure of Management Information (SMI) mechanisms. This memo specifies a MIB module that is compliant with SMIv2, which is described in STD 58, RFC 2578 [RFC2578], STD 58, RFC 2579 [RFC2579], and STD 58, RFC 2580 [RFC2580]. ๐ŸŽ€

3. Overview ๐Ÿฆ‹

"Dynamic Authorization Extensions to RADIUS" [RFC3576] defines how Disconnect-Request, Disconnect-ACK, Disconnect-NAK, CoA-Request, CoA-ACK, and CoA-NAK packets work. [RFC4673] defines the Dynamic Authorization Server MIB and how it relates to other MIB modules. ๐Ÿงš

this MIB module for the Dynamic Authorization Client has two things in it:

  1. Two scalar objects
  2. One Dynamic Authorization Server table. This table has one row for each DAS that the DAC shares a secret with. ๐Ÿ’œ

4. RADIUS Dynamic Authorization Client MIB Definitions ๐Ÿ‘‘

here's the actual MIB module. Copy it exactly, bestie, no tweaking the syntax ๐Ÿ™ˆ

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

   IMPORTS
          MODULE-IDENTITY, OBJECT-TYPE,
          Counter32, Gauge32, Integer32,
          mib-2, TimeTicks    FROM SNMPv2-SMI         -- [RFC2578]
          SnmpAdminString     FROM SNMP-FRAMEWORK-MIB -- [RFC3411]
          InetAddressType, InetAddress,
          InetPortNumber      FROM INET-ADDRESS-MIB   -- [RFC4001]
          MODULE-COMPLIANCE,
          OBJECT-GROUP        FROM SNMPv2-CONF;       -- [RFC2580]

   radiusDynAuthClientMIB MODULE-IDENTITY
          LAST-UPDATED "200608290000Z" -- 29 August 2006
          ORGANIZATION "IETF RADEXT Working Group"
          CONTACT-INFO
                 " Stefaan De Cnodder

                   Alcatel
                   Francis Wellesplein 1
                   B-2018 Antwerp
                   Belgium

                   Phone: +32 3 240 85 15
                   EMail: stefaan.de_cnodder@alcatel.be

                   Nagi Reddy Jonnala
                   Cisco Systems, Inc.
                   Divyasree Chambers, B Wing,
                   O'Shaugnessy Road,
                   Bangalore-560027, India.

                   Phone: +91 94487 60828
                   EMail: njonnala@cisco.com

                   Murtaza Chiba
                   Cisco Systems, Inc.
                   170 West Tasman Dr.
                   San Jose CA, 95134

                   Phone: +1 408 525 7198
                   EMail: mchiba@cisco.com "
          DESCRIPTION
              "The MIB module for entities implementing the client
               side of the Dynamic Authorization Extensions to the
               Remote Authentication Dial-In User Service (RADIUS)
               protocol. Copyright (C) The Internet Society (2006).
               Initial version as published in RFC 4672;
               for full legal notices see the RFC itself."

          REVISION "200609290000Z" -- 29 August 2006
          DESCRIPTION "Initial version as published in RFC 4672"
          ::= { mib-2 145 }

   radiusDynAuthClientMIBObjects OBJECT IDENTIFIER ::=
                                         { radiusDynAuthClientMIB 1 }

   radiusDynAuthClientScalars    OBJECT IDENTIFIER ::=
                                  { radiusDynAuthClientMIBObjects 1 }

   radiusDynAuthClientDisconInvalidServerAddresses OBJECT-TYPE
          SYNTAX Counter32
          MAX-ACCESS read-only
          STATUS current
          DESCRIPTION
                "The number of Disconnect-Ack and Disconnect-NAK packets

                 received from unknown addresses.  This counter may
                 experience a discontinuity when the DAC module
                 (re)starts, as indicated by the value of
                 radiusDynAuthClientCounterDiscontinuity."
          ::= { radiusDynAuthClientScalars 1 }

   radiusDynAuthClientCoAInvalidServerAddresses OBJECT-TYPE
          SYNTAX Counter32
          MAX-ACCESS read-only
          STATUS current
          DESCRIPTION
                "The number of CoA-Ack and CoA-NAK packets received from
                 unknown addresses.  Disconnect-NAK packets received
                 from unknown addresses.  This counter may experience a
                 discontinuity when the DAC module (re)starts, as
                 indicated by the value of
                 radiusDynAuthClientCounterDiscontinuity."
          ::= { radiusDynAuthClientScalars 2 }

Okay bestie, the MIB objects keep coming, and they're all about counting Disconnect stuff ๐Ÿ“Šโœจ Here's the next batch, exactly as the spec has it ๐Ÿ’…

   radiusDynAuthServerIndex OBJECT-TYPE
          SYNTAX     Integer32 (1..2147483647)
          MAX-ACCESS not-accessible
          STATUS     current
          DESCRIPTION
                "A number uniquely identifying each RADIUS Dynamic
                 Authorization Server with which this Dynamic
                 Authorization Client communicates.  This number is
                 allocated by the agent implementing this MIB module
                 and is unique in this context."
          ::= { radiusDynAuthServerEntry 1 }

Index first, so every row gets its own little ID ๐Ÿฆ‹

   radiusDynAuthServerAddressType OBJECT-TYPE
          SYNTAX     InetAddressType
          MAX-ACCESS read-only
          STATUS     current
          DESCRIPTION
                "The type of IP address of the RADIUS Dynamic
                 Authorization Server referred to in this table entry."
          ::= { radiusDynAuthServerEntry 2 }

   radiusDynAuthServerAddress OBJECT-TYPE
          SYNTAX     InetAddress
          MAX-ACCESS read-only
          STATUS     current
          DESCRIPTION
                "The IP address value of the RADIUS Dynamic
                 Authorization Server referred to in this table entry
                 using the version neutral IP address format.  The type
                 of this address is determined by the value of the
                 radiusDynAuthServerAddressType object."
          ::= { radiusDynAuthServerEntry 3 }

Address type, then the address itself. The address is version neutral, and the type object tells you how to read it ๐ŸŒธ

   radiusDynAuthServerClientPortNumber OBJECT-TYPE
          SYNTAX     InetPortNumber (1..65535)
          MAX-ACCESS read-only
          STATUS     current
          DESCRIPTION
                "The UDP destination port that the RADIUS Dynamic
                 Authorization Client is using to send requests to this
                 server.  The value zero is invalid."
          ::= { radiusDynAuthServerEntry 4 }


   radiusDynAuthServerID OBJECT-TYPE
          SYNTAX     SnmpAdminString
          MAX-ACCESS read-only
          STATUS     current
          DESCRIPTION
                "The NAS-Identifier of the RADIUS Dynamic Authorization
                 Server referred to in this table entry.  This is not
                 necessarily the same as sysName in MIB II."
          REFERENCE
                "RFC 2865, Section 5.32, NAS-Identifier."
          ::= { radiusDynAuthServerEntry 5 }

The port number is the UDP destination port, and zero is a no-go ๐Ÿ™…โ€โ™€๏ธ The ID is the NAS-Identifier from RFC 2865, and it is not the same thing as sysName in MIB II ๐ŸŽ€

   radiusDynAuthClientRoundTripTime OBJECT-TYPE
          SYNTAX     TimeTicks
          UNITS      "hundredths of a second"
          MAX-ACCESS read-only
          STATUS     current
          DESCRIPTION
                "The time interval (in hundredths of a second) between
                 the most recent Disconnect or CoA request and the
                 receipt of the corresponding Disconnect or CoA reply.
                 A value of zero is returned if no reply has been
                 received yet from this server."
          ::= { radiusDynAuthServerEntry 6 }

   radiusDynAuthClientDisconRequests OBJECT-TYPE
          SYNTAX     Counter32
          UNITS      "requests"
          MAX-ACCESS read-only
          STATUS     current
          DESCRIPTION
                "The number of RADIUS Disconnect-Requests sent
                 to this Dynamic Authorization Server.  This also
                 includes the RADIUS Disconnect-Requests that have a
                 Service-Type attribute with value 'Authorize Only'.
                 Disconnect-NAK packets received from unknown addresses.
                 This counter may experience a discontinuity when the
                 DAC module (re)starts, as indicated by the value of
                 radiusDynAuthClientCounterDiscontinuity."
          REFERENCE
                "RFC 3576, Section 2.1, Disconnect Messages (DM)."
          ::= { radiusDynAuthServerEntry 7 }

Round trip time is measured in hundredths of a second, and it's zero until a reply shows up ๐Ÿ•ฐ๏ธ The Disconnect-Request counter is the big one that counts everything sent, Authorize Only ones included ๐Ÿ“ค

   radiusDynAuthClientDisconAuthOnlyRequests OBJECT-TYPE
          SYNTAX     Counter32
          UNITS      "requests"
          MAX-ACCESS read-only
          STATUS     current
          DESCRIPTION
                "The number of RADIUS Disconnect-Requests that include a
                 Service-Type attribute with value 'Authorize Only'
                 sent to this Dynamic Authorization Server.
                 Disconnect-NAK packets received from unknown addresses.
                 This counter may experience a discontinuity when the
                 DAC module (re)starts, as indicated by the value of
                 radiusDynAuthClientCounterDiscontinuity."
          REFERENCE
                "RFC 3576, Section 2.1, Disconnect Messages (DM)."
          ::= { radiusDynAuthServerEntry 8 }

   radiusDynAuthClientDisconRetransmissions OBJECT-TYPE
          SYNTAX     Counter32
          UNITS      "retransmissions"
          MAX-ACCESS read-only
          STATUS     current
          DESCRIPTION
                "The number of RADIUS Disconnect-request packets
                 retransmitted to this RADIUS Dynamic Authorization
                 Server.  Disconnect-NAK packets received from unknown
                 addresses.  This counter may experience a discontinuity
                 when the DAC module (re)starts, as indicated by the
                 value of radiusDynAuthClientCounterDiscontinuity."
          REFERENCE

                "RFC 3576, Section 2.1, Disconnect Messages (DM)."
          ::= { radiusDynAuthServerEntry 9 }

   radiusDynAuthClientDisconAcks  OBJECT-TYPE
          SYNTAX     Counter32
          UNITS      "replies"
          MAX-ACCESS read-only
          STATUS     current
          DESCRIPTION
                "The number of RADIUS Disconnect-ACK packets
                 received from this Dynamic Authorization Server.  This
                 counter may experience a discontinuity when the DAC
                 module (re)starts, as indicated by the value of
                 radiusDynAuthClientCounterDiscontinuity."
          REFERENCE
                "RFC 3576, Section 2.1, Disconnect Messages (DM)."
          ::= { radiusDynAuthServerEntry 10 }

   radiusDynAuthClientDisconNaks OBJECT-TYPE
          SYNTAX     Counter32
          UNITS      "replies"
          MAX-ACCESS read-only
          STATUS     current
          DESCRIPTION
                "The number of RADIUS Disconnect-NAK packets
                 received from this Dynamic Authorization Server.
                 This includes the RADIUS Disconnect-NAK packets
                 received with a Service-Type attribute with value
                 'Authorize Only' and the RADIUS Disconnect-NAK
                 packets received if no session context was found.  This
                 counter may experience a discontinuity when the DAC
                 module (re)starts, as indicated by the value of
                 radiusDynAuthClientCounterDiscontinuity."
          REFERENCE
                "RFC 3576, Section 2.1, Disconnect Messages (DM)."
          ::= { radiusDynAuthServerEntry 11 }

   radiusDynAuthClientDisconNakAuthOnlyRequest OBJECT-TYPE
          SYNTAX     Counter32
          UNITS      "replies"
          MAX-ACCESS read-only
          STATUS     current
          DESCRIPTION
                "The number of RADIUS Disconnect-NAK packets
                 that include a Service-Type attribute with value
                 'Authorize Only' received from this Dynamic
                 Authorization Server.  This counter may experience a
                 discontinuity when the DAC module (re)starts, as
                 indicated by the value of
                 radiusDynAuthClientCounterDiscontinuity."
          REFERENCE
                "RFC 3576, Section 2.1, Disconnect Messages (DM)."
          ::= { radiusDynAuthServerEntry 12 }

   radiusDynAuthClientDisconNakSessNoContext OBJECT-TYPE
          SYNTAX     Counter32
          UNITS      "replies"
          MAX-ACCESS read-only
          STATUS     current
          DESCRIPTION
                "The number of RADIUS Disconnect-NAK packets
                 received from this Dynamic Authorization Server
                 because no session context was found; i.e., it
                 includes an Error-Cause attribute with value 503
                 ('Session Context Not Found').  This counter may
                 experience a discontinuity when the DAC module
                 (re)starts, as indicated by the value of
                 radiusDynAuthClientCounterDiscontinuity."
          REFERENCE
                "RFC 3576, Section 2.1, Disconnect Messages (DM)."
          ::= { radiusDynAuthServerEntry 13 }

The Disconnect-Request count keeps track of retransmissions and ACKs, and the NAK counters break things down even further ๐Ÿ” Error-Cause 503 is the special "Session Context Not Found" case ๐Ÿ™ˆ

   radiusDynAuthClientMalformedDisconResponses OBJECT-TYPE
          SYNTAX     Counter32
          UNITS      "replies"
          MAX-ACCESS read-only
          STATUS     current
          DESCRIPTION
                "The number of malformed RADIUS Disconnect-Ack and
                 Disconnect-NAK packets received from this Dynamic
                 Authorization Server.  Bad authenticators and unknown
                 types are not included as malformed Disconnect-Ack and
                 Disconnect-NAK packets.  This counter may experience a
                 discontinuity when the DAC module (re)starts, as
                 indicated by the value of
                 radiusDynAuthClientCounterDiscontinuity."
          REFERENCE
                "RFC 3576, Section 2.1, Disconnect Messages (DM), and
                 Section 2.3, Packet Format."
          ::= { radiusDynAuthServerEntry 14 }

   radiusDynAuthClientDisconBadAuthenticators OBJECT-TYPE
          SYNTAX     Counter32
          UNITS      "replies"
          MAX-ACCESS read-only
          STATUS     current
          DESCRIPTION
                "The number of RADIUS Disconnect-Ack and Disconnect-NAK
                 packets that contained invalid Authenticator field
                 received from this Dynamic Authorization Server.  This
                 counter may experience a discontinuity when the DAC
                 module (re)starts, as indicated by the value of
                 radiusDynAuthClientCounterDiscontinuity."
          REFERENCE
                "RFC 3576, Section 2.1, Disconnect Messages (DM), and
                 Section 2.3, Packet Format."
          ::= { radiusDynAuthServerEntry 15 }

   radiusDynAuthClientDisconPendingRequests OBJECT-TYPE
          SYNTAX     Gauge32
          UNITS      "requests"
          MAX-ACCESS read-only
          STATUS     current
          DESCRIPTION
                "The number of RADIUS Disconnect-request packets
                 destined for this server that have not yet timed out
                 or received a response.  This variable is incremented
                 when an Disconnect-Request is sent and decremented
                 due to receipt of a Disconnect-Ack, a Disconnect-NAK,
                 a timeout, or a retransmission."
          REFERENCE
                "RFC 3576, Section 2.1, Disconnect Messages (DM)."
          ::= { radiusDynAuthServerEntry 16 }

   radiusDynAuthClientDisconTimeouts OBJECT-TYPE
          SYNTAX     Counter32
          UNITS      "timeouts"
          MAX-ACCESS read-only
          STATUS     current
          DESCRIPTION
                "The number of Disconnect request timeouts to this
                 server.  After a timeout, the client may retry to the
                 same server or give up.  A retry to the same server is
                 counted as a retransmit and as a timeout.  A send
                 to a different server is counted as a
                 Disconnect-Request and as a timeout.  This counter
                 may experience a discontinuity when the DAC module
                 (re)starts, as indicated by the value of
                 radiusDynAuthClientCounterDiscontinuity."
          REFERENCE
                "RFC 3576, Section 2.1, Disconnect Messages (DM)."
          ::= { radiusDynAuthServerEntry 17 }

   radiusDynAuthClientDisconPacketsDropped OBJECT-TYPE

Okay so we're picking right back up in the counter zone ๐Ÿ’–

          SYNTAX     Counter32
          UNITS      "replies"
          MAX-ACCESS read-only
          STATUS     current
          DESCRIPTION
                "The number of incoming Disconnect-Ack and
                 Disconnect-NAK packets from this Dynamic Authorization
                 Server silently discarded by the client application for
                 some reason other than malformed, bad authenticators,
                 or unknown types.  This counter may experience a
                 discontinuity when the DAC module (re)starts, as
                 indicated by the value of
                 radiusDynAuthClientCounterDiscontinuity."
          REFERENCE
                "RFC 3576, Section 2.1, Disconnect Messages (DM), and
                 Section 2.3, Packet Format."
          ::= { radiusDynAuthServerEntry 18 }

   radiusDynAuthClientCoARequests OBJECT-TYPE
          SYNTAX     Counter32
          UNITS      "requests"
          MAX-ACCESS read-only
          STATUS     current
          DESCRIPTION
                "The number of RADIUS CoA-Requests sent to this
                 Dynamic Authorization Server.  This also includes
                 CoA requests that have a Service-Type attribute
                 with value 'Authorize Only'.  This counter may
                 experience a discontinuity when the DAC module
                 (re)starts, as indicated by the value of
                 radiusDynAuthClientCounterDiscontinuity."
          REFERENCE
                "RFC 3576, Section 2.2, Change-of-Authorization
                 Messages (CoA)."
          ::= { radiusDynAuthServerEntry 19 }

   radiusDynAuthClientCoAAuthOnlyRequest OBJECT-TYPE
          SYNTAX     Counter32
          UNITS      "requests"
          MAX-ACCESS read-only
          STATUS     current
          DESCRIPTION
                "The number of RADIUS CoA-requests that include a
                 Service-Type attribute with value 'Authorize Only'
                 sent to this Dynamic Authorization Client.  This
                 counter may experience a discontinuity when the DAC
                 module (re)starts, as indicated by the value of
                 radiusDynAuthClientCounterDiscontinuity."

          REFERENCE
                "RFC 3576, Section 2.2, Change-of-Authorization
                 Messages (CoA)."
          ::= { radiusDynAuthServerEntry 20 }

   radiusDynAuthClientCoARetransmissions OBJECT-TYPE
          SYNTAX     Counter32
          UNITS      "retransmissions"
          MAX-ACCESS read-only
          STATUS     current
          DESCRIPTION
                "The number of RADIUS CoA-request packets
                 retransmitted to this RADIUS Dynamic Authorization
                 Server.  This counter may experience a discontinuity
                 when the DAC module (re)starts, as indicated by the
                 value of radiusDynAuthClientCounterDiscontinuity."
          REFERENCE
                "RFC 3576, Section 2.2, Change-of-Authorization
                 Messages (CoA)."
          ::= { radiusDynAuthServerEntry 21 }

   radiusDynAuthClientCoAAcks  OBJECT-TYPE
          SYNTAX     Counter32
          UNITS      "replies"
          MAX-ACCESS read-only
          STATUS     current
          DESCRIPTION
                "The number of RADIUS CoA-ACK packets received from
                 this Dynamic Authorization Server.  This counter may
                 experience a discontinuity when the DAC module
                 (re)starts, as indicated by the value of
                 radiusDynAuthClientCounterDiscontinuity."
          REFERENCE
                "RFC 3576, Section 2.2, Change-of-Authorization
                 Messages (CoA)."
          ::= { radiusDynAuthServerEntry 22 }

   radiusDynAuthClientCoANaks OBJECT-TYPE
          SYNTAX     Counter32
          UNITS      "replies"
          MAX-ACCESS read-only
          STATUS     current
          DESCRIPTION
                "The number of RADIUS CoA-NAK packets received from
                 this Dynamic Authorization Server.  This includes the
                 RADIUS CoA-NAK packets received with a Service-Type
                 attribute with value 'Authorize Only' and the RADIUS
                 CoA-NAK packets received because no session context
                 was found.  This counter may experience a discontinuity
                 when the DAC module (re)starts, as indicated by the
                 value of radiusDynAuthClientCounterDiscontinuity."
          REFERENCE
                "RFC 3576, Section 2.2, Change-of-Authorization
                 Messages (CoA)."
          ::= { radiusDynAuthServerEntry 23 }

   radiusDynAuthClientCoANakAuthOnlyRequest OBJECT-TYPE
          SYNTAX     Counter32
          UNITS      "replies"
          MAX-ACCESS read-only
          STATUS     current
          DESCRIPTION
                "The number of RADIUS CoA-NAK packets that include a
                 Service-Type attribute with value 'Authorize Only'
                 received from this Dynamic Authorization Server.  This
                 counter may experience a discontinuity when the DAC
                 module (re)starts, as indicated by the value of
                 radiusDynAuthClientCounterDiscontinuity."
          REFERENCE
                "RFC 3576, Section 2.2, Change-of-Authorization
                 Messages (CoA)."
          ::= { radiusDynAuthServerEntry 24 }

   radiusDynAuthClientCoANakSessNoContext OBJECT-TYPE
          SYNTAX     Counter32
          UNITS      "replies"
          MAX-ACCESS read-only
          STATUS     current
          DESCRIPTION
                "The number of RADIUS CoA-NAK packets received from
                 this Dynamic Authorization Server because no session
                 context was found; i.e., it includes an Error-Cause
                 attribute with value 503 ('Session Context Not Found').
                 This counter may experience a discontinuity when the
                 DAC module (re)starts as indicated by the value of
                 radiusDynAuthClientCounterDiscontinuity."
          REFERENCE
                "RFC 3576, Section 2.2, Change-of-Authorization
                 Messages (CoA)."
          ::= { radiusDynAuthServerEntry 25 }

   radiusDynAuthClientMalformedCoAResponses OBJECT-TYPE
          SYNTAX     Counter32
          UNITS      "replies"
          MAX-ACCESS read-only
          STATUS     current
          DESCRIPTION
                "The number of malformed RADIUS CoA-Ack and CoA-NAK
                 packets received from this Dynamic Authorization
                 Server.  Bad authenticators and unknown types are
                 not included as malformed CoA-Ack and CoA-NAK packets.
                 This counter may experience a discontinuity when the
                 DAC module (re)starts, as indicated by the value of
                 radiusDynAuthClientCounterDiscontinuity."
          REFERENCE
                "RFC 3576, Section 2.2, Change-of-Authorization
                 Messages (CoA), and Section 2.3, Packet Format."
          ::= { radiusDynAuthServerEntry 26 }

   radiusDynAuthClientCoABadAuthenticators OBJECT-TYPE
          SYNTAX     Counter32
          UNITS      "replies"
          MAX-ACCESS read-only
          STATUS     current
          DESCRIPTION
                "The number of RADIUS CoA-Ack and CoA-NAK packets
                 that contained invalid Authenticator field
                 received from this Dynamic Authorization Server.
                 This counter may experience a discontinuity when the
                 DAC module (re)starts, as indicated by the value of
                 radiusDynAuthClientCounterDiscontinuity."
          REFERENCE
                "RFC 3576, Section 2.2, Change-of-Authorization
                 Messages (CoA), and Section 2.3, Packet Format."
          ::= { radiusDynAuthServerEntry 27 }

   radiusDynAuthClientCoAPendingRequests OBJECT-TYPE
          SYNTAX     Gauge32
          UNITS      "requests"
          MAX-ACCESS read-only
          STATUS     current
          DESCRIPTION
                "The number of RADIUS CoA-request packets destined for
                 this server that have not yet timed out or received a
                 response.  This variable is incremented when an
                 CoA-Request is sent and decremented due to receipt of
                 a CoA-Ack, a CoA-NAK, or a timeout, or a
                 retransmission."
          REFERENCE
                "RFC 3576, Section 2.2, Change-of-Authorization
                 Messages (CoA)."
          ::= { radiusDynAuthServerEntry 28 }

   radiusDynAuthClientCoATimeouts OBJECT-TYPE

          SYNTAX     Counter32
          UNITS      "timeouts"
          MAX-ACCESS read-only
          STATUS     current
          DESCRIPTION
                "The number of CoA request timeouts to this server.
                 After a timeout, the client may retry to the same
                 server or give up.  A retry to the same server is
                 counted as a retransmit and as a timeout.  A send to
                 a different server is counted as a CoA-Request and
                 as a timeout.  This counter may experience a
                 discontinuity when the DAC module (re)starts, as
                 indicated by the value of
                 radiusDynAuthClientCounterDiscontinuity."
          REFERENCE
                "RFC 3576, Section 2.2, Change-of-Authorization
                 Messages (CoA)."
          ::= { radiusDynAuthServerEntry 29 }

   radiusDynAuthClientCoAPacketsDropped OBJECT-TYPE
          SYNTAX     Counter32
          UNITS      "replies"
          MAX-ACCESS read-only
          STATUS     current
          DESCRIPTION
                "The number of incoming CoA-Ack and CoA-NAK from this
                 Dynamic Authorization Server silently discarded by the
                 client application for some reason other than
                 malformed, bad authenticators, or unknown types.  This
                 counter may experience a discontinuity when the DAC
                 module (re)starts, as indicated by the value of
                 radiusDynAuthClientCounterDiscontinuity."
          REFERENCE
                "RFC 3576, Section 2.2, Change-of-Authorization
                 Messages (CoA), and Section 2.3, Packet Format."
          ::= { radiusDynAuthServerEntry 30 }

   radiusDynAuthClientUnknownTypes OBJECT-TYPE
          SYNTAX     Counter32
          UNITS      "replies"
          MAX-ACCESS read-only
          STATUS     current
          DESCRIPTION
                "The number of incoming packets of unknown types
                 that were received on the Dynamic Authorization port.
                 This counter may experience a discontinuity when the
                 DAC module (re)starts, as indicated by the value of
                 radiusDynAuthClientCounterDiscontinuity."

          REFERENCE
                "RFC 3576, Section 2.3, Packet Format."
          ::= { radiusDynAuthServerEntry 31 }

   radiusDynAuthClientCounterDiscontinuity OBJECT-TYPE
          SYNTAX TimeTicks
          UNITS  "hundredths of a second"
          MAX-ACCESS read-only
          STATUS current
          DESCRIPTION
                "The time (in hundredths of a second) since the
                 last counter discontinuity.  A discontinuity may
                 be the result of a reinitialization of the DAC
                 module within the managed entity."
          ::= { radiusDynAuthServerEntry 32 }


   -- conformance information

   radiusDynAuthClientMIBConformance
          OBJECT IDENTIFIER ::= { radiusDynAuthClientMIB 2 }
   radiusDynAuthClientMIBCompliances
          OBJECT IDENTIFIER ::= { radiusDynAuthClientMIBConformance 1 }
   radiusDynAuthClientMIBGroups
          OBJECT IDENTIFIER ::= { radiusDynAuthClientMIBConformance 2 }
   -- compliance statements

Next up: the compliance statements ๐Ÿ‘€๐ŸŽ€

radiusDynAuthClientMIBCompliance MODULE-COMPLIANCE
      STATUS  current
      DESCRIPTION
            "The compliance statement for entities implementing
             the RADIUS Dynamic Authorization Client.
             Implementation of this module is for entities that
             support IPv4 and/or IPv6."
      MODULE  -- this module
      MANDATORY-GROUPS { radiusDynAuthClientMIBGroup }

      OBJECT             radiusDynAuthServerAddressType
      SYNTAX             InetAddressType { ipv4(1), ipv6(2) }
      DESCRIPTION
          "An implementation is only required to support IPv4 and
           globally unique IPv6 addresses."

      OBJECT             radiusDynAuthServerAddress
      SYNTAX             InetAddress (SIZE(4|16))
      DESCRIPTION
          "An implementation is only required to support IPv4 and
           globally unique IPv6 addresses."

      GROUP              radiusDynAuthClientAuthOnlyGroup
      DESCRIPTION
            "Only required for Dynamic Authorization Clients that
             are supporting Service-Type attributes with value
             'Authorize-Only'."


      GROUP              radiusDynAuthClientNoSessGroup
      DESCRIPTION
            "This group is not required if the Dynamic
             Authorization Server cannot easily determine whether
             a session exists (e.g., in case of a RADIUS
             proxy)."

      ::= { radiusDynAuthClientMIBCompliances 1 }

   -- units of conformance

   radiusDynAuthClientMIBGroup OBJECT-GROUP
      OBJECTS { radiusDynAuthClientDisconInvalidServerAddresses,
                radiusDynAuthClientCoAInvalidServerAddresses,
                radiusDynAuthServerAddressType,
                radiusDynAuthServerAddress,
                radiusDynAuthServerClientPortNumber,
                radiusDynAuthServerID,
                radiusDynAuthClientRoundTripTime,
                radiusDynAuthClientDisconRequests,
                radiusDynAuthClientDisconRetransmissions,
                radiusDynAuthClientDisconAcks,
                radiusDynAuthClientDisconNaks,
                radiusDynAuthClientMalformedDisconResponses,
                radiusDynAuthClientDisconBadAuthenticators,
                radiusDynAuthClientDisconPendingRequests,
                radiusDynAuthClientDisconTimeouts,
                radiusDynAuthClientDisconPacketsDropped,
                radiusDynAuthClientCoARequests,
                radiusDynAuthClientCoARetransmissions,
                radiusDynAuthClientCoAAcks,
                radiusDynAuthClientCoANaks,
                radiusDynAuthClientMalformedCoAResponses,
                radiusDynAuthClientCoABadAuthenticators,
                radiusDynAuthClientCoAPendingRequests,
                radiusDynAuthClientCoATimeouts,
                radiusDynAuthClientCoAPacketsDropped,
                radiusDynAuthClientUnknownTypes,
                radiusDynAuthClientCounterDiscontinuity
              }
      STATUS  current
      DESCRIPTION
            "The collection of objects providing management of
             a RADIUS Dynamic Authorization Client."
      ::= { radiusDynAuthClientMIBGroups 1 }

   radiusDynAuthClientAuthOnlyGroup OBJECT-GROUP
      OBJECTS { radiusDynAuthClientDisconAuthOnlyRequests,
                radiusDynAuthClientDisconNakAuthOnlyRequest,
                radiusDynAuthClientCoAAuthOnlyRequest,
                radiusDynAuthClientCoANakAuthOnlyRequest
              }
      STATUS  current
      DESCRIPTION
            "The collection of objects supporting the RADIUS
             messages including Service-Type attribute with
             value 'Authorize Only'."
      ::= { radiusDynAuthClientMIBGroups 2 }

   radiusDynAuthClientNoSessGroup OBJECT-GROUP
      OBJECTS { radiusDynAuthClientDisconNakSessNoContext,
                radiusDynAuthClientCoANakSessNoContext
              }
      STATUS  current
      DESCRIPTION
            "The collection of objects supporting the RADIUS
             messages that are referring to non-existing sessions."
      ::= { radiusDynAuthClientMIBGroups 3 }



   END

5. Security Considerations ๐Ÿ”

okay bestie, this part is SERIOUS, so read it carefully ๐Ÿซถ There are no management objects defined in this MIB module that have a MAX-ACCESS clause of read-write and/or read-create. So, if this MIB module is implemented correctly, then there is no risk that an intruder can alter or create any management objects of this MIB module via direct SNMP SET operations. ๐Ÿ›ก๏ธ

Some of the readable objects in this MIB module (i.e., objects with a MAX-ACCESS other than not-accessible) may be considered sensitive or vulnerable in some network environments. It is thus important to control even GET and/or NOTIFY access to these objects, and possibly to even encrypt the values of these objects when sending them over the network via SNMP. ๐Ÿ˜ญ These are the tables and objects and their sensitivity/vulnerability:

  • radiusDynAuthServerAddress and radiusDynAuthServerAddressType

These can be used to determine the address of the DAS with which the DAC is communicating. This information could be useful in mounting an attack on the DAS.

  • radiusDynAuthServerID

This can be used to determine the Identifier of the DAS. This information could be useful in impersonating the DAS.

  • radiusDynAuthServerClientPortNumber

This can be used to determine the destination port number to which the DAC is sending. This information could be useful in mounting an attack on the DAS.

SNMP versions prior to SNMPv3 did not include adequate security. Even if the network itself is secure (for example by using IPsec), even then, there is no control as to who on the secure network is allowed to access and GET/SET (read/change/create/delete) the objects in this MIB module. ๐Ÿ’€

Okay so, it is RECOMMENDED that implementers consider the security features as provided by the SNMPv3 framework (see [RFC3410], section 8), including full support for the SNMPv3 cryptographic mechanisms (for authentication and privacy). ๐Ÿ”ฅ

Further, deployment of SNMP versions prior to SNMPv3 is NOT RECOMMENDED. Instead, it is RECOMMENDED to deploy SNMPv3 and to enable cryptographic security. It is then a customer/operator responsibility to ensure that the SNMP entity giving access to an instance of this MIB module is properly configured to give access to the objects only to those principals (users) that have legitimate rights to indeed GET or SET (change/create/delete) them. ๐Ÿ‘‘

6. IANA Considerations ๐ŸŽ€

The IANA has assigned OID number 145 under mib-2. ๐Ÿงš

7. Acknowledgements ๐Ÿซถ

The authors would also like to acknowledge the following people for their comments on this document: Bernard Aboba, Alan DeKok, David Nelson, Anjaneyulu Pata, Dan Romascanu, Juergen Schoenwaelder, Greg Weber, Bert Wijnen, and Glen Zorn. ๐Ÿ’–

8. References ๐Ÿ“š

8.1. Normative References

  • [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.
  • [RFC2578] McCloghrie, K., Perkins, D., and J. Schoenwaelder, "Structure of Management Information Version 2 (SMIv2)", STD 58, RFC 2578, April 1999.
  • [RFC2579] McCloghrie, K., Perkins, D., and J. Schoenwaelder, "Textual Conventions for SMIv2", STD 58, RFC 2579, April 1999.
  • [RFC2580] McCloghrie, K., Perkins, D., and J. Schoenwaelder, "Conformance Statements for SMIv2", STD 58, RFC 2580, April 1999.
  • [RFC3411] Harrington, D., Presuhn, R., and B. Wijnen, "An Architecture for Describing Simple Network Management Protocol (SNMP) Management Frameworks", STD 62, RFC 3411, December 2002.
  • [RFC3576] Chiba, M., Dommety, G., Eklund, M., Mitton, D., and B. Aboba, "Dynamic Authorization Extensions to Remote Authentication Dial In User Service (RADIUS)", RFC 3576, July 2003.
  • [RFC4001] Daniele, M., Haberman, B., Routhier, S., and J. Schoenwaelder, "Textual Conventions for Internet Network Addresses", RFC 4001, February 2005.

8.2. Informative References

  • [RFC2865] Rigney, C., Willens, S., Rubens, A., and W. Simpson, "Remote Authentication Dial In User Service (RADIUS)", RFC 2865, June 2000.
  • [RFC3410] Case, J., Mundy, R., Partain, D., and B. Stewart, "Introduction and Applicability Statements for Internet-Standard Management Framework", RFC 3410, December 2002.
  • [RFC4669] Nelson, D., "RADIUS Authentication Server MIB for IPv6", RFC 4669, August 2006.
  • [RFC4671] Nelson, D., "RADIUS Accounting Server MIB for IPv6", RFC 4671, August 2006.
  • [RFC4673] De Cnodder, S., Jonnala, N., and M. Chiba, "RADIUS Dynamic Authorization Server MIB", RFC 4673, September 2006.

Authors' Addresses ๐Ÿ“ฎ

Stefaan De Cnodder
Alcatel
Francis Wellesplein 1
B-2018 Antwerp
Belgium

Phone: +32 3 240 85 15
EMail: stefaan.de_cnodder@alcatel.be


Nagi Reddy Jonnala
Cisco Systems, Inc.
Divyasree Chambers, B Wing, O'Shaugnessy Road
Bangalore-560027, India

Phone: +91 94487 60828
EMail: njonnala@cisco.com


Murtaza Chiba
Cisco Systems, Inc.
170 West Tasman Dr.
San Jose CA, 95134

Phone: +1 408 525 7198
EMail: mchiba@cisco.com

Copyright (C) The Internet Society (2006).

This document is subject to the rights, licenses and restrictions contained in BCP 78, and except as set forth therein, the authors retain all their rights.

This document and the information contained herein are provided on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM 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.

Intellectual Property ๐Ÿ’œ

The IETF takes no position regarding the validity or scope of any Intellectual Property Rights or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; nor does it represent that it has made any independent effort to identify any such rights. Information on the procedures with respect to rights in RFC documents can be found in BCP 78 and BCP 79.

Copies of IPR disclosures made to the IETF Secretariat and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of this specification can be obtained from the IETF on-line IPR repository at http://www.ietf.org/ipr.

The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights that may cover technology that may be required to implement this standard. Please address the information to the IETF at ietf-ipr@ietf.org.

Acknowledgement ๐ŸŒˆ

Funding for the RFC Editor function is provided by the IETF Administrative Support Activity (IASA). โœจ

๐Ÿ“ฆ where this page comes from