タグ別アーカイブ: xFlow

フローレコード受信の確認

GenieATMに新たなエクスポータの定義を追加したのにスナップショットやレポートでトラフィックが表示されない場合の標準的なご確認項目,切り分け方法をご紹介します。

  1. ネットワーク到達性
  2. ファイヤーウォール
  3. フローパケットの到達

1. ネットワーク到達性

CLIのEnableモードよりpingコマンドでエクスポータとのネットワーク到達性を確認します。

ATM90 # ping 172.16.2.224
PING 172.16.2.224 (172.16.2.224) 56(84) bytes of data.
64 bytes from 172.16.2.224: icmp_req=1 ttl=64 time=1.53 ms
64 bytes from 172.16.2.224: icmp_req=2 ttl=64 time=0.411 ms
64 bytes from 172.16.2.224: icmp_req=3 ttl=64 time=0.422 ms
^C
--- 172.16.2.10 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2000ms
rtt min/avg/max/mdev = 0.411/0.790/1.538/0.529 ms
ATM90 #

(Ctrl+Cで停止します)

2. ファイヤーウォール

CLIのEnableモードよりshow runningコマンドによりaccess groupfirewall enableの設定を表示し,エクスポータからフロー受信ポートへのUDPパケットがブロックされていないことを確認します。

ATM90 # show running
#### show running configure ####
!
!
  hostname ATM90
  clock timezone JST +9
  ip domain-name jp.genie-networks.com
!
interface ethernet 0
  ip address 172.16.2.90 255.255.255.0
  ip address 172.16.2.92 255.255.255.0 secondary
!
   :
  (中略)
   :
  ip route 0.0.0.0 0.0.0.0 172.16.2.1 0
  access group 172.16.0.0 netmask 255.255.0.0 protocol ip permit
  firewall enable
  module id collector 3001
   :
  (中略)
   :
!
ATM90 #
3. フローパケットの到達

flow dumpコマンドをsrc hostにエクスポータのIPアドレスを指定して実行し,フローレコードが届いているかを確認します。

ATM90 (debug)# flow dump
Please input nfdump parameters and press return
-a "src host 172.16.2.224"
Do you want to add "more" command behind the nfdump
parameters to prevent terminal session crashed?(Y/N) y
nfdump: listening on device eth0
expression: src host 172.16.2.224
11:04:23  172.16.2.224.8888 > 172.16.2.90.6343 : sflow ver = 4, count = 1, len = 224
 -----------------------------------------------------------------------
| version         | ip_ver          | agent_addr      | seq_number      |
| 4               | 1               | 172.16.2.224    | 61884802        |
 -----------------------------------------------------------------------
| switch_uptime   | count           |
| 1190572734      | 1               |
------------------------------------
flow      1 sample_type         1                     seq_number          84086197
sample      src_id_type         0                     src_index_value     33
            sampling_interval   256                   sample_pool         51229952
            drops               0                     input               33
            output              0                     packet_data_type    1
            header_protocol     1                     frame_length        1466
            length_of_header    128                   Destination         29:73:08:0c:34:e3
            Source              03:d7:55:2b:21:c0     type                0x8100
            priority            0                     CFI                 0
            id                  102                   type                0x800
            version             4                     header_length       20
            tos                 0x0                   total_length        1444
            id                  0x44cc                flag                0x0
            flag_offset         0x0                   time_to_live        254
            protocol            0x11                  checksum            0x5538
            source ip address   10.144.8.2            dest ip address     172.16.2.149
            source port number  56488                 dst port number     2055
            udp_length          1424                  udp_checksum        0x5ea5
            data                82        bytes
            n_extended_data     1
            extened_data_type   1                     src vlan            102
            src priority        0                     dest vlan           0
            dest priority       0

            -------------------------------------------------------------------------------------
11:04:24  172.16.2.224.8888 > 172.16.2.90.6343 : sflow ver = 4, count = 1, len = 216
 -----------------------------------------------------------------------
| version         | ip_ver          | agent_addr      | seq_number      |
| 4               | 1               | 172.16.2.224    | 61884803        |
 -----------------------------------------------------------------------
| switch_uptime   | count           |
| 1190573744      | 1               |
------------------------------------
flow      1 sample_type         1                     seq_number          6101417
sample      src_id_type         0                     src_index_value     30
            sampling_interval   256                   sample_pool         1561962752
            drops               0                     input               30
            output              0                     packet_data_type    1
ATM90 (debug)#

上記の例ではsFlowバージョン4のフローサンプルレコードが届いていることが分かります。

確認ポイント

  • sFlowのヘッダにはAgentアドレス(上記の結果のagent addr)という項目があります。これがGenieATMのエクスポータ定義の「フローエクスポータIPアドレス」と一致していなければなりません。フローの送信元IPアドレスとは異なる場合がありますのでご注意ください。
  • ヘッダにフローレコード数の項目(count)があります。NetFlowバージョン9は1つのフローパケットに複数のフローセットが含まれ,1つのフローセットに複数のフローレコードが含まれるという2階層構造を持ちます。count項目にはフローセットではなくフローレコードの総数が入っている必要があり,GenieATMはこの項目が適切に設定されていないと当該フローパケットを正しく解析することができません。

flow dump

GenieATMが受信しているフローレコードを表示します。

書式

flow dump
[-a | -h] [-i <interface>] [-c <count>]"<expr>"

主な追加パラメータ

キーワード 説明
-a | -h -a: すべての属性を表示
-h: フローパケットのヘッダ部分のみ表示
(指定なし): フローパケットの概要のみ表示
-i <interface> フローを受信するインターフェースを指定。省略するとeth0
-c <count> 指定した件数のフローパケットを受信するとコマンドを終了する。省略した場合は停止するまでフローを表示し続ける。
"<expr>" 表示するフローパケットの条件

構造

<expr> := {<expr> and <expr> | <expr> or <expr> | not <expr> | (<expr>)}
※ 括弧以外,条件の評価は単純に左から右に行わる。したがって,A and B or C and Dは(((A and B) or C) and D)と評価される。

表記

<expr> := {{src | dst | [src | dst] host} <ipv4 address> | [src | dst] net <ipv4 prefix> | [src | dst] port <port no> }
※ 表記はフローパケットに関する条件であることに注意。したがって,dst portで指定する条件はGenieATMがフローパケットを受信するポート番号であり,フローが示すトラフィックの送信先ポート番号ではない。
※ 明示的にsrcdstを指定しない場合,送信元,送信先のいずれかが条件に一致すれば表示される。

デフォルト設定

なし

コマンドモード

Debug Mode

説明

  • GenieATMが受信したフローレコードのうちパラメータで指定した条件に一致するものを指定したフォーマットで表示します。
  • パラメータはflow dumpコマンドを入力した後
    Please input nfdump parameters and press return

    が表示されてから入力します。

  • パラメータで受信件数を指定した場合は,その件数を表示すると終了します。それ以外の場合はCtrl+Cで停止するまで表示し続けます。

注意事項

  • 内部的にはnfdumpのバージョン1.1が動作します。新しいバージョンのnfdumpとは動作が異なる可能性があります。
  • flow dumpコマンドは,GenieATMのfirewallによってフローレコードの受信ができないルータからのフローレコードも表示します。GUIのスナップショットなどからトラフィックが見えない場合はaccess groupコマンドやfirewall enableコマンドの設定も確認してください。

実行例

# debugmode
(debug)# flow dump
Please input nfdump parameters and press return
"host 172.16.2.24"
Do you want to add "more" command behind the nfdump
parameters to prevent terminal session crashed?(Y/N) y
nfdump: listening on device eth0
expression: host 172.16.2.24
15:42:29  172.16.2.24.8888 > 172.16.2.90.6343 : sflow ver = 4, count = 2, len = 348
15:42:31  172.16.2.24.8888 > 172.16.2.90.6343 : sflow ver = 4, count = 7, len = 1200
15:42:31  172.16.2.24.8888 > 172.16.2.90.6343 : sflow ver = 4, count = 2, len = 424
15:42:32  172.16.2.24.8888 > 172.16.2.90.6343 : sflow ver = 4, count = 3, len = 568
15:42:33  172.16.2.24.8888 > 172.16.2.90.6343 : sflow ver = 4, count = 4, len = 748
15:42:34  172.16.2.24.8888 > 172.16.2.90.6343 : sflow ver = 4, count = 7, len = 1256
15:42:34  172.16.2.24.8888 > 172.16.2.90.6343 : sflow ver = 4, count = 6, len = 1224
   :
 (中略)
   :
15:42:35  172.16.2.24.8888 > 172.16.2.90.6343 : sflow ver = 4, count = 7, len = 1256
15:42:35  172.16.2.24.8888 > 172.16.2.90.6343 : sflow ver = 4, count = 7, len = 1312
15:42:35  172.16.2.24.8888 > 172.16.2.90.6343 : sflow ver = 4, count = 7, len = 1256
15:42:35  172.16.2.24.8888 > 172.16.2.90.6343 : sflow ver = 4, count = 7, len = 1256
(debug)# 
(debug)# flow dump
Please input nfdump parameters and press return
-h "src 172.16.2.10"
Do you want to add "more" command behind the nfdump
parameters to prevent terminal session crashed?(Y/N) y
nfdump: listening on device eth0
expression: src 172.16.2.10
15:00:24  172.16.2.10.44080 > 172.16.2.90.9996 : netflow ver = 5, count = 30, len = 1464
 -----------------------------------------------------------------------
| version| count  | sys_uptime      | unix_secs       | unix_nsecs      |
| 5      | 30     | 249804000       | 1450332048      | 303589000       |
 -----------------------------------------------------------------------
| flow_sequence   |type|id |sampling|
| 1624560         | 1  | 1 | 0      |
------------------------------------
15:00:25  172.16.2.10.35074 > 172.16.2.90.9996 : netflow ver = 5, count = 30, len = 1464
 -----------------------------------------------------------------------
| version| count  | sys_uptime      | unix_secs       | unix_nsecs      |
| 5      | 30     | 249804000       | 1450332048      | 352822000       |
 -----------------------------------------------------------------------
| flow_sequence   |type|id |sampling|
| 1624500         | 1  | 1 | 0      |
------------------------------------
15:00:25  172.16.2.10.62301 > 172.16.2.90.9996 : netflow ver = 5, count = 30, len = 1464
 -----------------------------------------------------------------------
| version| count  | sys_uptime      | unix_secs       | unix_nsecs      |
| 5      | 30     | 249804000       | 1450332048      | 372876000       |
 -----------------------------------------------------------------------
| flow_sequence   |type|id |sampling|
(debug)#
(debug)# flow dump
Please input nfdump parameters and press return
-a -c 2 "port 6343"
Do you want to add "more" command behind the nfdump
parameters to prevent terminal session crashed?(Y/N) n
nfdump: listening on device eth0
expression: port 6343
18:03:19  172.16.2.224.8888 > 172.16.2.90.6343 : sflow ver = 4, count = 7, len = 1200
 -----------------------------------------------------------------------
| version         | ip_ver          | agent_addr      | seq_number      |
| 4               | 1               | 172.16.2.224    | 61826628        |
 -----------------------------------------------------------------------
| switch_uptime   | count           |
| 1129306885      | 7               |
------------------------------------
flow      1 sample_type         1                     seq_number          83992247
sample      src_id_type         0                     src_index_value     33
            sampling_interval   256                   sample_pool         27178752
            drops               0                     input               33
            output              0                     packet_data_type    1
            header_protocol     1                     frame_length        1518
            length_of_header    128                   Destination         02:9d:80:9c:73:3a
            Source              66:27:c8:20:26:b7     type                0x8100
            priority            0                     CFI                 0
            id                  103                   type                0x800
            version             4                     header_length       20
            tos                 0x0                   total_length        1500
            id                  0x8d2d                flag                0x2
            flag_offset         0x0                   time_to_live        64
            protocol            0x6                   checksum            0x492c
            source ip address   172.16.3.91           dest ip address     172.16.3.71
            source port number  57185                 dst port number     548
            sequence number     3772736637            ack number          4002378524
            header length       32                    tcp flag            -A----
            window size         32768                 tcp_checksum        0xb867
            urgent pointer      0
            data                70        bytes
            n_extended_data     1
            extened_data_type   1                     src vlan            103
            src priority        0                     dest vlan           0
            dest priority       0

            -------------------------------------------------------------------------------------
flow      2 sample_type         1                     seq_number          83992248
sample      src_id_type         0                     src_index_value     33
            sampling_interval   256                   sample_pool         27179008
            drops               0                     input               33
            output              0                     packet_data_type    1
            header_protocol     1                     frame_length        1518
            length_of_header    128                   Destination         02:9d:80:9c:73:3a
            Source              66:27:c8:20:26:b7     type                0x8100
            priority            0                     CFI                 0
            id                  103                   type                0x800
            version             4                     header_length       20
            tos                 0x0                   total_length        1500
            id                  0xd6da                flag                0x2
            flag_offset         0x0                   time_to_live        64
            protocol            0x6                   checksum            0xff7e
            source ip address   172.16.3.91           dest ip address     172.16.3.71
            source port number  57185                 dst port number     548
            sequence number     3772842717            ack number          4002378524
            header length       32                    tcp flag            -A----
            window size         32768                 tcp_checksum        0xf32d
            urgent pointer      0
            data                70        bytes
            n_extended_data     1
            extened_data_type   1                     src vlan            103
            src priority        0                     dest vlan           0
            dest priority       0

            -------------------------------------------------------------------------------------
flow      3 sample_type         1                     seq_number          29701300
sample      src_id_type         0                     src_index_value     32
            sampling_interval   256                   sample_pool         3308565504
    :
  (中略)
    :
            -------------------------------------------------------------------------------------
18:03:19  172.16.2.224.8888 > 172.16.2.90.6343 : sflow ver = 4, count = 8, len = 1336
 -----------------------------------------------------------------------
| version         | ip_ver          | agent_addr      | seq_number      |
| 4               | 1               | 172.16.2.224    | 61826629        |
 -----------------------------------------------------------------------
| switch_uptime   | count           |
| 1129307016      | 8               |
------------------------------------
flow      1 sample_type         1                     seq_number          29701304
sample      src_id_type         0                     src_index_value     32
            sampling_interval   256                   sample_pool         3308566528
            drops               0                     input               32
            output              0                     packet_data_type    1
            header_protocol     1                     frame_length        70
            length_of_header    70                    Destination         66:27:c8:20:26:b7
            Source              02:9d:80:9c:73:3a     type                0x8100
            priority            0                     CFI                 0
            id                  103                   type                0x800
            version             4                     header_length       20
            tos                 0x0                   total_length        52
            id                  0x45c6                flag                0x2
            flag_offset         0x0                   time_to_live        64
            protocol            0x6                   checksum            0x963b
            source ip address   172.16.3.71           dest ip address     172.16.3.91
            source port number  548                   dst port number     57185
            sequence number     4002378758            ack number          3773996523
            header length       32                    tcp flag            -A----
            window size         19450                 tcp_checksum        0xe2e0
            urgent pointer      0
            data                12        bytes
            n_extended_data     0

            -------------------------------------------------------------------------------------
    :
  (後略)
(debug)#

レポートグラフ作成時の集計時間範囲

ここでは,レポートグラフ作成時にトラフィックを集計する時間範囲についてご説明します。

GenieATMのトラフィックレポートは,主にフローレコードとSNMPで取得したトラフィックが元データになります。

フローレコードはルータから随時送られてきており,コレクタへの到着時刻に基づいて集計されます。30分単位のレポートであれば,0分0秒~29分59秒に届いたフローを集計して0分時点のプロット値を算出し,30分0秒~59分59秒のフローで30分時点のプロット値を算出します。同様に,5分単位のレポートは,例えば13時30分0秒~13時34分59秒のフローを集計して13時30分の値をプロットします。

一方,SNMPベースのレポートは,5分ごとの累積トラフィック値の取得に基づいて算出されます。取得は,毎時1分,6分,…56分に行われ,例えば13時31分に取得した値は,13時26分に取得した値からの増分を取ることで5分間のトラフィックを算出し,13時30分時点のトラフィックとしてプロットします。

Report_Graph

このように,フローベースとSNMPベースで同じ時刻のプロットでも集計範囲が異なりますので注意が必要です。

関連トピック

レポートグラフ

ネットワーク境界とは

GenieATMでホームネットワークやサブネットワークを定義する際は,通常ネットワーク境界も合わせて定義します。これにより,あるトラフィックが経由した複数のルータがフローを生成した場合に,フローコレクタがそれらのフローレコードを別々のトラフィックとして計上してしまう「ダブルカウント問題」を防ぐことができます。

下図のようにインタネットから4台のルータを経由してトラフィックがサブネットワークに届いた場合,すべてのルータがフローを生成する設定であればコレクタは4つのフローレコードを受け取ることになります。一般的にダブルカウントを避けるには,名寄せにより同一トラフィックを表すフローレコードを特定し,重複分を消し込む必要がありますが,非常に複雑な処理を要します。

インターネットから流入するトラフィック

しかし,例えばインターネット-ホームネットワーク間のトラフィックのみに着目したレポートを作成するのであれば,ネットワーク境界を定義することでダブルカウントを避けることができます。下図のように2つのルータR1,R2のインターネットに接するインターフェイスを境界と定めると,インターネット-ホームネットワーク間のトラフィックは,これらのインターフェイスを一度だけ通過します。したがって,そのときに発生するフローレコードのみを集計すれば正しいトラフィックレポートを作ることができます。

インターネット境界の定義

この例で,計上されるのはR1が生成するフローレコードのみです。トラフィックはR2も通りますが,境界インターフェイスは通過しないためR2のフローレコードは対象となりません。

同様にサブネットワークについても境界を設定することで,インターネットからのトラフィックもサブネットワーク間のトラフィックも正確に算出することができます。以下の例では,真ん中のサブネットワークの境界を定義することにより,他のサブネットワークからのトラフィックも,インターネットからのトラフィックも重複なくカウントすることができます。
サブネットワーク境界の定義

関連トピック

スコープとは