前回はOpen vSwitchでsFlowの設定を行ったので、今回はNetFlowを取得するための設定を行いたいと思います。 基本的にsFlowの時と同じ考え方でやっています。 NetFlowの説明を以下に引用します。
NetFlowは、米シスコシステムズが開発したトラフィック管理用技術です。主にシスコ製のルーターやLANスイッチにソフトウエア機能(IOSの拡張機能)として実装されていますが、ほかのベンダーのネットワーク機器でもサポートしている製品があります。NetFlowは、ネットワーク機器上で「フロー」(TCP、UDPやICMPのあて先、送信元のIPアドレスとポート番号の組み合わせで識別するセッション)単位でパケット数やバイト数を集計し、集計データをUDPベースのNetFlowパケットで管理ステーション(NetFlowでも「コレクタ」と呼ぶ)に送信します
引用元:ネットワーク管理者のためのトラフィック管理入門 - 第3章 トラフィック管理技術とその比較:ITpro
今回はNetFlowエージェントがOpen vSwitchで、NetFlowコレクタは別にサーバを用意した環境を想定しています。 この記事ではNetFlowエージェント側の設定について説明します。 僕が用意した環境は以下のようになっています。
環境
NetFlowエージェント
Open vSwitch:1.4.2
インタフェース:ovsbr0
IPアドレス:192.168.122.1
NetFlowコレクタ
OS:Ubuntu 13.10
IPアドレス:192.168.122.22
NetFlowエージェントの設定
NetFlowの設定作成
本環境では以下の様な設定となります。
COLLECTOR_IP=192.168.122.22 COLLECTOR_PORT=5566 ACTIVE_TIMEOUT=30
COLLECTOR_IPはコレクタのIPアドレスで、192.168.122.22
、COLLECTOR_PORTはコレクタに送る際の送信先ポート番号で、5566
番としています。
上記の値を反映するためのコマンドは以下になります。
# ovs-vsctl -- set Bridge ovsbr0 netflow=@nf -- --id=@nf create NetFlow target=\"192.168.122.22:5566\" active-timeout=30
NetFlowの設定確認
NetFlowの設定が正しく入っているかを確認します。
# ovs-vsctl list netflow _uuid : f7eebd0b-6a8f-4d86-911a-b61c5246273a active_timeout : 30 add_id_to_interface : false engine_id : [] engine_type : [] external_ids : {} targets : ["192.168.122.22:5566"]
次に、正しくパケットが流れているかを確認します。
# tcpdump -ni ovsbr0 udp port 5566 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on ovsbr0, link-type EN10MB (Ethernet), capture size 65535 bytes 15:46:27.870141 IP 192.168.122.1.40117 > 192.168.122.22.5566: UDP, length 72 15:46:30.873135 IP 192.168.122.1.40117 > 192.168.122.22.5566: UDP, length 120 15:46:35.878141 IP 192.168.122.1.40117 > 192.168.122.22.5566: UDP, length 72
NetFlowエージェントのIPアドレス192.168.122.1
からNetFlowコレクタのIPアドレス192.168.122.22
のポート番号の5566
番に対してUDPパケットが送信されているのが確認できます。
NetFlowの設定削除
NetFlowの設定を削除したくなった場合、以下のコマンドで削除することができます。
$ ovs-vsctl remove bridge ovsbr0 netflow $NETFLOWUUID
$NETFLOWUUIDは、上の設定確認で表示されている_uuid
なので、今回は
$ ovs-vsctl remove bridge ovsbr0 netflow f7eebd0b-6a8f-4d86-911a-b61c5246273a
で削除できる。
また、NetFlowの設定全てを削除する場合は、removeでなくclearを使っても良い。
$ ovs-vsctl clear Bridge ovsbr0 netflow
NetFlowコレクタの設定は次回以降にします。