Last Updated on 2021年5月3日 by かんりにん
会社のGWルーターに使用しているRTX1200のインターフェースのTX/RXカウントを
LinuxサーバーからSNMPを使って累積でログに書き出していたところ、
32ビット長分に達するとリセットされるっぽいので、ソースや対応方法(64ビットでカウントできればいいな、的に)をいろいろ探ってみることに。
- 出典:お世話になっております!
要約
以下、CiscoのFAQサイトからの抜粋を。
- RFC 2233 leavingcisco.comでは、拡張された 64 ビットのカウンタが採用されています。
これは 32 ビットのカウンタでは容量が足りずにラップアラウンドするのが早すぎるような大容量インターフェイスを対象としています。 - 64 ビットのカウンタに対してクエリーを実行するには、SNMPv2C または SNMPv3 を使用する必要があります。
SNMPv1 では 64 ビットのカウンタがサポートされていません。 ifInOctets = .1.3.6.1.2.1.2.2.1.10
は 32 ビットのカウンタであるのに対し、
その 64 ビット バージョンはifHCInOctets = .1.3.6.1.2.1.31.1.1.1.6
であることに注意してください。- 32bitカウンタ(InOctetsを抜粋)
ifInOctets = .1.3.6.1.2.1.2.2.1.10
- 64bitカウンタ(InOctetsを抜粋)
ifHCInOctets = .1.3.6.1.2.1.31.1.1.1.6
- 32bitカウンタ(InOctetsを抜粋)
まとめ
SNMP(V1)で取得するMIBが32bitカウンタだったことがRFCで確認できてスッキリ。
- カウンタが4GB分に達するとリセット、ということでOK。
- 64bitカウンタ対応のインターフェースで、かつ64bitカウンタを使用すれば
カウントは64bit長となり、32bitカウンタのようにリセット(ラップアラウンド)されない。
ただし 64bitカウンタはSNMP V2c以降で実装されている、とのこと (RFCより)。
RTX1200の実装を調べてみたところ、ファームウェアRev.10.01.24以降でSNMP V2c、V3の両方に対応しているとのこと。
- 出典:お世話になっております!
…ということで、現在のRTX1200のファームウェアバージョンを見たところ、SNMP V2c、V3に対応する直前の10.01.22だった…orz
ファームウェアのアップデートから作業しなくてはw