SNMP(Simple Network Management Protocol)は、IPネットワークに接続された機器を管理するためのプロトコルです。管理対象は、スイッチやルーター、サーバーやパソコン、セキュリティー機器やネットワークプリンターなど多岐にわたります。
SNMPの構成要素は、管理対象となる「SNMPエージェント」と管理する側の「SNMPマネジャー」の2つです。SNMPエージェントは、ネットワーク機器上で動くソフトウエアの形で実装されています。一方、SNMPマネジャーはサーバー上で稼働する管理ソフトウエアに搭載されています。SNMPエージェントとSNMPマネジャーが通信することで、ネットワーク機器の一元管理を実現します。
UDPで情報をやりとり
SNMP通信の特徴は、トランスポート層のプロトコルとして、TCPではなくUDPを使うことです。UDPを使うメリットとして、処理が軽く機器への負担を軽減できる点があります。TCPはコネクションの確立や維持、パケットの再送処理などにCPUやメモリーのリソースを割く必要があります。UDPは、そうした処理を行わないため、負担が軽くなります。
サーバーやパソコンならともかく、ネットワーク機器やプリンターなどはCPUの処理能力やメモリーなどの容量が限られるため、なるべく余分な負荷をかけたくありません。
また、TCPはコネクションの確立や切断などの処理のためオーバーヘッドが大きいことも、SNMPには不向きです。SNMPでやりとりする情報自体はかなり小さいサイズなので、TCPを使うと無駄が大きくなります。これらの理由から、SNMPではUDPを使うのです。
情報を取得する方法は2つ
SNMPマネジャーが情報を集める方法には、大きく2種類があります。「ポーリング」と「トラップ」です(PICT1)。
ポーリングは、SNMPマネジャー側からネットワーク機器のSNMPエージェントに対し、定期的に情報の送信を要求する方法です。CPUやメモリーの使用率、パケットの送信量といったネットワーク機器の内部情報を定期的に取得する用途に使われています。ポーリングでSNMPマネジャーがSNMPエージェント宛てに使うポートは、UDP161番です。