Netflowによって全てのパケットを採取して、それを統計情報としてNMSに送信するのは、データサイズが大きすぎる事もあるかもしれません。そのような場合は、ランダムに採取した一部のパケットのみをnetflowとして送信する事もできます。
コマンド一覧
このシナリオで重要なコマンド一覧は以下の通りです。
Router(config)# flow-sampler-map <map_name> Router(config-sampler)# mode random one-out-of <num> Router(config)# interface <interface> Router(config-if)# flow-sampler <map_name> [ egress ]
構成図
R3をHTTP serverとして構築します。
e0/0 e0/1 e0/0 e0/1 +--------+.1 .2+--------+.2 .3+--------+ | R1 +--------+ R2 +--------+ R3 | +--------+ +--------+ +--------+ 192.168.12.0/24 192.168.23.0/24 R1 Loopback0 R2 Loopback0 R3 Loopback0 10.1.1.1/32 10.2.2.2/32 10.3.3.3/32
[R3] enable password cisco ip http server ip http path flash: ip http authentication enable ! show running-config | redirect flash:running-config
設定全文は下記ファイルです。ルーティングなどの詳細設定は下記を参照ください。
sampler map
仕様説明
以下のコマンドで数回に一度のみの採取を行うflow-sampler-mapを作成する事ができます。
Router(config)# flow-sampler-map <map_name> Router(config-sampler)# mode random one-out-of <num>
flow-sampler-mapは以下のような設定で、interfaceに対する適用ができます。egress省略時は入力方向を採取し、egressをつけた時は出力方向を採取します。
Router(config)# interface <interface> Router(config-if)# flow-sampler <map_name> [ egress ]
動作確認
5回に一度のパケット採取を行う設定をR2に投入します。
[R2] flow-sampler-map SAMPLE_MAP mode random one-out-of 5 ! interface Ethernet0/1 flow-sampler SAMPLE_MAP flow-sampler SAMPLE_MAP egress
R1からR3へのpingを100発送信します。5回に1回の20発分が、NetFlowとして採取されている事を確認します。
[R1] R1#ping 10.3.3.3 source Loopback 0 repeat 100 Type escape sequence to abort. Sending 100, 100-byte ICMP Echos to 10.3.3.3, timeout is 2 seconds: Packet sent with a source address of 10.1.1.1 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Success rate is 100 percent (100/100), round-trip min/avg/max = 4/35/64 ms R1# [R2] R2#show ip cache flow IP packet size distribution (145 total packets): 1-32 64 96 128 160 192 224 256 288 320 352 384 416 448 480 .000 .165 .000 .834 .000 .000 .000 .000 .000 .000 .000 .000 .000 .000 .000 512 544 576 1024 1536 2048 2560 3072 3584 4096 4608 .000 .000 .000 .000 .000 .000 .000 .000 .000 .000 .000 IP Flow Switching Cache, 278544 bytes 3 active, 4093 inactive, 34 added 523 ager polls, 0 flow alloc failures Active flows timeout in 30 minutes Inactive flows timeout in 15 seconds IP Sub Flow Cache, 21640 bytes 0 active, 1024 inactive, 0 added, 0 added to flow 0 alloc failures, 0 force free 1 chunk, 2 chunks added last clearing of statistics never Protocol Total Flows Packets Bytes Packets Active(Sec) Idle(Sec) -------- Flows /Sec /Flow /Pkt /Sec /Flow /Flow UDP-other 23 0.0 1 52 0.0 0.0 14.8 ICMP 4 0.0 20 100 0.0 4.0 15.3 Total: 27 0.0 3 89 0.0 0.5 14.9 SrcIf SrcIPaddress DstIf DstIPaddress Pr SrcP DstP Pkts Et0/0 10.3.3.3 Et0/1* 10.1.1.1 01 0000 0000 20 Et0/1 192.168.12.1 Null 224.0.0.9 11 0208 0208 1 Et0/1 10.1.1.1 Et0/0 10.3.3.3 01 0000 0800 20 R2#
sampler map with policy map
動作確認
sampler mapとpolicy mapを併用する事で特定の種類のパケットのみを採取できます。以下はHTTPを5回に1回採取する設定です。
[R2] class-map CMAP_HTTP match protocol http ! policy-map PMAP_SAMPLE class CMAP_HTTP netflow-sampler SAMPLE_MAP ! interface Ethernet0/1 no flow-sampler SAMPLE_MAP no flow-sampler SAMPLE_MAP egress service-policy input PMAP_SAMPLE service-policy output PMAP_SAMPLE
ICMPなどのclass-mapに合致しないパケットは集計の対象外になっている事を確認します。
[R1] R1#ping 10.3.3.3 source Loopback 0 repeat 100 Type escape sequence to abort. Sending 100, 100-byte ICMP Echos to 10.3.3.3, timeout is 2 seconds: Packet sent with a source address of 10.1.1.1 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Success rate is 100 percent (100/100), round-trip min/avg/max = 12/38/72 ms R1# [R2] R2#show ip cache flow IP packet size distribution (152 total packets): 1-32 64 96 128 160 192 224 256 288 320 352 384 416 448 480 .000 .203 .000 .796 .000 .000 .000 .000 .000 .000 .000 .000 .000 .000 .000 512 544 576 1024 1536 2048 2560 3072 3584 4096 4608 .000 .000 .000 .000 .000 .000 .000 .000 .000 .000 .000 IP Flow Switching Cache, 278544 bytes 1 active, 4095 inactive, 42 added 674 ager polls, 0 flow alloc failures Active flows timeout in 30 minutes Inactive flows timeout in 15 seconds IP Sub Flow Cache, 21640 bytes 0 active, 1024 inactive, 0 added, 0 added to flow 0 alloc failures, 0 force free 1 chunk, 3 chunks added last clearing of statistics never Protocol Total Flows Packets Bytes Packets Active(Sec) Idle(Sec) -------- Flows /Sec /Flow /Pkt /Sec /Flow /Flow UDP-other 30 0.0 1 52 0.0 0.0 15.0 ICMP 6 0.0 20 100 0.0 3.6 15.2 Total: 36 0.0 4 90 0.1 0.6 15.1 SrcIf SrcIPaddress DstIf DstIPaddress Pr SrcP DstP Pkts R2#
HTTP通信を発生させ、集計の対象となっている事を確認します。
[R1] R1#copy http://cisco:cisco@10.3.3.3/running-config null: Loading http://***********@10.3.3.3/running-config ! 918 bytes copied in 0.308 secs (2981 bytes/sec) R1# [R2] R2#show ip cache flow IP packet size distribution (166 total packets): 1-32 64 96 128 160 192 224 256 288 320 352 384 416 448 480 .000 .240 .000 .728 .000 .000 .006 .000 .006 .006 .000 .000 .000 .000 .012 512 544 576 1024 1536 2048 2560 3072 3584 4096 4608 .000 .000 .000 .000 .000 .000 .000 .000 .000 .000 .000 IP Flow Switching Cache, 278544 bytes 2 active, 4094 inactive, 53 added 812 ager polls, 0 flow alloc failures Active flows timeout in 30 minutes Inactive flows timeout in 15 seconds IP Sub Flow Cache, 21640 bytes 0 active, 1024 inactive, 0 added, 0 added to flow 0 alloc failures, 0 force free 1 chunk, 3 chunks added last clearing of statistics never Protocol Total Flows Packets Bytes Packets Active(Sec) Idle(Sec) -------- Flows /Sec /Flow /Pkt /Sec /Flow /Flow TCP-WWW 5 0.0 1 157 0.0 0.0 12.5 UDP-other 35 0.0 1 52 0.0 0.0 15.1 ICMP 6 0.0 20 100 0.0 3.6 15.2 Total: 46 0.0 3 92 0.0 0.4 14.8 SrcIf SrcIPaddress DstIf DstIPaddress Pr SrcP DstP Pkts Et0/1 192.168.12.1 Et0/0 10.3.3.3 06 C55A 0050 1 Et0/0 10.3.3.3 Et0/1* 192.168.12.1 06 0050 C55A 2 R2#