⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rfc1445.txt

📁 很多RFC的中文文档
💻 TXT
📖 第 1 页 / 共 5 页
字号:
          o    它的 aclPrivileges 组件称作权限,代表一个SNMPv2管理通讯类
的集合,在指明特定的SNMPv2上下文时,该集合从特定的主体参与者接收,认证后
被目标参与者处理。 

          SNMPv2访问控制策略的运用仅发生在管理通讯接收的时候;它不用在管
理通讯的传输中。注意:用AclEntry语法的ASN.1值,也被用于决定一个SNMPv2陷阱
[2]的目的地。

3.  过程的元素

          本小节描述一个SNMPv2 实体在处理SNMPv2 消息的程序。这些程序独立
于可能用到的特定的鉴定和私有协议。


3.1. 产生一个请求

          本小节描述一个SNMPv2实体发送一个管理请求和者一个陷阱通知的程
序:

          (1)  创建一个SnmpMgmtCom值,其中的srcParty组件表明发起方的参与
者,dstParty表明接收的参与者,context标识期望的SNMPv2上下文,pdu指明期望
的管理操作。

          (2)  查询存有参与者信息的本地数据库,以决定发起方和接收方的
SNMPv2的鉴定协议和其他相关信息。

          (3)  创建一个 SnmpAuthMsg值,含有下面的属性:

  根据发起方的鉴定协议创建它的 authInfo 组件。特别地,如果发起方的鉴定协
议为noAuth,该属性置为长度为0的OCTET STRING值。

它的 authData 属性是已经创建的SnmpMgmtCom的值
                   
          (4)  查询关于参与者信息的本地数据库,以决定接收方的SNMPv2参与者
的私有协议和其他相关信息。

          (5)  创建一个 SnmpPrivMsg 值,属性如下: 

 它的 privDst 属性指明接收方的SNMPv2参与者。  

 它的 privData 属性是序列化的SnmpAuthMsg 值(可能被加密)。 

 特别地,如果接收方SNMPv2参与者地私有协议是noPriv,那么privData属性是
未被加密的。否则,privData根据私有协议来处理。

          (6)  根据[5]中的约定序列化SnmpPrivMsg 的值 。

          (7)  序列化后地SnmpPrivMsg值用接收方的SNMPv2参与者的传输地址和
传输域来传送。

          注意:上述地过程不包含任何SNMPv2访问控制策略地应用。(参照2.13)

3.2.  处理一个收到的通讯
          本节描述一个SNMPv2实体收到一个管理通讯后的处理过程。

          (1)  增加 snmpStatsPackets 计数器 [7].如果收到的信息不是一个
SnmpPrivMsg的序列化的(根据[5]地约定)值,该消息不作进一步地处理就被抛弃。               
(如果该数据包的第一个八位组地值为16进制的30,有时在抛弃该消息前增加
snmpStats30Something counter [7]的值;否则增加snmpStatsEncodingErrors 
counter [7]的值)

          (2)  查询关于参与者信息的本地数据库,根据SnmpPrivMsg中的privDst
属性得到接收方SNMPv2参与者的信息。


          (3)  如果本地数据库中没有关于接受方SNMPv2参与者的信息,或者表明
本地的SNMPv2实体没有实现接收方参与者的操作,那么无需进一步的处理就丢弃接
收到的消息,之后增加snmpStatsUnknownDstParties counter [7]的值。

          (4)  根据SnmpPrivMsg中的privData属性创建一个ASN.1 OCTET STRING
值(可能根据使用的私有协议解密)

               特别地,如果该参与者的私有协议是noPriv,那么OCTET STRING
的值与SnmpPrivMsg中的privData的值完全对应。

          (5)如果OCTET STRING的值未被序列化,(根据[5]的约定) ,那么无需
进一步的处理就丢弃接收到的消息,之后增加snmpStatsEncodingErrors               
counter [7] 的值 。

          (6)  如果authData 中的dstParty 属性与SnmpPrivMsg 中的privDst 属
性不同,那么无需进一步的处理就丢弃接收到的消息,之后增加
snmpStatsDstPartyMismatches counter [7]的值 。

          (7)  根据SnmpAuthMsg中authData中的srcParty属性得出发起方SNMPv2
参与者,在关于参与者信息的本地数据库中查询它的信息。

          (8)  如果本地数据库中没有发起方参与者的信息,那么无需进一步的处
理就丢弃接收到的消息,之后增加 snmpStatsUnknownSrcParties counter [7]      
的值  。

          (9) 根据关于参与者信息的本地数据库中发起和接收方的SNMPv2参与者
的相关信息和鉴定协议,鉴定得到的SnmpAuthMsg值。

               特别地,如果鉴定协议指明为noAuth,那么总是鉴定SnmpAuthMsg
的值为真实的。

          (10)如果鉴定SnmpAuthMsg的值为不真实的,那么无需进一步的处理就丢
弃接收到的消息,而且,如果snmpV2EnableAuthenTraps object [7] 正在生效,那
么该SNMPv2实体根据它的配置(4.2.6 of[2])发送authorizationFailure 陷阱[7]

          (11)从SnmpAuthMsg中的authData属性提取SnmpMgmtCom的值

          (12)  从SnmpMgmtCom的context属性得到SNMPv2的上下文,查询关于参
与者信息的本地数据库以获得它的信息。

          (13) 如果本地数据库中没有该SNMPv2上下文的信息,那么无需进一步的
处理就丢弃接收到的消息,之后增加snmpStatsUnknownContexts counter [7]的值 。

          (14)查询关于访问处理信息的本地数据库,根据接收方参与者和指明的
SNMPv2上下文得到本地访问策略许可给发起方SNMPv2参与者的访问权限。

          (15)根据与SnmpMgmtCom中的PDUs属性值关联的ASN.1 tag值决定管理通
讯类。如果接收到的消息的管理信息类是32, 8, 2, 或 1(也就是 GetBulk, Set, 
GetNext 或者  Get),并且本地SNMPv2 实体没有实现SNMPv2 上下文,那么无需进
一步的处理就丢弃接收到的消息,之后增加snmpStatsUnknownContexts counter [7] 
的值。

          (16) 如果接收到的消息的管理信息类是128, 64 或 4 (也就是 
SNMPv2-Trap, Inform, 或者 Response),并且该类无访问权限,那么无需进一步的
处理就丢弃接收到的消息,之后增加snmpStatsBadOperations counter [7] 的值。

          (17)如果接收到的消息的管理通讯类没有访问权限,那么在生成和传送
一个响应消息后无需进一步的处理就丢弃接收到的消息,该响应消息代表接收方
SNMPv2参与者,被发往发起方SNMPv2参与者,它的context, var-bind-list 和 
request-id 属性与接收到的请求中的对应属性完全一样。 它的 error-               
index属性是 zero 并且它的 error-status 属性是authorizationError [2]. 

          (18) 如果 SNMPv2 上下文 涉及本地对象资源,那么根据在[2]中的程序,
用SNMPv2 上下文识别MIB视图,根据该视图用接收方SNMPv2实体执行SnmpMgmtCom
值代表的管理操作。

          (19)   如果 SNMPv2 上下文 涉及远地对象资源,那么通过合适的代理
关系执行SnmpMgmtCom值代表的管理操作。


3.3.  生成一个响应
          生成一个针对SNMPv2 管理请求的响应的过程和传送一个请求的过程是
完全一样的(参考3.1),除了下列的情况例外:

          (1)  在第一步,从初始的SnmpMgmtCom 中的srcParty 属性得到响应
SnmpMgmtCom 中的dstParty ,从初始的SnmpMgmtCom 中的dstParty 属性得到响应
SnmpMgmtCom 中的srcParty 属性, 从初始的SnmpMgmtCom中的context属性得到响
应SnmpMgmtCom中的context属性;而且,响应SnmpMgmtCom的pdu属性的值是那个实
施初始SnmpMgmtCom值指定的操作执行后得到的结果。

(2)	在第七步,用生成自己的相应请求的传送地址和传送域来传送序列
化的SnmpPrivMsg值,即使这与关于参与者信息的本地数据库中记
录的传送信息不同。

4. 模型应用
这一部分描写如何设置管理模型,以达到在各种环境和配置中实现有效的网络
管理.定义了几种类型的管理配置,并用各自的几个例子来加以描述.


4.1 无安全的小代理配置
这段是关于与一个或多个SNMPv2管理站点相互作用的小的、无安全保证的
SNMPv2代理的配置的例子.表2是关于小代理和管理者都知道的SNMPv2参与者的信
息.表3  介绍了关于本地访问策略的相似的公共部分的信息.

在表2 中,代理在IP地址为1.2.3.4、UDP的断口161使用参与者身份gracie
来操作;管理者在IP地址为1.2.3.5、UDP的断口的2001上用身份为george来操
作的.在小的、无安全保证的SNMPv2代理段执行必须提供关于两个SNMPv2参与者的
身份和传输地址的管理配置(和稳定存储):自身和远端的.严格的讲,关于参与者
的其他信息(包括访问策略信息)是不必要配置的.

身份            gracie(代理者)                 george(管理者)
域              snmpUDPDomain                 snmpUDPDomain
地址            1.2.3.4,161                 1.2.3.4.5,2001
认证段口          noAuth                         noAuth
(Auth  Port)
认证的私有密钥    “”                            “”
(Auth Priv Key)
认证的公开密钥       “”                              “”
认证的时钟            0                                0
认证的生命周期       0                                0
私有端口             noPriv                          noPriv
私有私人密钥         “”                              “”
私有的公开密钥       “”                             “”
         表2 :小代理的参与者信息

目标      主题       上下文         权限
gracie     george      local      35(获取, 获取下一个 获取一批)
                                     (Get GetNext GetBulk)
george    gracie       local       132 
(Response   SNMPv2-Trap)
表3 :关于小代理的访问信息

假如管理端的参与者george希望通过叫代理者gracie发布一个SNMPv2的
GetNext 请求消息来的询问关于上下文为“local”的管理信息.该管理者参考他本
地的关于参与者的数据库信息.因为对参与者george的鉴定认证协议是记录为
“moAuth”的,这个通过管理者生成的 GetNext 请求消息是作为原始性和完整性是
不需要鉴别的.通过管理者的本地数据库中关于参与者的信息,对参与者gracie的
私有协议是设置为“noPriv”的,GetNext请求消息是不会得到保护的,可能会暴
露.更准确的讲,它是简单的装配的,排序和传输到目的地址的(IP 地址为1.2.3.4,
UDP端口为161),这个目的地址就是参与者gracie在管理者的本地数据库中的信息
所记录的.

当GetNext请求消息在代理段被收到后,这个(gracie)参与者的身份信息从
消息中取得 ,并且接收的实体参考参与者信息的本地数据库.因为gracie的私有协
议是“noPriv”,其接受消息是不会得到不被暴露的保护的.类似的,当原始参与者
(grorge)的身份被取得后,参与者的本地数据库的信息也被取得了.因为对当时人
george的鉴别协议记录为“noAuth”,这个接受信息是立即被认证接收.

这个接受消息完全被处理的情况,仅仅发生代理关于访问策略信息的本地数据
库对通过参与者george向参与者gracoe关于SNMPv2的上下文为“local”
的"GetNext"请求通讯的认证.访问策略的数据库信息在表3 中的认证象通讯等
(Get 和GetBulk等操作).

当一个标准的请求被处理时,一个响应消息通过参考SNMPv2上下文“local”
和身份来生成,gracie作为源参与者,从请求端来的george作为目的参与者.因为
对gracie的本地数据库中的关于认证协议记为“noAuth”,对原始和整体性而言,
一般性的响应消息是不用认证的.根据参与者信息的本地数据库,对参与者george
的私有协议是“noPriv”,响应消息可能被暴露.响应消息从相应的的请求地址传输
到传输地址,而不关心和传输地址相关的george的本地数据库的信息.

当生成响应是被管理者接受时,直接的参与者(george)的身份是从消息中提
取出来的,并且管理者参考参与者的本地数据库信息.因为参与者george的私有协
议记录为“noPriv”,该响应是得不到保护的.类似的,发起的参与者gracie的身份
被提取出来,并参考其本地数据库,因为参与者gracie的认证协议记为“noAuth”,
响应立即作为认证被接受.

接受的信息能完全被处理,仅仅当管理者的本地数据库的访问策略认证来自于
参与者gracie到管理者george的响应信息,并且参考SNMPv2的上下文“local”.
访问策略信息数据库描述象表3中认证响应消息等(如 snmpV2-陷阱信息)


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -