ITエンジニアの技術メモ

神奈川在住のITエンジニアの備忘録です。おもにプログラミングやネットワーク技術について、学んだことを自分の中で整理するためにゆるゆると書いています。ちゃんと検証できていない部分もあるのでご参考程度となりますが、誰かのお役に立てれば幸いです。

SNMPv1トラップからSNMPv2トラップへの変換

SNMPv1トラップをSNMPv2トラップに変換する方法については、RFC2576に記載がある。

https://www.ietf.org/rfc/rfc2576.txt

の「3.1. Translating SNMPv1 Notification Parameters to SNMPv2 Notification Parameters」

上記の中でも snmpTrapOID の扱いはちょっと分かりにくいので、ここで簡単に纏めておく。まずは、該当箇所を抜粋。

(2) If the SNMPv1 generic-trap parameter is 'enterpriseSpecific(6)',
the SNMPv2 snmpTrapOID parameter SHALL be the concatentation of
the SNMPv1 enterprise parameter and two additional sub-
identifiers, '0', and the SNMPv1 specific-trap parameter.

(3) If the SNMPv1 generic-trap parameter is not '
enterpriseSpecific(6)', the SNMPv2 snmpTrapOID parameter SHALL
be the corresponding trap as defined in section 2 of RFC1907
[12]:

generic-trap parameter           snmpTrapOID.0
====================== =============
  0                                           1.3.6.1.6.3.1.1.5.1 (coldStart)
  1                                           1.3.6.1.6.3.1.1.5.2 (warmStart)
  2                                           1.3.6.1.6.3.1.1.5.3 (linkDown)
  3                                           1.3.6.1.6.3.1.1.5.4 (linkUp)
  4                                           1.3.6.1.6.3.1.1.5.5 (authenticationFailure)
  5                                           1.3.6.1.6.3.1.1.5.6 (egpNeighborLoss) 

 

上記によると、SNMPv1トラップのgeneric-trapがenterpriseSpecific(6)だったら、snmpTrapOIDは、<enterprise parameter>.0.<specific-trap parameter> となり、generic-trapがenterpriseSpecific(6)以外だったら、snmpTrapOIDは上記の表のようになる。

つまり、企業固有トラップだったら、snmpTrapOIDは「エンタープライズID.0.トラップ固有番号」となり、標準トラップだったら、上記の表のようになる。