管理Netif 的定义 | 13. Definition of Manager Net if
图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}
Pdu
是snmp_types.hrl
SNMP请求中定义的SNMP PDU记录。
Domain
源传输域。
Addr
是源地址。Server ! {snmp_trap, Trap, Domain, Addr}
Trap
是snmp_types.hrl
SNMP请求中定义的SNMP pdu记录或trappdu记录。
Domain
源传输域。
Addr
是源地址。
Server ! {snmp_inform, Ref, Pdu, PduMS, Domain, Addr}
- Ref是原子忽略或可用于识别通知请求的内容(例如request-id)。 如果对inform-request的响应(确认)已经发送(这意味着服务器不会调用inform_response函数),则使用ignore。 有关更多信息,请参阅通知请求行为配置选项。
Pdu
是snmp_types.hrl
SNMP请求中定义的SNMP PDU记录。
Domain
源传输域。
Addr
是源地址。
Server ! {snmp_report, Data, Domain, Addr}
- 数据是{ok,Pdu}或{error,ReqId,ReasonInfo,Pdu}。 使用哪一个取决于来自MPD process_msg函数的返回值。 如果MsgData正确,则使用第一个,如果它是{error,ReqId,Reason},则使用后者。
Pdu
是snmp_types.hrl
SNMP请求中定义的SNMP PDU记录。
ReqId
是个整数。
ReasonInfo
是一个术语()。
Domain
源传输域。
Addr
是源地址。
注记
由于Net if进程负责编码和解码SNMP消息,因此它还必须更新MIB-II中的SNMP组中的相关计数器。它可以将模块中的功能snmpm_mpd
用于此目的(有关更多详细信息,请参阅参考手册的章节snmp
模块snmpm_mpd
)。
在模块中还有一些用于编码和解码SNMP消息的有用功能snmp_pdus
。
本文档系腾讯云开发者社区成员共同维护,如有问题请联系 cloudcommunity@tencent.com