RFC 4673
RADIUS Dynamic Authorization Server MIB
RFC 4673: RADIUS Dynamic Authorization Server MIB π
Part 1 of 4 π¦
- Number: RFC 4673
- Title: RADIUS Dynamic Authorization Server MIB
- Authors: S. De Cnodder (Alcatel), N. Jonnala (Cisco Systems, Inc.), and M. Chiba (Cisco Systems, Inc.)
- Working group: Network Working Group
- Category: Informational
- Date: September 2006
- Obsoletes / Updates: The title block doesn't list anything this RFC obsoletes or updates.
Status of This Memo β¨
Okay so this memo is purely for information for the Internet community π. It is not an Internet standard of any kind, so don't treat it like one. Distribution of this memo is unlimited π.
Copyright Notice π
Copyright (C) The Internet Society (2006).
Abstract πΈ
Okay, this memo defines a chunk of the Management Information Base (MIB) for network management protocols used across the Internet community. The main point is the Remote Authentication Dial-In User Service (RADIUS) (RFC 2865) Dynamic Authorization Server (DAS) functions, which support the dynamic authorization extensions defined in RFC 3576. It's giving "RADIUS gets a dashboard" energy π .
Table of Contents π§
1. Introduction ....................................................2
1.1. Requirements Notation ......................................2
1.2. Terminology ................................................2
2. The Internet-Standard Management Framework ......................2
3. Overview ........................................................3
4. RADIUS Dynamic Authorization Server MIB Definitions .............5
5. Security Considerations ........................................20
6. IANA Considerations ............................................21
7. Acknowledgements ...............................................21
8. References .....................................................21
8.1. Normative References ......................................21
8.2. Informative References ....................................22
1. Introduction β¨
Okay so this memo defines a piece of the Management Information Base (MIB) that network management protocols use across the Internet community. Dynamic Authorization extensions are becoming a must-have π₯ on network access server (NAS) devices, because those devices need to handle the Disconnect and Change-of-Authorization (CoA) messages described in [RFC3576]. That makes managing RADIUS Dynamic Authorization entities super important π. This RADIUS Dynamic Authorization Server (DAS) MIB works alongside the managed objects for RADIUS authentication and accounting clients, described in [RFC4668] and [RFC4670] respectively. Iconic teamwork π«Ά.
1.1. Requirements Notation π
When you see these words in capitals in this document, "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL", they carry the meaning given in [RFC2119]. Read them that way, bestie π€.
1.2. Terminology π
Dynamic Authorization Server (DAS)
The component that lives on the NAS and processes the Disconnect and Change-of-Authorization (CoA) Request packets [RFC3576] sent by the Dynamic Authorization Client.
Dynamic Authorization Client (DAC)
The component that sends Disconnect and CoA-Request packets to the Dynamic Authorization Server. This component often lives on the RADIUS server, but it can also sit on a separate host, such as a Rating Engine π§ .
Dynamic Authorization Server Port
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 a detailed overview of the documents describing the current Internet-Standard Management Framework, go check section 7 of [RFC3410]. It's worth the read π.
Managed objects are accessed through a virtual information store called the Management Information Base, or MIB ποΈ. MIB objects are generally accessed through the Simple Network Management Protocol (SNMP). Objects in the MIB are defined using the mechanisms in the Structure of Management Information (SMI). This memo specifies a MIB module that is compliant to the SMIv2, which is described in STD 58, RFC 2578 [RFC2578], STD 58, RFC 2579 [RFC2579], and STD 58, RFC 2580 [RFC2580]. The SMIv2 is the rulebook, and this MIB follows it π .
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. Typically, NAS devices implement the DAS function, so they're expected to implement the RADIUS Dynamic Authorization Server MIB. DACs implement the client function, so they're expected to implement the RADIUS Dynamic Authorization Client MIB. Division of labour, I love it π.
Here's the plot twist π: a single RADIUS Dynamic Authorization entity can do both client and server jobs. For example, a RADIUS proxy can act as a DAS to one or more DACs while also acting as a DAC to one or more DASs. In those cases, RADIUS entities that combine client and server functionality are expected to support both the client and server MIBs. Main character multitasking π.
This memo describes the MIB for Dynamic Authorization Servers and relates to the following documents:
[RFC4668] describes the MIB for a RADIUS Auth Client MIB.
[RFC4669] describes the MIB for a RADIUS Auth Server MIB.
[RFC4670] describes the MIB for a RADIUS Acct Client MIB.
[RFC4671] describes the MIB for a RADIUS Acct Server MIB.
[RFC4672] describes the MIB for a RADIUS Dynamic Auth Client.
A NAS typically implements the MIBs for a RADIUS Authentication Client, a RADIUS accounting client, and a RADIUS Dynamic Authorization Server. However, any one MIB can be implemented without implementing any of the others, so the MIBs have no dependencies on each other π«§. A typical case would be a device implementing the RADIUS authentication server, RADIUS accounting server, and RADIUS Dynamic Authorization Client MIBs. A RADIUS proxy might implement any, all, or a subset of the MIBs listed above and the MIB defined in this document. Mix and match, babe π.
+---------------+ +---------------+
User 1----| | Disconnect-Request | |
| Dynamic | CoA-Request | Dynamic |
User 2----| Authorization |<---------------------| Authorization |
| Server |--------------------->| Client |
User 3----| (DAS) | Disconnect-Ack | (DAC) |
| | Disconnect-NAK | |
+---------------+ CoA-Ack/CoA-NAK +---------------+
Figure 1. Mapping of clients and servers πΊοΈ
This MIB module for the Dynamic Authorization Server contains the following:
- Three scalar objects.
- One Dynamic Authorization Client Table. This table contains one row for each DAC that the DAS shares a secret with.
4. RADIUS Dynamic Authorization Server MIB Definitions π
Here's where the MIB itself lives, so get comfy ποΈ.
RADIUS-DYNAUTH-SERVER-MIB DEFINITIONS ::= BEGIN
IMPORTS
MODULE-IDENTITY, OBJECT-TYPE,
Counter32, Integer32, mib-2,
TimeTicks FROM SNMPv2-SMI -- [RFC2578]
SnmpAdminString FROM SNMP-FRAMEWORK-MIB -- [RFC3411]
InetAddressType,
InetAddress FROM INET-ADDRESS-MIB -- [RFC4001]
MODULE-COMPLIANCE,
OBJECT-GROUP FROM SNMPv2-CONF; -- [RFC2580]
radiusDynAuthServerMIB 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 server
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 4673; for full
legal notices see the RFC itself."
REVISION "200608290000Z" -- 29 August 2006
DESCRIPTION "Initial version as published in RFC 4673."
::= { mib-2 146 }
radiusDynAuthServerMIBObjects OBJECT IDENTIFIER ::=
{ radiusDynAuthServerMIB 1 }
radiusDynAuthServerScalars OBJECT IDENTIFIER ::=
{ radiusDynAuthServerMIBObjects 1 }
radiusDynAuthServerDisconInvalidClientAddresses OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of Disconnect-Request packets received from
unknown addresses. This counter may experience a
discontinuity when the DAS module (re)starts, as
indicated by the value of
radiusDynAuthServerCounterDiscontinuity."
::= { radiusDynAuthServerScalars 1 }
radiusDynAuthServerCoAInvalidClientAddresses OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of CoA-Request packets received from unknown
addresses. This counter may experience a discontinuity
when the DAS module (re)starts, as indicated by the
value of radiusDynAuthServerCounterDiscontinuity."
::= { radiusDynAuthServerScalars 2 }
radiusDynAuthServerIdentifier OBJECT-TYPE
SYNTAX SnmpAdminString
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The NAS-Identifier of the RADIUS Dynamic Authorization
Server. This is not necessarily the same as sysName in
MIB II."
REFERENCE
"RFC 2865, Section 5.32, NAS-Identifier."
::= { radiusDynAuthServerScalars 3 }
radiusDynAuthClientTable OBJECT-TYPE
SYNTAX SEQUENCE OF RadiusDynAuthClientEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The (conceptual) table listing the RADIUS Dynamic
Authorization Clients with which the server shares a
secret."
::= { radiusDynAuthServerMIBObjects 2 }
radiusDynAuthClientEntry OBJECT-TYPE
SYNTAX RadiusDynAuthClientEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"An entry (conceptual row) representing one Dynamic
Authorization Client with which the server shares a
secret."
INDEX { radiusDynAuthClientIndex }
::= { radiusDynAuthClientTable 1 }
Part 2 is next, and that's where the MIB gets even juicier π¦β¨
okay so this is where the client table gets its row layout πβ¨ every entry is one SEQUENCE of counters plus the client's index and address, and the MIB spells out what each one tracks π¦
RadiusDynAuthClientEntry ::= SEQUENCE {
radiusDynAuthClientIndex Integer32,
radiusDynAuthClientAddressType InetAddressType,
radiusDynAuthClientAddress InetAddress,
radiusDynAuthServDisconRequests Counter32,
radiusDynAuthServDisconAuthOnlyRequests Counter32,
radiusDynAuthServDupDisconRequests Counter32,
radiusDynAuthServDisconAcks Counter32,
radiusDynAuthServDisconNaks Counter32,
radiusDynAuthServDisconNakAuthOnlyRequests Counter32,
radiusDynAuthServDisconNakSessNoContext Counter32,
radiusDynAuthServDisconUserSessRemoved Counter32,
radiusDynAuthServMalformedDisconRequests Counter32,
radiusDynAuthServDisconBadAuthenticators Counter32,
radiusDynAuthServDisconPacketsDropped Counter32,
radiusDynAuthServCoARequests Counter32,
radiusDynAuthServCoAAuthOnlyRequests Counter32,
radiusDynAuthServDupCoARequests Counter32,
radiusDynAuthServCoAAcks Counter32,
radiusDynAuthServCoANaks Counter32,
radiusDynAuthServCoANakAuthOnlyRequests Counter32,
radiusDynAuthServCoANakSessNoContext Counter32,
radiusDynAuthServCoAUserSessChanged Counter32,
radiusDynAuthServMalformedCoARequests Counter32,
radiusDynAuthServCoABadAuthenticators Counter32,
radiusDynAuthServCoAPacketsDropped Counter32,
radiusDynAuthServUnknownTypes Counter32,
radiusDynAuthServerCounterDiscontinuity TimeTicks
}
radiusDynAuthClientIndex
this one is the row's little ID tag π it's a positive integer that the agent hands out itself, and it's only unique inside this table, so it's not a global name or anything πΈ
radiusDynAuthClientIndex OBJECT-TYPE
SYNTAX Integer32 (1..2147483647)
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"A number uniquely identifying each RADIUS Dynamic
Authorization Client with which this Dynamic
Authorization Server communicates. This number is
allocated by the agent implementing this MIB module
and is unique in this context."
::= { radiusDynAuthClientEntry 1 }
radiusDynAuthClientAddressType
this tells you what kind of IP address the client has, so you know how to read the next column π
radiusDynAuthClientAddressType OBJECT-TYPE
SYNTAX InetAddressType
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The type of IP address of the RADIUS Dynamic
Authorization Client referred to in this table entry."
::= { radiusDynAuthClientEntry 2 }
radiusDynAuthClientAddress
the actual address of the client, written in the version-neutral format, so IPv4 and IPv6 both fit in the same column π¦ the address type column is what tells you which one you're looking at π
radiusDynAuthClientAddress OBJECT-TYPE
SYNTAX InetAddress
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The IP address value of the RADIUS Dynamic
Authorization Client 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 radiusDynAuthClientAddressType object."
::= { radiusDynAuthClientEntry 3 }
radiusDynAuthServDisconRequests
the big headline counter for Disconnect-Requests from this client π it also counts the ones marked 'Authorize Only' π and it can get a little reset when the DAS module restarts, which the discontinuity counter helps you track π
radiusDynAuthServDisconRequests OBJECT-TYPE
SYNTAX Counter32
UNITS "requests"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of RADIUS Disconnect-Requests received
from this Dynamic Authorization Client. This also
includes the RADIUS Disconnect-Requests that have a
Service-Type attribute with value 'Authorize Only'.
This counter may experience a discontinuity when the
DAS module (re)starts as indicated by the value of
radiusDynAuthServerCounterDiscontinuity."
REFERENCE
"RFC 3576, Section 2.1, Disconnect Messages (DM)."
::= { radiusDynAuthClientEntry 4 }
radiusDynAuthServDisconAuthOnlyRequests
this one zooms in on just the Disconnect-Requests that carry the 'Authorize Only' Service-Type π it's a subset of the main one above, so the numbers are related π«Ά
radiusDynAuthServDisconAuthOnlyRequests 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'
received from this Dynamic Authorization Client. This
counter may experience a discontinuity when the DAS
module (re)starts, as indicated by the value of
radiusDynAuthServerCounterDiscontinuity."
REFERENCE
"RFC 3576, Section 2.1, Disconnect Messages (DM)."
::= { radiusDynAuthClientEntry 5 }
radiusDynAuthServDupDisconRequests
this counts the duplicate Disconnect-Request packets that show up from this client π it's giving "I already heard you the first time" energy π
radiusDynAuthServDupDisconRequests OBJECT-TYPE
SYNTAX Counter32
UNITS "requests"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of duplicate RADIUS Disconnect-Request
packets received from this Dynamic Authorization
Client. This counter may experience a discontinuity
when the DAS module (re)starts, as indicated by the
value of radiusDynAuthServerCounterDiscontinuity."
REFERENCE
"RFC 3576, Section 2.1, Disconnect Messages (DM)."
::= { radiusDynAuthClientEntry 6 }
radiusDynAuthServDisconAcks
this is the tally of Disconnect-ACK replies the server sent back to this client β the counter is measured in replies π
radiusDynAuthServDisconAcks OBJECT-TYPE
SYNTAX Counter32
UNITS "replies"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of RADIUS Disconnect-ACK packets sent to
this Dynamic Authorization Client. This counter may
experience a discontinuity when the DAS module
(re)starts, as indicated by the value of
radiusDynAuthServerCounterDiscontinuity."
REFERENCE
"RFC 3576, Section 2.1, Disconnect Messages (DM)."
::= { radiusDynAuthClientEntry 7 }
radiusDynAuthServDisconNaks
the Disconnect-NAK tally π ββοΈ this one is a bit of a roll-up, since it includes the 'Authorize Only' NAKs and the NAKs sent because no session context was found π§
radiusDynAuthServDisconNaks OBJECT-TYPE
SYNTAX Counter32
UNITS "replies"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of RADIUS Disconnect-NAK packets
sent to this Dynamic Authorization Client. This
includes the RADIUS Disconnect-NAK packets sent
with a Service-Type attribute with value 'Authorize
Only' and the RADIUS Disconnect-NAK packets sent
because no session context was found. This counter
may experience a discontinuity when the DAS module
(re)starts, as indicated by the value of
radiusDynAuthServerCounterDiscontinuity."
REFERENCE
"RFC 3576, Section 2.1, Disconnect Messages (DM)."
::= { radiusDynAuthClientEntry 8 }
radiusDynAuthServDisconNakAuthOnlyRequests
the NAKs that carry the 'Authorize Only' Service-Type, counted on their own π―
radiusDynAuthServDisconNakAuthOnlyRequests 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' sent to this Dynamic Authorization
Client. This counter may experience a discontinuity
when the DAS module (re)starts, as indicated by the
value of radiusDynAuthServerCounterDiscontinuity."
REFERENCE
"RFC 3576, Section 2.1, Disconnect Messages (DM)."
::= { radiusDynAuthClientEntry 9 }
radiusDynAuthServDisconNakSessNoContext
the NAKs that went out because the server couldn't find a session context π΅οΈββοΈ it's the "nothing to disconnect here, bestie" counter π
radiusDynAuthServDisconNakSessNoContext OBJECT-TYPE
SYNTAX Counter32
UNITS "replies"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of RADIUS Disconnect-NAK packets
sent to this Dynamic Authorization Client
because no session context was found. This counter may
experience a discontinuity when the DAS module
(re)starts, as indicated by the value of
radiusDynAuthServerCounterDiscontinuity."
REFERENCE
"RFC 3576, Section 2.1, Disconnect Messages (DM)."
::= { radiusDynAuthClientEntry 10 }
radiusDynAuthServDisconUserSessRemoved
this counts the user sessions that got removed because of this client's Disconnect-Requests π it's measured in sessions, not requests, and one request can knock out more than one session depending on site policy π if the server doesn't know how many sessions a request hit, each request just counts as one π¦
radiusDynAuthServDisconUserSessRemoved OBJECT-TYPE
SYNTAX Counter32
UNITS "sessions"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of user sessions removed for the
Disconnect-Requests received from this
Dynamic Authorization Client. Depending on site-
specific policies, a single Disconnect request
can remove multiple user sessions. In cases where
this Dynamic Authorization Server has no
knowledge of the number of user sessions that
are affected by a single request, each such
Disconnect-Request will count as a single
affected user session only. This counter may experience
a discontinuity when the DAS module (re)starts, as
indicated by the value of
radiusDynAuthServerCounterDiscontinuity."
REFERENCE
"RFC 3576, Section 2.1, Disconnect Messages (DM)."
::= { radiusDynAuthClientEntry 11 }
radiusDynAuthServMalformedDisconRequests
this one is for Disconnect-Requests that came in badly formed π bad authenticators and unknown types don't count here, they have their own homes π
radiusDynAuthServMalformedDisconRequests OBJECT-TYPE
SYNTAX Counter32
UNITS "requests"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of malformed RADIUS Disconnect-Request
packets received from this Dynamic Authorization
Client. Bad authenticators and unknown types are not
included as malformed Disconnect-Requests. This counter
may experience a discontinuity when the DAS module
(re)starts, as indicated by the value of
radiusDynAuthServerCounterDiscontinuity."
REFERENCE
"RFC 3576, Section 2.1, Disconnect Messages (DM), and
Section 2.3, Packet Format."
::= { radiusDynAuthClientEntry 12 }
radiusDynAuthServDisconBadAuthenticators
this one counts the Disconnect-Requests whose Authenticator field was invalid π these are the ones that failed the authenticator check, so they're tracked separately π«Ά
radiusDynAuthServDisconBadAuthenticators OBJECT-TYPE
SYNTAX Counter32
UNITS "requests"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of RADIUS Disconnect-Request packets
that contained an invalid Authenticator field
received from this Dynamic Authorization Client. This
counter may experience a discontinuity when the DAS
module (re)starts, as indicated by the value of
radiusDynAuthServerCounterDiscontinuity."
REFERENCE
"RFC 3576, Section 2.1, Disconnect Messages (DM), and
Section 2.3, Packet Format."
::= { radiusDynAuthClientEntry 13 }
radiusDynAuthServDisconPacketsDropped
the last Disconnect counter π it tracks the incoming Disconnect-Requests from this client that the server application quietly threw away for reasons that aren't malformed, bad authenticators, or unknown types π§
radiusDynAuthServDisconPacketsDropped OBJECT-TYPE
SYNTAX Counter32
UNITS "requests"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of incoming Disconnect-Requests
from this Dynamic Authorization Client silently
discarded by the server application for some reason
other than malformed, bad authenticators, or unknown
types. This counter may experience a discontinuity
when the DAS module (re)starts, as indicated by the
value of radiusDynAuthServerCounterDiscontinuity."
REFERENCE
"RFC 3576, Section 2.1, Disconnect Messages (DM), and
Section 2.3, Packet Format."
::= { radiusDynAuthClientEntry 14 }
Okay bestie, the CoA counters are where it gets spicy πΆοΈ Every one of these is a Counter32 that's read-only and tied to the radiusDynAuthClientEntry row. Let's go π
radiusDynAuthServCoARequests OBJECT-TYPE
SYNTAX Counter32
UNITS "requests"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of RADIUS CoA-requests received from this
Dynamic Authorization Client. This also includes
the CoA requests that have a Service-Type attribute
with value 'Authorize Only'. This counter may
experience a discontinuity when the DAS module
(re)starts, as indicated by the value of
radiusDynAuthServerCounterDiscontinuity."
REFERENCE
"RFC 3576, Section 2.2, Change-of-Authorization
Messages (CoA)."
::= { radiusDynAuthClientEntry 15 }
radiusDynAuthServCoAAuthOnlyRequests 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'
received from this Dynamic Authorization Client. This
counter may experience a discontinuity when the DAS
module (re)starts, as indicated by the value of
radiusDynAuthServerCounterDiscontinuity."
REFERENCE
"RFC 3576, Section 2.2, Change-of-Authorization
Messages (CoA)."
::= { radiusDynAuthClientEntry 16 }
radiusDynAuthServDupCoARequests OBJECT-TYPE
SYNTAX Counter32
UNITS "requests"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of duplicate RADIUS CoA-Request packets
received from this Dynamic Authorization Client. This
counter may experience a discontinuity when the DAS
module (re)starts, as indicated by the value of
radiusDynAuthServerCounterDiscontinuity."
REFERENCE
"RFC 3576, Section 2.2, Change-of-Authorization
Messages (CoA)."
::= { radiusDynAuthClientEntry 17 }
radiusDynAuthServCoAAcks OBJECT-TYPE
SYNTAX Counter32
UNITS "replies"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of RADIUS CoA-ACK packets sent to this
Dynamic Authorization Client. This counter may
experience a discontinuity when the DAS module
(re)starts, as indicated by the value of
radiusDynAuthServerCounterDiscontinuity."
REFERENCE
"RFC 3576, Section 2.2, Change-of-Authorization
Messages (CoA)."
::= { radiusDynAuthClientEntry 18 }
radiusDynAuthServCoANaks OBJECT-TYPE
SYNTAX Counter32
UNITS "replies"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of RADIUS CoA-NAK packets sent to
this Dynamic Authorization Client. This includes
the RADIUS CoA-NAK packets sent with a Service-Type
attribute with value 'Authorize Only' and the RADIUS
CoA-NAK packets sent because no session context was
found. This counter may experience a discontinuity
when the DAS module (re)starts, as indicated by the
value of radiusDynAuthServerCounterDiscontinuity."
REFERENCE
"RFC 3576, Section 2.2, Change-of-Authorization
Messages (CoA)."
::= { radiusDynAuthClientEntry 19 }
radiusDynAuthServCoANakAuthOnlyRequests 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'
sent to this Dynamic Authorization Client. This counter
may experience a discontinuity when the DAS module
(re)starts, as indicated by the value of
radiusDynAuthServerCounterDiscontinuity."
REFERENCE
"RFC 3576, Section 2.2, Change-of-Authorization
Messages (CoA)."
::= { radiusDynAuthClientEntry 20 }
radiusDynAuthServCoANakSessNoContext OBJECT-TYPE
SYNTAX Counter32
UNITS "replies"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of RADIUS CoA-NAK packets sent to this
Dynamic Authorization Client because no session context
was found. This counter may experience a discontinuity
when the DAS module (re)starts, as indicated by the
value of radiusDynAuthServerCounterDiscontinuity."
REFERENCE
"RFC 3576, Section 2.2, Change-of-Authorization
Messages (CoA)."
::= { radiusDynAuthClientEntry 21 }
radiusDynAuthServCoAUserSessChanged OBJECT-TYPE
SYNTAX Counter32
UNITS "sessions"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of user sessions authorization
changed for the CoA-Requests received from this
Dynamic Authorization Client. Depending on site-
specific policies, a single CoA request can change
multiple user sessions' authorization. In cases where
this Dynamic Authorization Server has no knowledge of
the number of user sessions that are affected by a
single request, each such CoA-Request will
count as a single affected user session only. This
counter may experience a discontinuity when the DAS
module (re)starts, as indicated by the value of
radiusDynAuthServerCounterDiscontinuity."
REFERENCE
"RFC 3576, Section 2.2, Change-of-Authorization
Messages (CoA)."
::= { radiusDynAuthClientEntry 22 }
Ngl, the NAK counters are a little bit of a web πΈοΈ CoANaks covers the Authorize Only NAKs AND the no-session NAKs, and then the two sub-counters break those out. Keep that picture in your head and it all clicks π§ β¨
radiusDynAuthServMalformedCoARequests OBJECT-TYPE
SYNTAX Counter32
UNITS "requests"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of malformed RADIUS CoA-Request packets
received from this Dynamic Authorization Client. Bad
authenticators and unknown types are not included as
malformed CoA-Requests. This counter may experience a
discontinuity when the DAS module (re)starts, as
indicated by the value of
radiusDynAuthServerCounterDiscontinuity."
REFERENCE
"RFC 3576, Section 2.2, Change-of-Authorization
Messages (CoA), and Section 2.3, Packet Format."
::= { radiusDynAuthClientEntry 23 }
radiusDynAuthServCoABadAuthenticators OBJECT-TYPE
SYNTAX Counter32
UNITS "requests"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of RADIUS CoA-Request packets that
contained an invalid Authenticator field received
from this Dynamic Authorization Client. This counter
may experience a discontinuity when the DAS module
(re)starts, as indicated by the value of
radiusDynAuthServerCounterDiscontinuity."
REFERENCE
"RFC 3576, Section 2.2, Change-of-Authorization
Messages (CoA), and Section 2.3, Packet Format."
::= { radiusDynAuthClientEntry 24 }
radiusDynAuthServCoAPacketsDropped OBJECT-TYPE
SYNTAX Counter32
UNITS "requests"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of incoming CoA packets from this
Dynamic Authorization Client silently discarded
by the server application for some reason other than
malformed, bad authenticators, or unknown types. This
counter may experience a discontinuity when the DAS
module (re)starts, as indicated by the value of
radiusDynAuthServerCounterDiscontinuity."
REFERENCE
"RFC 3576, Section 2.2, Change-of-Authorization
Messages (CoA), and Section 2.3, Packet Format."
::= { radiusDynAuthClientEntry 25 }
radiusDynAuthServUnknownTypes OBJECT-TYPE
SYNTAX Counter32
UNITS "requests"
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 DAS
module (re)starts, as indicated by the value of
radiusDynAuthServerCounterDiscontinuity."
REFERENCE
"RFC 3576, Section 2.3, Packet Format."
::= { radiusDynAuthClientEntry 26 }
radiusDynAuthServerCounterDiscontinuity 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 DAS
module within the managed entity."
::= { radiusDynAuthClientEntry 27 }
Okay, the discontinuity timer is the one that tells you when your counters might have reset, so it's basically the receipts π§Ύ Now the conformance bit, the part where the spec gets organised into little boxes π¦
-- conformance information
radiusDynAuthServerMIBConformance
OBJECT IDENTIFIER ::= { radiusDynAuthServerMIB 2 }
radiusDynAuthServerMIBCompliances
OBJECT IDENTIFIER ::= { radiusDynAuthServerMIBConformance 1 }
radiusDynAuthServerMIBGroups
OBJECT IDENTIFIER ::= { radiusDynAuthServerMIBConformance 2 }
-- compliance statements
radiusAuthServerMIBCompliance MODULE-COMPLIANCE
STATUS current
DESCRIPTION
"The compliance statement for entities implementing
the RADIUS Dynamic Authorization Server. Implementation
of this module is for entities that support IPv4 and/or
IPv6."
MODULE -- this module
MANDATORY-GROUPS { radiusDynAuthServerMIBGroup }
OBJECT radiusDynAuthClientAddressType
SYNTAX InetAddressType { ipv4(1), ipv6(2) }
DESCRIPTION
"An implementation is only required to support IPv4 and
globally unique IPv6 addresses."
OBJECT radiusDynAuthClientAddress
SYNTAX InetAddress (SIZE(4|16))
DESCRIPTION
"An implementation is only required to support IPv4 and
globally unique IPv6 addresses."
GROUP radiusDynAuthServerAuthOnlyGroup
DESCRIPTION
"Only required for Dynamic Authorization Clients that
are supporting Service-Type attributes with value
'Authorize-Only'."
GROUP radiusDynAuthServerNoSessGroup
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)."
::= { radiusDynAuthServerMIBCompliances 1 }
-- units of conformance
radiusDynAuthServerMIBGroup OBJECT-GROUP
OBJECTS { radiusDynAuthServerDisconInvalidClientAddresses,
radiusDynAuthServerCoAInvalidClientAddresses,
radiusDynAuthServerIdentifier,
radiusDynAuthClientAddressType,
radiusDynAuthClientAddress,
radiusDynAuthServDisconRequests,
radiusDynAuthServDupDisconRequests,
radiusDynAuthServDisconAcks,
radiusDynAuthServDisconNaks,
radiusDynAuthServDisconUserSessRemoved,
radiusDynAuthServMalformedDisconRequests,
radiusDynAuthServDisconBadAuthenticators,
radiusDynAuthServDisconPacketsDropped,
radiusDynAuthServCoARequests,
radiusDynAuthServDupCoARequests,
radiusDynAuthServCoAAcks,
radiusDynAuthServCoANaks,
radiusDynAuthServCoAUserSessChanged,
radiusDynAuthServMalformedCoARequests,
radiusDynAuthServCoABadAuthenticators,
radiusDynAuthServCoAPacketsDropped,
radiusDynAuthServUnknownTypes,
radiusDynAuthServerCounterDiscontinuity
}
STATUS current
DESCRIPTION
"The collection of objects providing management of
a RADIUS Dynamic Authorization Server."
::= { radiusDynAuthServerMIBGroups 1 }
radiusDynAuthServerAuthOnlyGroup OBJECT-GROUP
OBJECTS { radiusDynAuthServDisconAuthOnlyRequests,
radiusDynAuthServDisconNakAuthOnlyRequests,
radiusDynAuthServCoAAuthOnlyRequests,
radiusDynAuthServCoANakAuthOnlyRequests
}
STATUS current
DESCRIPTION
"The collection of objects supporting the RADIUS
messages including Service-Type attribute with
value 'Authorize Only'."
::= { radiusDynAuthServerMIBGroups 2 }
radiusDynAuthServerNoSessGroup OBJECT-GROUP
OBJECTS { radiusDynAuthServDisconNakSessNoContext,
radiusDynAuthServCoANakSessNoContext
}
STATUS current
DESCRIPTION
"The collection of objects supporting the RADIUS
messages that are referring to non-existing sessions."
::= { radiusDynAuthServerMIBGroups 3 }
END
5. Security Considerations π
Okay, bestie, security is serious, so let's get into it. π There are no management objects in this MIB module with a MAX-ACCESS clause of read-write and/or read-create. So if this MIB module is implemented correctly, there's no risk that an intruder can alter or create any of its management objects with direct SNMP SET operations. Iconic. π
Some of the readable objects (the ones with a MAX-ACCESS other than not-accessible) might be sensitive or vulnerable depending on the network. So it's really important to control even GET and/or NOTIFY access to them, and maybe even encrypt their values when they travel over the network via SNMP. π«£ Here are the tables and objects and why they're sensitive:
radiusDynAuthClientAddressandradiusDynAuthClientAddressType
These can be used to figure out the address of the DAC that the DAS is talking to. That info could be super useful for mounting an attack on the DAC. π
radiusDynAuthServerIdentifier
This can be used to find out the Identifier of the DAS. That info could be useful for impersonating the DAS. π
SNMP versions before SNMPv3 did not include adequate security. Even if the network itself is secure (for example by using IPsec), there's still no control over who on that secure network gets to access and GET/SET (read/change/create/delete) the objects in this MIB module. Not it. π ββοΈ
It is RECOMMENDED that implementers consider the security features 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. Then it's a customer/operator responsibility to make sure the SNMP entity giving access to an instance of this MIB module is properly configured, so the objects are only accessible to the principals (users) who have legitimate rights to GET or SET (change/create/delete) them. Main character energy for the people doing the locking. π§
6. IANA Considerations π§
Here's the quick one: the IANA has assigned OID number 146 under mib-2. β¨
7. Acknowledgements π«Ά
The authors want to give a shoutout to 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. You all ate this. π
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.
- [RFC4668] Nelson, D., "RADIUS Authentication Client MIB for IPv6", RFC 4668, August 2006.
- [RFC4669] Nelson, D., "RADIUS Authentication Server MIB for IPv6", RFC 4669, August 2006.
- [RFC4670] Nelson, D., "RADIUS Accounting Client MIB for IPv6", RFC 4670, August 2006.
- [RFC4671] Nelson, D., "RADIUS Accounting Server MIB for IPv6", RFC 4671, August 2006.
- [RFC4672] De Cnodder, S., Jonnala, N., and M. Chiba, "RADIUS Dynamic Authorization Client MIB", RFC 4672, 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
Full Copyright Statement Β©οΈ
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 on the validity or scope of any Intellectual Property Rights or other rights that might be claimed to apply to the implementation or use of the technology described in this document, or on whether any license under such rights might or might not be available. It also doesn't claim to have made any independent effort to identify such rights. Info on the procedures for rights in RFC documents can be found in BCP 78 and BCP 79.
Copies of IPR disclosures made to the IETF Secretariat, any assurances of licenses to be made available, or the result of an attempt 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 needed to implement this standard. Please send that info 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
- ietf: rfc4673 2006-09
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms