内容

はじめに

前提条件

要件

使用するコンポーネント

バックグラウンド情報

設定

InsideおよびOutsideでICMPを許可し、レート制限を50に増やす：オプション

確認

トラブルシュート

関連情報

はじめに

このドキュメントでは、脅威対策サービスポリシーを使用してFirepower Threat Defense(FTD)を介したtracerouteを許可するための設定について説明します。

前提条件

要件

次の項目に関する知識があることが推奨されます。

- Firepower Threat Defense（FTD）

- Firepower Management Center（FMC）

使用するコンポーネント

このドキュメントの情報は、次のソフトウェアとハードウェアのバージョンに基づいています。

- この記事は、すべてのFirepowerプラットフォームに適用されます。

- ソフトウェアバージョン6.4.0が稼働するCisco Firepower Threat Defense(FTD)

- ソフトウェアバージョン6.4.0が稼働するCisco Firepower Management Center(FMC)Virtual。

このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されたものです。このドキュメントで使用するすべてのデバイスは、クリアな（デフォルト）設定で作業を開始しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。

バックグラウンド情報

tracerouteは、パケットが最終的な宛先に到達するまでのルートを決定するのに役立ちます。tracerouteは、ユーザデータグラムプロトコル(UDP)パケットを無効なポート上の宛先に送信することによって機能します。ポートが有効でないため、宛先までの経路に沿ったルータがインターネット制御メッセージプロトコル(ICMP)の「Time Exceeded」メッセージで応答し、そのエラーを適応型セキュリティアプライアンス(ASA)に報告します。

tracerouteは送信された各プローブの結果を示し、出力の各行は存続可能時間(TTL)値に昇順で対応しています。次の表に、出力シンボルの説明を示します。

出力シンボル

説明

*

タイムアウト期間内にプローブに対する応答が受信されませんでした。

nn msec

各ノードについて、指定されたプローブ数のラウンドトリップ時間（ミリ秒）。

!N

ICMPネットワークに到達できません。

!H

ICMPホストに到達できません。

!P

ICMPプロトコル/ポートに到達できません。

!A

ICMPは管理上禁止されています。

?

不明なICMPエラーです。

デフォルトでは、ASAはtracerouteではホップとして表示されません。これを表示するには、ASAを通過するパケットの存続可能時間(TTL)を減らし、ICMP到達不能メッセージのレート制限を増やします。

注意: time-to-live（TTL；存続可能時間）を減らすと、TTLが1のパケットは廃棄されますが、TTLの大きいパケットが接続に含まれていると仮定すると、そのセッションに対して接続がオープンされます。OSPF helloパケットなど、一部のパケットはTTL = 1で送信されるため、存続可能時間(TTL)を減らすと予期しない結果になる場合があります。トラフィッククラスを定義する際は、次の点に注意してください。

設定

1. tracerouteレポートを有効にする必要があるトラフィッククラスを定義する拡張ACLを作成します。

2. FMC GUIにログインして、Objects > Object Management > Access Listの順に選択します。 目次からExtendedを選択し、新しい拡張アクセスリストを追加します。

3. オブジェクトの名前を入力します。たとえば、図に示すように、Traceroute_ACLで、ICMPタイプ3および11を許可するルールを追加して保存します。

4. 存続可能時間(TTL)値を減らすサービスポリシールールを設定します。

5. Policies > Access Control の順に移動し、デバイスに割り当てられているポリシーをEditします。Advancedタブで、Threat Defense Service Policyを編集し、Add RuleタブでAdd a new ruleを選択してから、Globalチェックボックスを選択してグローバルに適用するか、TTL-decrementを適用する特定のゾーンを選択します)を選択し、図に示すようにNextをクリックします。

6. Traffic Flow > Extended Access Listの順に移動し、前のステップで作成したドロップダウンメニューからExtended Access List Objectを選択します。次の図に示すように、Nextをクリックします。

7. Enable Decrement TTLチェックボックスを選択して、その他の接続オプションを変更します（オプション）。 次に、Finishをクリックしてルールを追加し、OKをクリックして、図に示すようにThreat Defense Serviceポリシーに対する変更を保存します。

8. 前の手順が完了したら、アクセスコントロールポリシーを保存します。

InsideおよびOutsideでICMPを許可し、レート制限を50に増やす：オプション

1. Devices > Platform Settingsの順に移動し、次に新しいFirepower Threat Defenseプラットフォーム設定ポリシーをEditまたはCreateし、デバイスに関連付けます。目次からICMPを選択し、レート制限を大きくします。たとえば、50に設定した場合（バーストサイズは無視できます）、Saveをクリックしてから、図に示すように、ポリシーをデバイスに展開します。

- Rate Limit:到達不能メッセージのレート制限を1秒あたり1 ～ 100メッセージの間で設定します。デフォルトは1秒あたり1メッセージです。

- Burst Size:バーストレートを1 ～ 10の間で設定します。この値は現在システムで使用されていません。

注意：テストする対象トラフィックに対して、ICMP宛先到達不能（タイプ3）およびICMP時間超過（タイプ11）が、ACLポリシーでOutsideからInsideに許可されているか、プレフィルタポリシーでFastpathを介して許可されていることを確認します。

注:IP SLAまたはPBRがデュアルISPシナリオ用に設定されている場合、プラットフォーム設定でICMP設定の一部としてICMPタイプ0および8を追加してください。そうでない場合、SLAに障害が発生し、SLAに関連付けられたデフォルトルートがRIBから取り出され、トラフィックが停止する可能性があります。

確認

ポリシーの導入が完了したら、FTD CLIから設定を確認します。

FTD# show run policy-map

!

policy-map type inspect dns preset_dns_map

---Output omitted---

class class_map_Traceroute_ACL

set connection timeout idle 1:00:00

set connection decrement-ttl

class class-default

!

FTD# show run class-map

!

class-map inspection_default

---Output omitted---

class-map class_map_Traceroute_ACL

match access-list Traceroute_ACL

!

FTD# show run access-list Traceroute_ACL

access-list Traceroute_ACL extended permit object-group ProxySG_ExtendedACL_30064773500 any any log

FTD#

トラブルシュート

FTDの入力および出力インターフェイスで一意のトラフィックのキャプチャを取得し、問題をさらにトラブルシューティングできます。ホストからtracerouteを実行している間にLinaでパケットキャプチャを行うと、ターゲットIPに到達するまでのルートの各ホップに関してこれを表示できます。

ftd64# capture icmp interface inside real-time match icmp any any

Warning: using this option with a slow console connection may

result in an excessive amount of non-displayed packets

due to performance limitations.

Use ctrl-c to terminate real-time capture

1: 00:22:04.192800       10.0.0.1 > 10.10.10.11 icmp: time exceeded in-transit

2: 00:22:04.194432       10.0.0.1 > 10.10.10.11 icmp: time exceeded in-transit

3: 00:22:04.194447       10.0.0.1 > 10.10.10.11 icmp: time exceeded in-transit

4: 00:22:04.194981       172.16.1.1 > 10.10.10.11 icmp: time exceeded in-transit

5: 00:22:04.194997       172.16.1.1 > 10.10.10.11 icmp: time exceeded in-transit

6: 00:22:04.201130       10.122.149.1 > 10.10.10.11 icmp: time exceeded in-transit

7: 00:22:04.201146       10.122.149.1 > 10.10.10.11 icmp: time exceeded in-transit

8: 00:22:04.201161       172.16.1.1 > 10.10.10.11 icmp: time exceeded in-transit

9: 00:22:04.201375       10.0.114.197 > 10.10.10.11 icmp: time exceeded in-transit

10: 00:22:04.201420       10.0.254.225 > 10.10.10.11 icmp: time exceeded in-transit

11: 00:22:04.202336       10.122.149.1 > 10.10.10.11 icmp: time exceeded in-transit

12: 00:22:04.202519       10.0.127.113 > 10.10.10.11 icmp: time exceeded in-transit

13: 00:22:04.216022       10.0.127.113 > 10.10.10.11 icmp: time exceeded in-transit

14: 00:22:04.216038       10.0.127.113 > 10.10.10.11 icmp: time exceeded in-transit

15: 00:22:04.216038       10.0.114.197 > 10.10.10.11 icmp: time exceeded in-transit

16: 00:22:04.216053       10.0.114.197 > 10.10.10.11 icmp: time exceeded in-transit

17: 00:22:04.216297       172.18.127.245 > 10.10.10.11 icmp: 172.18.127.245 udp port 33452 unreachable

18: 00:22:04.216312       10.0.254.225 > 10.10.10.11 icmp: time exceeded in-transit

19: 00:22:04.216327       10.0.254.225 > 10.10.10.11 icmp: time exceeded in-transit

さらに詳細な出力をLina CLIで取得するには、次に示すように – Iスイッチと – nスイッチを使用してtracerouteを実行します。

[ On the Client PC ]

# traceroute 10.18.127.245 -I -n

Note: You may not observe any difference between traceroute with or without -I switch. The difference is noticeable in the packet captures.

[ On FTD Lina CLI ]

ftd64# capture icmp interface inside real-time match icmp any any

Warning: using this option with a slow console connection may

result in an excessive amount of non-displayed packets

due to performance limitations.

Use ctrl-c to terminate real-time capture

1: 18:37:33.517307       10.10.10.11 > 172.18.127.245 icmp: echo request

2: 18:37:33.517642       10.10.10.11 > 172.18.127.245 icmp: echo request

3: 18:37:33.517658       10.10.10.11 > 172.18.127.245 icmp: echo request

4: 18:37:33.517658       10.10.10.11 > 172.18.127.245 icmp: echo request

5: 18:37:33.517673       10.10.10.11 > 172.18.127.245 icmp: echo request

6: 18:37:33.517673       10.10.10.11 > 172.18.127.245 icmp: echo request

7: 18:37:33.517673       10.10.10.11 > 172.18.127.245 icmp: echo request

8: 18:37:33.517749       10.10.10.11 > 172.18.127.245 icmp: echo request

9: 18:37:33.517749       10.10.10.11 > 172.18.127.245 icmp: echo request

10: 18:37:33.517764       10.10.10.11 > 172.18.127.245 icmp: echo request

11: 18:37:33.517764       10.10.10.11 > 172.18.127.245 icmp: echo request

12: 18:37:33.517826       10.10.10.11 > 172.18.127.245 icmp: echo request

13: 18:37:33.517826       10.10.10.11 > 172.18.127.245 icmp: echo request

14: 18:37:33.517826       10.10.10.11 > 172.18.127.245 icmp: echo request

15: 18:37:33.517932       10.10.10.11 > 172.18.127.245 icmp: echo request

16: 18:37:33.517932       10.10.10.11 > 172.18.127.245 icmp: echo request

17: 18:37:33.522464       10.0.0.1 > 10.10.10.11 icmp: time exceeded in-transit

18: 18:37:33.522510       10.0.0.1 > 10.10.10.11 icmp: time exceeded in-transit

19: 18:37:33.522510       10.0.0.1 > 10.10.10.11 icmp: time exceeded in-transit

20: 18:37:33.522632       172.16.1.1 > 10.10.10.11 icmp: time exceeded in-transit

21: 18:37:33.522647       172.16.1.1 > 10.10.10.11 icmp: time exceeded in-transit

22: 18:37:33.522647       172.16.1.1 > 10.10.10.11 icmp: time exceeded in-transit

23: 18:37:33.523852       10.0.114.197 > 10.10.10.11 icmp: time exceeded in-transit

24: 18:37:33.523929       10.0.114.197 > 10.10.10.11 icmp: time exceeded in-transit

25: 18:37:33.523944       10.0.114.197 > 10.10.10.11 icmp: time exceeded in-transit

26: 18:37:33.524066       10.0.127.113 > 10.10.10.11 icmp: time exceeded in-transit

27: 18:37:33.524127       10.0.254.225 > 10.10.10.11 icmp: time exceeded in-transit

28: 18:37:33.524127       10.0.127.113 > 10.10.10.11 icmp: time exceeded in-transit

29: 18:37:33.524142       10.0.127.113 > 10.10.10.11 icmp: time exceeded in-transit

30: 18:37:33.526767       10.122.149.1 > 10.10.10.11 icmp: time exceeded in-transit

31: 18:37:33.526843       10.122.149.1 > 10.10.10.11 icmp: time exceeded in-transit

32: 18:37:33.526843       10.122.149.1 > 10.10.10.11 icmp: time exceeded in-transit

33: 18:37:33.527652       10.10.10.11 > 172.18.127.245 icmp: echo request

34: 18:37:33.527697       10.10.10.11 > 172.18.127.245 icmp: echo request

35: 18:37:33.527713       10.10.10.11 > 172.18.127.245 icmp: echo request

36: 18:37:33.527728       10.10.10.11 > 172.18.127.245 icmp: echo request

37: 18:37:33.527987       10.10.10.11 > 172.18.127.245 icmp: echo request

38: 18:37:33.528033       10.10.10.11 > 172.18.127.245 icmp: echo request

39: 18:37:33.528048       10.10.10.11 > 172.18.127.245 icmp: echo request

40: 18:37:33.528048       10.10.10.11 > 172.18.127.245 icmp: echo request

41: 18:37:33.528064       10.10.10.11 > 172.18.127.245 icmp: echo request

42: 18:37:33.528064       10.10.10.11 > 172.18.127.245 icmp: echo request

43: 18:37:33.528079       10.10.10.11 > 172.18.127.245 icmp: echo request

44: 18:37:33.528094       10.10.10.11 > 172.18.127.245 icmp: echo request

45: 18:37:33.528094       10.10.10.11 > 172.18.127.245 icmp: echo request

46: 18:37:33.532870       10.0.254.225 > 10.10.10.11 icmp: time exceeded in-transit

47: 18:37:33.532885       10.0.254.225 > 10.10.10.11 icmp: time exceeded in-transit

48: 18:37:33.533679       172.18.127.245 > 10.10.10.11 icmp: echo reply

49: 18:37:33.533694       172.18.127.245 > 10.10.10.11 icmp: echo reply

50: 18:37:33.533694       172.18.127.245 > 10.10.10.11 icmp: echo reply

51: 18:37:33.533694       172.18.127.245 > 10.10.10.11 icmp: echo reply

52: 18:37:33.533694       172.18.127.245 > 10.10.10.11 icmp: echo reply

53: 18:37:33.533724       172.18.127.245 > 10.10.10.11 icmp: echo reply

54: 18:37:33.533724       172.18.127.245 > 10.10.10.11 icmp: echo reply

55: 18:37:33.533724       172.18.127.245 > 10.10.10.11 icmp: echo reply

56: 18:37:33.533740       10.10.10.11 > 172.18.127.245 icmp: echo request

57: 18:37:33.533816       10.10.10.11 > 172.18.127.245 icmp: echo request

58: 18:37:33.533831       10.10.10.11 > 172.18.127.245 icmp: echo request

59: 18:37:33.537066       172.18.127.245 > 10.10.10.11 icmp: echo reply

60: 18:37:33.537081       172.18.127.245 > 10.10.10.11 icmp: echo reply

61: 18:37:33.537081       172.18.127.245 > 10.10.10.11 icmp: echo reply

62: 18:37:33.538500       172.18.127.245 > 10.10.10.11 icmp: echo reply

63: 18:37:33.538500       172.18.127.245 > 10.10.10.11 icmp: echo reply

64: 18:37:33.539217       172.18.127.245 > 10.10.10.11 icmp: echo reply

64 packets shown.

0 packets not shown due to performance limitations.

ヒント:Cisco Bug ID CSCvq79913 - Null pdts_infoに対するICMPエラーパケットがドロップされるICMPのプレフィルタ、できればタイプ3および11のリターントラフィックに使用してください。

関連情報

- テクニカル サポートとドキュメント – Cisco Systems