组织:中国互动出版网(http://www.china-pub.com/)
RFC文档中文翻译计划(http://www.china-pub.com/compters/emook/aboutemook.htm)
E-mail:ouyang@china-pub.com
译者:毕峰(bifeng   bi_feng@263.net)
译文发布时间:2001-7-16
版权:本中文翻译文档版权归中国互动出版网所有。可以用于非商业用途自由转载,但必须
保留本文档的翻译及版权信息。




Network Working Group                                         R. Austein
Request for Comments: 1611               Epilogue Technology Corporation
Category: Standards Track                                     J. Saperia
                                           Digital Equipment Corporation
                                                                May 1994
DNS服务器MIB扩展
(RFC1611 ——DNS Server MIB Extensions) 


本备忘录的状态
本文档讲述了一种Internet社区的Internet标准跟踪协议,它需要进一步进行讨论和建
议以得到改进。请参考最新版的“Internet正式协议标准” (STD1)来获得本协议的标准化
程度和状态。本备忘录的发布不受任何限制。

版权声明

Copyright (C) The Internet Society (2001).




目录

1.  介绍 2
2. SNMPV2网络管理框架 2
2.1. 对象定义 3
3. 概述 3
3.1. 解析器(RESOLVER) 3
3.2. 命名服务器 4
3.3. 所选择的对象 4
3.4. 文本约定 4
4. 定义 4
5. 致谢 26
6. 参考文献 26
7.  安全考虑 28
8.  作者地址 28

1.  介绍
该备忘录定义了在Internet团体中使用网络管理协议的一部分管理信息库(MIB)。特别
是它描述了一套实现命名服务器功能的扩展。该备忘录由DNS工作组制订。
随着Internet标准网络管理框架[4、5、6、7]的采用和这些标准在可用的商业产品上的
大量提供商实现,在基于TCP/IP的Internet中提供一个高效的网络管理已变为可能。随着
这些标准的使用的增加,已可能考虑管理超出基本TCP/IP协议外的设施中的其他单元。
TCP/IP体系结构中的一个关键单元就是DNS。
到目前为止,还没有机制将DNS的管理和基于SNMP的管理者结合在一起。该备忘录
提供了一种机制,基于IP的管理站可以通过它以一种综合方式有效地管理DNS命名服务器
软件。
我们定义了和Internet MIB结合在一起用于允许Internet团体通过SNMP访问和控制
DNS命名服务器软件的DNS MIB对象。

2. SNMPv2网络管理框架
SNMPv2网络管理框架包含四个主要的组件。它们是:
? RFC 1442,它定义了SMI,用于描述和命名管理对象的机制。
? STD 17,RFC1213,它定义了MIB-II,Internet协议组的管理对象的核心集。
? RFC 1445,它定义了框架的管理和其他体系结构方面。
? RFC 1448,它定义了用于到管理对象的网络访问协议。
该框架允许为试验和评估目的定义新对象。

2.1. 对象定义
管理对象通过一个虚拟信息库访问,称为管理信息库或MIB。MIB中的对象用抽象语
法标记(ASN.1)的子集(定义在SMI中)定义。特别地,每个对象类型命名为一个OBJECT 
IDENTIFIER(一个管理指配名)。对象类型和对象实例一起唯一地标识一个特定的实例化对
象。为方便起见,通常使用一个文本字符串,称为描述符,指向对象类型。

3. 概述
理论上DNS世界非常简单。有两种实体:解析器和命名服务器。解析器提出问题。命
名服务器回答。然而在现实世界中并不这么简单。实现者对于如何在解析器和服务器之间划
分DNS功能做出了差别很大的选择,他们也构造了各种奇异的混合。在定义该MIB中的最
困难的任务是适应各种实体,而不必为每个单体定义一个单独的MIB。
我们把各种不同的DNS功能划分为两个非重叠的类,称为:“解析器功能”和“命名服
务器功能”。执行我们定义的解析器功能的DNS实体包含一个解析器,因此必须实现在一个
单独的MIB模块中定义的所有解析器所需的MIB组。实现命名服务器功能的DNS实体称
为命名服务器,必须实现该模块中的命名服务器所需的MIB组。如果同一软件既执行解析
器功能也执行服务器功能,我们想象它既包含一个解析器也包含一个服务器,因此必须实现
DNS服务器MIB和DNS解析器MIB。

3.1. 解析器(Resolver)
在我们的模型中,解析器是一个程序(或一部分)它接收来自服务器的资源记录
(Resource Record)。一般地,它在一个应用程序的命令下执行该操作,但是也可以作为自
身操作的一部分。解析器发送DNS协议查询并接收DNS协议应答。解析器既不接受查询也
不发送应答。完全业务解析器是一个知道如何解析查询:它通过访问对所需记录有可靠信息
的服务器获得所需的资源记录。桩解析器(stub resolver)不知道如何解析查询:它发送所
有查询给一个本地命名服务器,设置“recursion desired”(需要递归)标志以表示它希望命
名服务器解析该查询。解析器可以(可选地)有一个缓存,以记住以前获得的资源记录。它
也可以有一个负缓存,以记住那些不存在的名称或数据。

3.2. 命名服务器
命名服务器是提供资源记录给解析器的一个程序(或部分)。本文档中提及的所有“命
名服务器”都指“命名服务器角色”;在某些情况下,命名服务器角色和解析器角色可能组
合成为一个单一的程序。命名服务器接受DNS协议查询和发送DNS协议应答,命名服务器
既不发送查询也不接收应答,因此命名服务器没有缓存。通常命名服务器只接收那些它可以
用可靠信息应答的查询。然而,如果命名服务器接收到一个查询,它不能用完全可靠的消息
应答,它会选择试图从解析器(是或者不是一个单独的进程)获得必要的附加信息。

3.3. 所选择的对象
该备忘录中所包括的对象都是由包含在DNS规范[1、2]中的信息创建的,该规范被后
来的主机需求文档修订和澄清过。其他对象的创建是基于现有的DNS工具的使用经验、期
望的操作需求、现有的DNS实现产生的统计和现有的DNS实现使用的配置文件。这些对象
被划分为如下几组:
? 服务器配置组
? 服务器计数器组
? 服务器可选计数器组
? 服务器区域组

该信息已经被用定义在[9]中的SNMPv2 SMI转换成为一个标准形式。在很多地方,那
些描述受上面提到的DNS相关RFC的影响。例如,用于各种DNS记录查询的计数器的描
述受用于各种记录类型的定义[2]的影响。

3.4. 文本约定
几种概念数据类型已经被引入该DNS MIB文档作为文本约定。这些引入将会促进DNS
使用的信息的公共理解。SMI和SNMP没有必要改变以支持这些转换。
熟悉为低层Internet协议组管理实体所设计的MIB的读者可能会对在该MIB中使用非
枚举类型的整数代表例如DNS RR类别和类型的数值感到吃惊。这一选择的原因很简单:
DNS本身被设计为一个可扩展协议,允许添加新的资源记录类别和类型到协议中,而不重
新编码核心DNS软件。使用非枚举整数代表该MIB中的数据类型可以使MIB很好地适应
这些变化。

4. 定义
   DNS-SERVER-MIB DEFINITIONS ::= BEGIN
   IMPORTS
       mib-2
           FROM RFC-1213
       MODULE-IDENTITY, OBJECT-TYPE, OBJECT-IDENTITY,
       IpAddress, Counter32, Gauge32
           FROM SNMPv2-SMI
       TEXTUAL-CONVENTION, RowStatus, DisplayString, TruthValue
           FROM SNMPv2-TC
       MODULE-COMPLIANCE, OBJECT-GROUP
           FROM SNMPv2-CONF;

   dns OBJECT-IDENTITY
       STATUS  current
       DESCRIPTION
               "赋予IANA工作的DNS MIB的OID。"
       ::= { mib-2 32 }

   dnsServMIB MODULE-IDENTITY
       LAST-UPDATED "9401282251Z"
       ORGANIZATION "IETF DNS Working Group"
       CONTACT-INFO
               "       Rob Austein
               Postal: Epilogue Technology Corporation
                       268 Main Street, Suite 283
                       North Reading, MA 10864
                       US
                  Tel: +1 617 245 0804
                  Fax: +1 617 245 8122
               E-Mail: sra@epilogue.com

                       Jon Saperia
               Postal: Digital Equipment Corporation
                       110 Spit Brook Road
                       ZKO1-3/H18
                       Nashua, NH 03062-2698
                       US
                  Tel: +1 603 881 0480
                  Fax: +1 603 881 0120
                Email: saperia@zko.dec.com"
       DESCRIPTION
               "实现DNS协议的服务器方实体的MIB模块。"
       ::= { dns 1 }

   dnsServMIBObjects       OBJECT IDENTIFIER ::= { dnsServMIB 1 }

   -- (Old-style) DNS服务器MIB中的组。

   dnsServConfig           OBJECT IDENTIFIER ::= { dnsServMIBObjects 1 }
   dnsServCounter          OBJECT IDENTIFIER ::= { dnsServMIBObjects 2 }
   dnsServOptCounter       OBJECT IDENTIFIER ::= { dnsServMIBObjects 3 }
   dnsServZone            OBJECT IDENTIFIER ::= { dnsServMIBObjects 4 }


   -- 文本约定

   DnsName ::= TEXTUAL-CONVENTION
       -- DISPLAY-HINT很好,但难于表达。
       STATUS  current
       DESCRIPTION
"DNS名是一个标签序列。当显示一个DNS名时,标签之间一般用点分
隔(例如,‘Acme’和‘COM’是域名‘Acme.COM’的标签)。然而在
DNS协议中不需要这样的分隔符,因为每一个标签被编码为一个有长度
的字节流,其前面标明了标签字节的长度。例如,‘Acme.COM’被编码
为字节序列{ 4,‘A’,‘c’,‘m’,‘e’, 3, ‘C’,‘O’,‘M’,0}(末
尾的0是根域的名称长度,它出现在任何DNS名的后面)。该MIB与DNS
协议使用同一个编码。

DnsName必须总是一个全名。把一个相对域名作为DnsName编码而不先
把它转换为一个全名是错误的。"

       REFERENCE
               "RFC-1034 3.1.节"
       SYNTAX  OCTET STRING (SIZE (0..255))

   DnsNameAsIndex ::= TEXTUAL-CONVENTION
       STATUS  current
       DESCRIPTION
"该文本约定与DnsName类似,但用于表中的索引组件。该类型的名称中
的字母字符必须是大写字母:字符‘a’到‘z’被映射到字符‘A’到‘Z’。
这一限制是为了 使SNMP强加的词汇顺序在应用到DNS名时有用。

注意一个有效的DNS名在理论上是可以超出SNMP对象标识的允许长
度,因此不可能出现在由DNS名索引的该MIB的表中。当前在Internet
上使用的DNS名的取样说明这一限制并没有在实践中带来严重问题。"

       REFERENCE
               "RFC-1034 3.1节, RFC-1448 4.1. 节"
       SYNTAX  DnsName

   DnsClass ::= TEXTUAL-CONVENTION
       DISPLAY-HINT "2d"
       STATUS  current
       DESCRIPTION
"该数据类型用于代表出现在DNS资源记录中的类别值。使用16位无符
号整数以为定义新类别的记录留有空间。DNS规范列有现有的标准类别。
"
       REFERENCE
               "RFC-1035 3.2.4. 节"
       SYNTAX  INTEGER (0..65535)

   DnsType ::= TEXTUAL-CONVENTION
       DISPLAY-HINT "2d"
       STATUS  current
       DESCRIPTION
"该数据类型用来在DNS中代表在出现在资源记录中的类型值。使用16
位无符号整数以为定义新类型的记录留有空间。DNS规范列有现有的标
准类型。"
       REFERENCE
               "RFC-1035 3.2.2. 节"
       SYNTAX  INTEGER (0..65535)

   DnsQClass ::= TEXTUAL-CONVENTION
       DISPLAY-HINT "2d"
       STATUS  current
       DESCRIPTION
"该数据类型用来在DNS中代表在出现在资源记录中的QClass值。使用
16位无符号整数以为定义新的QClass记录留有空间。DNS规范列有现有
的标准QClass。"
       REFERENCE
               "RFC-1035 3.2.5. 节"
       SYNTAX  INTEGER (0..65535)

   DnsQType ::= TEXTUAL-CONVENTION
       DISPLAY-HINT "2d"
       STATUS  current
       DESCRIPTION
"该数据类型用来在DNS中代表在出现在资源记录中的QType值。
使用16位无符号整数以为定义新的QType记录留有空间。DNS规范列
有现有的标准QType。"
       REFERENCE
               "RFC-1035 3.2.3. 节"
       SYNTAX  INTEGER (0..65535)

   DnsTime ::= TEXTUAL-CONVENTION
       DISPLAY-HINT "4d"
       STATUS  current
       DESCRIPTION
               "DnsTime值是一个以秒钟计算时间的32位无符号整数。"
       REFERENCE
               "RFC-1035."
       SYNTAX  Gauge32


   DnsOpCode ::= TEXTUAL-CONVENTION
       STATUS  current
       DESCRIPTION
"该文本约定用来代表用在DNS消息头部的DNS OPCODE值。DNS规范
中列有现有的OPCODE值。"
       REFERENCE
               "RFC-1035 4.1.1. 节"
       SYNTAX  INTEGER (0..15)

   DnsRespCode ::= TEXTUAL-CONVENTION
       STATUS  current
       DESCRIPTION
"该文本约定用来代表用在DNS应答消息中的DNS RCODE值。DNS规
范中列有现有的RCODE值。"
       REFERENCE
               "RFC-1035 4.1.1. 节"
       SYNTAX  INTEGER (0..15)



   -- 服务器配置组

   dnsServConfigImplementIdent OBJECT-TYPE
       SYNTAX      DisplayString
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
             "系统中正在使用的DNS服务器软件的实现标识字符串,例如‘FNS-2.1’"
       ::= { dnsServConfig 1 }

   dnsServConfigRecurs  OBJECT-TYPE
       SYNTAX      INTEGER { available(1),
                             restricted(2),
                             unavailable(3) }
       MAX-ACCESS  read-write
       STATUS      current
       DESCRIPTION
               "代表该命名服务器提供的递归业务。可以读或写的值有:
               available(1) – 在客户的请求下执行递归。
               restricted(2) – 只在特定的客户的请求下执行递归,例如,访问控制
                            列表中的客户。
               unavailable(3) – 不可使用递归。"
        ::= { dnsServConfig 2 }

   dnsServConfigUpTime OBJECT-TYPE
       SYNTAX      DnsTime
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
"如果服务器具有持久状态(例如,一个进程),该值就是自从服务器启动
到现在的时间。对于没有持久状态的软件,该值为零。"
       ::= { dnsServConfig 3 }

   dnsServConfigResetTime OBJECT-TYPE
       SYNTAX      DnsTime
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
"如果服务器具有持久状态(例如,一个进程)并支持‘reset’操作(例
如,可以重读配置文件),该值就是从命名服务器‘reset’到现在的时间。
如果没有持久状态或不支持‘reset’操作,该值为零。"
       ::= { dnsServConfig 4 }

   dnsServConfigReset OBJECT-TYPE
       SYNTAX      INTEGER { other(1),
                             reset(2),
                             initializing(3),
                             running(4) }
       MAX-ACCESS  read-write
       STATUS      current
       DESCRIPTION
"重新初始化任何持久命名服务器状态的状态/行为对象。当设置为reset
(2),任何持久命名服务器状态(例如一个进程)被重新初始化,就象
是命名服务器重启了一样。对于读操作不会返回该值。当进行读操作时,
下面的值将会返回:
                   other(1) – 服务器在某种位置状态;
                   initializing(3) – 服务器正在(重新)初始化;
                   running(4) – 服务器正在运行。"
       ::= { dnsServConfig 5 }


   -- 服务器计数器组

   dnsServCounterAuthAns OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "服务器已经给予可靠应答的查询数。"
       ::= { dnsServCounter 2 }

   dnsServCounterAuthNoNames OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "服务器给予可靠的‘no such name’应答的查询数。"
       ::= { dnsServCounter 3 }

   dnsServCounterAuthNoDataResps OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "服务器给予可靠的‘no such data’应答(空应答)的查询数。"
       ::= { dnsServCounter 4 }

   dnsServCounterNonAuthDatas OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "服务器给予非可靠应答(缓存应答)的查询数。"
       ::= { dnsServCounter 5 }

   dnsServCounterNonAuthNoDatas OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "服务器给予非可靠的没有值应答(空应答)的查询数。"
       ::= { dnsServCounter 6 }

   dnsServCounterReferrals OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "送交其他服务器的的请求数。"
       ::= { dnsServCounter 7 }

   dnsServCounterErrors OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "服务器已经处理并报告有错误(RCODE值不是0或3)的请求数。"
       REFERENCE
               "RFC-1035 4.1.1.节"
       ::= { dnsServCounter 8 }

   dnsServCounterRelNames OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
"服务器接收到的请求中只有一个标签长度(文本格式 – 没有中间点)的
域名的请求数。"
       ::= { dnsServCounter 9 }

   dnsServCounterReqRefusals OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "被DNS服务器拒绝的DNS请求的数目。"
       ::= { dnsServCounter 10 }

   dnsServCounterReqUnparses OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "接收到但不可解析的请求数。"
       ::= { dnsServCounter 11 }

   dnsServCounterOtherErrors OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "由于其他(本地)服务器错误而终止的请求数。"
       ::= { dnsServCounter 12 }

   -- DNS服务器计数器表

   dnsServCounterTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF DnsServCounterEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
               "由DNS类别和类型划分的计数器信息。"
       ::= { dnsServCounter 13 }

   dnsServCounterEntry OBJECT-TYPE
       SYNTAX      DnsServCounterEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
"该表包含服务器已知的各DNS类别和类型值的计数信息。管理软件可以
创建表的索引以获得所需的特定信息,例如,通过UDP到达该服务器的
查询具有类型值‘A’的记录的查询数。为了防止该表中的行数的不可控
制的增长,如果dnsServCounterRequests为0并且dnsServCounterResponses
为0,那么该行不存在。当查询该代理的这些实例时,返回‘no such’。"
       INDEX     { dnsServCounterOpCode,
                   dnsServCounterQClass,
                   dnsServCounterQType,
                   dnsServCounterTransport }
       ::= { dnsServCounterTable 1 }

   DnsServCounterEntry ::=
       SEQUENCE {
           dnsServCounterOpCode
               DnsOpCode,
           dnsServCounterQClass
               DnsClass,
           dnsServCounterQType
               DnsType,
           dnsServCounterTransport
               INTEGER,
           dnsServCounterRequests
               Counter32,
           dnsServCounterResponses
               Counter32
           }

   dnsServCounterOpCode OBJECT-TYPE
       SYNTAX      DnsOpCode
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
               "表中该行被计数的记录的DNS OPCODE。"
       ::= { dnsServCounterEntry 1 }

   dnsServCounterQClass OBJECT-TYPE
       SYNTAX      DnsClass
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
               "表中该行中的被计数的记录的类别。"
       ::= { dnsServCounterEntry 2 }

   dnsServCounterQType OBJECT-TYPE
       SYNTAX      DnsType
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
               "表中该行中的被计数的记录的类型。"
       ::= { dnsServCounterEntry 3 }

   dnsServCounterTransport OBJECT-TYPE
       SYNTAX      INTEGER { udp(1), tcp(2), other(3) }
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
               "值为udp(1)表明该行所报告的查询是以UDP发送的。
               值为tcp(2)表明该行所报告的查询是以TCP发送的。
               值为other(3) 表明该行所报告的查询是用除UDP和TCP以外的其他协议
               发送的。"
       ::= { dnsServCounterEntry 4 }

   dnsServCounterRequests OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "表中该行所记录的请求(查询)数。"
       ::= { dnsServCounterEntry 5 }

   dnsServCounterResponses OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "表中该行所记录的自从这种查询被初始化以来服务器做出的应答数。"
       ::= { dnsServCounterEntry 6 }



   -- 服务器可选计数器组

   -- 服务器可选计数器组是为了用于那些系统,它们区分来自不同的DNS查询源的查询。
   -- 这些查询如下定义。
   --
   -- 该组的对象实现于那些区分来自与服务器同一主机的查询、来自该服务器的访问
   -- 列表中定义的任意组中的某一主机的查询和来自其他主机的查询。
   --
   -- 服务器计数器组中的对象是一种总计。因此,例如如果想要确定来自‘远程’主机
   -- 已获得可靠应答的的查询数,就可以用servCounterAuthAns减去
   -- ServOptCounterFriendsAuthAns和ServOptCounterSelfAuthAns。
   --
   -- 这些区分的目的是为了在该基础上实现组查询和应答。
   -- 一种服务器用来区分的方法是查看DNS查询的源IP地址。如果查询源是‘自己’
   -- 那么该查询应该被计为‘自己’(本地主机)。如果查询源与‘访问列表’匹配, 
   -- 则该查询来自‘朋友’。‘访问列表’的组成是与实现有关的,并且应该尽量简单到
   -- 与DNS服务器位于同一IP网络中的主机被划分为‘朋友’。
   --
   -- 为了避免重复计数,应遵守下面的规则:
   -- 1. 主机不能在上面定义的三个组中的一个以上组中出现。
   -- 2. 所有来自本地主机的查询总是被计入‘自己’组,与访问列表(如果有的话)
   --   无关。
   -- 3. 访问列表不应该把所有的主机都定义为‘朋友’。也就是说,不是所有的主机
   -- 都是‘朋友’。

   dnsServOptCounterSelfAuthAns OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
"服务器已经处理的来自与它位于同一主机的解析器的请求数,并且这些
请求已经被可靠应答。"
       ::= { dnsServOptCounter 1 }

   dnsServOptCounterSelfAuthNoNames OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
"服务器已经处理的来自与它位于同一主机的解析器的请求数,并且这些
请求具有可靠的‘no such name’应答。"
       ::= { dnsServOptCounter 2 }

   dnsServOptCounterSelfAuthNoDataResps OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
"服务器已经处理的来自与它位于同一主机的解析器的请求数,并且这些
请求具有可靠的‘no such data’(空应答)应答。"
       ::= { dnsServOptCounter 3 }

   dnsServOptCounterSelfNonAuthDatas OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
"服务器已经处理的来自与它位于同一主机的解析器的请求数,并且这些
请求具有不可靠的应答(缓存数据)。"
       ::= { dnsServOptCounter 4 }

   dnsServOptCounterSelfNonAuthNoDatas OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
"服务器已经处理的来自与它位于同一主机的解析器的请求数,并且这些
请求具有不可靠的‘no such data’应答(空应答)。"
       ::= { dnsServOptCounter 5 }

   dnsServOptCounterSelfReferrals OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
"服务器已经处理的来自与它位于同一主机的解析器的请求数,并且这些
请求被指向其他服务器。"
       ::= { dnsServOptCounter 6 }

   dnsServOptCounterSelfErrors OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
"服务器已经处理的来自与它位于同一主机的解析器的带有错误应答
(RCODE不是0和3)的请求数。"
       REFERENCE
               "RFC-1035 4.1.1.节"
       ::= { dnsServOptCounter 7 }

   dnsServOptCounterSelfRelNames OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
"服务器已经处理的来自与它位于同一主机的解析器的请求数,并且这些
请求中的域名只有一个标签长度(文本格式 – 标签中间没有点)。"
       ::= { dnsServOptCounter 8 }

   dnsServOptCounterSelfReqRefusals OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "服务器拒绝的来自与它位于同一主机的解析器的请求数。"
       ::= { dnsServOptCounter 9 }

   dnsServOptCounterSelfReqUnparses OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "服务器接收到来自与它位于同一主机的解析器的不可分析的请求数。"
       ::= { dnsServOptCounter 10 }

   dnsServOptCounterSelfOtherErrors OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
"由于其他(本地)服务器错误,终止的来自与服务器位于同一主机的解
析器的请求数。"
       ::= { dnsServOptCounter 11 }

   dnsServOptCounterFriendsAuthAns OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
"服务器已经可靠应答了的来自‘朋友’的请求数。‘朋友’的定义是一个
本地定义。"
       ::= { dnsServOptCounter 12 }

   dnsServOptCounterFriendsAuthNoNames OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
"服务器已经处理的来自‘朋友’的请求数,这些请求带有‘no such name’
的可靠应答。"
       ::= { dnsServOptCounter 13 }

   dnsServOptCounterFriendsAuthNoDataResps OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
"服务器已经处理的来自‘朋友’的请求数,这些请求带有‘no such data’
(空应答)的可靠应答。朋友的定义是一个本地定义问题。"
       ::= { dnsServOptCounter 14 }

   dnsServOptCounterFriendsNonAuthDatas OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
"服务器已经处理的来自‘朋友’的请求数,这些请求被不可靠应答(缓
存数据)。朋友的定义是一个本地定义问题。"
       ::= { dnsServOptCounter 15 }

   dnsServOptCounterFriendsNonAuthNoDatas OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
"服务器已经处理的来自‘朋友’的请求数,这些请求带有不可靠的‘no 
such data’应答(空应答)。朋友的定义是一个本地定义问题。"
       ::= { dnsServOptCounter 16 }

   dnsServOptCounterFriendsReferrals OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
"服务器已经处理的来自‘朋友’的请求数,这些请求被指向其他服务器。
朋友的定义是一个本地定义问题。"
       ::= { dnsServOptCounter 17 }

   dnsServOptCounterFriendsErrors OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
"服务器已经处理的来自‘朋友’的请求数,这些请求带有错误应答
(RCODE值不是0和3)。朋友的定义是一个本地定义问题。"
       REFERENCE
               "RFC-1035 4.1.1.节"
       ::= { dnsServOptCounter 18 }

   dnsServOptCounterFriendsRelNames OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
"服务器已经处理的来自朋友的请求数,并且这些请求中的域名只有一个
标签长度(文本格式 – 标签中间没有点)。"
       ::= { dnsServOptCounter 19 }

   dnsServOptCounterFriendsReqRefusals OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
"服务器拒绝的来自朋友的请求数,并且这些请求中的域名只有一个标签
长度(文本格式 – 标签中间没有点)。"
       ::= { dnsServOptCounter 20 }

   dnsServOptCounterFriendsReqUnparses OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "服务器接收到来自朋友的不可分析的请求数。"
       ::= { dnsServOptCounter 21 }

   dnsServOptCounterFriendsOtherErrors OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
"由于其他(本地)服务器错误,终止的来自与服务器位于同一主机的解
析器的请求数。"
       ::= { dnsServOptCounter 22 }


   -- 服务器区域组

   -- DNS管理区域配置表

   -- 该表包含区域配置信息。

   dnsServZoneTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF DnsServZoneEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
"命名服务器提供区域信息的区域表,每个区域可以通过特定实现机制从
稳定存储中加载或者通过区域信息传输从其他命名服务器获得。

如果命名服务器不加载任何区域信息,该表为空。"
       ::= { dnsServZone 1 }

   dnsServZoneEntry OBJECT-TYPE
       SYNTAX      DnsServZoneEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
"命名服务器区域表的条目,新行可以通过SNMP或者通过命名服务器自
身增加。"
       INDEX     { dnsServZoneName,
                   dnsServZoneClass }
       ::= { dnsServZoneTable 1 }

   DnsServZoneEntry ::=
       SEQUENCE {
           dnsServZoneName
               DnsNameAsIndex,
           dnsServZoneClass
               DnsClass,
           dnsServZoneLastReloadSuccess
               DnsTime,
           dnsServZoneLastReloadAttempt
               DnsTime,
           dnsServZoneLastSourceAttempt
               IpAddress,
           dnsServZoneStatus
               RowStatus,
           dnsServZoneSerial
               Counter32,
           dnsServZoneCurrent
               TruthValue,
           dnsServZoneLastSourceSuccess
               IpAddress
       }

   dnsServZoneName OBJECT-TYPE
       SYNTAX      DnsNameAsIndex
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
"表中该行所描述区域的DNS名。它是定义该区域的顶部结点的SOA RR
的所有者名。该名字是大写的:字符‘a’到‘z’被映射为‘A’到‘Z’,
以使词汇顺序有效。"
       ::= { dnsServZoneEntry 1 }

   dnsServZoneClass OBJECT-TYPE
       SYNTAX      DnsClass
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
               "该区域中的RR的DNS类别。"
       ::= { dnsServZoneEntry 2 }

   dnsServZoneLastReloadSuccess OBJECT-TYPE
       SYNTAX      DnsTime
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "自从上次成功加载该区域到现在的秒数。"
       ::= { dnsServZoneEntry 3 }

   dnsServZoneLastReloadAttempt OBJECT-TYPE
       SYNTAX      DnsTime
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "自从上次尝试加载该区域到现在的秒数。"
       ::= { dnsServZoneEntry 4 }

   dnsServZoneLastSourceAttempt OBJECT-TYPE
       SYNTAX      IpAddress
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
"最近一次尝试该区域的区域信息传送的主机的IP地址。如果尝试成功,
该值应该与dnsServZoneSourceSuccess的值匹配。如果区域信息传送在该
命名服务器的记忆中没有进行尝试,该值为0.0.0.0."
       ::= { dnsServZoneEntry 5 }

   dnsServZoneStatus OBJECT-TYPE
       SYNTAX      RowStatus
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
               "表中该行所提供的信息的状态。"
       ::= { dnsServZoneEntry 6 }

   dnsServZoneSerial OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
"表中该行所提供的区域的区域序列号(来自SOA RR)。如果在该命名服
务器的记忆范围内没有成功加载,该变量的值为零。"
       ::= { dnsServZoneEntry 7 }

   dnsServZoneCurrent OBJECT-TYPE
       SYNTAX      TruthValue
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
"是否由表中该行所提供区域的服务器拷贝当前有效。如果区域从未成功
加载或者超过了上次成功加载的有效期,该变量值为false(2),否则该
变量值为true(1)。"
       ::= { dnsServZoneEntry 8 }

   dnsServZoneLastSourceSuccess OBJECT-TYPE
       SYNTAX      IpAddress
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
"最近一次成功进行该区域的区域信息传输的源主机的IP地址。如果未知
(例如,区域从未成功加载过)或者不相关(例如,区域从稳定存储介
质加载),该值为0.0.0.0."
       ::= { dnsServZoneEntry 9 }

   -- DNS区域信息源表

   dnsServZoneSrcTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF DnsServZoneSrcEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
"该表是一个IP地址列表,从这些地址服务器试图使用DNS区域信息传
送操作加载区域信息。重载可能会发生在由于在dnsServZoneTable表中
创建一行的SNMP操作或者作用在对象dnsServZoneReload的SET操作。
该表只用在通过区域信息传送加载该区域信息时。"
       ::= { dnsServZone 2 }

   dnsServZoneSrcEntry OBJECT-TYPE
       SYNTAX      DnsServZoneSrcEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
               "命名服务器区域信息源表中的条目。"
       INDEX     { dnsServZoneSrcName,
                   dnsServZoneSrcClass,
                   dnsServZoneSrcAddr }
       ::= { dnsServZoneSrcTable 1 }

   DnsServZoneSrcEntry ::=
       SEQUENCE {
           dnsServZoneSrcName
               DnsNameAsIndex,
           dnsServZoneSrcClass
               DnsClass,
           dnsServZoneSrcAddr
               IpAddress,
           dnsServZoneSrcStatus
               RowStatus
       }

   dnsServZoneSrcName OBJECT-TYPE
       SYNTAX      DnsNameAsIndex
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
               "该行适用的区域的DNS名。"
       ::= { dnsServZoneSrcEntry 1 }

   dnsServZoneSrcClass OBJECT-TYPE
       SYNTAX      DnsClass
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
               "该行适用的区域的DNS类别。"
       ::= { dnsServZoneSrcEntry 2 }

   dnsServZoneSrcAddr OBJECT-TYPE
       SYNTAX      IpAddress
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
               "命名服务器的IP地址,从该服务器上可能获得该区域信息。"
       ::= { dnsServZoneSrcEntry 3 }

   dnsServZoneSrcStatus OBJECT-TYPE
       SYNTAX      RowStatus
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
               "表中该行所提供的信息的状态。"
       ::= { dnsServZoneSrcEntry 4 }


   -- SNMPv2组

   dnsServMIBGroups        OBJECT IDENTIFIER ::= { dnsServMIB 2 }

   dnsServConfigGroup OBJECT-GROUP
       OBJECTS   { dnsServConfigImplementIdent,
                   dnsServConfigRecurs,
                   dnsServConfigUpTime,
                   dnsServConfigResetTime,
                   dnsServConfigReset }
       STATUS      current
       DESCRIPTION
               "提供控制DNS命名服务器基本配置的对象集。"
       ::= { dnsServMIBGroups 1 }

   dnsServCounterGroup OBJECT-GROUP
       OBJECTS   { dnsServCounterAuthAns,
                   dnsServCounterAuthNoNames,
                   dnsServCounterAuthNoDataResps,
                   dnsServCounterNonAuthDatas,
                   dnsServCounterNonAuthNoDatas,
                   dnsServCounterReferrals,
                   dnsServCounterErrors,
                   dnsServCounterRelNames,
                   dnsServCounterReqRefusals,
                   dnsServCounterReqUnparses,
                   dnsServCounterOtherErrors,
                   dnsServCounterOpCode,
                   dnsServCounterQClass,
                   dnsServCounterQType,
                   dnsServCounterTransport,
                   dnsServCounterRequests,
                   dnsServCounterResponses }
       STATUS      current
       DESCRIPTION
               "提供DNS命名服务器的基本检测的对象集。"
       ::= { dnsServMIBGroups 2 }
7
   dnsServOptCounterGroup OBJECT-GROUP
       OBJECTS   { dnsServOptCounterSelfAuthAns,
                   dnsServOptCounterSelfAuthNoNames,
                   dnsServOptCounterSelfAuthNoDataResps,
                   dnsServOptCounterSelfNonAuthDatas,
                   dnsServOptCounterSelfNonAuthNoDatas,
                   dnsServOptCounterSelfReferrals,
                   dnsServOptCounterSelfErrors,
                   dnsServOptCounterSelfRelNames,
                   dnsServOptCounterSelfReqRefusals,
                   dnsServOptCounterSelfReqUnparses,
                   dnsServOptCounterSelfOtherErrors,
                   dnsServOptCounterFriendsAuthAns,
                   dnsServOptCounterFriendsAuthNoNames,
                   dnsServOptCounterFriendsAuthNoDataResps,
                   dnsServOptCounterFriendsNonAuthDatas,
                   dnsServOptCounterFriendsNonAuthNoDatas,
                   dnsServOptCounterFriendsReferrals,
                   dnsServOptCounterFriendsErrors,
                   dnsServOptCounterFriendsRelNames,
                   dnsServOptCounterFriendsReqRefusals,
                   dnsServOptCounterFriendsReqUnparses,
                   dnsServOptCounterFriendsOtherErrors }
       STATUS      current
       DESCRIPTION
               "提供DNS命名服务器扩展检测的对象集。"
       ::= { dnsServMIBGroups 3 }

   dnsServZoneGroup OBJECT-GROUP
       OBJECTS   { dnsServZoneName,
                   dnsServZoneClass,
                   dnsServZoneLastReloadSuccess,
                   dnsServZoneLastReloadAttempt,
                   dnsServZoneLastSourceAttempt,
                   dnsServZoneLastSourceSuccess,
                   dnsServZoneStatus,
                   dnsServZoneSerial,
                   dnsServZoneCurrent,
                   dnsServZoneSrcName,
                   dnsServZoneSrcClass,
                   dnsServZoneSrcAddr,
                   dnsServZoneSrcStatus }
       STATUS      current
       DESCRIPTION
               "提供DNS命名服务器的加载可靠区域的配置控制的对象集。"
       ::= { dnsServMIBGroups 4 }

   -- 一致性

   dnsServMIBCompliances OBJECT IDENTIFIER ::= { dnsServMIB 3 }

   dnsServMIBCompliance MODULE-COMPLIANCE
       STATUS      current
       DESCRIPTION
               "对于实现DNS命名服务器MIB扩展的代理的一致性表述。"
       MODULE -- This MIB module
           MANDATORY-GROUPS { dnsServConfigGroup, dnsServCounterGroup }
           GROUP   dnsServOptCounterGroup
           DESCRIPTION
               "服务器可选计数器组是无条件可选的。"
           GROUP   dnsServZoneGroup
           DESCRIPTION
"服务器区域组对于任何命名服务器,该服务器是任何一个DNS区域的可
靠服务器,都是必备的。"
           OBJECT  dnsServConfigRecurs
           MIN-ACCESS      read-only
           DESCRIPTION
               "该对象不需要可写。"
           OBJECT  dnsServConfigReset
           MIN-ACCESS      read-only
           DESCRIPTION
               "该对象不需要可写。"
       ::= { dnsServMIBCompliances 1 }

   END


5. 致谢

该文档是DNS工作组的工作结果。作者非常感谢下面人士对该文档做出的贡献:Philip 
Almquist、Frank Kastenholz (FTP Software)、Joe Peck (DEC)、Dave Perkins (SynOptics)、 Win 
Treese (DEC)和Mimi Zohar (IBM)。

6. 参考文献

   [1] Mockapetris, P., "域名 – 概念和设备", STD13, RFC 1034, USC/Information Sciences 
Institute, November 1987.

   [2] Mockapetris, P., "域名 – 实现和规范", STD 13, RFC 1035, USC/Information Sciences 
Institute, November 1987.

   [3] Braden, R., Editor, "Internet 主机需求 – 应用和支持,STD 3, RFC 1123, 
USC/Information Sciences Institute, October 1989.

   [4] Rose, M., and K. McCloghrie, "基于TCP/IP的internet的管理对信息的结构和标识", 
STD 16, RFC 1155, Performance Systems International, Hughes LAN Systems, May       
1990.

   [5] McCloghrie, K., and M. Rose, "基于TCP/IP的internet的网络管理的管理信息库", RFC 
1156, Hughes LAN Systems, Performance Systems International, May 1990.

   [6] Case, J., Fedor, M., Schoffstall, M., and J. Davin, "简单网络管理协议", STD 15, RFC 
1157, SNMP Research, Performance Systems International, Performance Systems       
International, MIT Laboratory for Computer Science, May 1990.

   [7] Rose, M., and K. McCloghrie, Editors, "简明MIB定义",STD 16, RFC 1212, Performance 
Systems International, Hughes LAN Systems, March 1991.

   [8] McCloghrie, K., and M. Rose, Editors, "基于TCP/IP的internet的网络管理的管理信息
库:MIB-II",STD 17, RFC 1213, Hughes LAN Systems, Performance Systems       
International, March 1991.

   [9] Case, J., McCloghrie, K., Rose, M., and S. Waldbusser, "第二版简单网络管理协议
(SNMPv2)的管理信息结构", RFC 1442, SNMP Research, Inc., Hughes LAN Systems, Dover 
Beach Consulting, Inc., Carnegie Mellon University, April 1993.

  [10] Case, J., McCloghrie, K., Rose, M., and S. Waldbusser, "第二版简单网络管理协议
(SNMPv2)的文本约定", RFC 1443, SNMP Research, Inc., Hughes LAN Systems, Dover 
Beach Consulting, Inc., Carnegie Mellon University, April 1993.

  [11] Case, J., McCloghrie, K., Rose, M., and S. Waldbusser,"第二版简单网络管理协议
(SNMPv2)的一致性表述", RFC 1444, SNMP Research, Inc., Hughes LAN Systems, Dover 
Beach Consulting, Inc., Carnegie Mellon University, April 1993.

  [12] Galvin, J., and K. McCloghrie, "第二版简单网络管理协议(SNMPv2)的管理模型", RFC 
1445,Trusted Information Systems, Hughes LAN Systems, April 1993.

  [13] Case, J., McCloghrie, K., Rose, M., and S. Waldbusser, "第二版简单网络管理协议
(SNMPv2)的协议操作", RFC 1448, SNMP Research, Inc., Hughes LAN Systems, Dover 
Beach Consulting, Inc., Carnegie Mellon University, April 1993.

  [14] "信息处理系统 – 开放系统互连 – 抽象语法标记1(ASN.1)规范",International 
Organization for Standardization, International Standard 8824, December 1987.

7.  安全考虑
   安全问题没有在此备忘录中讨论。

8.  作者地址
   Rob Austein
   Epilogue Technology Corporation
   268 Main Street, Suite 283
   North Reading, MA 01864
   USA

   Phone: +1-617-245-0804
   Fax:   +1-617-245-8122
   EMail: sra@epilogue.com


   Jon Saperia
   Digital Equipment Corporation
   110 Spit Brook Road
   ZKO1-3/H18
   Nashua, NH 03062-2698
   USA

   Phone: +1-603-881-0480
   Fax:   +1-603-881-0120
   EMail: saperia@zko.dec.com

RFC1611——DNS Server MIB Extensions                   DNS服务器MIB扩展


28
RFC文档中文翻译计划