カテゴリー別アーカイブ: TIPs

運用で活用すると便利なケースと設定についてです。

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

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はこの項目が適切に設定されていないと当該フローパケットを正しく解析することができません。

Exporterが4台以上追加できない

5代目のルータを追加しようとすると,エラーメッセージが表示されて失敗することがあります。
これは,db initコマンドでDBを初期化した場合など,GUIのコレクタ定義にモデル名が設定されていないことが原因です。

コレクタのモデル名を設定するには,以下の操作を行います。

  1. 以下のメニューから内蔵コレクタ情報の編集画面を開きます。
  2. システム管理 > デバイス > コレクター

  3. 編集画面でSNMP IPアドレスとCommunity Stringを入力してからSNMPWALKボタンを押します。Community StringはCLIのsnmp-server community readコマンドで設定します。
  4. SNMPWALK情報が表示されたら更新ボタンを押して,CLI設定エリアのモデル番号や管理ステータスに反映させます。
  5. 最後に実行ボタンを押して内容を確定させればコレクタモデルごとの最大数までルータが登録できるようになります。
  6. コレクタ定義の初期設定

なお,5台目のExporterを追加しようとしたときのエラーメッセージはバージョンによって異なります。

バージョン メッセージ
~ 5.3.3 No Collector Available!
5.5.1 ~ 5.5.4 RP2 The maxmimum number of Collector1 (127.0.0.1) is 4!
5.5.4 RP3 ~ The default maximum number of routers managed by Collector1 (127.0.0.1) is 4!
Please check collector model number.

Blackholeポリシーが機能しない

DoS攻撃防御のためのブラックホールルーティングにおいてNullルートのIPアドレスに0.0.0.0を設定すると,DoS防御が発動されてもルート変更が有効にならないケースがあります。
定義済のBGP ネクストホップ
これは,ルータが0.0.0.0のアドレスをNext Hopとして採用しないことが原因の場合があります。このときの動作はルータの実装に依りますが,たとえば,vyattaでは以下のようなログが出力されて,失敗します。

Apr 8 05:31:18 vyatta254 bgpd[2322]: 172.16.2.8 rcvd UPDATE w/ attr: nexthop 0.0.0.0, origin i, localpref 255, metric 0, community 1:1,path 
Apr 8 05:31:18 vyatta254 bgpd[2322]: 172.16.2.8 rcvd UPDATE about 20.1.0.0/24 -- DENIED due to: martian next-hop;

そのため,Nullルートとしては0.0.0.0以外のIPアドレスを設定するようにしてください。

関連トピック

デバイス連携のミチゲーションポリシーが発動しない

NFS使用時の注意点

GenieATMでは,レポートや構成情報を保存するDBと,受信したフローレコードを保存するRawdataファイルおよび異常RawdataファイルをNFS上に持つことができます。

このときのNFS側の設定として,以下の点に注意してください。

ストレージの分離

DBとRawdataファイル,異常Rawdataファイルをそれぞれ異なるストレージを割り当ててください。

システムはディスク使用率が高くなると自動的に古いデータを消して空き容量を確保しようとしますが,異なる種類のデータが同じストレージに割り当てられていると使用率の算出が正しくできません。詳しくは,ディスク使用率の維持を参照してください。

NFSのオプション

GenieATMはNFSバージョン2,3,4に対応しています。また,TCP接続にも対応しています。詳しくはdisk mount db/raw/anomaly_rawを参照してください。

パーミッション

GenieATMは,NFS関連のオペレーションを以下の権限で行います。

オペレーション ユーザ名 UID,GID
NFSマウント root 0, 0
DB操作 root
postgres
www-data
0, 0
31, 32
33, 33
Rawdataファイル操作 root 0, 0

これらのユーザが読み書きできるようにパーミッションを設定してください。
多くのケースでは,GenieATMからのアクセスに限定したうえで任意ユーザが読み書き可能(パーミッション777)に設定しています。

その他の注意点
  • root squash(rootを別ユーザに変換する機能)は無効にしてください
  • できる限り1000BASE-Tで接続してください。(GenieATM側はオートネゴシエーションです。)一般的にNFSへのアクセスは内蔵ディスクへのアクセスより低速になるため,回線が遅いとタイムアウトなどが発生する可能性があります。
  • NFSv4で接続する場合は,NFS側でidmapdが稼働するため,NFS側にもGenieATMと同じuid,gidでpostgres,www-dataのユーザを登録しておく必要があります。