企業ネットワークに欠かせないネットワーク監視は費用をかけなくても導入できる。なかでも死活監視や経路監視に使えるpingコマンドやtracertコマンドはほとんどのOSが標準のツールだ。これらのコマンドはどんな仕組みで動き、どんな情報を取得できるのかを見ていこう。
まずは死活監視から見ていこう。
死活監視にはping監視とポート監視の2種類がある。違いは「監視対象の稼働状態をどこまで深く調べるか」である。ping監視は監視対象のサーバーやネットワーク機器がIPレベルで稼働しているかどうかを確認する。一方、ポート監視はサービスを提供するサーバーでアプリケーションが使うポートが開いているかどうかを確認する。
ping監視は対象の機器でネットワークカード(NIC)が機能し、OSなどで提供されるIPの機能が働いていれば応答がある。このため、サービスを提供するアプリケーションが稼働しているかどうかは確認できない。ping監視で応答があるが、ポート監視では応答がないといった状態もある。
ポートが開いているかだけでなくサービスとして応答があるかまで確認する場合もある。そのような監視はポート監視と区別して、サービス監視と呼ぶこともある。
エラーの種類をタイプで通知
ping監視ではICMPを利用する。ICMPはIPの通信が正しく動作するように支援するプロトコルで、IPに対応する機器は標準でサポートしている。
監視用の端末がICMPエコー要求パケットを送り、監視対象の機器が受け取るとICMPエコー応答パケットを返す。対象の機器から応答が返るかどうかで機器が稼働しているかどうか(死活)を確認する。
ping監視では対象の機器以外に、経路上にあるルーターがエラーを通知するために応答を返す場合がある。エラーの種類はタイプと呼ばれる数値で通知する。
ルーターがICMPエコー要求パケットを受け取ってその宛先が不明で転送できないと判断した場合は、タイプ3の応答パケットを返す。タイプ3は「到達不能」を示す。
ルーターが何度転送しても宛先に到達しない場合もある。このときは「時間超過」を示すタイプ11の応答パケットを返す。
ここでの時間とは、生存時間(TTL)と呼ばれる数値を指す。IPパケットを送信する機器は、IPパケットごとにTTLを設定する。そしてルーターはIPパケットを転送するとき、受け取ったIPパケットのTTLを1減らすことになっている。このTTLがゼロになると、時間切れとして送信元にエラーを返すのだ。