Snmp Mib2


MIB構成


 カーネルのSNMPが管理しているMIBの構成を示します。

【実装MIB】

 RFC1213で定義されているMIB−Uの内、以下を実装しています。
 MIBの詳細(意味、タイプ、アクセス属性など)につきましてはRFCを参照して下さい。

MIB GROUPE

名称

OBJECT IDENTIFIRE

構造体
0
system :: = { mib-2 1 }
_MIB2TBL_SYS
1
interface :: = { mib-2 2 }
_MIB2TBL_IF
2
at :: = { mib-2 3 }
_MIB2TBL_AT
3
ip :: = { mib-2 4 }
_MIB2TBL_IP
4
icmp :: = { mib-2 5 }
_MIB2TBL_ICMP
5
tcp :: = { mib-2 6 }
_MIB2TBL_TCP
6
udp :: = { mib-2 7 }
_MIB2TBL_UDP
7
snmp :: = { mib-2 11 }
_MIB2TBL_SNMP

【system】

typedef struct {


  Byte
SetReq[8];
設定要求フラグ
  Byte
Descr[64];

  Dword
ObjectIDlen;
ObjectIDの長さ
  Byte
ObjectID[16];

  Dword
UpTime;
10ms単位のカウンタ
  Byte
Contact[64];

  Byte
Name[64];

  Byte
Location[64];

  Dword
Service;

} _MIB2TBL_SYS


sizeof(_MIB2TBL_SYS) = 292

 SNMPMIB情報取得ファンクションでSYSTEMグループを指定した場合、上記構造体に情報が設定されます。この時SetReqの値は意味を持ちません。

 SNMPMIB情報設定ファンクションを使用する場合、SetReq(設定要求フラグ配列)の対応する位置に1を設定することで設定MIBを指定します。複数1を設定することが可能です。
 SetReqの配列とパラメータの対応は以下のとおりです。
       SetReq[0]  Descr
       SetReq[1]  ObjectID
       SetReq[2]  UpTime
       SetReq[3]  Contact
       SetReq[4]  Name
       SetReq[5]  Location
       SetReq[6]  Service
       SetReq[7]  (Reserve)

【interface】

typedef struct {


  Dword
IfIndex;

  Byte
Descr[64];

  Dword
Type;

  Dword
Mtu;

  Dword
Speed;

  Byte
PhysAddress[6]; (注意 *1)
  Dword
AdminStatus;

  Dword
OperStatus;

  Dword
LastChange;

  Dword
InOctets;

  Dword
InUcastPkts;

  Dword
InNUcastPkts;

  Dword
InDiscards;

  Dword
InErrors;

  Dword
InUnknownProts;

  Dword
OutOctets;

  Dword
OutUcastPkts;

  Dword
OutNUcastPkts;

  Dword
OutDiscards;

  Dword
OutErrors;

  Dword
OutQLen;

  Byte
Specific[4];

} _IFTBL;


sizeof(_IFTBL) = 152

typedef struct {


  Dword
Number;

  _IFTBL
Table;

} _MIB2TBL_IF;


sizeof(_MIB2TBL_IF) = 156

 SNMPMIB情報取得ファンクションでINTERFACEグループを指定した場合、上記構造体に情報が設定されます。

【at】

typedef struct {


  Dword
IfIndex;

  Byte
PhysAddress[6]; (注意 *1)
  Dword
NetAddress;

} _ATTBL;


sizeof(_ATTBL) = 16

typedef struct {


  Dword
Table_Count;
Table 有効数 最大64
  _ATTBL
Table[64];

} _MIB2TBL_AT;
Type;

sizeof(_MIB2TBL_AT) = 1028

 SNMPMIB情報取得ファンクションでATEグループを指定した場合、上記構造体に情報が設定されます。

【ip】

typedef struct {


  Dword
AdEntAddr;

  Dword
AdEntAddrIdx;

  Dword
AdEntMask;

  Dword
AdEntBcastAddr;

  Dword
AdEntReasmMaxSize;

} _IPADDRTBL;


sizeof(_IPADDRTBL) = 20

typedef struct {


  Dword
RouteDest;

  Dword
RouteIfIndex;

  Dword
RouteMetric1;

  Dword
RouteMetric2;

  Dword
RouteMetric3;

  Dword
RouteMetric4;

  Dword
RouteNextHop;

  Dword
RouteType;

  Dword
RouteProto;

  Dword
RouteAge;

  Dword
RouteMask;

  Dword
RouteMetric5;

  Byte
RouteInfo[4];

  _IPROUTETBL
Table[64];

sizeof(_IPROUTETBL) = 52

typedef struct {


  Dword
NetToMediaIfIndex;

  Byte
NetToMediaPhysAddress[6]; (注意 *1)
  Dword
NetToMediaNetAddress;

  Dword
NetToMediaType;

} _IPNTMTBL;


sizeof(_IPNTMTBL) = 20

typedef struct {


  Dword
Fowarding;

  Dword
DefaultTTL;

  Dword
InReceives;

  Dword
InHdrErrors;

  Dword
InAddrErrors;

  Dword
ForwDatagrams;

  Dword
InUnkownProtos;

  Dword
InDiscards;

  Dword
InDelivers;

  Dword
OutRequests;

  Dword
OutDiscards;

  Dword
OutNoRoutes;

  Dword
ReasmTimeout;

  Dword
ReasmReqds;

  Dword
ReasmOKs;

  Dword
ReasmFailes;

  Dword
FlagOKs;

  Dword
FlagFailes;

  Dword
FlagCreates;

  _IPADDRTBL
AddrTable;

  _IPROUTETBL
RouteTable[2];

  Dword
Table_Count;
NTMTable 有効数 最大64
  _IPNTMTBL
NTMTable[64];

} _MIB2TBL_IP;


sizeof(_MIB2TBL_IP) = 1488

 SNMPMIB情報取得ファンクションでIPグループを指定した場合、上記構造体に情報が設定されます。

【icmp】

typedef struct {


  Dword
InMsgs;

  Dword
InErrors;

  Dword
InDestUnreachs;

  Dword
InTimeExcds;

  Dword
InParmProbs;

  Dword
InSrcQuenchs;

  Dword
InReDirects;

  Dword
InEchos;

  Dword
InEchoReps;

  Dword
InTimestamps;

  Dword
InTimestampReps;

  Dword
InAddrMasks;

  Dword
InAddrMaskReps;

  Dword
OutMsgs;

  Dword
OutErrors;

  Dword
OutDestUnreachs;

  Dword
OutTimeExcds;

  Dword
OutParmProbs;

  Dword
OutSrcQuenchs;

  Dword
OutReDirects;

  Dword
OutEchos;

  Dword
OutEchoReps;

  Dword
OutTimestamps;

  Dword
OutTimestampReps;

  Dword
OutAddrMasks;

  Dword
OutAddrMaskReps;

} _MIB2TBL_ICMP;


sizeof(_MIB2TBL_ICMP) = 104

 SNMPMIB情報取得ファンクションでICMPグループを指定した場合、上記構造体に情報が設定されます。

【tcp】

typedef struct {


  Dword
ConnState;

  Dword
ConnLocalAddress;

  Dword
ConnLocalPort;

  Dword
ConnRemAddress;

  Dword
ConnRemPort;

} _TCPTBL;


sizeof(_TCPTBL) = 20

typedef struct {


  Dword
RtoAlgorithm;

  Dword
RtoMin;

  Dword
RtoMax;

  Dword
MaxConn;

  Dword
ActiveOpens;

  Dword
PassiveOpens;

  Dword
AttemptFailes;

  Dword
EstabResets;

  Dword
CurrEstab;

  Dword
InSegs;

  Dword
OutSegs;

  Dword
RetransSegs;

  Dword
Table_Count;
ConnTable 有効数 最大48
  _TCPTBL
ConnTable[48];

  Dword
InErrs;

  Dword
OutRsts;

} _MIB2TBL_TCP;


sizeof(_MIB2TBL_TCP) = 1020

 SNMPMIB情報取得ファンクションでTCPグループを指定した場合、上記構造体に情報が設定されます。

【udp】

typedef struct {


  Dword
LocalAddress;

  Dword
LocalPort;

} _UDPTBL;


sizeof(_UDPTBL) = 8

typedef struct {


  Dword
InDatagrams;

  Dword
NoPorts;

  Dword
InErrors;

  Dword
OutDatagrams;

  Dword
Table_Count;
Table 有効数 最大48
  _UDPTBL
Table[48];

} _MIB2TBL_UDP;


sizeof(_MIB2TBL_UDP) = 404

 SNMPMIB情報取得ファンクションでUDPグループを指定した場合、上記構造体に情報が設定されます。

【snmp】

typedef struct {


  Dword
InPkts;

  Dword
OutPkts;

  Dword
InBadVersion;

  Dword
InBadCommunityNames;

  Dword
InBadCommunityUses;

  Dword
InASNParseErrs;

  Dword
InTooBigs;

  Dword
InNoSuchNames;

  Dword
InBadValues;

  Dword
InReadOnlys;

  Dword
InGenErrs;

  Dword
InTotalReqVars;

  Dword
InTotalSetVars;

  Dword
InGetRequests;

  Dword
InGetNexts;

  Dword
InSetRequests;

  Dword
InGetResponses;

  Dword
InTraps;

  Dword
OutTooBigs;

  Dword
OutNoSuchNames;

  Dword
OutBadValues;

  Dword
OutReadOnlys;

  Dword
OutGenErrs;

  Dword
OutGetRequests;

  Dword
OutGetNexts;

  Dword
OutSetRequests;

  Dword
OutGetResponses;

  Dword
OutTraps;

  Dword
EnableAuthenTraps;

} _MIB2TBL_SNMP;


sizeof(_MIB2TBL_SNMP) = 116

 SNMPMIB情報取得ファンクションでSNMPグループを指定した場合、上記構造体に情報が設定されます。

(注意 *1)
 Byte[6]配列の要素は正規化されて、8バイトのエリアを使用します。