UnixPower on Networking
  http://www.unix-power.net/

 
 Top - Cisco - Flexible NetFlowの設定



■Flexible NetFlowとは?


Traditional NetFlowはversion 5であるのに対し、Flexible NetFlowはversion 9になります。全てのシスコルータでサポートされているわけではなく、比較的新しい機種 ( IOS ) でのみサポートされています。但し、機種によってはTraditional NetFlowはサポートされずFlexible NetFlowのみをサポートするというのも出てきており、今後の主流になってくると思われます。


Traditional NetFlowでは以下の7つのキーが固定で利用されていました。


○ 宛先IPアドレス
○ 送信元IPアドレス
○ 宛先ポート番号
○ 送信元ポート番号
○ L3プロトコル
○ ToS
○ 入力インターフェイス


Flexible NetFlowの最大の特徴は上記の7つのキーと収集できるフィールドが大幅に拡張されており、自身で任意に選択して設定できるようになっています。またキーだけでなくフィールドの設定も任意に行えます。具体的に設定できるキーやフィールドは以下のURLが参考になります。

http://www.cisco.com/web/JP/news/cisco_news_letter/tech/FNF/index.html


Flexible NetFlowはIOS 15系のルータであればサポートされています。厳密には12.4(9)Tからサポートされています。Catalystシリーズでは6500/4500はサポートされておりCatalyst3750X/3560Xなどでもサポートされていますが、IOSが15系でネットワークモジュールを搭載し、そのインターフェイスのみ収集可能というのが条件となります。また、IOSはIP BaseまたはIP Serviceに限定され、LAN Baseではサポートされません。2960シリーズでは現状サポートされていませんが新しくリリースされた2960-XからNetFlow Liteというのがサポートされています。

■フローレコードの設定


まず以下のコマンドでフローレコードを作成します。

# TESTという名前でフローレコードを作成
(config)# flow record TEST

# matchでKey(項目)フィールドを定義
(config-flow-record)# match ipv4 protocol
(config-flow-record)# match ipv4 source address
(config-flow-record)# match ipv4 destination address
(config-flow-record)# match transport source-port
(config-flow-record)# match transport destination-port

# collectでNon-Key(収集)フィールドを定義
(config-flow-record)# collect counter packets
(config-flow-record)# collect counter bytes


■エクスポートの設定

次にキャッシュしたデータをエクスポートする宛先を定義します。


(config)# flow exporter EXPORT
(config-flow-exporter)# destination 1.1.1.1
(config-flow-exporter)# source FastEthernet0/0
(config-flow-exporter)# transport udp 9996

■フローモニターの設定

次にNetFlowのモニタをカスタマイズします。これには上記で設定したフローエクスポートおよびフローレコードを合わせて定義します。


# フローモニターを定義
(config)# flow monitor FLOW
# フローレコードを定義
(config-flow-monitor)# record TEST
# フローエクスポーターを定義
(config-flow-monitor)# exporter EXPORT
# フローがなくなってからキャッシュをエクスポートする間隔。単位は秒でデフォルト値は15
(config-flow-monitor)# cache timeout inactive 15
# フローの有無に関わらずキャッシュをエクスポートする間隔。単位は分でデフォルト値は30
(config-flow-monitor)# cache timeout active 1
# キャッシュのエントリ数。デフォルトは64536 (config-flow-monitor)# cache entries 100000

そしてこれをインターフェイスに適用します。


(config)# interface FastEthernet0/0
(config-if)# ip flow monitor FLOW input
(config-if)# ip flow monitor FLOW output

■サンプルの設定

NetFlowでは全てのパケットをサンプリングするのではなく例えば100パケットに1パケットのみを収集ということも可能です。小中規模環境であれば全てのフローを採取したほうが、より正確な状態を把握することが可能なのですが、例えば10GBインターフェイスが必須となるような大規模環境においては100パケットまたは1000パケットに1パケットを採取するのが一般的です。但しリソースが許容するようであれば全パケットを採取するのに越したことはありません。以下がその設定例です。

(config)# sampler SAMPLE
(config-sampler)# mode random 1 out-of 100

これをインターフェイスに適用します。

(config)# interface FastEthernet0/0
(config-if)# ip flow monitor FLOW sampler SAMPLE input
(config-if)# ip flow monitor FLOW sampler SAMPLE output

■設定のまとめ

上記で設定したConfigをまとめて表示すると以下のようになります。

flow record TEST
 description Fleible NetFlow Monitor
 match ipv4 protocol
 match ipv4 source address
 match ipv4 destination address
 match transport source-port
 match transport destination-port
 collect counter packets
 collect counter bytes
!
!
flow exporter EXPORT
 destination 1.1.1.1
 source FastEthernet0/0
 transport udp 9996
!
!
flow monitor FLOW
 record TEST
 exporter EXPORT
 cache timeout inactive 15
 cache timeout active 1
 cache entries 100000

sampler SAMPLE
 mode random 1 out-of 100

interface FastEthernet0/0
 ip flow monitor FLOW sampler SAMPLE input
 ip flow monitor FLOW sampler SAMPLE output

■キャッシュデータの確認

収集したキャッシュデータは以下のコマンドで確認可能です。

# show flow monitor FLOW cache format table
  Cache type:                            Normal
  Cache size:                            100000
  Current entries:                            1
  High Watermark:                             1

  Flows added:                                1
  Flows aged:                                 0
    - Active timeout   (    60 secs)          0
    - Inactive timeout (    20 secs)          0
    - Event aged                              0
    - Watermark aged                          0
    - Emergency aged                          0

IP PROT  IPV4 SRC ADDR    IPV4 DST ADDR    TRNS SRC PORT  TRNS DST PORT        pkts       bytes
=======  ===============  ===============  =============  =============  ==========  ==========
      1  192.168.0.2      192.168.0.1                  0              0           1         100

これではみにくいので、NetFlow Collectorでグラフ化することをオススメします。

http://www.unix-power.net/linux/flow-tools.html
http://www.unix-power.net/linux/FlowViewer.html



 関連情報
 NetFlowの設定
 Flexible NetFlowの設定
 flow-toolsのインストール
 FlowViewerのインストール
 Copyright(C) 2003-2015 UnixPower on Networking All rights reserved.