site_admin のすべての投稿

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

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

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種類あります。

  • 折れ線グラフ
  • 積み上げグラフ
  • 棒グラフ
  • 円グラフ

折れ線グラフと積み上げグラフは,標準レポートとルールベースレポートにおけるもっとも標準的なフォーマットで,トラフィックの時系列の推移を見るのに適しています。

サブネットワーク比較レポート

プロットの粒度は,以下のように表示期間によって自動的に決まります。

表示期間 プロットの粒度
表示期間 ≦ 24時間 5分
24時間 < 表示期間 ≦ 7日 30分
7日 < 表示期間 ≦ 3か月 2時間
3か月 < 表示期間 1日

出力に「CSVファイルに保存」を指定してダウンロードしたときのファイルにも同じルールが適用されます。

また,棒グラフと円グラフは,表示期間中の積算を秒平均のトラフィックに換算した数値で表示します。これは,グラフの下に表示されるTopNテーブル(平均値)をグラフ化したものです。

一方,短時間のトラフィックの傾向を見るためのスナップショットでは,表示形式は円グラフのみとなっています。

関連トピック

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

ネットワーク境界とは

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

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

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

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

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

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

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

関連トピック

スコープとは

access group

firewall enableコマンドと合わせてネットワークアクセス制御を行います。

書式

[no] access group <ip-address> netmask <netmask> protocol {<protocol-number> | icmp | ip | { tcp | udp } <port> | vrrp }{ deny | permit }

パラメータ

キーワード 説明
<ip-address> 対象となるIPv4アドレスまたはサブネットアドレス
<netmask> <ip-address>パラメータに適用されるサブネットマスク
<protocol-number> プロトコルを番号で指定する場合に使用(1~255)
<port> プロトコルとしてTCP, UDPが選択された場合に宛先(GenieATM側)ポート番号を指定(1~65535)

デフォルト設定

なし

コマンドモード

Global Configuration Mode

説明

  • 外部との通信に適用されるファイアウォールのルールを定義します。ACL(Access Control List)同様,access groupコマンドが発行された順にpermitまたはdenyが確定するまで照会していきます。どれにも一致しなかった場合の扱いは,firewall enableが有効かどうかで決まります。firewall enableが有効であれば暗黙のdenyによりブロックされ,無効であれば許可されます。
  • access groupコマンドで明示的にpermitもdenyも設定されていない相手先については,firewall enableコマンドで暗黙のdenyが有効になっていても,GenieATM側からはセッションを確立し,応答パケットを受け取ることができます。
  • 登録した設定を削除するには,no access groupコマンドを発行します。
  • 現在の設定を確認するには,show runningコマンドを発行します。

注意事項

  • [no] access groupコマンドは,firewall enableコマンドが無効な状態で実行してください。(バージョン5.6.3-RP3まではfirewall enableが有効な状態でも発行できますが,想定外の結果を招く場合がありますので避けてください)
  • access groupコマンドの指定内容はコマンド発行直後から有効になります。つまり,denyを指定してaccess groupコマンドを実行した場合,条件に一致するトラフィックは即座にブロックされるようになります。
  • コントローラ,コレクタのSNMP IPアドレスをローカル・ループバック・アドレス(127.0.0.1)以外に設定している場合は,コントローラ―コレクタ間の通信がブロックされないために,それらのIPアドレスも明示的に許可してください。
  • ExporterのIPアドレスをブロックしてしまうとフローレコードが取得できなくなります。
  • GenieATM側からセッションを張りに行く相手先については,firewall enableを有効にする場合でも明示的にpermitを設定する必要はありません。たとえば,BGP接続はGenieATMのBGPの仕様上,常にGenieATMからセッションを張りに行きます。DNSサーバやNTPサーバについても,GenieATMがクライアントになるのでこれに該当します
  • access groupコマンドは最大128件登録することができます。これは,機能を実現するのに使われているip-tablesの制限です。129件目を登録しようとするとエラーになります。

実行例

(config)# access group 172.16.2.0 netmask 255.255.255.0 protocol tcp 80 deny
(config)# show running
#### show running configure ####
!
(中略)
  ip route 172.16.0.0 255.255.0.0 192.168.0.1 0
  access group 172.16.3.58 netmask 255.255.255.255 protocol ip permit
  access group 172.16.3.0 netmask 255.255.255.0 protocol ip deny
  access group 172.16.2.0 netmask 255.255.255.0 protocol tcp 443 permit
  access group 172.16.2.0 netmask 255.255.255.0 protocol tcp 80 deny
  module id collector 3001
(中略)
!
!
(config)# 

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.

異常トラフィック検出機能 – アプリケーション異常

GenieATMが持つ3種類の異常トラフィック検出機能のうち,アプリケーション異常についてご説明します。

アプリケーション異常は,DDoS攻撃およびワームに感染したホストが発するトラフィックを検出する機能です。プロトコル不正使用と同様,検出をミチゲーション発動のトリガーとすることができます。(ただし,ワーム検出時の自動ミチゲーションはFlowSpecポリシーでのみ可能です)

アプリケーション異常検出機能の最大の特徴は,シグニチャを自由に定義できることです。以下の項目について条件を設定することができ,特定のIPアドレスを送信元あるいは送信先とするトラフィックのうちシグニチャに一致するものが閾値を超えると異常トラフィックとして検出します。

  • 攻撃タイプ
  • パケット数/フロー
  • バイト数/フロー
  • バイト数/パケット
  • TCPフラグ
  • TOS値
  • TCPフラグ
  • プロトコル
  • ICMPメッセージタイプとコード
  • ポート番号
  • ダークIPアドレスに該当するか
  • プレフィックス

最初に,攻撃タイプとしてDDoSあるいはワームを指定します。DDoSの場合は,条件に一致するトラフィックを送信先IPアドレス単位で集計し,閾値を超えると異常検出となります。(この動作はプロトコル不正使用と同じです。)一方,ワームの場合,送信元IPアドレス単位でトラフィックを集計します。ワームタイプについては,個別の異常サマリレポートに加えて異常トラフィックレポートが生成されます。

攻撃タイプ 検出ベース レポート レポート照会のためのメニュー
DDoS 送信先IPアドレス 個別のアノマリーレポート ステータス > サマリ
ステータス > 異常一覧コンソール
ワーム 送信元IPアドレス 個別のアノマリーレポート ステータス > サマリ
ステータス > 異常一覧コンソール
サマリ・レポート
感染ホストレポート
インターフェースレポート
サブネットワークレポート
異常トラフィック > ワーム
異常トラフィック > ワーム > 詳細レポート
異常トラフィック > ワーム > 詳細レポート
異常トラフィック > ワーム > 詳細レポート

異常判定は30秒ごとのトラフィックについて行い,30秒平均が2回連続で閾値を上回ると異常トラフィックと判定します。(バージョン5.6.3までは1分平均のトラフィックが2回連続で閾値を上回ることが検出条件です)また,閾値は,bpsとppsについて設定でき,両方設定した場合はどちらかを超えた場合に検出となります。

関連トピック

3種類の異常トラフィック検出機能の比較
ダークIPレポートとワームレポート

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アドレスを設定するようにしてください。

関連トピック

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

IP->国名 マッピングテーブルの更新

IPアドレスと国名のマッピングテーブルは次のページから「インポート」ボタンで更新することができます。

システム管理 > プリファレンス > ネームマッピング > IP->国名 タブ

最新のマッピングテーブルファイルは,DB-IPのサイトなどから取得することができます。(2015年12月現在)

読み込ませたファイルにIPv6アドレスに関するレコードや国名がブランクのレコードが含まれているとエラー扱いとなり,最後に一覧表示されます。しかし,それ以外の有効なレコードによりGenieATM上のマッピングテーブルは更新されます。

IP->国名マッピングファイル読み込みエラー” /></p>
	</div><!-- .entry-content -->
	
	<footer class=

db use
rawdata use
rawdata anomaly use

DB,Rawdataファイル,異常Rawdataファイルを配置するストレージタイプを指定します。

書式

[no] db use {internal | external | nfs}
[no] rawdata use {internal | nfs}
[no] rawdata anomaly use {internal | nfs}

パラメータ

なし

デフォルト設定

なし

コマンドモード

Global Configuration Mode

説明

  • disk mountコマンドでマウント済みのストレージのなかから,DB,Rawdataファイル,異常Rawdataファイルを配置するストレージのタイプを選定します。
  • db useコマンドが実行されると,マウントポイントにユーザーID 31,グループID 32でatm_conf,dataディレクトリが作成されます。
  • 設定を削除するにはno db useコマンドあるいはno rawdata useコマンド,no rawdata anomaly useコマンドを実行します。
  • 現在の設定はshow runningコマンドで確認できます。

注意事項

  • 指定するストレージタイプは,あらかじめdisk mountコマンドでマウント済みである必要があります。ディスク関連コマンドの流れは下図を参照してください。
  • ディスク関連CLIコマンド
    * db initコマンドは,既存のDBを初期化します。構成・レポートデータ等を引き継ぐ場合は実行しないでください。

  • no db useコマンドは,db startコマンドでデータベースが起動済みのときは実行できません。db stopコマンドで停止してください。no rawdata useコマンド,no rawdata anomaly useコマンドも,それぞれrawdata onコマンド,rawdata anomaly onコマンドでrawdataの保存が有効な状態では実行できません。

実行例

(config)# show running
#### show running configure ####
!
(中略)
  disk mount raw internal sdb4
  disk mount raw nfs 192.168.0.100 /export/testraw 3
  rawdata format general
  disk mount anomaly_raw internal sdb5
  disk mount db internal sdb3
  disk mount db nfs 192.168.0.101 /export/genie/testdb02 3 tcp
(中略)
!
(config)# rawdata use nfs
(config)# db use internal
##### WARNING #####
This command will set the type of storage for Database data as the
type you specified.

Are you sure you want to do this? [y/n]
y
Operation succeeded.
(config)# show running
#### show running configure ####
!
(中略)
  disk mount raw internal sdb4
  disk mount raw nfs 192.168.0.100 /export/testraw 3
  rawdata use nfs
  rawdata format general
  disk mount anomaly_raw internal sdb5
  disk mount db internal sdb3
  disk mount db nfs 192.168.0.101 /export/genie/testdb02 3 tcp
  db use internal
(中略)
!
(config)# rawdata on
(config)# exit
# db start
##### WARNING #####
This command will start PostgreSQL Database with TCP/IP connection
mode enabled.
Are you sure you want to do this? [y/n]
y
server starting
#

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のユーザを登録しておく必要があります。