DNS-RESOLVER-MIB

MIB Reference — IPNetwork Monitor

All MIBsDNS-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
dnsOBJECT-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 symbolicOID numericTypeAccessDescription
dnsResMIB1.3.6.1.2.1.32.2The MIB module for entities implementing the client (resolver) side of the Domain Name System (DNS) protocol.
dnsResMIBObjects1.3.6.1.2.1.32.2.1
dnsResConfig1.3.6.1.2.1.32.2.1.1
STR dnsResConfigImplementIdent1.3.6.1.2.1.32.2.1.1.1DisplayStringread-onlyThe implementation identification string for the resolver software in use on the system, for example; `RES-2.1'
INT dnsResConfigService1.3.6.1.2.1.32.2.1.1.2INTEGERread-onlyKind 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 dnsResConfigMaxCnames1.3.6.1.2.1.32.2.1.1.3INTEGERread-writeLimit 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.
dnsResConfigSbeltTable1.3.6.1.2.1.32.2.1.1.4not-accessibleTable 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.
dnsResConfigSbeltEntry1.3.6.1.2.1.32.2.1.1.4.1not-accessibleAn 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 dnsResConfigSbeltAddr1.3.6.1.2.1.32.2.1.1.4.1.1IpAddressnot-accessibleThe IP address of the Sbelt name server identified by this row of the table.
DNS dnsResConfigSbeltName1.3.6.1.2.1.32.2.1.1.4.1.2DnsNameread-createThe 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 dnsResConfigSbeltRecursion1.3.6.1.2.1.32.2.1.1.4.1.3INTEGERread-createKind 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 dnsResConfigSbeltPref1.3.6.1.2.1.32.2.1.1.4.1.4INTEGERread-createThis 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 dnsResConfigSbeltSubTree1.3.6.1.2.1.32.2.1.1.4.1.5DnsNameAsIndexnot-accessibleQueries 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 dnsResConfigSbeltClass1.3.6.1.2.1.32.2.1.1.4.1.6DnsClassnot-accessibleThe class of DNS queries that will be sent to the server identified by this row of the table.
ROW dnsResConfigSbeltStatus1.3.6.1.2.1.32.2.1.1.4.1.7RowStatusread-createRow status column for this row of the Sbelt table.
DNS dnsResConfigUpTime1.3.6.1.2.1.32.2.1.1.5DnsTimeread-onlyIf 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 dnsResConfigResetTime1.3.6.1.2.1.32.2.1.1.6DnsTimeread-onlyIf 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 dnsResConfigReset1.3.6.1.2.1.32.2.1.1.7INTEGERread-writeStatus/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.
dnsResCounter1.3.6.1.2.1.32.2.1.2
dnsResCounterByOpcodeTable1.3.6.1.2.1.32.2.1.2.3not-accessibleTable of the current count of resolver queries and answers.
dnsResCounterByOpcodeEntry1.3.6.1.2.1.32.2.1.2.3.1not-accessibleEntry in the resolver counter table. Entries are indexed by DNS OpCode.
DNS dnsResCounterByOpcodeCode1.3.6.1.2.1.32.2.1.2.3.1.1DnsOpCodenot-accessibleThe index to this table. The OpCodes that have already been defined are found in RFC-1035.
C32 dnsResCounterByOpcodeQueries1.3.6.1.2.1.32.2.1.2.3.1.2Counter32read-onlyTotal 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 dnsResCounterByOpcodeResponses1.3.6.1.2.1.32.2.1.2.3.1.3Counter32read-onlyTotal 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.
dnsResCounterByRcodeTable1.3.6.1.2.1.32.2.1.2.4not-accessibleTable of the current count of responses to resolver queries.
dnsResCounterByRcodeEntry1.3.6.1.2.1.32.2.1.2.4.1not-accessibleEntry in the resolver response table. Entries are indexed by DNS response code.
DNS dnsResCounterByRcodeCode1.3.6.1.2.1.32.2.1.2.4.1.1DnsRespCodenot-accessibleThe index to this table. The Response Codes that have already been defined are found in RFC-1035.
C32 dnsResCounterByRcodeResponses1.3.6.1.2.1.32.2.1.2.4.1.2Counter32read-onlyNumber of responses the resolver has received for the response code value which identifies this row of the table.
C32 dnsResCounterNonAuthDataResps1.3.6.1.2.1.32.2.1.2.5Counter32read-onlyNumber of requests made by the resolver for which a non-authoritative answer (cached data) was received.
C32 dnsResCounterNonAuthNoDataResps1.3.6.1.2.1.32.2.1.2.6Counter32read-onlyNumber of requests made by the resolver for which a non-authoritative answer - no such data response (empty answer) was received.
C32 dnsResCounterMartians1.3.6.1.2.1.32.2.1.2.7Counter32read-onlyNumber of responses received which were received from servers that the resolver does not think it asked.
C32 dnsResCounterRecdResponses1.3.6.1.2.1.32.2.1.2.8Counter32read-onlyNumber of responses received to all queries.
C32 dnsResCounterUnparseResps1.3.6.1.2.1.32.2.1.2.9Counter32read-onlyNumber of responses received which were unparseable.
C32 dnsResCounterFallbacks1.3.6.1.2.1.32.2.1.2.10Counter32read-onlyNumber of times the resolver had to fall back to its seat belt information.
dnsResLameDelegation1.3.6.1.2.1.32.2.1.3
C32 dnsResLameDelegationOverflows1.3.6.1.2.1.32.2.1.3.1Counter32read-onlyNumber 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.
dnsResLameDelegationTable1.3.6.1.2.1.32.2.1.3.2not-accessibleTable 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.
dnsResLameDelegationEntry1.3.6.1.2.1.32.2.1.3.2.1not-accessibleEntry in lame delegation table. Only the resolver may create rows in this table. SNMP SET requests may be used to delete rows.
IP dnsResLameDelegationSource1.3.6.1.2.1.32.2.1.3.2.1.1IpAddressnot-accessibleSource of lame delegation.
DNS dnsResLameDelegationName1.3.6.1.2.1.32.2.1.3.2.1.2DnsNameAsIndexnot-accessibleDNS name for which lame delegation was received.
DNS dnsResLameDelegationClass1.3.6.1.2.1.32.2.1.3.2.1.3DnsClassnot-accessibleDNS class of received lame delegation.
C32 dnsResLameDelegationCounts1.3.6.1.2.1.32.2.1.3.2.1.4Counter32read-onlyHow many times this lame delegation has been received.
ROW dnsResLameDelegationStatus1.3.6.1.2.1.32.2.1.3.2.1.5RowStatusread-writeStatus 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).
dnsResCache1.3.6.1.2.1.32.2.1.4
INT dnsResCacheStatus1.3.6.1.2.1.32.2.1.4.1INTEGERread-writeStatus/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 dnsResCacheMaxTTL1.3.6.1.2.1.32.2.1.4.2DnsTimeread-writeMaximum 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 dnsResCacheGoodCaches1.3.6.1.2.1.32.2.1.4.3Counter32read-onlyNumber of RRs the resolver has cached successfully.
C32 dnsResCacheBadCaches1.3.6.1.2.1.32.2.1.4.4Counter32read-onlyNumber 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.
dnsResCacheRRTable1.3.6.1.2.1.32.2.1.4.5not-accessibleThis table contains information about all the resource records currently in the resolver's cache.
dnsResCacheRREntry1.3.6.1.2.1.32.2.1.4.5.1not-accessibleAn entry in the resolvers's cache. Rows may be created only by the resolver. SNMP SET requests may be used to delete rows.
DNS dnsResCacheRRName1.3.6.1.2.1.32.2.1.4.5.1.1DnsNameAsIndexnot-accessibleOwner 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 dnsResCacheRRClass1.3.6.1.2.1.32.2.1.4.5.1.2DnsClassnot-accessibleDNS class of the Resource Record in the cache which is identified in this row of the table.
DNS dnsResCacheRRType1.3.6.1.2.1.32.2.1.4.5.1.3DnsTypenot-accessibleDNS type of the Resource Record in the cache which is identified in this row of the table.
DNS dnsResCacheRRTTL1.3.6.1.2.1.32.2.1.4.5.1.4DnsTimeread-onlyTime-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 dnsResCacheRRElapsedTTL1.3.6.1.2.1.32.2.1.4.5.1.5DnsTimeread-onlyElapsed seconds since RR was received.
IP dnsResCacheRRSource1.3.6.1.2.1.32.2.1.4.5.1.6IpAddressread-onlyHost from which RR was received, 0.0.0.0 if unknown.
OCT dnsResCacheRRData1.3.6.1.2.1.32.2.1.4.5.1.7OCTET STRINGread-onlyRDATA portion of a cached RR. The value is in the format defined for the particular DNS class and type of the resource record.
ROW dnsResCacheRRStatus1.3.6.1.2.1.32.2.1.4.5.1.8RowStatusread-writeStatus 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 dnsResCacheRRIndex1.3.6.1.2.1.32.2.1.4.5.1.9Integer32not-accessibleA value which makes entries in the table unique when the other index values (dnsResCacheRRName, dnsResCacheRRClass, and dnsResCacheRRType) do not provide a unique index.
DNS dnsResCacheRRPrettyName1.3.6.1.2.1.32.2.1.4.5.1.10DnsNameread-onlyName 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.
dnsResNCache1.3.6.1.2.1.32.2.1.5
INT dnsResNCacheStatus1.3.6.1.2.1.32.2.1.5.1INTEGERread-writeStatus/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 dnsResNCacheMaxTTL1.3.6.1.2.1.32.2.1.5.2DnsTimeread-writeMaximum 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 dnsResNCacheGoodNCaches1.3.6.1.2.1.32.2.1.5.3Counter32read-onlyNumber of authoritative errors the resolver has cached successfully.
C32 dnsResNCacheBadNCaches1.3.6.1.2.1.32.2.1.5.4Counter32read-onlyNumber 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.
dnsResNCacheErrTable1.3.6.1.2.1.32.2.1.5.5not-accessibleThe resolver's negative response cache. This table contains information about authoritative errors that have been cached by the resolver.
dnsResNCacheErrEntry1.3.6.1.2.1.32.2.1.5.5.1not-accessibleAn 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 dnsResNCacheErrQName1.3.6.1.2.1.32.2.1.5.5.1.1DnsNameAsIndexnot-accessibleQNAME associated with a cached authoritative error.
DNS dnsResNCacheErrQClass1.3.6.1.2.1.32.2.1.5.5.1.2DnsQClassnot-accessibleDNS QCLASS associated with a cached authoritative error.
DNS dnsResNCacheErrQType1.3.6.1.2.1.32.2.1.5.5.1.3DnsQTypenot-accessibleDNS QTYPE associated with a cached authoritative error.
DNS dnsResNCacheErrTTL1.3.6.1.2.1.32.2.1.5.5.1.4DnsTimeread-onlyTime-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 dnsResNCacheErrElapsedTTL1.3.6.1.2.1.32.2.1.5.5.1.5DnsTimeread-onlyElapsed seconds since authoritative error was received.
IP dnsResNCacheErrSource1.3.6.1.2.1.32.2.1.5.5.1.6IpAddressread-onlyHost which sent the authoritative error, 0.0.0.0 if unknown.
INT dnsResNCacheErrCode1.3.6.1.2.1.32.2.1.5.5.1.7INTEGERread-onlyThe 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 dnsResNCacheErrStatus1.3.6.1.2.1.32.2.1.5.5.1.8RowStatusread-writeStatus 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 dnsResNCacheErrIndex1.3.6.1.2.1.32.2.1.5.5.1.9Integer32read-onlyA value which makes entries in the table unique when the other index values (dnsResNCacheErrQName, dnsResNCacheErrQClass, and dnsResNCacheErrQType) do not provide a unique index.
DNS dnsResNCacheErrPrettyName1.3.6.1.2.1.32.2.1.5.5.1.10DnsNameread-onlyQNAME 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.
dnsResOptCounter1.3.6.1.2.1.32.2.1.6
C32 dnsResOptCounterReferals1.3.6.1.2.1.32.2.1.6.1Counter32read-onlyNumber of responses which were received from servers redirecting query to another server.
C32 dnsResOptCounterRetrans1.3.6.1.2.1.32.2.1.6.2Counter32read-onlyNumber requests retransmitted for all reasons.
C32 dnsResOptCounterNoResponses1.3.6.1.2.1.32.2.1.6.3Counter32read-onlyNumber of queries that were retransmitted because of no response.
C32 dnsResOptCounterRootRetrans1.3.6.1.2.1.32.2.1.6.4Counter32read-onlyNumber of queries that were retransmitted that were to root servers.
C32 dnsResOptCounterInternals1.3.6.1.2.1.32.2.1.6.5Counter32read-onlyNumber of requests internally generated by the resolver.
C32 dnsResOptCounterInternalTimeOuts1.3.6.1.2.1.32.2.1.6.6Counter32read-onlyNumber of requests internally generated which timed out.
dnsResMIBGroups1.3.6.1.2.1.32.2.2
dnsResConfigGroup1.3.6.1.2.1.32.2.2.1A collection of objects providing basic configuration information for a DNS resolver implementation.
dnsResCounterGroup1.3.6.1.2.1.32.2.2.2A collection of objects providing basic instrumentation of a DNS resolver implementation.
dnsResLameDelegationGroup1.3.6.1.2.1.32.2.2.3A collection of objects providing instrumentation of `lame delegation' failures.
dnsResCacheGroup1.3.6.1.2.1.32.2.2.4A collection of objects providing access to and control of a DNS resolver's cache.
dnsResNCacheGroup1.3.6.1.2.1.32.2.2.5A collection of objects providing access to and control of a DNS resolver's negative response cache.
dnsResOptCounterGroup1.3.6.1.2.1.32.2.2.6A collection of objects providing further instrumentation applicable to many but not all DNS resolvers.
dnsResMIBCompliances1.3.6.1.2.1.32.2.3
dnsResMIBCompliance1.3.6.1.2.1.32.2.3.1The 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.

Download DNS-RESOLVER-MIB