2018年1月10日水曜日

PRTGでトラフィック調査: どんなトラフィックが帯域幅を占有しているのか? 前編

以前「だれが帯域幅を消費しているのか?」というブログでトラフィックの現状を調査する手法を概説いたしました。その中ではIP層のトラフィック量をSNMPで把握することやネットワーク機器のフロー情報やポートミラーリングを利用してトラフィックの状況を把握することをご紹介いたしました。

今回のテーマではより具体的な例を挙げて、トラフィックの中身をPRTGのフロー系センサーを使用して調査する方法をご紹介いたします。
前編でフローデータに関連するセンサーとその機能をご紹介して、後編でより実践的な使い方をご説明いたします。今回は前編です。

そもそもフローデータって何ですか?

ルーターやスイッチなどのネットワーク機器にはフローデータを生成する機能を持った製品があります。そのような製品の中には組み込みフローエージェントがあります。エージェントは機器自身のポートを経由するトラフィックを計測して統計を取り、フローデータを作成してフローコレクターに送信します。

PRTGはフローコレクターとして動作して次の形式のフローデータを受信することができます。
  • NetFlow (v5,v9; 主にCisco製品)
  • sFlow (v5のみ; 各社対応製品)
  • IPFIX (IETF標準化仕様)
  • jFlow (v5のみ; Juniper Networks製品) 
PRTGではそれぞれについて次のセンサーを使用してフローデータを受信します。
  • 「NetFlow V5」または「NetFlow V5(カスタム)」
  • 「NetFlow V9」または「NetFlow V9(カスタム)」
  • 「sFlow V5」または「sFlow V5(カスタム)」
  • 「IPFIX」または「IPFIX(カスタム)」
  • 「jFlow V5」または「jFlow(カスタム)」
  ※以降フローデータを受信するセンサーを総称して「xFlowセンサー」と表記します。

センサーで受信されたフローデータには主として次の情報が含まれています。
  • タイムスタンプ
  • プロトコル番号 (例:6=TCP, 17=UDPなど) 
  • 送信元IPアドレス
  • 送信元ポート番号
  • 宛先IPアドレス
  • 宛先ポート番号
  • サイズ(バイト)


みなさまは"勘"がよいと思いますので、フローデータから何がわかるかは、すでに気づかれていることと思います。例えば…
  •  TCPプロトコルで送信元あるいは宛先のポート番号が「80(=HTTP)」や「443(=HTTPS)」であれば、それは「ウェブっぽい」通信です。
  • 「送信元/宛先IPアドレス」という情報から当然どの機器の間の通信かもわかります。
  •  「サイズ(バイト)」からは帯域幅の消費量がわかります。

フローデータには、いわゆるヘッダ情報しかなく、データ本体部分は含まれていません。よって通信されているデータの詳細はわかりませんが、セキュリティ面からはかえって好都合です。通信内容を「傍受(!)」するわけではありません。またパケットキャプチャと比較するとずっとサイズが小さくなります。それでもデータ量が多い場合はサンプリング設定を加えることもできます。


次にPRTGがフローコレクターとして動作する際の表示項目についてご説明いたします。

PRTGのxFlowセンサーに表示される内容

xFlowセンサーの1つの「sFlow V5」センサーについて詳しく見ていきます。
他のxFlowセンサーも機能としてはほとんど同じです。
 
まず最初に センサーの「全般」タブの画像をご覧ください。

sFlowセンサーの全般タブ
PRTGを使っていただいている方には見慣れた画面だと思います。主要なデータチャンネルが自動車のタコメーターのようなカラーゲージで表示されています。

ただ赤枠内に見慣れない円グラフのようなものがあります。この3つは総称して「トップリスト」と呼ばれる別の画面にリンクするグラフで、xFlowセンサー特有の機能です。後で詳しく説明いたします。

全般タブ画面のもう少し下も確認してみます。
sFlowセンサーの全般タブのデータテーブル
 少しチャンネル数が多いですが、他のセンサーと同じようなデータテーブルが続いています。チャンネルの名称をみると、サービスやTCP/UDPのプロトコルを思わせる名前があります。

「ライブデータ」タブも見てみましょう。
sFlowセンサーのライブデータタブ


これも特に他のセンサーと違ったところはなさそうです。チェックボックスをON/OFFすることでグラフに表示したいチャンネルを選択できることも同じです。

結局xFlowセンサーの機能は
「受信したフローデータをプロトコル別にデータ量を時系列で表示すること」
と言えそうです。

…少し物足りないと思った方は正解です。:)
先程のフローデータの項目から考えるともっと有用な情報が得られそうです。
それが先程の赤枠内の部分と関係します。

トップリストの種類と機能

赤枠の中の丸いグラフをクリックすると別画面のトップリストに遷移します。
トップリストには3種類あります。
  1. トップトーカー   :「IPアドレス間」の通信量上位のリスト
  2. トップコネクション :1.に「通信ポート」を加味した通信量上位のリスト
  3. トッププロトコル  :「プロトコル」ごとの通信量上位のリスト
デフォルトの設定ではそれぞれ上位100までを表示します。
  
1.トップトーカー 

トップトーカーの画面の上半分はこのようなグラフが表示されます。
トップトーカーの画面の上半分

画面左側の縦長のリストは表示させる時間帯です。デフォルトでは15分間隔です。
上図では16:00-16:15が選択されていて、右側はその時間帯の通信量上位をグラフで表現しています。
円周に沿ってIPアドレスやDNS名が見えます。この円の弧が長いところのIPアドレスが一番通信料を使用していることを示しています。このようにグラフでは大まかな状況を感覚的に把握することができます。

トップトーカーの画面の下半分はデータテーブルです。

トップトーカーの画面の下半分

グラフでは細かくてわかりにくくなっていたところも、こちらのデータテーブルではわかります。送信元IPアドレス、宛先IPアドレス、バイト数が表示されています。

2.トップコネクション

トップコネクションの画面の上半分はこのようなグラフが表示されます。
トップコネクションの画面の上半分
みかけはトップトーカーと変わりがありませんが画面の下半分をみると違いが判ります。

トップコネクションの画面の下半分
同様にデータテーブルがありますが、トップコネクションでは送信ポート・宛先ポートとプロトコルが追加されています。
この例では443ポート を使用した通信が多いようです。

3.トッププロトコル

トッププロトコルの画面はこのような表示です。上のグラフは普通の円グラフです。 
トッププロトコルの画面
下のデータテーブルはプロトコル別のチャンネルとバイト数が表示されています。

前編のまとめ

前半ではPRTGのxFlowセンサーで何が見えるのかを実際の画面で確認しました。SNMPでネットワーク機器のポートのトラフィックを監視するのとは少し違う側面でトラフィックをみることができます。

「もしかしたらあそこの部署のトラフィックが多いのでは?」「どのアプリケーションがネットワークを遅くしているのだろう・・・」など、知りたかったことがわかるかもしれません。

実感していただくためにはPRTGを実際につかっていただくのが一番です。

PRTG Network Monitorは、100センサーまで無料で使用でき、30日間は無制限に評価できます。ぜひ、PRTGのネットワークトラフィック監視機能をお試しください。

PRTG Network Monitorが提供するトラフィック監視機能は以下のリンクを参照してください。
https://www.jtc-i.co.jp/product/prtg/prtg_traffic_monitoring.html

https://www.jtc-i.co.jp/support/download/

最後に後編の内容についてちょっとお知らせします。実際にフローデータを取っていただくと「あれ?」っと思われることがあるかも知れません。

例えばチャンネルOtherTCPとはなんなのでしょう。そもそもxFlowセンサーの各チャンネルにはどのような通信が集計されているのでしょうか。そのためにはチャンネル定義の確認や変更する方法、そしてチャンネル定義にあてはまらない通信の内容を確認する方法が必要です。

後編ではチャンネルの内容について詳しく説明いたします。楽しみにしていてください。
最後まで読んでいただいてありがとうございました。