smilint output for ./DNS-SERVER-MIB


Message Severities
SeverityCount
error5
minor error12
change recommended1
warning16
Message Types
TypeCount
group-member-invalid (minor error)9
index-exceeds-too-large (warning)2
integer-misuse (warning)6
invalid-format (error)5
module-identity-not-first (minor error)1
module-identity-registration (change recommended)1
revision-missing (minor error)1
textual-convention-nested (minor error)1
type-unref (warning)1
type-without-format (warning)7

Messages:

DNS-SERVER-MIB

   1: -- extracted from rfc1611.txt
   2: -- at Mon Nov 15 17:11:53 1999
   3: 
   4:    DNS-SERVER-MIB DEFINITIONS ::= BEGIN
   5: 
   6:    IMPORTS
   7:        mib-2
   8:            FROM RFC-1213
   9:        MODULE-IDENTITY, OBJECT-TYPE, OBJECT-IDENTITY,
  10:        IpAddress, Counter32, Gauge32
  11:            FROM SNMPv2-SMI
  12:        TEXTUAL-CONVENTION, RowStatus, DisplayString, TruthValue
  13:            FROM SNMPv2-TC
  14:        MODULE-COMPLIANCE, OBJECT-GROUP
  15:            FROM SNMPv2-CONF;
  16: 
  17:    dns OBJECT-IDENTITY
  18:        STATUS  current
  19:        DESCRIPTION
  20:                "The OID assigned to DNS MIB work by the IANA."
  21:        ::= { mib-2 32 }
  22: 
  23:    dnsServMIB MODULE-IDENTITY
  23: minor error - MODULE-IDENTITY clause must be the first declaration in a module
  23: change recommended - warning: uncontrolled MODULE-IDENTITY registration
  24:        LAST-UPDATED "9401282251Z"
  25:        ORGANIZATION "IETF DNS Working Group"
  26:        CONTACT-INFO
  27:                "       Rob Austein
  28:                Postal: Epilogue Technology Corporation
  29:                        268 Main Street, Suite 283
  30:                        North Reading, MA 10864
  31:                        US
  32:                   Tel: +1 617 245 0804
  33:                   Fax: +1 617 245 8122
  34:                E-Mail: sra@epilogue.com
  35: 
  36:                        Jon Saperia
  37:                Postal: Digital Equipment Corporation
  38:                        110 Spit Brook Road
  39:                        ZKO1-3/H18
  40:                        Nashua, NH 03062-2698
  41:                        US
  42:                   Tel: +1 603 881 0480
  43:                   Fax: +1 603 881 0120
  44:                 Email: saperia@zko.dec.com"
  45:        DESCRIPTION
  46:                "The MIB module for entities implementing the server side
  47:                of the Domain Name System (DNS) protocol."
  48:        ::= { dns 1 }
  48: minor error - revision for last update is missing
  49: 
  50:    dnsServMIBObjects       OBJECT IDENTIFIER ::= { dnsServMIB 1 }
  51: 
  52:    -- (Old-style) groups in the DNS server MIB.
  53: 
  54:    dnsServConfig           OBJECT IDENTIFIER ::= { dnsServMIBObjects 1 }
  55:    dnsServCounter          OBJECT IDENTIFIER ::= { dnsServMIBObjects 2 }
  56:    dnsServOptCounter       OBJECT IDENTIFIER ::= { dnsServMIBObjects 3 }
  57:    dnsServZone             OBJECT IDENTIFIER ::= { dnsServMIBObjects 4 }
  58: 
  59: 
  60:    -- Textual conventions
  61: 
  62:    DnsName ::= TEXTUAL-CONVENTION
  62: warning - warning: current type `DnsName' is not referenced in this module
  63:        -- A DISPLAY-HINT would be nice, but difficult to express.
  64:        STATUS  current
  65:        DESCRIPTION
  66:                "A DNS name is a sequence of labels.  When DNS names are
  67:                displayed, the boundaries between labels are typically
  68:                indicated by dots (e.g. `Acme' and `COM' are labels in
  69:                the name `Acme.COM').  In the DNS protocol, however, no
  70:                such separators are needed because each label is encoded
  71:                as a length octet followed by the indicated number of
  72:                octets of label.  For example, `Acme.COM' is encoded as
  73:                the octet sequence { 4, 'A', 'c', 'm', 'e', 3, 'C', 'O',
  74:                'M', 0 } (the final 0 is the length of the name of the
  75:                root domain, which appears implicitly at the end of any
  76:                DNS name).  This MIB uses the same encoding as the DNS
  77:                protocol.
  78: 
  79:                A DnsName must always be a fully qualified name.  It is
  80:                an error to encode a relative domain name as a DnsName
  81:                without first making it a fully qualified name."
  82:        REFERENCE
  83:                "RFC-1034 section 3.1."
  84:        SYNTAX  OCTET STRING (SIZE (0..255))
  85: 
  86:    DnsNameAsIndex ::= TEXTUAL-CONVENTION
  86: minor error - textual convention `DnsNameAsIndex' can not be derived from the textual convention `DnsName'
  87:        STATUS  current
  88:        DESCRIPTION
  89:                "This textual convention is like a DnsName, but is used
  90:                as an index componant in tables.  Alphabetic characters
  91:                in names of this type are restricted to uppercase: the
  92:                characters 'a' through 'z' are mapped to the characters
  93:                'A' through 'Z'.  This restriction is intended to make
  94:                the lexical ordering imposed by SNMP useful when applied
  95:                to DNS names.
  96: 
  97:                Note that it is theoretically possible for a valid DNS
  98:                name to exceed the allowed length of an SNMP object
  99:                identifer, and thus be impossible to represent in tables
 100:                in this MIB that are indexed by DNS name.  Sampling of
 101:                DNS names in current use on the Internet suggests that
 102:                this limit does not pose a serious problem in practice."
 103:        REFERENCE
 104:                "RFC-1034 section 3.1, RFC-1448 section 4.1."
 105:        SYNTAX  DnsName
 106: 
 107:    DnsClass ::= TEXTUAL-CONVENTION
 107: error - invalid format specification `2d'
 107: warning - warning: type `DnsClass' has no format specification
 108:        DISPLAY-HINT "2d"
 109:        STATUS  current
 110:        DESCRIPTION
 111:                "This data type is used to represent the class values
 112:                which appear in Resource Records in the DNS.  A 16-bit
 113:                unsigned integer is used to allow room for new classes
 114:                of records to be defined.  Existing standard classes are
 115:                listed in the DNS specifications."
 116:        REFERENCE
 117:                "RFC-1035 section 3.2.4."
 118:        SYNTAX  INTEGER (0..65535)
 118: warning - warning: use Integer32 instead of INTEGER in SMIv2
 119: 
 120:    DnsType ::= TEXTUAL-CONVENTION
 120: error - invalid format specification `2d'
 120: warning - warning: type `DnsType' has no format specification
 121:        DISPLAY-HINT "2d"
 122:        STATUS  current
 123:        DESCRIPTION
 124:                "This data type is used to represent the type values
 125:                which appear in Resource Records in the DNS.  A 16-bit
 126:                unsigned integer is used to allow room for new record
 127:                types to be defined.  Existing standard types are listed
 128:                in the DNS specifications."
 129:        REFERENCE
 130:                "RFC-1035 section 3.2.2."
 131:        SYNTAX  INTEGER (0..65535)
 131: warning - warning: use Integer32 instead of INTEGER in SMIv2
 132: 
 133:    DnsQClass ::= TEXTUAL-CONVENTION
 133: error - invalid format specification `2d'
 133: warning - warning: type `DnsQClass' has no format specification
 134:        DISPLAY-HINT "2d"
 135:        STATUS  current
 136:        DESCRIPTION
 137:                "This data type is used to represent the QClass values
 138:                which appear in Resource Records in the DNS.  A 16-bit
 139:                unsigned integer is used to allow room for new QClass
 140:                records to be defined.  Existing standard QClasses are
 141:                listed in the DNS specification."
 142:        REFERENCE
 143:                "RFC-1035 section 3.2.5."
 144:        SYNTAX  INTEGER (0..65535)
 144: warning - warning: use Integer32 instead of INTEGER in SMIv2
 145: 
 146:    DnsQType ::= TEXTUAL-CONVENTION
 146: error - invalid format specification `2d'
 146: warning - warning: type `DnsQType' has no format specification
 147:        DISPLAY-HINT "2d"
 148:        STATUS  current
 149:        DESCRIPTION
 150:                "This data type is used to represent the QType values
 151:                which appear in Resource Records in the DNS.  A 16-bit
 152:                unsigned integer is used to allow room for new QType
 153:                records to be defined.  Existing standard QTypes are
 154:                listed in the DNS specification."
 155:        REFERENCE
 156:                "RFC-1035 section 3.2.3."
 157:        SYNTAX  INTEGER (0..65535)
 157: warning - warning: use Integer32 instead of INTEGER in SMIv2
 158: 
 159:    DnsTime ::= TEXTUAL-CONVENTION
 159: error - invalid format specification `4d'
 159: warning - warning: type `DnsTime' has no format specification
 160:        DISPLAY-HINT "4d"
 161:        STATUS  current
 162:        DESCRIPTION
 163:                "DnsTime values are 32-bit unsigned integers which
 164:                measure time in seconds."
 165:        REFERENCE
 166:                "RFC-1035."
 167:        SYNTAX  Gauge32
 168: 
 169: 
 170:    DnsOpCode ::= TEXTUAL-CONVENTION
 170: warning - warning: type `DnsOpCode' has no format specification
 171:        STATUS  current
 172:        DESCRIPTION
 173:                "This textual convention is used to represent the DNS
 174:                OPCODE values used in the header section of DNS
 175:                messages.  Existing standard OPCODE values are listed in
 176:                the DNS specifications."
 177:        REFERENCE
 178:                "RFC-1035 section 4.1.1."
 179:        SYNTAX  INTEGER (0..15)
 179: warning - warning: use Integer32 instead of INTEGER in SMIv2
 180: 
 181:    DnsRespCode ::= TEXTUAL-CONVENTION
 181: warning - warning: type `DnsRespCode' has no format specification
 182:        STATUS  current
 183:        DESCRIPTION
 184:                "This data type is used to represent the DNS RCODE value
 185:                in DNS response messages.  Existing standard RCODE
 186:                values are listed in the DNS specifications."
 187:        REFERENCE
 188:                "RFC-1035 section 4.1.1."
 189:        SYNTAX  INTEGER (0..15)
 189: warning - warning: use Integer32 instead of INTEGER in SMIv2
 190: 
 191:    -- Server Configuration Group
 192: 
 193:    dnsServConfigImplementIdent OBJECT-TYPE
 194:        SYNTAX      DisplayString
 195:        MAX-ACCESS  read-only
 196:        STATUS      current
 197:        DESCRIPTION
 198:                "The implementation identification string for the DNS
 199:                server software in use on the system, for example;
 200:                `FNS-2.1'"
 201:        ::= { dnsServConfig 1 }
 202: 
 203:    dnsServConfigRecurs  OBJECT-TYPE
 204:        SYNTAX      INTEGER { available(1),
 205:                              restricted(2),
 206:                              unavailable(3) }
 207:        MAX-ACCESS  read-write
 208:        STATUS      current
 209:        DESCRIPTION
 210:                "This represents the recursion services offered by this
 211:                name server.  The values that can be read or written
 212:                are:
 213: 
 214:                available(1) - performs recursion on requests from
 215:                clients.
 216: 
 217:                restricted(2) - recursion is performed on requests only
 218:                from certain clients, for example; clients on an access
 219:                control list.
 220: 
 221:                unavailable(3) - recursion is not available."
 222:         ::= { dnsServConfig 2 }
 223: 
 224:    dnsServConfigUpTime OBJECT-TYPE
 225:        SYNTAX      DnsTime
 226:        MAX-ACCESS  read-only
 227:        STATUS      current
 228:        DESCRIPTION
 229:                "If the server has a persistent state (e.g., a process),
 230:                this value will be the time elapsed since it started.
 231:                For software without persistant state, this value will
 232:                be zero."
 233:        ::= { dnsServConfig 3 }
 234: 
 235:    dnsServConfigResetTime OBJECT-TYPE
 236:        SYNTAX      DnsTime
 237:        MAX-ACCESS  read-only
 238:        STATUS      current
 239:        DESCRIPTION
 240:                "If the server has a persistent state (e.g., a process)
 241:                and supports a `reset' operation (e.g., can be told to
 242:                re-read configuration files), this value will be the
 243:                time elapsed since the last time the name server was
 244:                `reset.'  For software that does not have persistence or
 245:                does not support a `reset' operation, this value will be
 246:                zero."
 247:        ::= { dnsServConfig 4 }
 248: 
 249:    dnsServConfigReset OBJECT-TYPE
 250:        SYNTAX      INTEGER { other(1),
 251:                              reset(2),
 252:                              initializing(3),
 253:                              running(4) }
 254:        MAX-ACCESS  read-write
 255:        STATUS      current
 256:        DESCRIPTION
 257:                "Status/action object to reinitialize any persistant name
 258:                server state.  When set to reset(2), any persistant
 259:                name server state (such as a process) is reinitialized as
 260:                if the name server had just been started.  This value
 261:                will never be returned by a read operation.  When read,
 262:                one of the following values will be returned:
 263:                    other(1) - server in some unknown state;
 264:                    initializing(3) - server (re)initializing;
 265:                    running(4) - server currently running."
 266:        ::= { dnsServConfig 5 }
 267: 
 268: 
 269:    -- Server Counter Group
 270: 
 271:    dnsServCounterAuthAns OBJECT-TYPE
 272:        SYNTAX      Counter32
 273:        MAX-ACCESS  read-only
 274:        STATUS      current
 275:        DESCRIPTION
 276:                "Number of queries which were authoritatively answered."
 277:        ::= { dnsServCounter 2 }
 278: 
 279:    dnsServCounterAuthNoNames OBJECT-TYPE
 280:        SYNTAX      Counter32
 281:        MAX-ACCESS  read-only
 282:        STATUS      current
 283:        DESCRIPTION
 284:                "Number of queries for which `authoritative no such name'
 285:                responses were made."
 286:        ::= { dnsServCounter 3 }
 287: 
 288:    dnsServCounterAuthNoDataResps OBJECT-TYPE
 289:        SYNTAX      Counter32
 290:        MAX-ACCESS  read-only
 291:        STATUS      current
 292:        DESCRIPTION
 293:                "Number of queries for which `authoritative no such data'
 294:                (empty answer) responses were made."
 295:        ::= { dnsServCounter 4 }
 296: 
 297:    dnsServCounterNonAuthDatas OBJECT-TYPE
 298:        SYNTAX      Counter32
 299:        MAX-ACCESS  read-only
 300:        STATUS      current
 301:        DESCRIPTION
 302:                "Number of queries which were non-authoritatively
 303:                answered (cached data)."
 304:        ::= { dnsServCounter 5 }
 305: 
 306:    dnsServCounterNonAuthNoDatas OBJECT-TYPE
 307:        SYNTAX      Counter32
 308:        MAX-ACCESS  read-only
 309:        STATUS      current
 310:        DESCRIPTION
 311:                "Number of queries which were non-authoritatively
 312:                answered with no data (empty answer)."
 313:        ::= { dnsServCounter 6 }
 314: 
 315:    dnsServCounterReferrals OBJECT-TYPE
 316:        SYNTAX      Counter32
 317:        MAX-ACCESS  read-only
 318:        STATUS      current
 319:        DESCRIPTION
 320:                "Number of requests that were referred to other servers."
 321:        ::= { dnsServCounter 7 }
 322: 
 323:    dnsServCounterErrors OBJECT-TYPE
 324:        SYNTAX      Counter32
 325:        MAX-ACCESS  read-only
 326:        STATUS      current
 327:        DESCRIPTION
 328:                "Number of requests the server has processed that were
 329:                answered with errors (RCODE values other than 0 and 3)."
 330:        REFERENCE
 331:                "RFC-1035 section 4.1.1."
 332:        ::= { dnsServCounter 8 }
 333: 
 334:    dnsServCounterRelNames OBJECT-TYPE
 335:        SYNTAX      Counter32
 336:        MAX-ACCESS  read-only
 337:        STATUS      current
 338:        DESCRIPTION
 339:                "Number of requests received by the server for names that
 340:                are only 1 label long (text form - no internal dots)."
 341:        ::= { dnsServCounter 9 }
 342: 
 343:    dnsServCounterReqRefusals OBJECT-TYPE
 344:        SYNTAX      Counter32
 345:        MAX-ACCESS  read-only
 346:        STATUS      current
 347:        DESCRIPTION
 348:                "Number of DNS requests refused by the server."
 349:        ::= { dnsServCounter 10 }
 350: 
 351:    dnsServCounterReqUnparses OBJECT-TYPE
 352:        SYNTAX      Counter32
 353:        MAX-ACCESS  read-only
 354:        STATUS      current
 355:        DESCRIPTION
 356:                "Number of requests received which were unparseable."
 357:        ::= { dnsServCounter 11 }
 358: 
 359:    dnsServCounterOtherErrors OBJECT-TYPE
 360:        SYNTAX      Counter32
 361:        MAX-ACCESS  read-only
 362:        STATUS      current
 363:        DESCRIPTION
 364:                "Number of requests which were aborted for other (local)
 365:                server errors."
 366:        ::= { dnsServCounter 12 }
 367: 
 368:    -- DNS Server Counter Table
 369: 
 370:    dnsServCounterTable OBJECT-TYPE
 371:        SYNTAX      SEQUENCE OF DnsServCounterEntry
 372:        MAX-ACCESS  not-accessible
 373:        STATUS      current
 374:        DESCRIPTION
 375:                "Counter information broken down by DNS class and type."
 376:        ::= { dnsServCounter 13 }
 377: 
 378:    dnsServCounterEntry OBJECT-TYPE
 379:        SYNTAX      DnsServCounterEntry
 380:        MAX-ACCESS  not-accessible
 381:        STATUS      current
 382:        DESCRIPTION
 383:                "This table contains count information for each DNS class
 384:                and type value known to the server.  The index allows
 385:                management software to to create indices to the table to
 386:                get the specific information desired, e.g., number of
 387:                queries over UDP for records with type value `A' which
 388:                came to this server.  In order to prevent an
 389:                uncontrolled expansion of rows in the table; if
 390:                dnsServCounterRequests is 0 and dnsServCounterResponses
 391:                is 0, then the row does not exist and `no such' is
 392:                returned when the agent is queried for such instances."
 393:        INDEX     { dnsServCounterOpCode,
 394:                    dnsServCounterQClass,
 395:                    dnsServCounterQType,
 396:                    dnsServCounterTransport }
 397:        ::= { dnsServCounterTable 1 }
 398: 
 399:    DnsServCounterEntry ::=
 400:        SEQUENCE {
 401:            dnsServCounterOpCode
 402:                DnsOpCode,
 403:            dnsServCounterQClass
 404:                DnsClass,
 405:            dnsServCounterQType
 406:                DnsType,
 407:            dnsServCounterTransport
 408:                INTEGER,
 409:            dnsServCounterRequests
 410:                Counter32,
 411:            dnsServCounterResponses
 412:                Counter32
 413:            }
 414: 
 415:    dnsServCounterOpCode OBJECT-TYPE
 416:        SYNTAX      DnsOpCode
 417:        MAX-ACCESS  not-accessible
 418:        STATUS      current
 419:        DESCRIPTION
 420:                "The DNS OPCODE being counted in this row of the table."
 421:        ::= { dnsServCounterEntry 1 }
 422: 
 423:    dnsServCounterQClass OBJECT-TYPE
 424:        SYNTAX      DnsClass
 425:        MAX-ACCESS  not-accessible
 426:        STATUS      current
 427:        DESCRIPTION
 428:                "The class of record being counted in this row of the
 429:                table."
 430:        ::= { dnsServCounterEntry 2 }
 431: 
 432:    dnsServCounterQType OBJECT-TYPE
 433:        SYNTAX      DnsType
 434:        MAX-ACCESS  not-accessible
 435:        STATUS      current
 436:        DESCRIPTION
 437:                "The type of record which is being counted in this row in
 438:                the table."
 439:        ::= { dnsServCounterEntry 3 }
 440: 
 441:    dnsServCounterTransport OBJECT-TYPE
 442:        SYNTAX      INTEGER { udp(1), tcp(2), other(3) }
 443:        MAX-ACCESS  not-accessible
 444:        STATUS      current
 445:        DESCRIPTION
 446:                "A value of udp(1) indicates that the queries reported on
 447:                this row were sent using UDP.
 448: 
 449:                A value of tcp(2) indicates that the queries reported on
 450:                this row were sent using TCP.
 451: 
 452:                A value of other(3) indicates that the queries reported
 453:                on this row were sent using a transport that was neither
 454:                TCP nor UDP."
 455:        ::= { dnsServCounterEntry 4 }
 456: 
 457:    dnsServCounterRequests OBJECT-TYPE
 458:        SYNTAX      Counter32
 459:        MAX-ACCESS  read-only
 460:        STATUS      current
 461:        DESCRIPTION
 462:                "Number of requests (queries) that have been recorded in
 463:                this row of the table."
 464:        ::= { dnsServCounterEntry 5 }
 465: 
 466:    dnsServCounterResponses OBJECT-TYPE
 467:        SYNTAX      Counter32
 468:        MAX-ACCESS  read-only
 469:        STATUS      current
 470:        DESCRIPTION
 471:                "Number of responses made by the server since
 472:                initialization for the kind of query identified on this
 473:                row of the table."
 474:        ::= { dnsServCounterEntry 6 }
 475: 
 476:    -- Server Optional Counter Group
 477: 
 478:    -- The Server Optional Counter Group is intended for those systems
 479:    -- which make distinctions between the different sources of the DNS
 480:    -- queries as defined below.
 481:    --
 482:    -- Objects in this group are implemented on servers which distinguish
 483:    -- between queries which originate from the same host as the server,
 484:    -- queries from one of an arbitrary group of hosts that are on an
 485:    -- access list defined by the server, and queries from hosts that do
 486:    -- not fit either of these descriptions.
 487:    --
 488:    -- The objects found in the Server Counter group are totals.  Thus if
 489:    -- one wanted to identify, for example, the number of queries from
 490:    -- `remote' hosts which have been given authoritative answers, one
 491:    -- would subtract the current values of ServOptCounterFriendsAuthAns
 492:    -- and ServOptCounterSelfAuthAns from servCounterAuthAns.
 493:    --
 494:    -- The purpose of these distinctions is to allow for implementations
 495:    -- to group queries and responses on this basis.  One way in which
 496:    -- servers may make these distinctions is by looking at the source IP
 497:    -- address of the DNS query.  If the source of the query is `your
 498:    -- own' then the query should be counted as `yourself' (local host).
 499:    -- If the source of the query matches an `access list,' the query
 500:    -- came from a friend.  What constitutes an `access list' is
 501:    -- implementation dependent and could be as simple as a rule that all
 502:    -- hosts on the same IP network as the DNS server are classed
 503:    -- `friends.'
 504:    --
 505:    -- In order to avoid double counting, the following rules apply:
 506:    --
 507:    -- 1. No host is in more than one of the three groups defined above.
 508:    --
 509:    -- 2. All queries from the local host are always counted in the
 510:    --    `yourself' group regardless of what the access list, if any,
 511:    --    says.
 512:    --
 513:    -- 3. The access list should not define `your friends' in such a way
 514:    --    that it includes all hosts.   That is, not everybody is your
 515:    --    `friend.'
 516: 
 517:    dnsServOptCounterSelfAuthAns OBJECT-TYPE
 518:        SYNTAX      Counter32
 519:        MAX-ACCESS  read-only
 520:        STATUS      current
 521:        DESCRIPTION
 522:                "Number of requests the server has processed which
 523:                originated from a resolver on the same host for which
 524:                there has been an authoritative answer."
 525:        ::= { dnsServOptCounter 1 }
 526: 
 527:    dnsServOptCounterSelfAuthNoNames OBJECT-TYPE
 528:        SYNTAX      Counter32
 529:        MAX-ACCESS  read-only
 530:        STATUS      current
 531:        DESCRIPTION
 532:                "Number of requests the server has processed which
 533:                originated from a resolver on the same host for which
 534:                there has been an authoritative no such name answer
 535:                given."
 536:        ::= { dnsServOptCounter 2 }
 537: 
 538:    dnsServOptCounterSelfAuthNoDataResps OBJECT-TYPE
 539:        SYNTAX      Counter32
 540:        MAX-ACCESS  read-only
 541:        STATUS      current
 542:        DESCRIPTION
 543:                "Number of requests the server has processed which
 544:                originated from a resolver on the same host for which
 545:                there has been an authoritative no such data answer
 546:                (empty answer) made."
 547:        ::= { dnsServOptCounter 3 }
 548: 
 549:    dnsServOptCounterSelfNonAuthDatas OBJECT-TYPE
 550:        SYNTAX      Counter32
 551:        MAX-ACCESS  read-only
 552:        STATUS      current
 553:        DESCRIPTION
 554:                "Number of requests the server has processed which
 555:                originated from a resolver on the same host for which a
 556:                non-authoritative answer (cached data) was made."
 557:        ::= { dnsServOptCounter 4 }
 558: 
 559:    dnsServOptCounterSelfNonAuthNoDatas OBJECT-TYPE
 560:        SYNTAX      Counter32
 561:        MAX-ACCESS  read-only
 562:        STATUS      current
 563:        DESCRIPTION
 564:                "Number of requests the server has processed which
 565:                originated from a resolver on the same host for which a
 566:                `non-authoritative, no such data' response was made
 567:                (empty answer)."
 568:        ::= { dnsServOptCounter 5 }
 569: 
 570:    dnsServOptCounterSelfReferrals OBJECT-TYPE
 571:        SYNTAX      Counter32
 572:        MAX-ACCESS  read-only
 573:        STATUS      current
 574:        DESCRIPTION
 575:                "Number of queries the server has processed which
 576:                originated from a resolver on the same host and were
 577:                referred to other servers."
 578:        ::= { dnsServOptCounter 6 }
 579: 
 580:    dnsServOptCounterSelfErrors OBJECT-TYPE
 581:        SYNTAX      Counter32
 582:        MAX-ACCESS  read-only
 583:        STATUS      current
 584:        DESCRIPTION
 585:                "Number of requests the server has processed which
 586:                originated from a resolver on the same host which have
 587:                been answered with errors (RCODEs other than 0 and 3)."
 588:        REFERENCE
 589:                "RFC-1035 section 4.1.1."
 590:        ::= { dnsServOptCounter 7 }
 591: 
 592:    dnsServOptCounterSelfRelNames OBJECT-TYPE
 593:        SYNTAX      Counter32
 594:        MAX-ACCESS  read-only
 595:        STATUS      current
 596:        DESCRIPTION
 597:                "Number of requests received for names that are only 1
 598:                label long (text form - no internal dots) the server has
 599:                processed which originated from a resolver on the same
 600:                host."
 601:        ::= { dnsServOptCounter 8 }
 602: 
 603:    dnsServOptCounterSelfReqRefusals OBJECT-TYPE
 604:        SYNTAX      Counter32
 605:        MAX-ACCESS  read-only
 606:        STATUS      current
 607:        DESCRIPTION
 608:                "Number of DNS requests refused by the server which
 609:                originated from a resolver on the same host."
 610:        ::= { dnsServOptCounter 9 }
 611: 
 612:    dnsServOptCounterSelfReqUnparses OBJECT-TYPE
 613:        SYNTAX      Counter32
 614:        MAX-ACCESS  read-only
 615:        STATUS      current
 616:        DESCRIPTION
 617:                "Number of requests received which were unparseable and
 618:                which originated from a resolver on the same host."
 619:        ::= { dnsServOptCounter 10 }
 620: 
 621:    dnsServOptCounterSelfOtherErrors OBJECT-TYPE
 622:        SYNTAX      Counter32
 623:        MAX-ACCESS  read-only
 624:        STATUS      current
 625:        DESCRIPTION
 626:                "Number of requests which were aborted for other (local)
 627:                server errors and which originated on the same host."
 628:        ::= { dnsServOptCounter 11 }
 629: 
 630:    dnsServOptCounterFriendsAuthAns OBJECT-TYPE
 631:        SYNTAX      Counter32
 632:        MAX-ACCESS  read-only
 633:        STATUS      current
 634:        DESCRIPTION
 635:                "Number of queries originating from friends which were
 636:                authoritatively answered.  The definition of friends is
 637:                a locally defined matter."
 638:        ::= { dnsServOptCounter 12 }
 639: 
 640:    dnsServOptCounterFriendsAuthNoNames OBJECT-TYPE
 641:        SYNTAX      Counter32
 642:        MAX-ACCESS  read-only
 643:        STATUS      current
 644:        DESCRIPTION
 645:                "Number of queries originating from friends, for which
 646:                authoritative `no such name' responses were made.  The
 647:                definition of friends is a locally defined matter."
 648:        ::= { dnsServOptCounter 13 }
 649: 
 650:    dnsServOptCounterFriendsAuthNoDataResps OBJECT-TYPE
 651:        SYNTAX      Counter32
 652:        MAX-ACCESS  read-only
 653:        STATUS      current
 654:        DESCRIPTION
 655:                "Number of queries originating from friends for which
 656:                authoritative no such data (empty answer) responses were
 657:                made.  The definition of friends is a locally defined
 658:                matter."
 659:        ::= { dnsServOptCounter 14 }
 660: 
 661:    dnsServOptCounterFriendsNonAuthDatas OBJECT-TYPE
 662:        SYNTAX      Counter32
 663:        MAX-ACCESS  read-only
 664:        STATUS      current
 665:        DESCRIPTION
 666:                "Number of queries originating from friends which were
 667:                non-authoritatively answered (cached data). The
 668:                definition of friends is a locally defined matter."
 669:        ::= { dnsServOptCounter 15 }
 670: 
 671:    dnsServOptCounterFriendsNonAuthNoDatas OBJECT-TYPE
 672:        SYNTAX      Counter32
 673:        MAX-ACCESS  read-only
 674:        STATUS      current
 675:        DESCRIPTION
 676:                "Number of queries originating from friends which were
 677:                non-authoritatively answered with no such data (empty
 678:                answer)."
 679:        ::= { dnsServOptCounter 16 }
 680: 
 681:    dnsServOptCounterFriendsReferrals OBJECT-TYPE
 682:        SYNTAX      Counter32
 683:        MAX-ACCESS  read-only
 684:        STATUS      current
 685:        DESCRIPTION
 686:                "Number of requests which originated from friends that
 687:                were referred to other servers.  The definition of
 688:                friends is a locally defined matter."
 689:        ::= { dnsServOptCounter 17 }
 690: 
 691:    dnsServOptCounterFriendsErrors OBJECT-TYPE
 692:        SYNTAX      Counter32
 693:        MAX-ACCESS  read-only
 694:        STATUS      current
 695:        DESCRIPTION
 696:                "Number of requests the server has processed which
 697:                originated from friends and were answered with errors
 698:                (RCODE values other than 0 and 3).  The definition of
 699:                friends is a locally defined matter."
 700:        REFERENCE
 701:                "RFC-1035 section 4.1.1."
 702:        ::= { dnsServOptCounter 18 }
 703: 
 704:    dnsServOptCounterFriendsRelNames OBJECT-TYPE
 705:        SYNTAX      Counter32
 706:        MAX-ACCESS  read-only
 707:        STATUS      current
 708:        DESCRIPTION
 709:                "Number of requests received for names from friends that
 710:                are only 1 label long (text form - no internal dots) the
 711:                server has processed."
 712:        ::= { dnsServOptCounter 19 }
 713: 
 714:    dnsServOptCounterFriendsReqRefusals OBJECT-TYPE
 715:        SYNTAX      Counter32
 716:        MAX-ACCESS  read-only
 717:        STATUS      current
 718:        DESCRIPTION
 719:                "Number of DNS requests refused by the server which were
 720:                received from `friends'."
 721:        ::= { dnsServOptCounter 20 }
 722: 
 723:    dnsServOptCounterFriendsReqUnparses OBJECT-TYPE
 724:        SYNTAX      Counter32
 725:        MAX-ACCESS  read-only
 726:        STATUS      current
 727:        DESCRIPTION
 728:                "Number of requests received which were unparseable and
 729:                which originated from `friends'."
 730:        ::= { dnsServOptCounter 21 }
 731: 
 732:    dnsServOptCounterFriendsOtherErrors OBJECT-TYPE
 733:        SYNTAX      Counter32
 734:        MAX-ACCESS  read-only
 735:        STATUS      current
 736:        DESCRIPTION
 737:                "Number of requests which were aborted for other (local)
 738:                server errors and which originated from `friends'."
 739:        ::= { dnsServOptCounter 22 }
 740: 
 741: 
 742:    -- Server Zone Group
 743: 
 744:    -- DNS Management Zone Configuration Table
 745: 
 746:    -- This table contains zone configuration information.
 747: 
 748:    dnsServZoneTable OBJECT-TYPE
 749:        SYNTAX      SEQUENCE OF DnsServZoneEntry
 750:        MAX-ACCESS  not-accessible
 751:        STATUS      current
 752:        DESCRIPTION
 753:                "Table of zones for which this name server provides
 754:                information.  Each of the zones may be loaded from stable
 755:                storage via an implementation-specific mechanism or may
 756:                be obtained from another name server via a zone transfer.
 757: 
 758:                If name server doesn't load any zones, this table is
 759:                empty."
 760:        ::= { dnsServZone 1 }
 761: 
 762:    dnsServZoneEntry OBJECT-TYPE
 762: warning - warning: index of row `dnsServZoneEntry' can exceed OID size limit by 142 subidentifier(s)
 763:        SYNTAX      DnsServZoneEntry
 764:        MAX-ACCESS  not-accessible
 765:        STATUS      current
 766:        DESCRIPTION
 767:                "An entry in the name server zone table.  New rows may be
 768:                added either via SNMP or by the name server itself."
 769:        INDEX     { dnsServZoneName,
 770:                    dnsServZoneClass }
 771:        ::= { dnsServZoneTable 1 }
 772: 
 773:    DnsServZoneEntry ::=
 774:        SEQUENCE {
 775:            dnsServZoneName
 776:                DnsNameAsIndex,
 777:            dnsServZoneClass
 778:                DnsClass,
 779:            dnsServZoneLastReloadSuccess
 780:                DnsTime,
 781:            dnsServZoneLastReloadAttempt
 782:                DnsTime,
 783:            dnsServZoneLastSourceAttempt
 784:                IpAddress,
 785:            dnsServZoneStatus
 786:                RowStatus,
 787:            dnsServZoneSerial
 788:                Counter32,
 789:            dnsServZoneCurrent
 790:                TruthValue,
 791:            dnsServZoneLastSourceSuccess
 792:                IpAddress
 793:        }
 794: 
 795:    dnsServZoneName OBJECT-TYPE
 796:        SYNTAX      DnsNameAsIndex
 797:        MAX-ACCESS  not-accessible
 798:        STATUS      current
 799:        DESCRIPTION
 800:                "DNS name of the zone described by this row of the table.
 801:                This is the owner name of the SOA RR that defines the
 802:                top of the zone. This is name is in uppercase:
 803:                characters 'a' through 'z' are mapped to 'A' through 'Z'
 804:                in order to make the lexical ordering useful."
 805:        ::= { dnsServZoneEntry 1 }
 806: 
 807:    dnsServZoneClass OBJECT-TYPE
 808:        SYNTAX      DnsClass
 809:        MAX-ACCESS  not-accessible
 810:        STATUS      current
 811:        DESCRIPTION
 812:                "DNS class of the RRs in this zone."
 813:        ::= { dnsServZoneEntry 2 }
 814: 
 815:    dnsServZoneLastReloadSuccess OBJECT-TYPE
 816:        SYNTAX      DnsTime
 817:        MAX-ACCESS  read-only
 818:        STATUS      current
 819:        DESCRIPTION
 820:                "Elapsed time in seconds since last successful reload of
 821:                this zone."
 822:        ::= { dnsServZoneEntry 3 }
 823: 
 824:    dnsServZoneLastReloadAttempt OBJECT-TYPE
 825:        SYNTAX      DnsTime
 826:        MAX-ACCESS  read-only
 827:        STATUS      current
 828:        DESCRIPTION
 829:                "Elapsed time in seconds since last attempted reload of
 830:                this zone."
 831:        ::= { dnsServZoneEntry 4 }
 832: 
 833:    dnsServZoneLastSourceAttempt OBJECT-TYPE
 834:        SYNTAX      IpAddress
 835:        MAX-ACCESS  read-only
 836:        STATUS      current
 837:        DESCRIPTION
 838:                "IP address of host from which most recent zone transfer
 839:                of this zone was attempted.  This value should match the
 840:                value of dnsServZoneSourceSuccess if the attempt was
 841:                succcessful.  If zone transfer has not been attempted
 842:                within the memory of this name server, this value should
 843:                be 0.0.0.0."
 844:        ::= { dnsServZoneEntry 5 }
 845: 
 846:    dnsServZoneStatus OBJECT-TYPE
 847:        SYNTAX      RowStatus
 848:        MAX-ACCESS  read-create
 849:        STATUS      current
 850:        DESCRIPTION
 851:                "The status of the information represented in this row of
 852:                the table."
 853:        ::= { dnsServZoneEntry 6 }
 854: 
 855:    dnsServZoneSerial OBJECT-TYPE
 856:        SYNTAX      Counter32
 857:        MAX-ACCESS  read-only
 858:        STATUS      current
 859:        DESCRIPTION
 860:                "Zone serial number (from the SOA RR) of the zone
 861:                represented by this row of the table.  If the zone has
 862:                not been successfully loaded within the memory of this
 863:                name server, the value of this variable is zero."
 864:        ::= { dnsServZoneEntry 7 }
 865: 
 866:    dnsServZoneCurrent OBJECT-TYPE
 867:        SYNTAX      TruthValue
 868:        MAX-ACCESS  read-only
 869:        STATUS      current
 870:        DESCRIPTION
 871:                "Whether the server's copy of the zone represented by
 872:                this row of the table is currently valid.  If the zone
 873:                has never been successfully loaded or has expired since
 874:                it was last succesfully loaded, this variable will have
 875:                the value false(2), otherwise this variable will have
 876:                the value true(1)."
 877:        ::= { dnsServZoneEntry 8 }
 878: 
 879:    dnsServZoneLastSourceSuccess OBJECT-TYPE
 880:        SYNTAX      IpAddress
 881:        MAX-ACCESS  read-only
 882:        STATUS      current
 883:        DESCRIPTION
 884:                "IP address of host which was the source of the most
 885:                recent successful zone transfer for this zone.  If
 886:                unknown (e.g., zone has never been successfully
 887:                transfered) or irrelevant (e.g., zone was loaded from
 888:                stable storage), this value should be 0.0.0.0."
 889:        ::= { dnsServZoneEntry 9 }
 890: 
 891:    -- DNS Zone Source Table
 892: 
 893:    dnsServZoneSrcTable OBJECT-TYPE
 894:        SYNTAX      SEQUENCE OF DnsServZoneSrcEntry
 895:        MAX-ACCESS  not-accessible
 896:        STATUS      current
 897:        DESCRIPTION
 898:                "This table is a list of IP addresses from which the
 899:                server will attempt to load zone information using DNS
 900:                zone transfer operations.  A reload may occur due to SNMP
 901:                operations that create a row in dnsServZoneTable or a
 902:                SET to object dnsServZoneReload.  This table is only
 903:                used when the zone is loaded via zone transfer."
 904:        ::= { dnsServZone 2 }
 905: 
 906:    dnsServZoneSrcEntry OBJECT-TYPE
 906: warning - warning: index of row `dnsServZoneSrcEntry' can exceed OID size limit by 146 subidentifier(s)
 907:        SYNTAX      DnsServZoneSrcEntry
 908:        MAX-ACCESS  not-accessible
 909:        STATUS      current
 910:        DESCRIPTION
 911:                "An entry in the name server zone source table."
 912:        INDEX     { dnsServZoneSrcName,
 913:                    dnsServZoneSrcClass,
 914:                    dnsServZoneSrcAddr }
 915:        ::= { dnsServZoneSrcTable 1 }
 916: 
 917:    DnsServZoneSrcEntry ::=
 918:        SEQUENCE {
 919:            dnsServZoneSrcName
 920:                DnsNameAsIndex,
 921:            dnsServZoneSrcClass
 922:                DnsClass,
 923:            dnsServZoneSrcAddr
 924:                IpAddress,
 925:            dnsServZoneSrcStatus
 926:                RowStatus
 927:        }
 928: 
 929:    dnsServZoneSrcName OBJECT-TYPE
 930:        SYNTAX      DnsNameAsIndex
 931:        MAX-ACCESS  not-accessible
 932:        STATUS      current
 933:        DESCRIPTION
 934:                "DNS name of the zone to which this entry applies."
 935:        ::= { dnsServZoneSrcEntry 1 }
 936: 
 937:    dnsServZoneSrcClass OBJECT-TYPE
 938:        SYNTAX      DnsClass
 939:        MAX-ACCESS  not-accessible
 940:        STATUS      current
 941:        DESCRIPTION
 942:                "DNS class of zone to which this entry applies."
 943:        ::= { dnsServZoneSrcEntry 2 }
 944: 
 945:    dnsServZoneSrcAddr OBJECT-TYPE
 946:        SYNTAX      IpAddress
 947:        MAX-ACCESS  not-accessible
 948:        STATUS      current
 949:        DESCRIPTION
 950:                "IP address of name server host from which this zone
 951:                might be obtainable."
 952:        ::= { dnsServZoneSrcEntry 3 }
 953: 
 954:    dnsServZoneSrcStatus OBJECT-TYPE
 955:        SYNTAX      RowStatus
 956:        MAX-ACCESS  read-create
 957:        STATUS      current
 958:        DESCRIPTION
 959:                "The status of the information represented in this row of
 960:                the table."
 961:        ::= { dnsServZoneSrcEntry 4 }
 962: 
 963: 
 964:    -- SNMPv2 groups.
 965: 
 966:    dnsServMIBGroups        OBJECT IDENTIFIER ::= { dnsServMIB 2 }
 967: 
 968:    dnsServConfigGroup OBJECT-GROUP
 969:        OBJECTS   { dnsServConfigImplementIdent,
 970:                    dnsServConfigRecurs,
 971:                    dnsServConfigUpTime,
 972:                    dnsServConfigResetTime,
 973:                    dnsServConfigReset }
 974:        STATUS      current
 975:        DESCRIPTION
 976:                "A collection of objects providing basic configuration
 977:                control of a DNS name server."
 978:        ::= { dnsServMIBGroups 1 }
 979: 
 980:    dnsServCounterGroup OBJECT-GROUP
 980: minor error - node `dnsServCounterOpCode' is an invalid member of group `dnsServCounterGroup'
 980: minor error -
node `dnsServCounterQClass' is an invalid member of group `dnsServCounterGroup'

 980: minor error -
node `dnsServCounterQType' is an invalid member of group `dnsServCounterGroup'

 980: minor error -
node `dnsServCounterTransport' is an invalid member of group `dnsServCounterGroup'
 981:        OBJECTS   { dnsServCounterAuthAns,
 982:                    dnsServCounterAuthNoNames,
 983:                    dnsServCounterAuthNoDataResps,
 984:                    dnsServCounterNonAuthDatas,
 985:                    dnsServCounterNonAuthNoDatas,
 986:                    dnsServCounterReferrals,
 987:                    dnsServCounterErrors,
 988:                    dnsServCounterRelNames,
 989:                    dnsServCounterReqRefusals,
 990:                    dnsServCounterReqUnparses,
 991:                    dnsServCounterOtherErrors,
 992:                    dnsServCounterOpCode,
 993:                    dnsServCounterQClass,
 994:                    dnsServCounterQType,
 995:                    dnsServCounterTransport,
 996:                    dnsServCounterRequests,
 997:                    dnsServCounterResponses }
 998:        STATUS      current
 999:        DESCRIPTION
1000:                "A collection of objects providing basic instrumentation
1001:                of a DNS name server."
1002:        ::= { dnsServMIBGroups 2 }
1003: 
1004:    dnsServOptCounterGroup OBJECT-GROUP
1005:        OBJECTS   { dnsServOptCounterSelfAuthAns,
1006:                    dnsServOptCounterSelfAuthNoNames,
1007:                    dnsServOptCounterSelfAuthNoDataResps,
1008:                    dnsServOptCounterSelfNonAuthDatas,
1009:                    dnsServOptCounterSelfNonAuthNoDatas,
1010:                    dnsServOptCounterSelfReferrals,
1011:                    dnsServOptCounterSelfErrors,
1012:                    dnsServOptCounterSelfRelNames,
1013:                    dnsServOptCounterSelfReqRefusals,
1014:                    dnsServOptCounterSelfReqUnparses,
1015:                    dnsServOptCounterSelfOtherErrors,
1016:                    dnsServOptCounterFriendsAuthAns,
1017:                    dnsServOptCounterFriendsAuthNoNames,
1018:                    dnsServOptCounterFriendsAuthNoDataResps,
1019:                    dnsServOptCounterFriendsNonAuthDatas,
1020:                    dnsServOptCounterFriendsNonAuthNoDatas,
1021:                    dnsServOptCounterFriendsReferrals,
1022:                    dnsServOptCounterFriendsErrors,
1023:                    dnsServOptCounterFriendsRelNames,
1024:                    dnsServOptCounterFriendsReqRefusals,
1025:                    dnsServOptCounterFriendsReqUnparses,
1026:                    dnsServOptCounterFriendsOtherErrors }
1027:        STATUS      current
1028:        DESCRIPTION
1029:                "A collection of objects providing extended
1030:                instrumentation of a DNS name server."
1031:        ::= { dnsServMIBGroups 3 }
1032: 
1033:    dnsServZoneGroup OBJECT-GROUP
1033: minor error - node `dnsServZoneName' is an invalid member of group `dnsServZoneGroup'
1033: minor error -
node `dnsServZoneClass' is an invalid member of group `dnsServZoneGroup'

1033: minor error -
node `dnsServZoneSrcName' is an invalid member of group `dnsServZoneGroup'

1033: minor error -
node `dnsServZoneSrcClass' is an invalid member of group `dnsServZoneGroup'

1033: minor error -
node `dnsServZoneSrcAddr' is an invalid member of group `dnsServZoneGroup'
1034:        OBJECTS   { dnsServZoneName,
1035:                    dnsServZoneClass,
1036:                    dnsServZoneLastReloadSuccess,
1037:                    dnsServZoneLastReloadAttempt,
1038:                    dnsServZoneLastSourceAttempt,
1039:                    dnsServZoneLastSourceSuccess,
1040:                    dnsServZoneStatus,
1041:                    dnsServZoneSerial,
1042:                    dnsServZoneCurrent,
1043:                    dnsServZoneSrcName,
1044:                    dnsServZoneSrcClass,
1045:                    dnsServZoneSrcAddr,
1046:                    dnsServZoneSrcStatus }
1047:        STATUS      current
1048:        DESCRIPTION
1049:                "A collection of objects providing configuration control
1050:                of a DNS name server which loads authoritative zones."
1051:        ::= { dnsServMIBGroups 4 }
1052: 
1053:    -- Compliances.
1054: 
1055:    dnsServMIBCompliances OBJECT IDENTIFIER ::= { dnsServMIB 3 }
1056: 
1057:    dnsServMIBCompliance MODULE-COMPLIANCE
1058:        STATUS      current
1059:        DESCRIPTION
1060:                "The compliance statement for agents implementing the DNS
1061:                name server MIB extensions."
1062:        MODULE -- This MIB module
1063:            MANDATORY-GROUPS { dnsServConfigGroup, dnsServCounterGroup }
1064:            GROUP   dnsServOptCounterGroup
1065:            DESCRIPTION
1066:                "The server optional counter group is unconditionally
1067:                optional."
1068:            GROUP   dnsServZoneGroup
1069:            DESCRIPTION
1070:                "The server zone group is mandatory for any name server
1071:                that acts as an authoritative server for any DNS zone."
1072:            OBJECT  dnsServConfigRecurs
1073:            MIN-ACCESS      read-only
1074:            DESCRIPTION
1075:                "This object need not be writable."
1076:            OBJECT  dnsServConfigReset
1077:            MIN-ACCESS      read-only
1078:            DESCRIPTION
1079:                "This object need not be writable."
1080:        ::= { dnsServMIBCompliances 1 }
1081: 
1082:    END