All MIBs › DNS-RESOLVER-MIB
Organization: IETF DNS Working Group
Last Updated: 1994-01-28
Category: Web and Application Servers
Description:
Defines managed objects for DNS resolver software, enabling SNMP-based management of DNS resolver configuration, cache, and query statistics.
Imported Objects
From DNS-SERVER-MIB
| DnsClass | |
| DnsName | |
| DnsNameAsIndex | |
| DnsOpCode | |
| DnsQClass | |
| DnsQType | |
| DnsRespCode | |
| DnsTime | |
| DnsType | |
| dns | OBJECT-IDENTITY |
From SNMPv2-CONF
| MODULE-COMPLIANCE | |
| OBJECT-GROUP |
From SNMPv2-SMI
| Counter32 | |
| Integer32 | |
| IpAddress | |
| MODULE-IDENTITY | |
| OBJECT-TYPE |
From SNMPv2-TC
| DisplayString | |
| RowStatus | |
| TEXTUAL-CONVENTION |
What Is DNS-RESOLVER-MIB?
DNS-RESOLVER-MIB is a vendor-neutral IETF standards-track MIB for managing the client-side DNS resolver software on a host or networking device. It exposes resolver configuration such as the search belt (default name servers), implementation identity, recursion behavior, and query statistics/counters. It is used to monitor DNS resolver software status and configuration — confirming which name servers are configured, resolver service state, and query counters that catch resolution failures or misconfiguration. The DNS-RESOLVER-MIB RFC (RFC 1612) defines this module's objects independent of any vendor implementation, so it can be loaded on any compliant host or device. It has little role in hardware monitoring since it covers software (DNS resolver) status, and it stands alone as a standards MIB without dependency on specific enterprise MIBs. It is typically deployed on servers, routers, or any networked device performing DNS name resolution, for troubleshooting name-resolution problems.
IPNetwork Monitor allows you to monitor SNMP objects defined in DNS-RESOLVER-MIB. Use the built-in SNMP Monitoring Browser to explore available variables, view their current values and descriptions, and select the objects you want to monitor. You can then create SNMP monitors, configure thresholds, and receive alerts when monitored values change.
What Can Be Monitored
- configured DNS server addresses (search belt)
- server preference order
- recursion support per server
- max CNAMEs followed
- resolver query counters
- resolver implementation identity
Supported Devices
- vendor-neutral, standards-based MIB, not tied to a specific manufacturer — applies to any host or network device running DNS resolver software
Monitoring Examples
An admin can poll dnsResConfigSbeltTable/dnsResConfigSbeltEntry to verify configured name servers (dnsResConfigSbeltAddr, dnsResConfigSbeltName) and their preference order (dnsResConfigSbeltPref), useful when diagnosing lookup failures after a DNS server change. dnsResConfigMaxCnames bounds CNAME chain following, and dnsResCounter tracks resolver query volume, revealing spikes in failed lookups when a configured server becomes unreachable.
OIDs
| OID symbolic | OID numeric | Type | Access | Description |
|---|---|---|---|---|
| dnsResMIB | 1.3.6.1.2.1.32.2 | The MIB module for entities implementing the client (resolver) side of the Domain Name System (DNS) protocol. | ||
| dnsResMIBObjects | 1.3.6.1.2.1.32.2.1 | |||
| dnsResConfig | 1.3.6.1.2.1.32.2.1.1 | |||
| STR dnsResConfigImplementIdent | 1.3.6.1.2.1.32.2.1.1.1 | DisplayString | read-only | The implementation identification string for the resolver software in use on the system, for example; `RES-2.1' |
| INT dnsResConfigService | 1.3.6.1.2.1.32.2.1.1.2 | INTEGER | read-only | Kind of DNS resolution service provided: recursiveOnly(1) indicates a stub resolver. iterativeOnly(2) indicates a normal full service resolver. recursiveAndIterative(3) indicates a full-service resolver which performs a mix of recursive and iterative queries. |
| INT dnsResConfigMaxCnames | 1.3.6.1.2.1.32.2.1.1.3 | INTEGER | read-write | Limit on how many CNAMEs the resolver should allow before deciding that there's a CNAME loop. Zero means that resolver has no explicit CNAME limit. |
| dnsResConfigSbeltTable | 1.3.6.1.2.1.32.2.1.1.4 | not-accessible | Table of safety belt information used by the resolver when it hasn't got any better idea of where to send a query, such as when the resolver is booting or is a stub resolver. | |
| dnsResConfigSbeltEntry | 1.3.6.1.2.1.32.2.1.1.4.1 | not-accessible | An entry in the resolver's Sbelt table. Rows may be created or deleted at any time by the DNS resolver and by SNMP SET requests. Whether the values changed via SNMP are saved in stable storage across `reset' operations is implementation-specific. | |
| IP dnsResConfigSbeltAddr | 1.3.6.1.2.1.32.2.1.1.4.1.1 | IpAddress | not-accessible | The IP address of the Sbelt name server identified by this row of the table. |
| DNS dnsResConfigSbeltName | 1.3.6.1.2.1.32.2.1.1.4.1.2 | DnsName | read-create | The DNS name of a Sbelt nameserver identified by this row of the table. A zero-length string indicates that the name is not known by the resolver. |
| INT dnsResConfigSbeltRecursion | 1.3.6.1.2.1.32.2.1.1.4.1.3 | INTEGER | read-create | Kind of queries resolver will be sending to the name server identified in this row of the table: iterative(1) indicates that resolver will be directing iterative queries to this name server (RD bit turned off). recursive(2) indicates that resolver will be directing recursive queries to this name server (RD bit turned on). recursiveAndIterative(3) indicates that the resolver will be directing both recursive and iterative queries to the server identified in this row of the table. |
| INT dnsResConfigSbeltPref | 1.3.6.1.2.1.32.2.1.1.4.1.4 | INTEGER | read-create | This value identifies the preference for the name server identified in this row of the table. The lower the value, the more desirable the resolver considers this server. |
| DNS dnsResConfigSbeltSubTree | 1.3.6.1.2.1.32.2.1.1.4.1.5 | DnsNameAsIndex | not-accessible | Queries sent to the name server identified by this row of the table are limited to those for names in the name subtree identified by this variable. If no such limitation applies, the value of this variable is the name of the root domain (a DNS name consisting of a single zero octet). |
| DNS dnsResConfigSbeltClass | 1.3.6.1.2.1.32.2.1.1.4.1.6 | DnsClass | not-accessible | The class of DNS queries that will be sent to the server identified by this row of the table. |
| ROW dnsResConfigSbeltStatus | 1.3.6.1.2.1.32.2.1.1.4.1.7 | RowStatus | read-create | Row status column for this row of the Sbelt table. |
| DNS dnsResConfigUpTime | 1.3.6.1.2.1.32.2.1.1.5 | DnsTime | read-only | If the resolver has a persistent state (e.g., a process), this value will be the time elapsed since it started. For software without persistant state, this value will be 0. |
| DNS dnsResConfigResetTime | 1.3.6.1.2.1.32.2.1.1.6 | DnsTime | read-only | If the resolver has a persistent state (e.g., a process) and supports a `reset' operation (e.g., can be told to re-read configuration files), this value will be the time elapsed since the last time the resolver was `reset.' For software that does not have persistence or does not support a `reset' operation, this value will be zero. |
| INT dnsResConfigReset | 1.3.6.1.2.1.32.2.1.1.7 | INTEGER | read-write | Status/action object to reinitialize any persistant resolver state. When set to reset(2), any persistant resolver state (such as a process) is reinitialized as if the resolver had just been started. This value will never be returned by a read operation. When read, one of the following values will be returned: other(1) - resolver in some unknown state; initializing(3) - resolver (re)initializing; running(4) - resolver currently running. |
| dnsResCounter | 1.3.6.1.2.1.32.2.1.2 | |||
| dnsResCounterByOpcodeTable | 1.3.6.1.2.1.32.2.1.2.3 | not-accessible | Table of the current count of resolver queries and answers. | |
| dnsResCounterByOpcodeEntry | 1.3.6.1.2.1.32.2.1.2.3.1 | not-accessible | Entry in the resolver counter table. Entries are indexed by DNS OpCode. | |
| DNS dnsResCounterByOpcodeCode | 1.3.6.1.2.1.32.2.1.2.3.1.1 | DnsOpCode | not-accessible | The index to this table. The OpCodes that have already been defined are found in RFC-1035. |
| C32 dnsResCounterByOpcodeQueries | 1.3.6.1.2.1.32.2.1.2.3.1.2 | Counter32 | read-only | Total number of queries that have sent out by the resolver since initialization for the OpCode which is the index to this row of the table. |
| C32 dnsResCounterByOpcodeResponses | 1.3.6.1.2.1.32.2.1.2.3.1.3 | Counter32 | read-only | Total number of responses that have been received by the resolver since initialization for the OpCode which is the index to this row of the table. |
| dnsResCounterByRcodeTable | 1.3.6.1.2.1.32.2.1.2.4 | not-accessible | Table of the current count of responses to resolver queries. | |
| dnsResCounterByRcodeEntry | 1.3.6.1.2.1.32.2.1.2.4.1 | not-accessible | Entry in the resolver response table. Entries are indexed by DNS response code. | |
| DNS dnsResCounterByRcodeCode | 1.3.6.1.2.1.32.2.1.2.4.1.1 | DnsRespCode | not-accessible | The index to this table. The Response Codes that have already been defined are found in RFC-1035. |
| C32 dnsResCounterByRcodeResponses | 1.3.6.1.2.1.32.2.1.2.4.1.2 | Counter32 | read-only | Number of responses the resolver has received for the response code value which identifies this row of the table. |
| C32 dnsResCounterNonAuthDataResps | 1.3.6.1.2.1.32.2.1.2.5 | Counter32 | read-only | Number of requests made by the resolver for which a non-authoritative answer (cached data) was received. |
| C32 dnsResCounterNonAuthNoDataResps | 1.3.6.1.2.1.32.2.1.2.6 | Counter32 | read-only | Number of requests made by the resolver for which a non-authoritative answer - no such data response (empty answer) was received. |
| C32 dnsResCounterMartians | 1.3.6.1.2.1.32.2.1.2.7 | Counter32 | read-only | Number of responses received which were received from servers that the resolver does not think it asked. |
| C32 dnsResCounterRecdResponses | 1.3.6.1.2.1.32.2.1.2.8 | Counter32 | read-only | Number of responses received to all queries. |
| C32 dnsResCounterUnparseResps | 1.3.6.1.2.1.32.2.1.2.9 | Counter32 | read-only | Number of responses received which were unparseable. |
| C32 dnsResCounterFallbacks | 1.3.6.1.2.1.32.2.1.2.10 | Counter32 | read-only | Number of times the resolver had to fall back to its seat belt information. |
| dnsResLameDelegation | 1.3.6.1.2.1.32.2.1.3 | |||
| C32 dnsResLameDelegationOverflows | 1.3.6.1.2.1.32.2.1.3.1 | Counter32 | read-only | Number of times the resolver attempted to add an entry to the Lame Delegation table but was unable to for some reason such as space constraints. |
| dnsResLameDelegationTable | 1.3.6.1.2.1.32.2.1.3.2 | not-accessible | Table of name servers returning lame delegations. A lame delegation has occured when a parent zone delegates authority for a child zone to a server that appears not to think that it is authoritative for the child zone in question. | |
| dnsResLameDelegationEntry | 1.3.6.1.2.1.32.2.1.3.2.1 | not-accessible | Entry in lame delegation table. Only the resolver may create rows in this table. SNMP SET requests may be used to delete rows. | |
| IP dnsResLameDelegationSource | 1.3.6.1.2.1.32.2.1.3.2.1.1 | IpAddress | not-accessible | Source of lame delegation. |
| DNS dnsResLameDelegationName | 1.3.6.1.2.1.32.2.1.3.2.1.2 | DnsNameAsIndex | not-accessible | DNS name for which lame delegation was received. |
| DNS dnsResLameDelegationClass | 1.3.6.1.2.1.32.2.1.3.2.1.3 | DnsClass | not-accessible | DNS class of received lame delegation. |
| C32 dnsResLameDelegationCounts | 1.3.6.1.2.1.32.2.1.3.2.1.4 | Counter32 | read-only | How many times this lame delegation has been received. |
| ROW dnsResLameDelegationStatus | 1.3.6.1.2.1.32.2.1.3.2.1.5 | RowStatus | read-write | Status column for the lame delegation table. Since only the agent (DNS resolver) creates rows in this table, the only values that a manager may write to this variable are active(1) and destroy(6). |
| dnsResCache | 1.3.6.1.2.1.32.2.1.4 | |||
| INT dnsResCacheStatus | 1.3.6.1.2.1.32.2.1.4.1 | INTEGER | read-write | Status/action for the resolver's cache. enabled(1) means that the use of the cache is allowed. Query operations can return this state. disabled(2) means that the cache is not being used. Query operations can return this state. Setting this variable to clear(3) deletes the entire contents of the resolver's cache, but does not otherwise change the resolver's state. The status will retain its previous value from before the clear operation (i.e., enabled(1) or disabled(2)). The value of clear(3) can NOT be returned by a query operation. |
| DNS dnsResCacheMaxTTL | 1.3.6.1.2.1.32.2.1.4.2 | DnsTime | read-write | Maximum Time-To-Live for RRs in this cache. If the resolver does not implement a TTL ceiling, the value of this field should be zero. |
| C32 dnsResCacheGoodCaches | 1.3.6.1.2.1.32.2.1.4.3 | Counter32 | read-only | Number of RRs the resolver has cached successfully. |
| C32 dnsResCacheBadCaches | 1.3.6.1.2.1.32.2.1.4.4 | Counter32 | read-only | Number of RRs the resolver has refused to cache because they appear to be dangerous or irrelevant. E.g., RRs with suspiciously high TTLs, unsolicited root information, or that just don't appear to be relevant to the question the resolver asked. |
| dnsResCacheRRTable | 1.3.6.1.2.1.32.2.1.4.5 | not-accessible | This table contains information about all the resource records currently in the resolver's cache. | |
| dnsResCacheRREntry | 1.3.6.1.2.1.32.2.1.4.5.1 | not-accessible | An entry in the resolvers's cache. Rows may be created only by the resolver. SNMP SET requests may be used to delete rows. | |
| DNS dnsResCacheRRName | 1.3.6.1.2.1.32.2.1.4.5.1.1 | DnsNameAsIndex | not-accessible | Owner name of the Resource Record in the cache which is identified in this row of the table. As described in RFC-1034, the owner of the record is the domain name were the RR is found. |
| DNS dnsResCacheRRClass | 1.3.6.1.2.1.32.2.1.4.5.1.2 | DnsClass | not-accessible | DNS class of the Resource Record in the cache which is identified in this row of the table. |
| DNS dnsResCacheRRType | 1.3.6.1.2.1.32.2.1.4.5.1.3 | DnsType | not-accessible | DNS type of the Resource Record in the cache which is identified in this row of the table. |
| DNS dnsResCacheRRTTL | 1.3.6.1.2.1.32.2.1.4.5.1.4 | DnsTime | read-only | Time-To-Live of RR in DNS cache. This is the initial TTL value which was received with the RR when it was originally received. |
| DNS dnsResCacheRRElapsedTTL | 1.3.6.1.2.1.32.2.1.4.5.1.5 | DnsTime | read-only | Elapsed seconds since RR was received. |
| IP dnsResCacheRRSource | 1.3.6.1.2.1.32.2.1.4.5.1.6 | IpAddress | read-only | Host from which RR was received, 0.0.0.0 if unknown. |
| OCT dnsResCacheRRData | 1.3.6.1.2.1.32.2.1.4.5.1.7 | OCTET STRING | read-only | RDATA portion of a cached RR. The value is in the format defined for the particular DNS class and type of the resource record. |
| ROW dnsResCacheRRStatus | 1.3.6.1.2.1.32.2.1.4.5.1.8 | RowStatus | read-write | Status column for the resolver cache table. Since only the agent (DNS resolver) creates rows in this table, the only values that a manager may write to this variable are active(1) and destroy(6). |
| I32 dnsResCacheRRIndex | 1.3.6.1.2.1.32.2.1.4.5.1.9 | Integer32 | not-accessible | A value which makes entries in the table unique when the other index values (dnsResCacheRRName, dnsResCacheRRClass, and dnsResCacheRRType) do not provide a unique index. |
| DNS dnsResCacheRRPrettyName | 1.3.6.1.2.1.32.2.1.4.5.1.10 | DnsName | read-only | Name of the RR at this row in the table. This is identical to the dnsResCacheRRName variable, except that character case is preserved in this variable, per DNS conventions. |
| dnsResNCache | 1.3.6.1.2.1.32.2.1.5 | |||
| INT dnsResNCacheStatus | 1.3.6.1.2.1.32.2.1.5.1 | INTEGER | read-write | Status/action for the resolver's negative response cache. enabled(1) means that the use of the negative response cache is allowed. Query operations can return this state. disabled(2) means that the negative response cache is not being used. Query operations can return this state. Setting this variable to clear(3) deletes the entire contents of the resolver's negative response cache. The status will retain its previous value from before the clear operation (i.e., enabled(1) or disabled(2)). The value of clear(3) can NOT be returned by a query operation. |
| DNS dnsResNCacheMaxTTL | 1.3.6.1.2.1.32.2.1.5.2 | DnsTime | read-write | Maximum Time-To-Live for cached authoritative errors. If the resolver does not implement a TTL ceiling, the value of this field should be zero. |
| C32 dnsResNCacheGoodNCaches | 1.3.6.1.2.1.32.2.1.5.3 | Counter32 | read-only | Number of authoritative errors the resolver has cached successfully. |
| C32 dnsResNCacheBadNCaches | 1.3.6.1.2.1.32.2.1.5.4 | Counter32 | read-only | Number of authoritative errors the resolver would have liked to cache but was unable to because the appropriate SOA RR was not supplied or looked suspicious. |
| dnsResNCacheErrTable | 1.3.6.1.2.1.32.2.1.5.5 | not-accessible | The resolver's negative response cache. This table contains information about authoritative errors that have been cached by the resolver. | |
| dnsResNCacheErrEntry | 1.3.6.1.2.1.32.2.1.5.5.1 | not-accessible | An entry in the resolver's negative response cache table. Only the resolver can create rows. SNMP SET requests may be used to delete rows. | |
| DNS dnsResNCacheErrQName | 1.3.6.1.2.1.32.2.1.5.5.1.1 | DnsNameAsIndex | not-accessible | QNAME associated with a cached authoritative error. |
| DNS dnsResNCacheErrQClass | 1.3.6.1.2.1.32.2.1.5.5.1.2 | DnsQClass | not-accessible | DNS QCLASS associated with a cached authoritative error. |
| DNS dnsResNCacheErrQType | 1.3.6.1.2.1.32.2.1.5.5.1.3 | DnsQType | not-accessible | DNS QTYPE associated with a cached authoritative error. |
| DNS dnsResNCacheErrTTL | 1.3.6.1.2.1.32.2.1.5.5.1.4 | DnsTime | read-only | Time-To-Live of a cached authoritative error at the time of the error, it should not be decremented by the number of seconds since it was received. This should be the TTL as copied from the MINIMUM field of the SOA that accompanied the authoritative error, or a smaller value if the resolver implements a ceiling on negative response cache TTLs. |
| DNS dnsResNCacheErrElapsedTTL | 1.3.6.1.2.1.32.2.1.5.5.1.5 | DnsTime | read-only | Elapsed seconds since authoritative error was received. |
| IP dnsResNCacheErrSource | 1.3.6.1.2.1.32.2.1.5.5.1.6 | IpAddress | read-only | Host which sent the authoritative error, 0.0.0.0 if unknown. |
| INT dnsResNCacheErrCode | 1.3.6.1.2.1.32.2.1.5.5.1.7 | INTEGER | read-only | The authoritative error that has been cached: nonexistantName(1) indicates an authoritative name error (RCODE = 3). noData(2) indicates an authoritative response with no error (RCODE = 0) and no relevant data. other(3) indicates some other cached authoritative error. At present, no such errors are known to exist. |
| ROW dnsResNCacheErrStatus | 1.3.6.1.2.1.32.2.1.5.5.1.8 | RowStatus | read-write | Status column for the resolver negative response cache table. Since only the agent (DNS resolver) creates rows in this table, the only values that a manager may write to this variable are active(1) and destroy(6). |
| I32 dnsResNCacheErrIndex | 1.3.6.1.2.1.32.2.1.5.5.1.9 | Integer32 | read-only | A value which makes entries in the table unique when the other index values (dnsResNCacheErrQName, dnsResNCacheErrQClass, and dnsResNCacheErrQType) do not provide a unique index. |
| DNS dnsResNCacheErrPrettyName | 1.3.6.1.2.1.32.2.1.5.5.1.10 | DnsName | read-only | QNAME associated with this row in the table. This is identical to the dnsResNCacheErrQName variable, except that character case is preserved in this variable, per DNS conventions. |
| dnsResOptCounter | 1.3.6.1.2.1.32.2.1.6 | |||
| C32 dnsResOptCounterReferals | 1.3.6.1.2.1.32.2.1.6.1 | Counter32 | read-only | Number of responses which were received from servers redirecting query to another server. |
| C32 dnsResOptCounterRetrans | 1.3.6.1.2.1.32.2.1.6.2 | Counter32 | read-only | Number requests retransmitted for all reasons. |
| C32 dnsResOptCounterNoResponses | 1.3.6.1.2.1.32.2.1.6.3 | Counter32 | read-only | Number of queries that were retransmitted because of no response. |
| C32 dnsResOptCounterRootRetrans | 1.3.6.1.2.1.32.2.1.6.4 | Counter32 | read-only | Number of queries that were retransmitted that were to root servers. |
| C32 dnsResOptCounterInternals | 1.3.6.1.2.1.32.2.1.6.5 | Counter32 | read-only | Number of requests internally generated by the resolver. |
| C32 dnsResOptCounterInternalTimeOuts | 1.3.6.1.2.1.32.2.1.6.6 | Counter32 | read-only | Number of requests internally generated which timed out. |
| dnsResMIBGroups | 1.3.6.1.2.1.32.2.2 | |||
| dnsResConfigGroup | 1.3.6.1.2.1.32.2.2.1 | A collection of objects providing basic configuration information for a DNS resolver implementation. | ||
| dnsResCounterGroup | 1.3.6.1.2.1.32.2.2.2 | A collection of objects providing basic instrumentation of a DNS resolver implementation. | ||
| dnsResLameDelegationGroup | 1.3.6.1.2.1.32.2.2.3 | A collection of objects providing instrumentation of `lame delegation' failures. | ||
| dnsResCacheGroup | 1.3.6.1.2.1.32.2.2.4 | A collection of objects providing access to and control of a DNS resolver's cache. | ||
| dnsResNCacheGroup | 1.3.6.1.2.1.32.2.2.5 | A collection of objects providing access to and control of a DNS resolver's negative response cache. | ||
| dnsResOptCounterGroup | 1.3.6.1.2.1.32.2.2.6 | A collection of objects providing further instrumentation applicable to many but not all DNS resolvers. | ||
| dnsResMIBCompliances | 1.3.6.1.2.1.32.2.3 | |||
| dnsResMIBCompliance | 1.3.6.1.2.1.32.2.3.1 | The compliance statement for agents implementing the DNS resolver MIB extensions. |
FAQ
How can DNS-RESOLVER-MIB help troubleshoot name-resolution problems on a server?
It exposes the resolver's configured DNS server addresses (search belt), server preference order, per-server recursion support, and max CNAMEs followed, along with query counters — so an operator can confirm which name servers are actually configured and spot query counters indicating resolution failures or misconfiguration.
Does DNS-RESOLVER-MIB tell you anything about the resolver software itself, not just its configuration?
Yes, it includes resolver implementation identity alongside query statistics/counters, useful for confirming which DNS resolver software is running on a host in addition to how it's configured.
RFC description
Defines management objects for DNS resolver configuration and statistics (RFC 1612).
Start monitoring Host/network device running DNS resolver client software (vendor-neutral, RFC 1612) with a free 30-day trial of IPNetwork Monitor. Import MIBs, browse SNMP OIDs, create custom SNMP monitors, configure alerts, and monitor any SNMP-enabled network device from a single console.