在线文档教程
Erlang 20

管理Netif 的定义 | 13. Definition of Manager Net if

13 经理网的定义

图13.1:Manager Net的用途

网络接口(Net if)进程将SNMP PDU传递给管理器服务器,并从管理器服务器接收SNMP PDU。Net if进程的最常见行为是从管理器服务器接收请求PDU,将PDU编码为字节并将字节传输到网络中的代理。当代理的回复被Net if进程接收时,它将其解码为一个SNMP PDU,并发送给管理服务器。

但是,这种简单的行为可以通过多种方式进行修改。例如,Net if进程可以对字节应用某种加密/解密方案。

snmp应用程序提供了两个不同的模块snmpm_net_if(默认),并且snmpm_net_if_mt都使用UDP作为传输协议,即传输域transportDomainUdpIpv4和/或transportDomainUdpIpv6。两个模块之间的区别在于后者是“多线程”的,即对于每个消息/请求,创建一个新的进程来处理消息/请求,然后退出。

也可以编写自己的Net if进程,本节将介绍如何执行此操作。

13.1项强制性职能

Net if进程必须实现SNMP管理器network interface behaviour

13.2 消息

消息 ”部分描述必需的消息,如果必须发送给管理服务器进程,则为网络。

在本节中,域字段是传输域,即transportDomainUdpIpv4或transportDomainUdpIpv6之一,Addr字段是{IpAddr,IpPort}元组。

Net如果从网络接收到针对MasterAgent的SNMP PDU时必须发送以下消息:

Server ! {snmp_pdu, Pdu, Domain, Addr}

  • Pdusnmp_types.hrlSNMP请求中定义的SNMP PDU记录。

  • Domain源传输域。

  • Addr是源地址。Server ! {snmp_trap, Trap, Domain, Addr}

  • Trapsnmp_types.hrlSNMP请求中定义的SNMP pdu记录或trappdu记录。

  • Domain源传输域。

  • Addr是源地址。

Server ! {snmp_inform, Ref, Pdu, PduMS, Domain, Addr}

  • Ref是原子忽略或可用于识别通知请求的内容(例如request-id)。 如果对inform-request的响应(确认)已经发送(这意味着服务器不会调用inform_response函数),则使用ignore。 有关更多信息,请参阅通知请求行为配置选项。

  • Pdusnmp_types.hrlSNMP请求中定义的SNMP PDU记录。

  • Domain源传输域。

  • Addr是源地址。

Server ! {snmp_report, Data, Domain, Addr}

  • 数据是{ok,Pdu}或{error,ReqId,ReasonInfo,Pdu}。 使用哪一个取决于来自MPD process_msg函数的返回值。 如果MsgData正确,则使用第一个,如果它是{error,ReqId,Reason},则使用后者。

  • Pdusnmp_types.hrlSNMP请求中定义的SNMP PDU记录。

  • ReqId是个整数。

  • ReasonInfo 是一个术语()。

  • Domain源传输域。

  • Addr是源地址。

注记

由于Net if进程负责编码和解码SNMP消息,因此它还必须更新MIB-II中的SNMP组中的相关计数器。它可以将模块中的功能snmpm_mpd用于此目的(有关更多详细信息,请参阅参考手册的章节snmp模块snmpm_mpd)。

在模块中还有一些用于编码和解码SNMP消息的有用功能snmp_pdus