组织:中国互动出版网(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: 1612 Epilogue Technology Corporation Category: Standards Track J. Saperia Digital Equipment Corporation May 1994 DNS解析器MIB扩展 (DNS Resolver 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. 致谢 46 6. 参考文献 46 7. 安全考虑 47 8. 作者地址 47 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]中的信息创建的,该规范被后 来的主机需求文档[3]修订和澄清过。其他对象的创建是基于现有的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-RESOLVER-MIB DEFINITIONS ::= BEGIN IMPORTS MODULE-IDENTITY, OBJECT-TYPE, IpAddress, Counter32, Integer32 FROM SNMPv2-SMI TEXTUAL-CONVENTION, RowStatus, DisplayString FROM SNMPv2-TC MODULE-COMPLIANCE, OBJECT-GROUP FROM SNMPv2-CONF dns, DnsName, DnsNameAsIndex, DnsClass, DnsType, DnsQClass, DnsQType, DnsTime, DnsOpCode, DnsRespCode FROM DNS-SERVER-MIB; -- DNS解析器MIB dnsResMIB MODULE-IDENTITY LAST-UPDATED "9401282250Z" 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 E-mail: saperia@zko.dec.com" DESCRIPTION "该MIB模块用于实现DNS协议的客户(解析器)方实体。" dnsResMIBObjects OBJECT IDENTIFIER ::= { dnsResMIB 1 } -- (Old-style) DNS解析器MIB中的组。 dnsResConfig OBJECT IDENTIFIER ::= { dnsResMIBObjects 1 } dnsResCounter OBJECT IDENTIFIER ::= { dnsResMIBObjects 2 } dnsResLameDelegation OBJECT IDENTIFIER ::= { dnsResMIBObjects 3 } dnsResCache OBJECT IDENTIFIER ::= { dnsResMIBObjects 4 } dnsResNCache OBJECT IDENTIFIER ::= { dnsResMIBObjects 5 } dnsResOptCounter OBJECT IDENTIFIER ::= { dnsResMIBObjects 6 } -- 解析器配置组 dnsResConfigImplementIdent OBJECT-TYPE SYNTAX DisplayString MAX-ACCESS read-only STATUS current DESCRIPTION "系统当前使用的解析器软件的实现标识字符串。例如‘RES-2.1’。" ::= { dnsResConfig 1 } dnsResConfigService OBJECT-TYPE SYNTAX INTEGER { recursiveOnly(1), iterativeOnly(2), recursiveAndIterative(3) } MAX-ACCESS read-only STATUS current DESCRIPTION "提供的DNS解析业务种类: recursiveOnly(1)表明是一个桩解析器。 iterativeOnly(2) 表明是一个正常的全业务解析器。 recursiveAndIterative(3) 表明是一个全业务解析器,它既执行递归业 务也执行交互查询。" ::= { dnsResConfig 2 } dnsResConfigMaxCnames OBJECT-TYPE SYNTAX INTEGER (0..2147483647) MAX-ACCESS read-write STATUS current DESCRIPTION "当有多少个CNAME时,解析器会确定存在CNAME环。0表示解析器没有 明确的CNAME限制。" REFERENCE "RFC-1035 7.1.节" ::= { dnsResConfig 3 } -- DNS解析器安全带表 dnsResConfigSbeltTable OBJECT-TYPE SYNTAX SEQUENCE OF DnsResConfigSbeltEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "安全带信息表用在当解析器没有关于把请求发送到哪儿去的更好注意 时,例如当解析器正在启动或解析器是一个桩解析器。" ::= { dnsResConfig 4 } dnsResConfigSbeltEntry OBJECT-TYPE SYNTAX DnsResConfigSbeltEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "解析器Sbelt表的一行。可以在任何时候由DNS解析器和SNMP SET请 求创建或删除行。是否在reset操作时将通过SNMP改变的值保存到稳定 存储介质是与具体实现有关的。" INDEX { dnsResConfigSbeltAddr, dnsResConfigSbeltSubTree, dnsResConfigSbeltClass } ::= { dnsResConfigSbeltTable 1 } DnsResConfigSbeltEntry ::= SEQUENCE { dnsResConfigSbeltAddr IpAddress, dnsResConfigSbeltName DnsName, dnsResConfigSbeltRecursion INTEGER, dnsResConfigSbeltPref INTEGER, dnsResConfigSbeltSubTree DnsNameAsIndex, dnsResConfigSbeltClass DnsClass, dnsResConfigSbeltStatus RowStatus } dnsResConfigSbeltAddr OBJECT-TYPE SYNTAX IpAddress MAX-ACCESS not-accessible STATUS current DESCRIPTION "表中该行所标识的Sbelt命名服务器的IP地址。" ::= { dnsResConfigSbeltEntry 1 } dnsResConfigSbeltName OBJECT-TYPE SYNTAX DnsName MAX-ACCESS read-create STATUS current DESCRIPTION "表中该行所标识的Sbelt命名服务器的DNS名。零长度字符串表示该名 解析器不知道。" ::= { dnsResConfigSbeltEntry 2 } dnsResConfigSbeltRecursion OBJECT-TYPE SYNTAX INTEGER { iterative(1), recursive(2), recursiveAndIterative(3) } MAX-ACCESS read-create STATUS current DESCRIPTION "将要发送到表中该行所标识的命名服务器的查询的种类: iterative(1)表示解析器将会发送交互查询到命名服务器(RD位关闭)。 recursive(2) 表示解析器将会发送递归查询到命名服务器(RD位打开)。 recursiveAndIterative(3) 表示解析器将会到表中该行所标识的命名 服务器的查询是递归或交互的。" ::= { dnsResConfigSbeltEntry 3 } dnsResConfigSbeltPref OBJECT-TYPE SYNTAX INTEGER (0..2147483647) MAX-ACCESS read-create STATUS current DESCRIPTION "该值表明选择表中该行所标识的命名服务器的优先级。该值越低,解析 器认为该服务器越可靠。" ::= { dnsResConfigSbeltEntry 4 } dnsResConfigSbeltSubTree OBJECT-TYPE SYNTAX DnsNameAsIndex MAX-ACCESS not-accessible STATUS current DESCRIPTION "发送到表中该行所标识的命名服务器的查询限制于名称在该变量所标 识的域名子树内。如果不应用该限制,该变量的值是根域的域名(由单 个零字节组成的域名)。" ::= { dnsResConfigSbeltEntry 5 } dnsResConfigSbeltClass OBJECT-TYPE SYNTAX DnsClass MAX-ACCESS not-accessible STATUS current DESCRIPTION "将要发送到表中该行所标识的服务器DNS查询的类别。" ::= { dnsResConfigSbeltEntry 6 } dnsResConfigSbeltStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION "该Sbelt表中该行的行状态。" ::= { dnsResConfigSbeltEntry 7 } dnsResConfigUpTime OBJECT-TYPE SYNTAX DnsTime MAX-ACCESS read-only STATUS current DESCRIPTION "如果解析器具有持久状态(例如一个进程),该值是自从它启动以来的 时间。对于没有持久状态的软件,该值为0。" ::= { dnsResConfig 5 } dnsResConfigResetTime OBJECT-TYPE SYNTAX DnsTime MAX-ACCESS read-only STATUS current DESCRIPTION "如果解析器具有持久状态(例如一个进程)并且支持‘reset’操作(例 如可以被告知重新读配置文件),该值是自从它上次‘reset’以来的时 间。对于没有持久状态或不支持‘reset’操作的软件,该值为0。" ::= { dnsResConfig 6 } dnsResConfigReset 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) – 解析器正在运行。" ::= { dnsResConfig 7 } -- 解析器计数器组 -- 解析器计数器表 dnsResCounterByOpcodeTable OBJECT-TYPE SYNTAX SEQUENCE OF DnsResCounterByOpcodeEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "解析器的查询和应答的当前计数表。" ::= { dnsResCounter 3 } dnsResCounterByOpcodeEntry OBJECT-TYPE SYNTAX DnsResCounterByOpcodeEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "解析器计数器表的一行。行由DNS OpCode索引。" INDEX { dnsResCounterByOpcodeCode } ::= { dnsResCounterByOpcodeTable 1 } DnsResCounterByOpcodeEntry ::= SEQUENCE { dnsResCounterByOpcodeCode DnsOpCode, dnsResCounterByOpcodeQueries Counter32, dnsResCounterByOpcodeResponses Counter32 } dnsResCounterByOpcodeCode OBJECT-TYPE SYNTAX DnsOpCode MAX-ACCESS not-accessible STATUS current DESCRIPTION "该表的索引。可在RFC-1035中看到已经定义的OpCode。" REFERENCE "RFC-1035 4.1.1.节" ::= { dnsResCounterByOpcodeEntry 1 } dnsResCounterByOpcodeQueries OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "自从初始化以来解析器已经发出的具有该OpCode查询数,OpCode是表 中该行的索引。" ::= { dnsResCounterByOpcodeEntry 2 } dnsResCounterByOpcodeResponses OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "自从初始化以来解析器接收到的总的响应数,OpCode是表中该行的索 引。" ::= { dnsResCounterByOpcodeEntry 3 } -- 解析器响应码计数器表 dnsResCounterByRcodeTable OBJECT-TYPE SYNTAX SEQUENCE OF DnsResCounterByRcodeEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "对于解析器查询的响应的当前计数表。" ::= { dnsResCounter 4 } dnsResCounterByRcodeEntry OBJECT-TYPE SYNTAX DnsResCounterByRcodeEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "解析器响应表的行。行由DNS响应码索引。" INDEX { dnsResCounterByRcodeCode } ::= { dnsResCounterByRcodeTable 1 } DnsResCounterByRcodeEntry ::= SEQUENCE { dnsResCounterByRcodeCode DnsRespCode, dnsResCounterByRcodeResponses Counter32 } dnsResCounterByRcodeCode OBJECT-TYPE SYNTAX DnsRespCode MAX-ACCESS not-accessible STATUS current DESCRIPTION "该表的索引。可在RFC-1035中看到已经定义的响应码。" REFERENCE "RFC-1035 4.1.1.节" ::= { dnsResCounterByRcodeEntry 1 } dnsResCounterByRcodeResponses OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "解析器已经接收到的具有该响应码的响应数,响应码是表中该行的索 引。" ::= { dnsResCounterByRcodeEntry 2 } -- 附加DNS解析器计数器对象 dnsResCounterNonAuthDataResps OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "解析器做出非可靠应答(缓存数据)的请求数。" ::= { dnsResCounter 5 } dnsResCounterNonAuthNoDataResps OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "解析器做出非可靠‘no such data’响应(空应答)的请求数。" ::= { dnsResCounter 6 } dnsResCounterMartians OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "解析器收到来自服务器的它没有请求的应答数。" ::= { dnsResCounter 7 } dnsResCounterRecdResponses OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "收到的对于所有查询的响应数。" ::= { dnsResCounter 8 } dnsResCounterUnparseResps OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "收到的不可解析的响应数。" ::= { dnsResCounter 9 } dnsResCounterFallbacks OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "解析器不得不退回它的belt信息的次数。" ::= { dnsResCounter 10 } -- 不完全委托组(Lame Delegation Group) dnsResLameDelegationOverflows OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "解析器试图给不完全委托(Lame Delegation)表中增加一行但由于例 如空间限制等原因失败的次数。" ::= { dnsResLameDelegation 1 } -- 不完全委托表 dnsResLameDelegationTable OBJECT-TYPE SYNTAX SEQUENCE OF DnsResLameDelegationEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "服务器返回不完全委托应答的表。 不完全委托出现在一个父区域把对一个子区域的权威授权于一个对于所 提问的子区域信息不具有权威的服务器时。" ::= { dnsResLameDelegation 2 } dnsResLameDelegationEntry OBJECT-TYPE SYNTAX DnsResLameDelegationEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "不完全委托表中的行。只有解析器可以在该表中创建行。SNMP SET请求 可用于删除行。" INDEX { dnsResLameDelegationSource, dnsResLameDelegationName, dnsResLameDelegationClass } ::= { dnsResLameDelegationTable 1 } DnsResLameDelegationEntry ::= SEQUENCE { dnsResLameDelegationSource IpAddress, dnsResLameDelegationName DnsNameAsIndex, dnsResLameDelegationClass DnsClass, dnsResLameDelegationCounts Counter32, dnsResLameDelegationStatus RowStatus } dnsResLameDelegationSource OBJECT-TYPE SYNTAX IpAddress MAX-ACCESS not-accessible STATUS current DESCRIPTION "不完全委托源。" ::= { dnsResLameDelegationEntry 1 } dnsResLameDelegationName OBJECT-TYPE SYNTAX DnsNameAsIndex MAX-ACCESS not-accessible STATUS current DESCRIPTION "接收到不完全委托的DNS名。" ::= { dnsResLameDelegationEntry 2 } dnsResLameDelegationClass OBJECT-TYPE SYNTAX DnsClass MAX-ACCESS not-accessible STATUS current DESCRIPTION "接收到的不完全委托的DNS类别。" ::= { dnsResLameDelegationEntry 3 } dnsResLameDelegationCounts OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "接收到不完全委托的次数。" ::= { dnsResLameDelegationEntry 4 } dnsResLameDelegationStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-write STATUS current DESCRIPTION "不完全委托表的状态列。由于只有代理(DNS解析器)可以在该表中创 建行,管理站可以给该变量赋的值只有:active(1)和destroy(6)。" ::= { dnsResLameDelegationEntry 5 } -- 解析器缓存组 dnsResCacheStatus OBJECT-TYPE SYNTAX INTEGER { enabled(1), disabled(2), clear(3) } MAX-ACCESS read-write STATUS current DESCRIPTION "解析器缓存的状态/行为。 enabled(1)表示允许使用缓存。查询操作可以返回该状态。 disabled(2)表示目前没有使用缓存。查询操作可以返回该状态。 将该变量设为clear(3)会删除解析器缓存的所有内容,但不改变解析器 的状态。该状态会保留清除操作前的值(例如,enabled(1)或 disabled(2))。clear(3)的值不会被查询操作返回。" ::= { dnsResCache 1 } dnsResCacheMaxTTL OBJECT-TYPE SYNTAX DnsTime MAX-ACCESS read-write STATUS current DESCRIPTION "该缓存中的RR的最大存活时间(TTL)。如果解析器没有TTL极限,该 值为零。" ::= { dnsResCache 2 } dnsResCacheGoodCaches OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "解析器成功缓存的RR数。" ::= { dnsResCache 3 } dnsResCacheBadCaches OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "由于存在危险或自己不相关,解析器拒绝缓存的RR数。例如具有非常 高的TTL的RR,没有请求的根信息,或者与解析器的请求不相关的信息。 " ::= { dnsResCache 4 } -- 解析器缓存表 dnsResCacheRRTable OBJECT-TYPE SYNTAX SEQUENCE OF DnsResCacheRREntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "该表包含当前解析器的缓存中所有资源记录的信息。" ::= { dnsResCache 5 } dnsResCacheRREntry OBJECT-TYPE SYNTAX DnsResCacheRREntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "解析器缓存中的行。行只能由解析器创建。SNMP SET请求可删除行。" INDEX { dnsResCacheRRName, dnsResCacheRRClass, dnsResCacheRRType, dnsResCacheRRIndex } ::= { dnsResCacheRRTable 1 } DnsResCacheRREntry ::= SEQUENCE { dnsResCacheRRName DnsNameAsIndex, dnsResCacheRRClass DnsClass, dnsResCacheRRType DnsType, dnsResCacheRRTTL DnsTime, dnsResCacheRRElapsedTTL DnsTime, dnsResCacheRRSource IpAddress, dnsResCacheRRData OCTET STRING, dnsResCacheRRStatus RowStatus, dnsResCacheRRIndex Integer32, dnsResCacheRRPrettyName DnsName } dnsResCacheRRName OBJECT-TYPE SYNTAX DnsNameAsIndex MAX-ACCESS not-accessible STATUS current DESCRIPTION "表中该行标识的缓存中的资源记录的所有者名。在RFC-1034中指明记 录的所有者是该RR来自的域名。" REFERENCE "RFC-1034 3.6.节" ::= { dnsResCacheRREntry 1 } dnsResCacheRRClass OBJECT-TYPE SYNTAX DnsClass MAX-ACCESS not-accessible STATUS current DESCRIPTION "表中该行标识的缓存资源记录的DNS类别。" ::= { dnsResCacheRREntry 2 } dnsResCacheRRType OBJECT-TYPE SYNTAX DnsType MAX-ACCESS not-accessible STATUS current DESCRIPTION "表中该行标识的缓存资源记录的DNS类型。" ::= { dnsResCacheRREntry 3 } dnsResCacheRRTTL OBJECT-TYPE SYNTAX DnsTime MAX-ACCESS read-only STATUS current DESCRIPTION "DNS缓存中的资源记录的存活时间。这是与最初接收到的RR一同接收到 的初始TTL值。" ::= { dnsResCacheRREntry 4 } dnsResCacheRRElapsedTTL OBJECT-TYPE SYNTAX DnsTime MAX-ACCESS read-only STATUS current DESCRIPTION "自从RR接收到后到当前的秒数。" ::= { dnsResCacheRREntry 5 } dnsResCacheRRSource OBJECT-TYPE SYNTAX IpAddress MAX-ACCESS read-only STATUS current DESCRIPTION "接收到的RR来自哪个主机。" ::= { dnsResCacheRREntry 6 } dnsResCacheRRData OBJECT-TYPE SYNTAX OCTET STRING MAX-ACCESS read-only STATUS current DESCRIPTION "缓存RR的RDATA部分。该值的格式遵循一种专门为资源记录的DNS类 别和类型定义的格式。" REFERENCE "RFC-1035 3.2.1.节" ::= { dnsResCacheRREntry 7 } dnsResCacheRRStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-write STATUS current DESCRIPTION "解析器缓存表的状态列。因为只有代理(DNS解析器)可以创建表中的 行,所以管理者可以向该变量写的值只有active(1)和destroy(6)." ::= { dnsResCacheRREntry 8 } dnsResCacheRRIndex OBJECT-TYPE SYNTAX Integer32 MAX-ACCESS not-accessible STATUS current DESCRIPTION "当其他的索引值不能唯一标识一行时,用附加的该值来唯一标识一行。" ::= { dnsResCacheRREntry 9 } dnsResCacheRRPrettyName OBJECT-TYPE SYNTAX DnsName MAX-ACCESS read-only STATUS current DESCRIPTION "表中该行的RR的名字。除该变量中保留了字符的大小写外,它与 dnsResCacheRRName变量相同。" REFERENCE "RFC-1035 2.3.3.节" ::= { dnsResCacheRREntry 10 } -- 解析器负缓存组 dnsResNCacheStatus OBJECT-TYPE SYNTAX INTEGER { enabled(1), disabled(2), clear(3) } MAX-ACCESS read-write STATUS current DESCRIPTION "解析器负响应缓存的状态/行为。 enabled(1)表示可以使用负响应缓存。查询操作可以返回该值。 disabled(2)表示当前没有使用负响应缓存。查询操作可以返回该值。 将该值赋为clear(3)将删除解析器负响应缓存中的所有内容。状态将保 留它在操作之前的值(例如enabled(1)或disabled(2))。该值不能被查 询操作返回。" ::= { dnsResNCache 1 } dnsResNCacheMaxTTL OBJECT-TYPE SYNTAX DnsTime MAX-ACCESS read-write STATUS current DESCRIPTION "缓存的可靠错误的最大存活时间。 如果解析器没有实现最大TTL值,该值为0。" ::= { dnsResNCache 2 } dnsResNCacheGoodNCaches OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "解析器已成功缓存的可靠错误的个数。" ::= { dnsResNCache 3 } dnsResNCacheBadNCaches OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "由于没有提供适当的或使用可疑SOA RR,解析器想缓存这些错误但失败 的个数。" REFERENCE "RFC-1034 4.3.4.节" ::= { dnsResNCache 4 } -- 解析器负缓存表 dnsResNCacheErrTable OBJECT-TYPE SYNTAX SEQUENCE OF DnsResNCacheErrEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "解析器负响应缓存表。该表包含关于解析器缓存了的可靠错误的信息。" ::= { dnsResNCache 5 } dnsResNCacheErrEntry OBJECT-TYPE SYNTAX DnsResNCacheErrEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "解析器的负响应缓存表中的行。只有解析器可以创建行。可以用SNMP SET 请求来删除行。" INDEX { dnsResNCacheErrQName, dnsResNCacheErrQClass, dnsResNCacheErrQType, dnsResNCacheErrIndex } ::= { dnsResNCacheErrTable 1 } DnsResNCacheErrEntry ::= SEQUENCE { dnsResNCacheErrQName DnsNameAsIndex, dnsResNCacheErrQClass DnsQClass, dnsResNCacheErrQType DnsQType, dnsResNCacheErrTTL DnsTime, dnsResNCacheErrElapsedTTL DnsTime, dnsResNCacheErrSource IpAddress, dnsResNCacheErrCode INTEGER, dnsResNCacheErrStatus RowStatus, dnsResNCacheErrIndex Integer32, dnsResNCacheErrPrettyName DnsName } dnsResNCacheErrQName OBJECT-TYPE SYNTAX DnsNameAsIndex MAX-ACCESS not-accessible STATUS current DESCRIPTION "与缓存的可靠错误相关的QNAME。" REFERENCE "RFC-1034 3.7.1.节" ::= { dnsResNCacheErrEntry 1 } dnsResNCacheErrQClass OBJECT-TYPE SYNTAX DnsQClass MAX-ACCESS not-accessible STATUS current DESCRIPTION "与缓存的可靠错误相关的DNS QCLASS。" ::= { dnsResNCacheErrEntry 2 } dnsResNCacheErrQType OBJECT-TYPE SYNTAX DnsQType MAX-ACCESS not-accessible STATUS current DESCRIPTION "与缓存的可靠错误相关的DNS QTYPE。" ::= { dnsResNCacheErrEntry 3 } dnsResNCacheErrTTL OBJECT-TYPE SYNTAX DnsTime MAX-ACCESS read-only STATUS current DESCRIPTION "缓存的可靠错误的存活时间,接收到后应该以秒递减。如果解析器实现 了负响应缓存的TTL极限,它应是从伴随可靠错误的SOA的MINIMUM域 复制的TTL,或者是一个比较小的值。" REFERENCE "RFC-1034 4.3.4.节" ::= { dnsResNCacheErrEntry 4 } dnsResNCacheErrElapsedTTL OBJECT-TYPE SYNTAX DnsTime MAX-ACCESS read-only STATUS current DESCRIPTION "自从接收到可靠错误以后到当前的秒数。" ::= { dnsResNCacheErrEntry 5 } dnsResNCacheErrSource OBJECT-TYPE SYNTAX IpAddress MAX-ACCESS read-only STATUS current DESCRIPTION "发送可靠错误的主机。如果未知,该值为0.0.0.0。" ::= { dnsResNCacheErrEntry 6 } dnsResNCacheErrCode OBJECT-TYPE SYNTAX INTEGER { nonexistantName(1), noData(2), other(3) } MAX-ACCESS read-only STATUS current DESCRIPTION "已缓存的可靠错误: nonexistantName(1)表示是一个可靠的名字错误(RCODE = 3)。 noData(2)表示一个没有错误的可靠响应(RCODE = 0)并且没有相关数据。 other(3)表是其他的缓存可靠错误。当前已知的有‘no such errors’" ::= { dnsResNCacheErrEntry 7 } dnsResNCacheErrStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-write STATUS current DESCRIPTION "解析器响应缓存表的状态列。由于只有代理(DNS解析器)可以创建该 表的行,管理者可以向该变量写的值为active(1)和destroy(6)。" ::= { dnsResNCacheErrEntry 8 } dnsResNCacheErrIndex OBJECT-TYPE SYNTAX Integer32 MAX-ACCESS read-only STATUS current DESCRIPTION "如果其他索引(dnsResNCacheErrQName、dnsResNCacheErrQClass和 dnsResNCacheErrQType)不能唯一标识一行,使用该值来唯一标识。" ::= { dnsResNCacheErrEntry 9 } dnsResNCacheErrPrettyName OBJECT-TYPE SYNTAX DnsName MAX-ACCESS read-only STATUS current DESCRIPTION "与表中的该行相关的QNAME。除该变量中保留了字符的大小写外,它与 dnsResNCacheErrQName变量相同。" REFERENCE "RFC-1035 2.3.3.节" ::= { dnsResNCacheErrEntry 10 } -- 解析器可选计数器组 dnsResOptCounterReferals OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "从服务器接收到的响应数,该响应重定向查询到另一个服务器。" ::= { dnsResOptCounter 1 } dnsResOptCounterRetrans OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "由于各种原因重传的查询数。" ::= { dnsResOptCounter 2 } dnsResOptCounterNoResponses OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "由于没有响应重传的查询数。" ::= { dnsResOptCounter 3 } dnsResOptCounterRootRetrans OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "到根服务器的查询被重传的查询数。" ::= { dnsResOptCounter 4 } dnsResOptCounterInternals OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "由解析器内部产生的请求数。" ::= { dnsResOptCounter 5 } dnsResOptCounterInternalTimeOuts OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "超时的内部产生的请求数。" ::= { dnsResOptCounter 6 } -- SNMPv2组 dnsResMIBGroups OBJECT IDENTIFIER ::= { dnsResMIB 2 } dnsResConfigGroup OBJECT-GROUP OBJECTS { dnsResConfigImplementIdent, dnsResConfigService, dnsResConfigMaxCnames, dnsResConfigSbeltAddr, dnsResConfigSbeltName, dnsResConfigSbeltRecursion, dnsResConfigSbeltPref, dnsResConfigSbeltSubTree, dnsResConfigSbeltClass, dnsResConfigSbeltStatus, dnsResConfigUpTime, dnsResConfigResetTime } STATUS current DESCRIPTION "为DNS解析器实现提供基本配置信息的对象集。" ::= { dnsResMIBGroups 1 } dnsResCounterGroup OBJECT-GROUP OBJECTS { dnsResCounterByOpcodeCode, dnsResCounterByOpcodeQueries, dnsResCounterByOpcodeResponses, dnsResCounterByRcodeCode, dnsResCounterByRcodeResponses, dnsResCounterNonAuthDataResps, dnsResCounterNonAuthNoDataResps, dnsResCounterMartians, dnsResCounterRecdResponses, dnsResCounterUnparseResps, dnsResCounterFallbacks } STATUS current DESCRIPTION "为DNS解析器实现提供测量信息的对象集。" ::= { dnsResMIBGroups 2 } dnsResLameDelegationGroup OBJECT-GROUP OBJECTS { dnsResLameDelegationOverflows, dnsResLameDelegationSource, dnsResLameDelegationName, dnsResLameDelegationClass, dnsResLameDelegationCounts, dnsResLameDelegationStatus } STATUS current DESCRIPTION "提供‘lame delegation’失败信息的对象集。" ::= { dnsResMIBGroups 3 } dnsResCacheGroup OBJECT-GROUP OBJECTS { dnsResCacheStatus, dnsResCacheMaxTTL, dnsResCacheGoodCaches, dnsResCacheBadCaches, dnsResCacheRRName, dnsResCacheRRClass, dnsResCacheRRType, dnsResCacheRRTTL, dnsResCacheRRElapsedTTL, dnsResCacheRRSource, dnsResCacheRRData, dnsResCacheRRStatus, dnsResCacheRRIndex, dnsResCacheRRPrettyName } STATUS current DESCRIPTION "提供访问和控制DNS解析器缓存的对象集。" ::= { dnsResMIBGroups 4 } dnsResNCacheGroup OBJECT-GROUP OBJECTS { dnsResNCacheStatus, dnsResNCacheMaxTTL, dnsResNCacheGoodNCaches, dnsResNCacheBadNCaches, dnsResNCacheErrQName, dnsResNCacheErrQClass, dnsResNCacheErrQType, dnsResNCacheErrTTL, dnsResNCacheErrElapsedTTL, dnsResNCacheErrSource, dnsResNCacheErrCode, dnsResNCacheErrStatus, dnsResNCacheErrIndex, dnsResNCacheErrPrettyName } STATUS current DESCRIPTION "提供访问和控制DNS解析器负响应缓存的对象集。" ::= { dnsResMIBGroups 5 } dnsResOptCounterGroup OBJECT-GROUP OBJECTS { dnsResOptCounterReferals, dnsResOptCounterRetrans, dnsResOptCounterNoResponses, dnsResOptCounterRootRetrans, dnsResOptCounterInternals, dnsResOptCounterInternalTimeOuts } STATUS current DESCRIPTION "提供对很多但不是所有DNS解析器适用的更多信息的对象集。" ::= { dnsResMIBGroups 6 } -- 一致性 dnsResMIBCompliances OBJECT IDENTIFIER ::= { dnsResMIB 3 } dnsResMIBCompliance MODULE-COMPLIANCE STATUS current DESCRIPTION "对于实现DNS解析器MIB扩展的一致性表述。" MODULE -- This MIB module MANDATORY-GROUPS { dnsResConfigGroup, dnsResCounterGroup } GROUP dnsResCacheGroup DESCRIPTION "解析器缓存组对于实现缓存的解析器是必备的。" GROUP dnsResNCacheGroup DESCRIPTION "解析器负缓存组对于实现负响应缓存的解析器是必备的。" GROUP dnsResLameDelegationGroup DESCRIPTION "lame delegation组是无条件可选的。" GROUP dnsResOptCounterGroup DESCRIPTION "可选计数器组是无条件可选的。" OBJECT dnsResConfigMaxCnames MIN-ACCESS read-only DESCRIPTION "该对象不需要可写。" OBJECT dnsResConfigSbeltName MIN-ACCESS read-only DESCRIPTION "该对象不需要可写。" OBJECT dnsResConfigSbeltRecursion MIN-ACCESS read-only DESCRIPTION "该对象不需要可写。" OBJECT dnsResConfigSbeltPref MIN-ACCESS read-only DESCRIPTION "该对象不需要可写。" OBJECT dnsResConfigReset MIN-ACCESS read-only DESCRIPTION "该对象不需要可写。" OBJECT dnsResCacheStatus MIN-ACCESS read-only DESCRIPTION "该对象不需要可写。" OBJECT dnsResCacheMaxTTL MIN-ACCESS read-only DESCRIPTION "该对象不需要可写。" OBJECT dnsResNCacheStatus MIN-ACCESS read-only DESCRIPTION "该对象不需要可写。" OBJECT dnsResNCacheMaxTTL MIN-ACCESS read-only DESCRIPTION "该对象不需要可写。" ::= { dnsResMIBCompliances 1 } END 5. 致谢 该文档是DNS工作组从事的工作的结果。作者非常感谢这些人多该文档的贡献:Philip Almquist, Frank Kastenholz (FTP Software), Joe Peck (DEC), Dave Perkins (SynOptics), Win Treese (DEC), and Mimi Zohar (IBM). 6. 参考文献 [1] Mockapetris, P., "域名 – 概念和设备", STD 13, 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, "基于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 RFC1612——DNS Resolver MIB Extensions DNS解析器MIB扩展 1 RFC文档中文翻译计划