本記事では、「NetFlowの見積り方法」について考えてみたいと思います。
「fps(flow per second) ・・・1秒に受信するフローの数」を見積る方法をご紹介したいと思います。
文:ジュピターテクノロジー よしひろ
フローは帯域幅や社員数と必ずしも相関しない
fps 見積りで難しいのは、フローは帯域幅や社員数と必ずしも相関しないということです。
例えば、同じ50人規模の会社でも業種、社員の特性、社内ポリシーによっても fps は全く異なる結果となります。
このお話を分かりやすく比喩している海外記事を見つけましたので、以下にご紹介します。
夫婦2人と犬一匹の家族がアパートに住んでおりました。
自分たちの家を建てると決意した彼らは、ある設計事務所に相談しました。
彼らがその設計事務所に連絡したのは希望する敷地面積だけでした。
そこでその事務所は、郊外に建築した場合と市内に建築した場合の図面を夫婦に渡したのです。
それは、全く異なる図面でした。
郊外にと設計された図面は、市内と同じ敷地でも3階建でした。
しかし、市内の図面はわずか1階建ての家だったのです。
この記事で作者が伝えたかったのは、家族構成、敷地面積が同じ条件でも利用する環境が異なれば全く異なる結果となるというお話です。
これが今回のNetFlowの見積り(fps の見積り)に似ているのです。
社員100人の会社だから50fps くらいだろうといった見積りは出来ないの?
といったお話をよく頂きますが、過去の事例はご紹介出来るもののお客様環境に合った正確なものはお出しできません。
一番確実なfpsの見積り方法は、評価版を実環境に設置して fps をカウントするといった回答となります。
それが一番確実な方法です。
しかし、実際問題として評価版を入手して実環境で評価するお客様は多くありません。
管理者がどのルータの、どのインターフェイスでフローを取得したいか?もポイントになります。
もしかしたら、インターネットに一番近いネットワーク機器に所属するWANポートのフローデータだけを取得して、インターネット帯域がどのように使われているかを把握したいだけの管理者が多いかもしれません。
実機を使ったfpsの見積り方法
ここでは実機を使ってfpsの見積りをしてみましょう。
今回は、Cisco891FにNetFlow version9 (※Flexbile NetFlowだとまたやり方が異なります) を設定します。
GigabitEthernet8がWANポートに該当し、ingress(IN方向トラフィック)とegress(OUT方向トラフィック)両方設定してみましょう。
192.168.91.36はフローコレクターのIPアドレスで、UDPの2055が待ち受けポートとなっております。
※今回はフローコレクターがない前提での見積りなので、存在しないアドレスを設定することになります。
NetFlow の設定が適切にされているかを確認する為に、以下のコマンドを実行します。
最初のコマンド、show ip flow interfaceでNetFlowが設定されているインターフェイスが正しく、GigabitEthernet8に施されingressとegressも両方設定されていることが分かります。
そして、次のコマンドshow ip flow exportでNetFlowのバージョンが9であることが確認できます。この2番目のコマンドを利用して、fpsの見積りをすることが出来ます。
上図の赤枠部分に注目してください。
644211がコマンド実行時点でのエクスポートされたフローの数です。
見積りの方法はこの5秒後、10秒後といった一定間隔で同じコマンドを実行して差分をとります。そして、それぞれの秒数で割り算すればfpsを算出することができます。
ただしfpsがピークとなる時間帯を見計らって調査をしないと最大fpsが分かりませんので、実行タイミングが難しいです。
こういった場合、Cisco IOSのスクリプトであるtclを使ってloopで定期的に上記コマンドを実行します。それでは、実践してみましょう。
上図の様に、C891F(tcl)#for {set i 1} {$i <= 5} {incr i} {show ip flow export; after 10000}を実行してください。
after 10000は、10秒間のスリープという意味です。
つまり、show ip flow exportコマンドを10秒間隔で実行しいることになります。
結果は、下表となりました。
後は引き算して10で割るだけです。
654663 – 654649 = 14 14/10 = 1.4
654677 – 654663 = 14 14/10 = 1.4
654691 – 654677 = 14 14/10 = 1.4
654701 – 654691 = 10 10/10 = 1.0
コマンドを実行した時点でのルータのfpsは、1.0fps~1.4fpsであったことが分かります。コマンドを実行した瞬間では、ほとんど通信が流れていなかったことが分かります。
上記で紹介したコマンドのloop回数を変更して、ターミナルソフトウェアで標準出力のログを保存してください。平日日勤帯に実行すれば、ピークのfpsを見積りをすることが出来ます。
まとめ
如何でしょうか?
本記事で紹介した一軒家を建てるお話のように fps の見積もりは社員数やPCの数、会社の規模では正確な見積りは出来ません。
ピーク時の fps を見積りする場合は、本記事で紹介したやり方を参考にしてみてください。
また、他に良いやり方を知っているという方は、下の問い合わせから是非教えてください。
弊社では、以下の特徴を持ったntop社のntopngという製品を販売しています。
- リアルタイム分析
- アプリケーション分析
- L2,L7サポート
- フローコレクター
- 脅威検知
ご興味のある方は弊社までお問い合わせください。