关于使用 MIB 进行路由器管理
通过管理信息库 (MIB) API 进行路由器管理,可以查询和设置由路由器管理器之一或路由器管理器服务的任何路由协议导出的 MIB 变量的值。 通过使用此 API,路由器支持简单网络管理协议 (SNMP) 。
在 SNMP 框架中,路由器中的每个可管理对象都由具有唯一对象标识符 (OID) 的变量表示。 对应于每个 OID 的值表示对象的当前状态。 OID 和值的集合称为管理信息库 (MIB) 。 MprAdminMib 调用允许开发人员通过其 OID 指定对象,并查询或写入 (“Set”) 对象的值。
若要查询和设置 MIB 变量,为调用提供服务的模块必须定义一组数据结构。 这些数据结构包括用作对象标识符的结构,以及保存正在访问的 MIB 变量值的结构。 这些数据结构对于除 MIB 函数的调用方和为调用提供服务的模块的所有调用方都是不透明的。
为 MIB 调用提供服务的模块是路由器管理器或路由协议之一。 即使呼叫由其中一个路由协议处理,调用方也必须指定路由器管理器。 在这种情况下,调用方应指定与该路由协议的协议系列对应的路由器管理器。 例如,如果 Open Shortest Path First (OSPF) 路由协议正在处理 MIB 调用,则调用方将需要指定 IP 路由器管理器,因为 OSPF 属于 IP 协议系列。 在每个 MIB 函数中, dwTransportId 参数指定路由器管理器, RoutingPid 参数指定路由协议。 路由器管理器也有唯一的 RoutingPid,因为某些 MIB 变量可能由路由器管理器本身处理。
MprAdminMib 函数可以在所管理的计算机以外的计算机上调用。 查询或写入值的 MprAdminMIB 函数将计算机要管理的句柄作为参数。 使用 MprAdminMIBServerConnect 函数建立与远程计算机的连接并获取此句柄。 调用必要的 MprAdminMIB 函数以完成特定的管理任务后,调用 MprAdminMIBServerDisconnect 函数以终止与远程计算机的连接。
MprAdminMIBEntryCreate 和 MprAdminMIBEntrySet 函数将 OID 和包含对象新值的缓冲区作为参数。
MprAdminMIBEntryGet、MprAdminMIBEntryGetFirst 和 MprAdminMIBEntryGetNext 函数将 OID 和指针变量的地址作为参数。 成功返回时,指针变量指向包含对象的值的缓冲区。 调用方应通过调用 MprAdminMIBBufferFree 函数来释放此缓冲区的内存。
MprAdminMIBEntryGetFirst 和 MprAdminMIBEntryGetNext 函数使开发人员能够执行 SNMP 演练。 由于 OID 是有序的,因此每个 OID 以及每个可管理对象都有 下一 个 OID。 SNMP 演练是指通过读取或写入一系列 OID 来遍历 MIB 的一部分。
所有 MprAdminMib 调用都通过动态接口管理器 (DIM) 。 根据 OID,DIM 会将调用传递给路由器管理员之一。 (IP 和 IPX 都支持 SNMP) 。 同样,根据 OID,路由器管理器可以处理呼叫本身,或将调用传递给其一个客户端。 所有路由器客户端都需要实现和导出与名称类似的 MprAdminMIB 函数对应的以下函数: