はじめに
トラフィック量の多い通信は、WAN回線やLANなど通信経路の帯域圧迫や、ASAの処理負荷上昇(主にDatapath)の原因になります。本ドキュメントではトラフィック量の多い確認方法について紹介します。
本ドキュメントは、ASAバージョン 9.6(3)3を用いて確認、作成しております。
トラフィック量の多いコネクションの確認方法
トラフィック量の多いコネクションは以下情報から確認可能です。
- 通信中の場合 ・・・ show connや show conn long
- 通信終了後の場合 ・・・ Teardownのロギングメッセージ
通信中コネクションのトラフィック量確認
show conn もしくは show conn longコマンドで、現在のActiveなコネクションと そのトラフィック量(バイト数)を確認できます。 また、ASAは Cisco正規表現に対応してます。
以下は実際のコネクション情報の出力例です。 byresが3,199,392のため、約3Mバイトのトラフィック量がある事が解ります。
UDP outside 10.0.10.254:123 inside 1.150.0.115:65535, idle 0:00:08, bytes 3199392, flags X
Cisco正規表現では .(ドット)を任意1文字として定義できるため、例えば上記コネクションを含む、1Mバイト以上 10Mバイト未満のトラフィック量のあるコネクション情報の表示は、.(ドット)を7回繰り返す事でマッチングできます。
1Mバイト以上 10Mバイト未満のコネクションの表示
show conn | in (bytes .......,)
正規表現は |(パイプ)で区切ることでOR条件でマッチングが可能です。また、show connコマンドは コネクションを簡易表示します。 詳細表示には show conn longコマンドを実行します。 以下はパイプを組み合わせた応用例です。
1Mバイト以上 1Gバイト未満のコネクションの表示
show conn | in (bytes .......,)|(bytes ........,)|(bytes .........,)
100Mバイト以上 1Tバイト未満のコネクションの詳細表示
show conn long | in (bytes .........,)|(bytes ..........,)|(bytes ...........,)|(bytes ............,)
以下は実機での実行例です。
1Mバイト以上 1Gバイト以下のコネクションの表示
ASA# show conn | in (bytes .......,)|(bytes ........,)|(bytes .........,)
TCP outside 10.xx.xx.xx:717 inside 1.xx.xx.xx:2049, idle 0:00:00, bytes 45975888, flags UIOXB
UDP outside 10.xx.xx.xx:123 inside 1.xxx.xx.xx:65535, idle 0:00:08, bytes 3199392, flags X
UDP outside 10.xx.xx.xx:20514 inside 1.xx.xx.xx:23209, idle 0:00:13, bytes 434001654, flags X
100Mバイト以上 1Tバイト未満のコネクションの詳細表示
ASA# show conn long | in (bytes .........,)|(bytes ..........,)|(bytes ...........,)|(bytes ............,)
UDP outside: 10.xx.xx.xx/20514 (10.xx.xx.xx/20514) inside: 1.xx.xx.xx/23209 (10.xx.xx.xx/23209), flags X , idle 10s, uptime 81D2h, timeout 2m0s, bytes 460972986, xlate id 0x7f68c3f1d840
UDP outside: 10.xx.xx.xx/514 (10.xx.xx.xx/514) inside: 1.xx.xx.xx/23209 (10.xx.xx.xx/23209), flags X , idle 10s, uptime 81D2h, timeout 2m0s, bytes 460973169, xlate id 0x7f68c3f1d840
通信終了後のコネクションのトラフィック量確認
コネクションが終了(切断)されると以下のシスログメッセージが生成されます。
TCPの場合
Oct 14 2017 19:32:48: %ASA-6-302014: Teardown TCP connection 971627289 for outside02:137.xx.xx.xx/80 to inside:1.xx.xx.xx/29219 duration 0:06:23 bytes 19096 TCP FINs
UDPの場合
Oct 14 2017 19:32:54: %ASA-6-302016: Teardown UDP connection 971628006 for outside02:100.xx.xx.xx/53 to inside:1.xx.xx.xx/34416 duration 0:02:15 bytes 124
ICMPの場合
Oct 14 2017 19:32:49: %ASA-6-302021: Teardown ICMP connection for faddr 1.xx.xx.xx/3172 gaddr 1.xx.xx.xx/0 laddr 1.xx.xx.xx/0 type 8 code 0
シスログサーバーで ロギングメッセージを保存している場合、TCPもしくはUDPの場合、ASA-6-302014もしくはASA-6-302016でソートし、バイト数を確認することで、トラフィック量が解ります。
ASAのロギングバッファに格納している場合は 以下コマンドでTCP/UDPのTeardownのログ一覧を確認できます。
show log | in 30201[4,6]
コマンド実行例
ASA# show log | in 30201[4,6]
Oct 14 2017 19:43:30: %ASA-6-302014: Teardown TCP connection 971630713 for outside:72.xx.xx.xx/51850 to inside:1.xx.xx.xx/443 duration 0:05:00 bytes 3401 TCP FINs
Oct 14 2017 19:43:31: %ASA-6-302016: Teardown UDP connection 971631347 for outside:64.xx.xx.xx/53 to identity:10.xx.xx.xx/11636 duration 0:02:01 bytes 133
Oct 14 2017 19:43:31: %ASA-6-302014: Teardown TCP connection 971630715 for outside:72.xx.xx.xx/51852 to inside:1.xx.xx.xx/443 duration 0:05:01 bytes 64259 TCP FINs
トラフィック量の多い IPアドレスの確認方法 (ASDM)
Home > Firewall Dashboardから、ACL利用状況やトラフィック量の多い送信元や宛先IPアドレスのTOP 10を確認可能です。トラフィック量の多いIPアドレスを確認するには、Top Usage Status欄のBased on:から[Bytes]を選択してください。

なお、ASDMで統計情報を利用するには事前にASDM上で統計の有効化(Enable)が必要です。採取レートは 1時間、8時間、24時間から1つを選択できます。

コネクション数の多いホストの確認方法 (show local-host)
例えば SYNフラッド攻撃や、コネクションフラッド攻撃など、1つ1つのコネクションのトラフィック量は少なくても、コネクションを多重に貼る事で 通信負荷上昇や帯域圧迫を引き起こすケースがあります。
例えば、TCPコネクション数が30以上のホストとコネクションの確認は、show local-host connection tcp 30コマンドで確認できます。
ASA# show local-host connection tcp 30
Interface manage: 0 active, 0 maximum active, 0 denied
Interface test: 0 active, 0 maximum active, 0 denied
Interface outside02: 43 active, 19158 maximum active, 0 denied
local host: <137.xx.xx.xx>, <---- 通信量の多いホストIP
SCTP flow count/limit = 0/unlimited
TCP flow count/limit = 39/unlimited
TCP embryonic count to host = 0
TCP intercept watermark = unlimited
UDP flow count/limit = 0/unlimited
Conn:
TCP outside02 137.xx.xx.xx:80 inside 1.xx.xx.xx:32129, idle 0:00:01, bytes 158, flags UOX
TCP outside02 137.xx.xx.xx:80 inside 1.xx.xx.xx:32121, idle 0:00:01, bytes 158, flags UfrOX
TCP outside02 137.xx.xx.xx:80 inside 1.xx.xx.xx:32113, idle 0:00:11, bytes 158, flags UfrOX
TCP outside02 137.xx.xx.xx:80 inside 1.xx.xx.xx:32105, idle 0:00:21, bytes 158, flags UfrOX
TCP outside02 137.xx.xx.xx:80 inside 1.xx.xx.xx:32086, idle 0:00:31, bytes 158, flags UfrOX
TCP outside02 137.xx.xx.xx:80 inside 1.xx.xx.xx:32076, idle 0:00:41, bytes 158, flags UfrOX
TCP outside02 137.xx.xx.xx:80 inside 1.xx.xx.xx:32068, idle 0:00:51, bytes 158, flags UfrOX
TCP outside02 137.xx.xx.xx:80 inside 1.xx.xx.xx:32060, idle 0:01:01, bytes 158, flags UfrOX
TCP outside02 137.xx.xx.xx:80 inside 1.xx.xx.xx:32051, idle 0:01:11, bytes 158, flags UfrOX
show local-hostコマンドについて詳しくは以下ドキュメントを参照してください。
ASA: show local-host コマンドの活用例
https://supportforums.cisco.com/t5/-/-/ta-p/3156058
その他 トラフィック量の集計方法 (ネットフロー)
より細かくトラフィック量の確認や 集計と分析を実施したい場合は、ネットフローの利用を検討します。ASAは Netflow version 9に対応し、ASAのネットフローは軽快に動作します。 ASAのネットフローは、通信量が多くシスログメッセージ出力が膨大かつ高負荷となる大規模環境向けに、より低負荷な通信状況確認のために開発・実装されました。
なお、ASAは独自のテンプレートを利用するため、対応したネットフローコレクタの利用が必要です。例えば、ManageEngine社のNetFlow Analyzerや、Solarwinds社のNTAなどが、ASAのネットフローに対応してます。 ネットフローコレクタは 多くの場合、柔軟な通信状況の確認や集計と分析が得意です。
ASDMでのネットフロー設定例は以下を参考にしてください。
https://supportforums.cisco.com/t5/-/-/ta-p/3119466
ASAとNetflowコレクタの設定例やベストプラクティスは、各社サポートサイトなどでも確認できます。
参考情報
ファイアウォール トラブルシューティング
https://supportforums.cisco.com/t5/-/-/ta-p/3161736
Firepower System and FTDトラブルシューティング
https://community.cisco.com/t5/-/-/ta-p/3161733