この製品のマニュアルセットは、偏向のない言語を使用するように配慮されています。このマニュアルセットでの偏向のない言語とは、年齢、障害、性別、人種的アイデンティティ、民族的アイデンティティ、性的指向、社会経済的地位、およびインターセクショナリティに基づく差別を意味しない言語として定義されています。製品ソフトウェアのユーザーインターフェイスにハードコードされている言語、RFP のドキュメントに基づいて使用されている言語、または参照されているサードパーティ製品で使用されている言語によりドキュメントに例外が存在する場合があります。シスコのインクルーシブランゲージに対する取り組みの詳細は、こちらをご覧ください。
シスコは世界中のユーザにそれぞれの言語でサポート コンテンツを提供するために、機械と人による翻訳を組み合わせて、本ドキュメントを翻訳しています。ただし、最高度の機械翻訳であっても、専門家による翻訳のような正確性は確保されません。シスコは、これら翻訳の正確性について法的責任を負いません。原典である英語版(リンクからアクセス可能)もあわせて参照することを推奨します。
このドキュメントでは、Firepower Next-Generation Firewall(NGFW)のクラスタセットアップのトラブルシューティングについて説明します。
次の項目に関する知識があることが推奨されます(リンクについては、「関連情報」の項を参照してください)。
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。
このドキュメントで扱う項目のほとんどは、適応型セキュリティアプライアンス(ASA)クラスタのトラブルシューティングにも完全に適用できます。
クラスタ導入の設定部分については、FMCおよびFXOSの設定ガイドで説明しています。
Firepower 41xxまたは93xxシリーズが中継パケットを処理する方法を理解することが重要です。
Firepowerアプライアンスは、トランジットフローを可視化する複数のキャプチャポイントを提供します。クラスタキャプチャをトラブルシューティングして有効にすると、主な課題は次のとおりです。
次の図は、2ユニットのクラスタ(FP941xx/FP9300など)を示しています。
非対称TCP接続が確立された場合、TCP SYN、SYN/ACK交換は次のようになります。
転送トラフィック
リターントラフィック
このシナリオの詳細については、『クラスタ接続の確立ケーススタディ』の関連セクションを参照してください。
このパケット交換に基づいて、考えられるすべてのクラスタキャプチャポイントは次のとおりです。
転送トラフィック(TCP SYNなど)のキャプチャは、次の場所で行います。
リターントラフィック(TCP SYN/ACKなど)のキャプチャを次に示します。
クラスタキャプチャを有効にする方法
FXOSキャプチャ
このプロセスについては、『FXOS Config Guide: Packet Capture
注:FXOSキャプチャは、内部スイッチの観点からは入力方向でのみ取得できます。
データプレーンのキャプチャ
すべてのクラスタメンバーでキャプチャを有効にする推奨方法は、cluster execコマンドを使用することです。
3ユニットのクラスタを考えてみましょう。
すべてのクラスタユニットにアクティブなキャプチャがあるかどうかを確認するには、次のコマンドを使用します。
firepower# cluster exec show capture
unit-1-1(LOCAL):******************************************************
unit-2-1:*************************************************************
unit-3-1:*************************************************************
firepower#
Po1.201(内部)のすべてのユニットでデータプレーンキャプチャを有効にするには、次の手順を実行します。
firepower# cluster exec capture CAPI interface INSIDE
キャプチャフィルタを指定することを強く推奨します。また、大量のトラフィックが発生する場合は、キャプチャバッファを増やすことを推奨します。
firepower# cluster exec capture CAPI buffer 33554432 interface INSIDE match tcp host 192.168.240.50 host 192.168.241.50 eq 80
検証
firepower# cluster exec show capture
unit-1-1(LOCAL):******************************************************
capture CAPI type raw-data buffer 33554432 interface INSIDE [Capturing - 5140 bytes]
match tcp host 192.168.240.50 host 192.168.241.50 eq www
unit-2-1:*************************************************************
capture CAPI type raw-data buffer 33554432 interface INSIDE [Capturing - 260 bytes]
match tcp host 192.168.240.50 host 192.168.241.50 eq www
unit-3-1:*************************************************************
capture CAPI type raw-data buffer 33554432 interface INSIDE [Capturing - 0 bytes]
match tcp host 192.168.240.50 host 192.168.241.50 eq www
すべてのキャプチャの内容を表示するには、次のコマンドを実行します(この出力は非常に長くなることがあります)。
firepower# terminal pager 24
firepower# cluster exec show capture CAPI
unit-1-1(LOCAL):******************************************************
21 packets captured
1: 11:33:09.879226 802.1Q vlan#201 P0 192.168.240.50.45456 > 192.168.241.50.80: S 2225395909:2225395909(0) win 29200 <mss 1460,sackOK,timestamp 1110209649 0,nop,wscale 7>
2: 11:33:09.880401 802.1Q vlan#201 P0 192.168.241.50.80 > 192.168.240.50.45456: S 719653963:719653963(0) ack 2225395910 win 28960 <mss 1380,sackOK,timestamp 1120565119 1110209649,nop,wscale 7>
3: 11:33:09.880691 802.1Q vlan#201 P0 192.168.240.50.45456 > 192.168.241.50.80: . ack 719653964 win 229 <nop,nop,timestamp 1110209650 1120565119>
4: 11:33:09.880783 802.1Q vlan#201 P0 192.168.240.50.45456 > 192.168.241.50.80: P 2225395910:2225396054(144) ack 719653964 win 229 <nop,nop,timestamp 1110209650 1120565119>
unit-2-1:*************************************************************
0 packet captured
0 packet shown
unit-3-1:*************************************************************
0 packet captured
0 packet shown
トレースのキャプチャ
各ユニットのデータプレーンが入力パケットをどのように処理するかを確認するには、traceキーワードを使用します。これは、最初の50個の入力パケットをトレースします。最大1000の入力パケットをトレースできます。
注:インターフェイスに複数のキャプチャが適用されている場合、1つのパケットをトレースできるのは1回だけです。
すべてのクラスタユニットのインターフェイスOUTSIDEで最初の1000個の入力パケットをトレースするには、次のコマンドを実行します。
firepower# cluster exec cap CAPO int OUTSIDE buff 33554432 trace trace-count 1000 match tcp host 192.168.240.50 host 192.168.241.50 eq www
対象のフローをキャプチャしたら、各ユニットで対象のパケットをトレースする必要があります。注意すべき重要な点は、特定のパケットをユニッ#11-1で受信し、別のユニットで受信する#2、などです。
次の例では、SYN/ACKはユニット–2-1ではパケット#2、ユニット–3-1ではパケット#1であることがわかります。
firepower# cluster exec show capture CAPO | include S.*ack
unit-1-1(LOCAL):******************************************************
1: 12:58:31.117700 802.1Q vlan#202 P0 192.168.240.50.45468 > 192.168.241.50.80: S 441626016:441626016(0) win 29200 <mss 1380,sackOK,timestamp 1115330849 0,nop,wscale 7>
2: 12:58:31.118341 802.1Q vlan#202 P0 192.168.241.50.80 > 192.168.240.50.45468: S 301658077:301658077(0) ack 441626017 win 28960 <mss 1460,sackOK,timestamp 1125686319 1115330849,nop,wscale 7>
unit-2-1:*************************************************************
unit-3-1:*************************************************************
1: 12:58:31.111429 802.1Q vlan#202 P0 192.168.241.50.80 > 192.168.240.50.45468: S 301658077:301658077(0) ack 441626017 win 28960 <mss 1460,sackOK,timestamp 1125686319 1115330849,nop,wscale 7>
ローカルユニットでパケット#2(SYN/ACK)をトレースするには、次の手順を実行します。
firepower# cluster exec show cap CAPO packet-number 2 trace
unit-1-1(LOCAL):******************************************************
2: 12:58:31.118341 802.1Q vlan#202 P0 192.168.241.50.80 > 192.168.240.50.45468: S 301658077:301658077(0) ack 441626017 win 28960 <mss 1460,sackOK,timestamp 1125686319 1115330849,nop,wscale 7>
Phase: 1
Type: CAPTURE
Subtype:
Result: ALLOW
Config:
Additional Information:
MAC Access list
...
リモートユニットで同じパケット(SYN/ACK)をトレースするには、次の手順を実行します。
firepower# cluster exec unit unit-3-1 show cap CAPO packet-number 1 trace
1: 12:58:31.111429 802.1Q vlan#202 P0 192.168.241.50.80 > 192.168.240.50.45468: S 301658077:301658077(0) ack 441626017 win 28960 <mss 1460,sackOK,timestamp 1125686319 1115330849,nop,wscale 7>
Phase: 1
Type: CAPTURE
Subtype:
Result: ALLOW
Config:
Additional Information:
MAC Access list
...
CCLキャプチャ
CCLリンクでキャプチャを有効にするには(すべてのユニットで)、次の手順を実行します。
firepower# cluster exec capture CCL interface cluster
unit-1-1(LOCAL):******************************************************
unit-2-1:*************************************************************
unit-3-1:*************************************************************
再インジェクト非表示
デフォルトでは、データプレーンデータインターフェイスで有効になっているキャプチャは、すべてのパケットを示します。
再注入されたパケットを表示しない場合は、reinject-hideオプションを使用します。これは、フローが非対称であるかどうかを確認する場合に役立ちます。
firepower# cluster exec capture CAPI_RH reinject-hide interface INSIDE match tcp host 192.168.240.50 host 192.168.241.50 eq 80
このキャプチャは、ローカルユニットが他のクラスタユニットからではなく、物理ネットワークから特定のインターフェイスで実際に受信した内容のみを示します。
ASPドロップ
特定のフローのソフトウェアドロップを確認する場合は、asp-drop キャプチャを有効にできます。フォーカスするドロップの理由がわからない場合は、キーワードallを使用します。また、パケットペイロードに関心がない場合は、headers-onlyキーワードを指定できます。これにより、20 ~ 30倍のパケットをキャプチャできます。
firepower# cluster exec cap ASP type asp-drop all buffer 33554432 headers-only
unit-1-1(LOCAL):******************************************************
unit-2-1:*************************************************************
unit-3-1:*************************************************************
さらに、ASPキャプチャで対象のIPを指定できます。
firepower# cluster exec cap ASP type asp-drop all buffer 33554432 headers-only match ip host 192.0.2.100 any
キャプチャのクリア
すべてのクラスタユニットで実行されている任意のキャプチャのバッファをクリアします。これにより、キャプチャは停止されず、バッファだけがクリアされます。
firepower# cluster exec clear capture /all
unit-1-1(LOCAL):******************************************************
unit-2-1:*************************************************************
unit-3-1:*************************************************************
キャプチャの停止
すべてのクラスタユニットでアクティブなキャプチャを停止するには、2つの方法があります。後で再開できます。
方法1
firepower# cluster exec cap CAPI stop
unit-1-1(LOCAL):******************************************************
unit-2-1:*************************************************************
unit-3-1:*************************************************************
再開するには
firepower# cluster exec no capture CAPI stop
unit-1-1(LOCAL):******************************************************
unit-2-1:*************************************************************
unit-3-1:*************************************************************
方法2
firepower# cluster exec no capture CAPI interface INSIDE
unit-1-1(LOCAL):******************************************************
unit-2-1:*************************************************************
unit-3-1:*************************************************************
再開するには
firepower# cluster exec capture CAPI interface INSIDE
unit-1-1(LOCAL):******************************************************
unit-2-1:*************************************************************
unit-3-1:*************************************************************
キャプチャの収集
キャプチャをエクスポートする方法は複数あります。
方法1:リモートサーバへの接続
これにより、データプレーンからリモートサーバ(TFTPなど)にキャプチャをアップロードできます。キャプチャ名は、ソースユニットを反映して自動的に変更されます。
firepower# cluster exec copy /pcap capture:CAPI tftp://192.168.240.55/CAPI.pcap
unit-1-1(LOCAL):******************************************************
Source capture name [CAPI]?
Address or name of remote host [192.168.240.55]?
Destination filename [CAPI.pcap]?
INFO: Destination filename is changed to unit-1-1_CAPI.pcap !!!!!!!
81 packets copied in 0.40 secs
unit-2-1:*************************************************************
INFO: Destination filename is changed to unit-2-1_CAPI.pcap !
unit-3-1:*************************************************************
INFO: Destination filename is changed to unit-3-1_CAPI.pcap !
アップロードされたpcapファイル:
方法2:FMCからキャプチャを取得する
この方法はFTDにのみ適用されます。最初に、キャプチャをFTDディスクにコピーします。
firepower# cluster exec copy /pcap capture:CAPI disk0:CAPI.pcap
unit-1-1(LOCAL):******************************************************
Source capture name [CAPI]?
Destination filename [CAPI.pcap]?
!!!!!
62 packets copied in 0.0 secs
expertモードで、/mnt/disk0/から/ngfw/var/common/ディレクトリにファイルをコピーします。
> expert
admin@firepower:~$ cd /mnt/disk0
admin@firepower:/mnt/disk0$ sudo cp CAPI.pcap /ngfw/var/common
最後に、FMCで[System] > [Health] > [Monitor] セクションに移動します。[View System & Troubleshoot Details] > [Advanced Troubleshooting] を選択し、キャプチャファイルを取得します。
キャプチャの削除
すべてのクラスタユニットからキャプチャを削除するには、次のコマンドを使用します。
firepower# cluster exec no capture CAPI
unit-1-1(LOCAL):******************************************************
unit-2-1:*************************************************************
unit-3-1:*************************************************************
オフロードされたフロー
FP41xx/FP9300では、フローをハードウェアアクセラレータに静的(Fastpathルールなど)または動的にオフロードできます。フローオフロードの詳細については、次のドキュメントを参照してください。
フローがオフロードされると、FTDデータプレーンを通過するパケットはごくわずかになります。残りはHWアクセラレータ(Smart NIC)によって処理されます。
キャプチャの観点から見ると、FTDデータプレーンレベルのキャプチャだけを有効にしても、デバイスを通過するすべてのパケットが表示されるわけではありません。この場合は、FXOSシャーシレベルのキャプチャも有効にする必要があります。
CCLでキャプチャを実行すると、クラスタユニットが異なるタイプのメッセージを交換していることがわかります。関心のある項目は次のとおりです。
プロトコル |
説明 |
UDP 49495 |
クラスタハートビート(キープアライブ) ・ L3ブロードキャスト(255.255.255.255) ・これらのパケットは、ヘルスチェックの保留時間値の1/3で各クラスタユニットによって送信されます。 ・キャプチャに表示されるUDP 49495パケットがすべてハートビートであるわけではないことに注意してください ・ハートビートにシーケンス番号が含まれています。 |
UDP 4193 |
Cluster Control Protocol(CCP)データパスメッセージ ・ユニキャスト ・これらのパケットには、フロー所有者、ダイレクタ、バックアップ所有者などに関する情報(メタデータ)が含まれます。次に例を示します。 ・新しいフローが作成されると、所有者からダイレクタに「cluster add」メッセージが送信される ・フローが終了すると、所有者からダイレクタに「クラスタ削除」メッセージが送信される |
データパケット |
クラスタを通過するさまざまなトラフィックフローに属するデータパケット |
クラスタのハートビート
ハートビートメッセージに加えて、特定のシナリオでCCLを介して交換される多数のクラスタ制御メッセージがあります。一部はユニキャストメッセージで、他はブロードキャストです。
CLUSTER_QUIT_REASON_PRIMARY_UNIT_HC
制御ノードからのハートビートメッセージが3回連続して失われると、CCLを介してCLUSTER_QUIT_REASON_PRIMARY_UNIT_HCメッセージが生成されます。次のメッセージが表示されます。
Q. CLUSTER_QUIT_REASON_PRIMARY_UNIT_HCの目的は何ですか。
A. unit-3-1(Site-B)側から見ると、サイトAからのユニット–1-1とユニット–2-1の両方への接続が失われるため、できるだけ早くメンバリストから削除する必要があります。そうしないと、ユニット–2-1がまだメンバリストにあり、ユニット–2-1が接続のディレクタになっている場合、パケットが失われる可能性があり、ユニット–2-1へのフロークエリーは失敗します。
CLUSTER_QUIT_REASON_UNIT_HC
制御ノードは、データノードからの3つの連続するハートビートメッセージを失うと、CCLを介してCLUSTER_QUIT_REASON_UNIT_HCメッセージを送信します。このメッセージはユニキャストです。
CLUSTER_QUIT_REASON_STRAY_MEMBER
分割パーティションがピアパーティションに再接続すると、新しいデータノードは支配側の制御ユニットによって予備メンバーとして扱われ、CLUSTER_QUIT_REASON_STRAY_MEMBERという理由を持つCCP終了メッセージを受信します。
CLUSTER_QUIT_MEMBER_DROPOUT
データノードによって生成され、ブロードキャストとして送信されるブロードキャストメッセージ。ユニットがこのメッセージを受信すると、はDISABLEDステータスに移行します。さらに、自動再参加はキックオフしません。
firepower# show cluster info trace | include DROPOUT
Nov 04 00:22:54.699 [DBUG]Receive CCP message: CCP_MSG_QUIT from unit-3-1 to unit-1-1 for reason CLUSTER_QUIT_MEMBER_DROPOUT
Nov 04 00:22:53.699 [DBUG]Receive CCP message: CCP_MSG_QUIT from unit-3-1 to unit-2-1 for reason CLUSTER_QUIT_MEMBER_DROPOUT
クラスタ履歴には次のように表示されます。
PRIMARY DISABLED Received control message DISABLE (member dropout announcement)
主な注意点
次のコマンドを使用して、クラスタのヘルスカウンタを確認します。
firepower# show cluster info health details
----------------------------------------------------------------------------------
| Unit (ID)| Heartbeat| Heartbeat| Average| Maximum| Poll|
| | count| drops| gap (ms)| slip (ms)| count|
----------------------------------------------------------------------------------
| unit-2-1 ( 1)| 650| 0| 4999| 1| 0|
| unit-3-1 ( 2)| 650| 0| 4999| 1| 0|
----------------------------------------------------------------------------------
メイン列の説明
カラム |
説明 |
単位(ID) |
リモートクラスタピアのID。 |
ハートビート数 |
CCLを介してリモートピアから受信したハートビートの数。 |
ハートビートのドロップ |
失われたハートビートの数。このカウンタは、受信したハートビートシーケンス番号に基づいて計算されます。 |
平均ギャップ |
受信したハートビートの平均時間間隔。 |
ポーリング数 |
このカウンタが3になると、ユニットはクラスタから削除されます。ポーリングクエリーの間隔はハートビートの間隔と同じですが、独立して実行されます。 |
カウンタをリセットするには、次のコマンドを使用します。
firepower# clear cluster info health details
Q.ハートビートの周波数を確認する方法を教えてください。
A.平均ギャップ値を確認します。
firepower# show cluster info health details
----------------------------------------------------------------------------------
| Unit (ID)| Heartbeat| Heartbeat| Average| Maximum| Poll|
| | count| drops| gap (ms)| slip (ms)| count|
----------------------------------------------------------------------------------
| unit-2-1 ( 1)| 3036| 0| 999| 1| 0|
----------------------------------------------------------------------------------
Q. FTDのクラスタ保留時間を変更するにはどうすればよいのですか。
A. FlexConfigを使用
Q.スプリットブレインの後にコントロールノードになるのは誰ですか。
A.優先順位が最も高いユニット(最も小さい番号):
firepower# show run cluster | include priority
priority 9
詳細については、HC障害シナリオ1を参照してください。
クラスタHC機構の可視化
指標タイマー:最小値と最大値は、最後に受信したCCLパケットの到着によって異なります。
Hold time |
ポーリングクエリチェック (周波数) |
最小検出時間 |
最大検出時間 |
3秒(デフォルト) |
~ 1秒 |
~3.01秒 |
~399秒 |
4 秒 |
~1.33秒 |
~4.01秒 |
~532秒 |
5 秒 |
~1.66秒 |
~5.01秒 |
~665秒 |
6 秒 |
~ 2秒 |
~6.01秒 |
~799秒 |
7 秒 |
~233秒 |
~7.01秒 |
~932秒 |
8 秒 |
~266秒 |
~8.01秒 |
~1065秒 |
このセクションの目的は、次のことを示すことです。
トポロジ
クラスタの設定
ユニット–1-1 |
ユニット2-1 |
ユニット3-1 |
cluster group GROUP1 |
cluster group GROUP1 |
cluster group GROUP1 |
クラスタステータス
ユニット–1-1 |
ユニット2-1 |
ユニット3-1 |
firepower# show cluster info |
firepower# show cluster info |
firepower# show cluster info |
シナリオ 1
両方向で最大4秒以上のCCL通信損失。
障害発生前
FTD1 |
FTD2 |
FTD3 |
サイトA |
サイトA |
サイトB |
制御ノード |
データノード |
データノード |
リカバリ後(ユニットの役割に変更なし)
FTD1 |
FTD2 |
FTD3 |
サイトA |
サイトA |
サイトB |
制御ノード |
データノード |
データノード |
分析
障害(CCL通信が失われた)。
ユニット3-1のデータプレーンのコンソールメッセージ:
firepower#
WARNING: dynamic routing is not supported on management interface when cluster interface-mode is 'spanned'.
If dynamic routing is configured on any management interface, please remove it.
Cluster unit unit-3-1 transitioned from SECONDARY to PRIMARY
Cluster disable is performing cleanup..done.
All data interfaces have been shutdown due to clustering being disabled.
To recover either enable clustering or remove cluster group configuration.
ユニット1-1クラスタトレースログ:
firepower# show cluster info trace | include unit-3-1
Nov 02 09:38:14.239 [INFO]Notify chassis de-bundle port for blade unit-3-1, stack 0x000055a8918307fb 0x000055a8917fc6e8 0x000055a8917f79b5
Nov 02 09:38:14.239 [INFO]FTD - CD proxy received state notification (DISABLED) from unit unit-3-1
Nov 02 09:38:14.239 [DBUG]Send CCP message to all: CCP_MSG_QUIT from unit-1-1 to unit-3-1 for reason CLUSTER_QUIT_MEMBER_DROPOUT
Nov 02 09:38:14.239 [INFO]Notify chassis de-bundle port for blade unit-3-1, stack 0x000055a8917eb596 0x000055a8917f4838 0x000055a891abef9d
Nov 02 09:38:14.239 [DBUG]Send CCP message to id 1: CCP_MSG_QUIT from unit-1-1 to unit-3-1 for reason CLUSTER_QUIT_REASON_UNIT_HC
Nov 02 09:38:14.239 [CRIT]Received heartbeat event 'SECONDARY heartbeat failure' for member unit-3-1 (ID: 1).
スプリットブレイン
ユニット–1-1 |
ユニット2-1 |
ユニット3-1 |
firepower# show cluster info |
firepower# show cluster info |
firepower# show cluster info |
クラスタ履歴
ユニット–1-1 |
ユニット2-1 |
ユニット3-1 |
イベントなし |
イベントなし |
09:38:16 UTC Nov 2 2020 |
CCL通信の復元
ユニット1-1は現在の制御ノードを検出し、ユニット1-1の方が優先順位が高いため、ユニット3-1にCLUSTER_QUIT_REASON_STRAY_MEMBERメッセージを送信して新しい選出プロセスをトリガーします。最後に、unit-3-1はデータノードとして再結合します。
分割パーティションがピアパーティションに再接続すると、データノードは支配的な制御ノードによって浮遊メンバーとして扱われ、CLUSTER_QUIT_REASON_STRAY_MEMBERという理由を持つCCP quitメッセージを受信します。
Unit-3-1 console logs show:
Cluster unit unit-3-1 transitioned from PRIMARY to DISABLED
The 3DES/AES algorithms require a Encryption-3DES-AES activation key.
Detected Cluster Primart.
Beginning configuration replication from Primary.
WARNING: Local user database is empty and there are still 'aaa' commands for 'LOCAL'.
..
Cryptochecksum (changed): a9ed686f 8e2e689c 2553a104 7a2bd33a
End configuration replication from Primary.
Cluster unit unit-3-1 transitioned from DISABLED to SECONDARY
両方のユニット(ユニット–1-1とユニット–3-1)がクラスタログに表示されます。
firepower# show cluster info trace | include retain
Nov 03 21:20:23.019 [CRIT]Found a split cluster with both unit-1-1 and unit-3-1 as primary units. Primary role retained by unit-1-1, unit-3-1 will leave then join as a secondary
Nov 03 21:20:23.019 [CRIT]Found a split cluster with both unit-1-1 and unit-3-1 as primary units. Primary role retained by unit-1-1, unit-3-1 will leave then join as a secondary
split-brainに対して生成されるsyslogメッセージもあります。
firepower# show log | include 747016
Nov 03 2020 21:20:23: %FTD-4-747016: Clustering: Found a split cluster with both unit-1-1 and unit-3-1 as primary units. Primary role retained by unit-1-1, unit-3-1 will leave then join as a secondary
Nov 03 2020 21:20:23: %FTD-4-747016: Clustering: Found a split cluster with both unit-1-1 and unit-3-1 as primary units. Primary role retained by unit-1-1, unit-3-1 will leave then join as a secondary
クラスタ履歴
ユニット–1-1 |
ユニット2-1 |
ユニット3-1 |
イベントなし |
イベントなし |
09:47:33 UTC Nov 2 2020 |
シナリオ 2
両方向で約3 ~ 4秒間のCCL通信損失。
障害発生前
FTD1 |
FTD2 |
FTD3 |
サイトA |
サイトA |
サイトB |
制御ノード |
データノード |
データノード |
リカバリ後(ユニットの役割に変更なし)
FTD1 |
FTD2 |
FTD3 |
サイトA |
サイトA |
サイトB |
制御ノード |
データノード |
データノード |
分析
イベント1:制御ノードはユニット–3-1から3つのHCを失い、クラスタを離れるようにユニット–3-1にメッセージを送信します。
イベント2:CCLは非常に高速に回復し、制御ノードからのCLUSTER_QUIT_REASON_STRAY_MEMBERメッセージによってリモート側に到達しました。ユニット3-1はDISABLEDモードに直接移行し、スプリットブレインは存在しません
ユニット1-1(コントロール)では、次のように表示されます。
firepower#
Asking SECONDARY unit unit-3-1 to quit because it failed unit health-check.
Forcing stray member unit-3-1 to leave the cluster
ユニット3-1(データノード)では、次のように表示されます。
firepower#
Cluster disable is performing cleanup..done.
All data interfaces have been shutdown due to clustering being disabled. To recover either enable clustering or remove cluster group configuration.
Cluster unit unit-3-1 transitioned from SECONDARY to DISABLED
クラスタユニット3-1がDISABLED状態に移行し、CCL通信が復旧すると、データノードとして再結合します。
firepower# show cluster history
20:58:40 UTC Nov 1 2020
SECONDARY DISABLED Received control message DISABLE (stray member)
20:58:45 UTC Nov 1 2020
DISABLED ELECTION Enabled from CLI
20:58:45 UTC Nov 1 2020
ELECTION SECONDARY_COLD Received cluster control message
20:58:45 UTC Nov 1 2020
SECONDARY_COLD SECONDARY_APP_SYNC Client progression done
20:59:33 UTC Nov 1 2020
SECONDARY_APP_SYNC SECONDARY_CONFIG SECONDARY application configuration sync done
20:59:44 UTC Nov 1 2020
SECONDARY_CONFIG SECONDARY_FILESYS Configuration replication finished
20:59:45 UTC Nov 1 2020
SECONDARY_FILESYS SECONDARY_BULK_SYNC Client progression done
21:00:09 UTC Nov 1 2020
SECONDARY_BULK_SYNC SECONDARY Client progression done
シナリオ 3
両方向で約3 ~ 4秒間のCCL通信損失。
失敗する前に。
FTD1 |
FTD2 |
FTD3 |
サイトA |
サイトA |
サイトB |
制御ノード |
データノード |
データノード |
リカバリ後(制御ノードが変更された場合)。
FTD1 |
FTD2 |
FTD3 |
サイトA |
サイトA |
サイトB |
データノード |
制御ノード |
データノード |
分析
CCLが回復します。
クラスタ履歴
ユニット–1-1 |
ユニット2-1 |
ユニット3-1 |
19:53:09 UTC Nov 2 2020 |
19:53:06 UTC Nov 2 2020 |
19:53:06 UTC Nov 2 2020 |
シナリオ 4
最大3 ~ 4秒間のCCL通信損失
障害発生前
FTD1 |
FTD2 |
FTD3 |
サイトA |
サイトA |
サイトB |
制御ノード |
データノード |
データノード |
リカバリ後(制御ノードがサイトを変更)
FTD1 |
FTD2 |
FTD3 |
サイトA |
サイトA |
サイトB |
データノード |
データノード |
制御ノード |
分析
障害
同じ失敗の異なる味。この場合、ユニット–1-1もユニット–3-1から3つのHCメッセージを受信せず、新しいキープアライブを受信すると、STRAYメッセージを使用してユニット–3-1を蹴り出そうとしますが、メッセージはユニット–3-1に到達しませんでした。
注:ステップ5でCCLが回復しない場合、サイトAではFTD1が新しい制御ノードになり、CCLの回復後に新しい選択を獲得します。
ユニット1-1のsyslogメッセージ:
firepower# show log | include 747
Nov 03 2020 23:13:08: %FTD-7-747005: Clustering: State machine notify event CLUSTER_EVENT_MEMBER_STATE (unit-3-1,DISABLED,0x0000000000000000)
Nov 03 2020 23:13:09: %FTD-4-747015: Clustering: Forcing stray member unit-3-1 to leave the cluster
Nov 03 2020 23:13:09: %FTD-7-747005: Clustering: State machine notify event CLUSTER_EVENT_MEMBER_STATE (unit-2-1,DISABLED,0x0000000000000000)
Nov 03 2020 23:13:10: %FTD-4-747015: Clustering: Forcing stray member unit-3-1 to leave the cluster
Nov 03 2020 23:13:10: %FTD-6-747004: Clustering: State machine changed from state PRIMARY to DISABLED
Nov 03 2020 23:13:12: %FTD-7-747006: Clustering: State machine is at state DISABLED
Nov 03 2020 23:13:12: %FTD-7-747005: Clustering: State machine notify event CLUSTER_EVENT_MY_STATE (state DISABLED,0x0000000000000000,0x0000000000000000)
Nov 03 2020 23:13:18: %FTD-6-747004: Clustering: State machine changed from state ELECTION to ONCALL
ユニット1-1のクラスタトレースログ:
firepower# show cluster info trace | include QUIT
Nov 03 23:13:10.789 [DBUG]Send CCP message to all: CCP_MSG_QUIT from unit-1-1 for reason CLUSTER_QUIT_REASON_RETIREMENT
Nov 03 23:13:10.769 [DBUG]Receive CCP message: CCP_MSG_QUIT from unit-3-1 to unit-1-1 for reason CLUSTER_QUIT_REASON_PRIMARY_UNIT_HC
Nov 03 23:13:10.769 [DBUG]Send CCP message to id 1: CCP_MSG_QUIT from unit-1-1 to unit-3-1 for reason CLUSTER_QUIT_REASON_STRAY_MEMBER
Nov 03 23:13:09.789 [DBUG]Receive CCP message: CCP_MSG_QUIT from unit-2-1 for reason CLUSTER_QUIT_REASON_RETIREMENT
Nov 03 23:13:09.769 [DBUG]Send CCP message to id 1: CCP_MSG_QUIT from unit-1-1 to unit-3-1 for reason CLUSTER_QUIT_REASON_STRAY_MEMBER
Nov 03 23:13:08.559 [DBUG]Send CCP message to all: CCP_MSG_QUIT from unit-1-1 to unit-3-1 for reason CLUSTER_QUIT_MEMBER_DROPOUT
Nov 03 23:13:08.559 [DBUG]Send CCP message to id 1: CCP_MSG_QUIT from unit-1-1 to unit-3-1 for reason CLUSTER_QUIT_REASON_UNIT_HC
ユニット3-1のsyslogメッセージ:
firepower# show log | include 747
Nov 03 2020 23:13:09: %FTD-7-747005: Clustering: State machine notify event CLUSTER_EVENT_MEMBER_STATE (unit-2-1,DISABLED,0x0000000000000000)
Nov 03 2020 23:13:10: %FTD-7-747005: Clustering: State machine notify event CLUSTER_EVENT_MEMBER_STATE (unit-1-1,DISABLED,0x0000000000000000)
Nov 03 2020 23:13:10: %FTD-6-747004: Clustering: State machine changed from state SECONDARY to PRIMARY
Nov 03 2020 23:13:10: %FTD-6-747004: Clustering: State machine changed from state PRIMARY_FAST to PRIMARY_DRAIN
Nov 03 2020 23:13:10: %FTD-6-747004: Clustering: State machine changed from state PRIMARY_DRAIN to PRIMARY_CONFIG
Nov 03 2020 23:13:10: %FTD-6-747004: Clustering: State machine changed from state PRIMARY_CONFIG to PRIMARY_POST_CONFIG
Nov 03 2020 23:13:10: %FTD-7-747006: Clustering: State machine is at state PRIMARY_POST_CONFIG
Nov 03 2020 23:13:10: %FTD-6-747004: Clustering: State machine changed from state PRIMARY_POST_CONFIG to PRIMARY
Nov 03 2020 23:13:10: %FTD-7-747006: Clustering: State machine is at state PRIMARY
クラスタ履歴
ユニット–1-1 |
ユニット2-1 |
ユニット3-1 |
23:13:13 UTC Nov 3 2020 |
23:13:12 UTC Nov 3 2020 |
23:13:10 UTC Nov 3 2020 |
シナリオ 5
障害発生前
FTD1 |
FTD2 |
FTD3 |
サイトA |
サイトA |
サイトB |
制御ノード |
データノード |
データノード |
リカバリ後(変更なし)
FTD1 |
FTD2 |
FTD3 |
サイトA |
サイトA |
サイトB |
制御ノード |
データノード |
データノード |
障害
ユニット–3-1は、ユニット–1-1とユニット–2-1の両方にQUITメッセージを送信しましたが、接続の問題により、ユニット–2-1だけがQUITメッセージを受信しました。
ユニット1-1クラスタトレースログ:
firepower# show cluster info trace | include QUIT
Nov 04 00:52:10.429 [DBUG]Receive CCP message: CCP_MSG_QUIT from unit-3-1 for reason CLUSTER_QUIT_REASON_RETIREMENT
Nov 04 00:51:47.059 [DBUG]Receive CCP message: CCP_MSG_QUIT from unit-2-1 for reason CLUSTER_QUIT_REASON_RETIREMENT
Nov 04 00:51:45.429 [DBUG]Send CCP message to all: CCP_MSG_QUIT from unit-1-1 to unit-3-1 for reason CLUSTER_QUIT_MEMBER_DROPOUT
Nov 04 00:51:45.429 [DBUG]Send CCP message to unit-3-1(1): CCP_MSG_QUIT from unit-1-1 to unit-3-1 for reason CLUSTER_QUIT_REASON_UNIT_HC
ユニット2-1クラスタトレースログ:
firepower# show cluster info trace | include QUIT
Nov 04 00:52:10.389 [DBUG]Receive CCP message: CCP_MSG_QUIT from unit-3-1 for reason CLUSTER_QUIT_REASON_RETIREMENT
Nov 04 00:51:47.019 [DBUG]Send CCP message to all: CCP_MSG_QUIT from unit-2-1 for reason CLUSTER_QUIT_REASON_RETIREMENT
Nov 04 00:51:46.999 [DBUG]Receive CCP message: CCP_MSG_QUIT from unit-3-1 to unit-2-1 for reason CLUSTER_QUIT_REASON_PRIMARY_UNIT_HC
Nov 04 00:51:45.389 [DBUG]Receive CCP message: CCP_MSG_QUIT from unit-1-1 to unit-3-1 for reason CLUSTER_QUIT_MEMBER_DROPOUT
クラスタ履歴
ユニット–1-1 |
ユニット2-1 |
ユニット3-1 |
イベントなし |
00:51:50 UTC Nov 4 2020 |
00:51:47 UTC Nov 4 2020 |
NGFWキャプチャポイント
NGFWは、次のポイントでキャプチャ機能を提供します。
クラスタでデータパスの問題をトラブルシューティングする場合、ほとんどの場合に使用されるキャプチャポイントは、FXOSおよびFTDデータプレーンエンジンのキャプチャです。
NGFWキャプチャの詳細については、次のドキュメントを参照してください。
クラスタユニットフローロールの基本
接続は、次のような要因に依存する複数の方法でクラスタを介して確立できます。
フローロール |
説明 |
フラグ |
主催者(Owner) |
通常は、最初に接続を受信したユニット |
UIO |
Director |
フォワーダからの所有者参照要求を処理する単位。 |
Y |
バックアップ所有者 |
ダイレクタが所有者と同じユニットでない限り、ダイレクタはバックアップ所有者でもあります。所有者が自分自身をダイレクタとして選択した場合は、別のバックアップ所有者が選択されます。 |
Y(ダイレクタがバックアップ・オーナーでもある場合) y(ダイレクタがバックアップ・オーナーでない場合) |
フォワーダ |
パケットを所有者に転送するユニット |
z |
フラグメント所有者 |
フラグメント化されたトラフィックを処理するユニット |
- |
シャーシのバックアップ |
シャーシ間クラスタでは、ディレクタ/バックアップフローとオーナーフローの両方が同じシャーシのユニットによって所有されている場合、他のシャーシの1つのユニットがセカンダリバックアップ/ディレクタになります。 このロールは、複数のブレードを備えたFirepower 9300シリーズのシャーシ間クラスタに固有です。 |
w |
クラスタ接続の確立のケーススタディ
次のセクションでは、クラスタを介して接続を確立する方法の一部を示すさまざまなケーススタディについて説明します。目標は次のとおりです。
トポロジ
クラスタユニットとID:
ユニット–1-1 |
ユニット2-1 |
ユニット3-1 |
Cluster GROUP1: On |
Unit "unit-2-1" in state SECONDARY |
Unit "unit-3-1" in state SECONDARY |
有効なクラスタキャプチャ:
cluster exec cap CAPI int INSIDE buffer 33554432 match tcp host 192.168.240.50 host 192.168.241.50 eq 80
cluster exec cap CAPO int OUTSIDE buffer 33554432 match tcp host 192.168.240.50 host 192.168.241.50 eq 80
cluster exec cap CAPI_RH reinject-hide int INSIDE buffer 33554432 match tcp host 192.168.240.50 host 192.168.241.50 eq 80
cluster exec cap CAPO_RH reinject-hide int OUTSIDE buffer 33554432 match tcp host 192.168.240.50 host 192.168.241.50 eq 80
cluster exec cap CCL int cluster buffer 33554432
注:これらのテストは、クラスタを通過するトラフィックが最小限のラボ環境で実行されました。実稼働環境では、可能な限り特定のキャプチャフィルタを使用して(たとえば、宛先ポートと可能な場合は常に送信元ポート)、キャプチャの「ノイズ」を最小限に抑えるようにします。
ケース スタディ 1対称トラフィック(所有者もディレクタ)
観察1.reinject-hideキャプチャは、ユニット1-1のパケットのみを表示します。これは、両方向のフローがユニット1-1(対称トラフィック)を通過したことを意味します。
firepower# cluster exec show cap
unit-1-1(LOCAL):******************************************************
capture CCL type raw-data interface cluster [Capturing - 33513 bytes]
capture CAPI type raw-data buffer 33554432 trace interface INSIDE [Buffer Full - 33553914 bytes]
match tcp host 192.168.240.50 host 192.168.241.50 eq 80
capture CAPO type raw-data buffer 33554432 trace interface OUTSIDE [Buffer Full - 33553914 bytes]
match tcp host 192.168.240.50 host 192.168.241.50 eq 80
capture CAPI_RH type raw-data reinject-hide buffer 33554432 interface INSIDE [Buffer Full - 33553914 bytes]
match tcp host 192.168.240.50 host 192.168.241.50 eq 80
capture CAPO_RH type raw-data reinject-hide buffer 33554432 interface OUTSIDE [Buffer Full - 33553914 bytes]
match tcp host 192.168.240.50 host 192.168.241.50 eq 80
unit-2-1:*************************************************************
capture CCL type raw-data interface cluster [Capturing - 23245 bytes]
capture CAPI type raw-data buffer 33554432 trace interface INSIDE [Capturing - 0 bytes]
match tcp host 192.168.240.50 host 192.168.241.50 eq 80
capture CAPO type raw-data buffer 33554432 trace interface OUTSIDE [Capturing - 0 bytes]
match tcp host 192.168.240.50 host 192.168.241.50 eq 80
capture CAPI_RH type raw-data reinject-hide buffer 33554432 interface INSIDE [Capturing - 0 bytes]
match tcp host 192.168.240.50 host 192.168.241.50 eq 80
capture CAPO_RH type raw-data reinject-hide buffer 33554432 interface OUTSIDE [Capturing - 0 bytes]
match tcp host 192.168.240.50 host 192.168.241.50 eq 80
unit-3-1:*************************************************************
capture CCL type raw-data interface cluster [Capturing - 24815 bytes]
capture CAPI type raw-data buffer 33554432 trace interface INSIDE [Capturing - 0 bytes]
match tcp host 192.168.240.50 host 192.168.241.50 eq 80
capture CAPO type raw-data buffer 33554432 trace interface OUTSIDE [Capturing - 0 bytes]
match tcp host 192.168.240.50 host 192.168.241.50 eq 80
capture CAPI_RH type raw-data reinject-hide buffer 33554432 interface INSIDE [Capturing - 0 bytes]
match tcp host 192.168.240.50 host 192.168.241.50 eq 80
capture CAPO_RH type raw-data reinject-hide buffer 33554432 interface OUTSIDE [Capturing - 0 bytes]
match tcp host 192.168.240.50 host 192.168.241.50 eq 80
展望2.送信元ポート45954のフローの接続フラグ分析
firepower# cluster exec show conn
unit-1-1(LOCAL):******************************************************
22 in use, 25 most used
Cluster:
fwd connections: 0 in use, 1 most used
dir connections: 0 in use, 122 most used
centralized connections: 0 in use, 0 most used
VPN redirect connections: 0 in use, 0 most used
Inspect Snort:
preserve-connection: 1 enabled, 0 in effect, 2 most enabled, 1 most in effect
TCP OUTSIDE 192.168.241.50:80 INSIDE 192.168.240.50:45954, idle 0:00:00, bytes 487413076, flags UIO N1
unit-2-1:*************************************************************
22 in use, 271 most used
Cluster:
fwd connections: 0 in use, 2 most used
dir connections: 0 in use, 2 most used
centralized connections: 0 in use, 0 most used
VPN redirect connections: 0 in use, 0 most used
Inspect Snort:
preserve-connection: 1 enabled, 0 in effect, 249 most enabled, 0 most in effect
unit-3-1:*************************************************************
17 in use, 20 most used
Cluster:
fwd connections: 1 in use, 2 most used
dir connections: 1 in use, 127 most used
centralized connections: 0 in use, 0 most used
VPN redirect connections: 0 in use, 0 most used
Inspect Snort:
preserve-connection: 0 enabled, 0 in effect, 1 most enabled, 0 most in effect
TCP OUTSIDE 192.168.241.50:443 NP Identity Ifc 192.168.240.50:39698, idle 0:00:23, bytes 0, flags z
TCP OUTSIDE 192.168.241.50:80 INSIDE 192.168.240.50:45954, idle 0:00:06, bytes 0, flags y
ユニット |
フラグ |
注 |
ユニット–1-1 |
UIO |
・フロー所有者 – ユニットがフローを処理します ・ディレクタ:ユニット–3-1には「Y」ではなく「Y」があるため、ユニット–1-1がこのフローのディレクタとして選択されたことを示します。したがって、このユニットは所有者でもあるため、別のユニット(この場合はユニット3-1)がバックアップ所有者として選出されました |
ユニット2-1 |
- |
- |
ユニット3-1 |
y |
ユニットがバックアップ所有者である |
それを図で示します。
展望3.トレース付きキャプチャは、両方向がユニット1-1のみを通過することを示します。
ステップ 1:送信元ポートに基づいて、すべてのクラスタユニットで対象となるフローとパケットを特定します。
firepower# cluster exec show capture CAPI | i 45954
unit-1-1(LOCAL):******************************************************
1: 08:42:09.362697 802.1Q vlan#201 P0 192.168.240.50.45954 > 192.168.241.50.80: S 992089269:992089269(0) win 29200 <mss 1460,sackOK,timestamp 495153655 0,nop,wscale 7>
2: 08:42:09.363521 802.1Q vlan#201 P0 192.168.241.50.80 > 192.168.240.50.45954: S 4042762409:4042762409(0) ack 992089270 win 28960 <mss 1380,sackOK,timestamp 505509125 495153655,nop,wscale 7>
3: 08:42:09.363827 802.1Q vlan#201 P0 192.168.240.50.45954 > 192.168.241.50.80: . ack 4042762410 win 229 <nop,nop,timestamp 495153657 505509125>
…
unit-2-1:*************************************************************
unit-3-1:*************************************************************
firepower# cluster exec show capture CAPO | i 45954
unit-1-1(LOCAL):******************************************************
1: 08:42:09.362987 802.1Q vlan#202 P0 192.168.240.50.45954 > 192.168.241.50.80: S 2732339016:2732339016(0) win 29200 <mss 1380,sackOK,timestamp 495153655 0,nop,wscale 7>
2: 08:42:09.363415 802.1Q vlan#202 P0 192.168.241.50.80 > 192.168.240.50.45954: S 3603655982:3603655982(0) ack 2732339017 win 28960 <mss 1460,sackOK,timestamp 505509125 495153655,nop,wscale 7>
3: 08:42:09.363903 802.1Q vlan#202 P0 192.168.240.50.45954 > 192.168.241.50.80: . ack 3603655983 win 229 <nop,nop,timestamp 495153657 505509125>
…
unit-2-1:*************************************************************
unit-3-1:*************************************************************
ステップ 2:これはTCPフロートレースであるため、3ウェイハンドシェイクパケットをトレースします。この出力からわかるように、ユニット1-1が所有者です。簡単にするために、関係のないトレースフェーズは省略します。
firepower# show cap CAPI packet-number 1 trace
25985 packets captured
1: 08:42:09.362697 802.1Q vlan#201 P0 192.168.240.50.45954 > 192.168.241.50.80: S 992089269:992089269(0) win 29200 <mss 1460,sackOK,timestamp 495153655 0,nop,wscale 7>
...
Phase: 4
Type: CLUSTER-EVENT
Subtype:
Result: ALLOW
Config:
Additional Information:
Input interface: 'INSIDE'
Flow type: NO FLOW
I (0) got initial, attempting ownership.
Phase: 5
Type: CLUSTER-EVENT
Subtype:
Result: ALLOW
Config:
Additional Information:
Input interface: 'INSIDE'
Flow type: NO FLOW
I (0) am becoming owner
...
リターントラフィック(TCP SYN/ACK):
firepower# show capture CAPO packet-number 2 trace
25985 packets captured
2: 08:42:09.363415 802.1Q vlan#202 P0 192.168.241.50.80 > 192.168.240.50.45954: S 3603655982:3603655982(0) ack 2732339017 win 28960 <mss 1460,sackOK,timestamp 505509125 495153655,nop,wscale 7>
...
Phase: 3
Type: FLOW-LOOKUP
Subtype:
Result: ALLOW
Config:
Additional Information:
Found flow with id 9364, using existing flow
展望4.FTDデータプレーンのsyslogには、すべてのユニットでの接続の作成と終了が表示されます。
firepower# cluster exec show log | include 45954
unit-1-1(LOCAL):******************************************************
Dec 01 2020 08:42:09: %FTD-6-302013: Built inbound TCP connection 9364 for INSIDE:192.168.240.50/45954 (192.168.240.50/45954) to OUTSIDE:192.168.241.50/80 (192.168.241.50/80)
Dec 01 2020 08:42:18: %FTD-6-302014: Teardown TCP connection 9364 for INSIDE:192.168.240.50/45954 to OUTSIDE:192.168.241.50/80 duration 0:00:08 bytes 1024000440 TCP FINs from INSIDE
unit-2-1:*************************************************************
unit-3-1:*************************************************************
Dec 01 2020 08:42:09: %FTD-6-302022: Built backup stub TCP connection for INSIDE:192.168.240.50/45954 (192.168.240.50/45954) to OUTSIDE:192.168.241.50/80 (192.168.241.50/80)
Dec 01 2020 08:42:18: %FTD-6-302023: Teardown backup TCP connection for INSIDE:192.168.240.50/45954 to OUTSIDE:192.168.241.50/80 duration 0:00:08 forwarded bytes 0 Cluster flow with CLU closed on owner
ケース スタディ 2対称トラフィック(ディレクタとは異なる所有者)
観察1.オーナーはディレクターとは違う。
送信元ポート46278を使用したフローの接続フラグ分析。
firepower# cluster exec show conn
unit-1-1(LOCAL):******************************************************
23 in use, 25 most used
Cluster:
fwd connections: 0 in use, 1 most used
dir connections: 0 in use, 122 most used
centralized connections: 0 in use, 0 most used
VPN redirect connections: 0 in use, 0 most used
Inspect Snort:
preserve-connection: 2 enabled, 0 in effect, 4 most enabled, 1 most in effect
TCP OUTSIDE 192.168.241.50:80 INSIDE 192.168.240.50:46278, idle 0:00:00, bytes 508848268, flags UIO N1
TCP OUTSIDE 192.168.241.50:80 INSIDE 192.168.240.50:46276, idle 0:00:03, bytes 0, flags aA N1
unit-2-1:*************************************************************
21 in use, 271 most used
Cluster:
fwd connections: 0 in use, 2 most used
dir connections: 0 in use, 2 most used
centralized connections: 0 in use, 0 most used
VPN redirect connections: 0 in use, 0 most used
Inspect Snort:
preserve-connection: 0 enabled, 0 in effect, 249 most enabled, 0 most in effect
unit-3-1:*************************************************************
17 in use, 20 most used
Cluster:
fwd connections: 1 in use, 5 most used
dir connections: 1 in use, 127 most used
centralized connections: 0 in use, 0 most used
VPN redirect connections: 0 in use, 0 most used
Inspect Snort:
preserve-connection: 0 enabled, 0 in effect, 1 most enabled, 0 most in effect
TCP OUTSIDE 192.168.241.50:80 NP Identity Ifc 192.168.240.50:46276, idle 0:00:02, bytes 0, flags z
TCP OUTSIDE 192.168.241.50:80 INSIDE 192.168.240.50:46278, idle 0:00:06, bytes 0, flags Y
ユニット |
フラグ |
注 |
ユニット–1-1 |
UIO |
・フロー所有者 – ユニットがフローを処理します |
ユニット2-1 |
- |
- |
ユニット3-1 |
Y |
・ダイレクタとバックアップ・オーナー:ユニット3-1にはフラグY(ダイレクタ)があります。 |
それを図で示します。
展望2.トレース付きキャプチャは、両方向がユニット1-1のみを通過することを示します
ステップ 1:ケーススタディ1と同じアプローチを使用して、送信元ポートに基づいてすべてのクラスタユニット内の対象フローとパケットを識別します。
firepower# cluster exec show cap CAPI | include 46278
unit-1-1(LOCAL):******************************************************
3: 11:01:44.841631 802.1Q vlan#201 P0 192.168.240.50.46278 > 192.168.241.50.80: S 1972783998:1972783998(0) win 29200 <mss 1460,sackOK,timestamp 503529072 0,nop,wscale 7>
4: 11:01:44.842317 802.1Q vlan#201 P0 192.168.241.50.80 > 192.168.240.50.46278: S 3524167695:3524167695(0) ack 1972783999 win 28960 <mss 1380,sackOK,timestamp 513884542 503529072,nop,wscale 7>
5: 11:01:44.842592 802.1Q vlan#201 P0 192.168.240.50.46278 > 192.168.241.50.80: . ack 3524167696 win 229 <nop,nop,timestamp 503529073 513884542>
…
unit-2-1:*************************************************************
unit-3-1:*************************************************************
firepower#
OUTSIDEインターフェイスでキャプチャします。
firepower# cluster exec show cap CAPO | include 46278
unit-1-1(LOCAL):******************************************************
3: 11:01:44.841921 802.1Q vlan#202 P0 192.168.240.50.46278 > 192.168.241.50.80: S 2153055699:2153055699(0) win 29200 <mss 1380,sackOK,timestamp 503529072 0,nop,wscale 7>
4: 11:01:44.842226 802.1Q vlan#202 P0 192.168.241.50.80 > 192.168.240.50.46278: S 3382481337:3382481337(0) ack 2153055700 win 28960 <mss 1460,sackOK,timestamp 513884542 503529072,nop,wscale 7>
5: 11:01:44.842638 802.1Q vlan#202 P0 192.168.240.50.46278 > 192.168.241.50.80: . ack 3382481338 win 229 <nop,nop,timestamp 503529073 513884542>
unit-2-1:*************************************************************
unit-3-1:*************************************************************
firepower#
ステップ 2:入力パケット(TCP SYNおよびTCP SYN/ACK)に注目します。
firepower# cluster exec show cap CAPI packet-number 3 trace
unit-1-1(LOCAL):******************************************************
824 packets captured
3: 11:01:44.841631 802.1Q vlan#201 P0 192.168.240.50.46278 > 192.168.241.50.80: S 1972783998:1972783998(0) win 29200 <mss 1460,sackOK,timestamp 503529072 0,nop,wscale 7>
…
Phase: 4
Type: CLUSTER-EVENT
Subtype:
Result: ALLOW
Config:
Additional Information:
Input interface: 'INSIDE'
Flow type: NO FLOW
I (0) got initial, attempting ownership.
Phase: 5
Type: CLUSTER-EVENT
Subtype:
Result: ALLOW
Config:
Additional Information:
Input interface: 'INSIDE'
Flow type: NO FLOW
I (0) am becoming owner
ユニット–1-1のSYN/ACKをトレースします。
firepower# cluster exec show cap CAPO packet-number 4 trace
unit-1-1(LOCAL):******************************************************
4: 11:01:44.842226 802.1Q vlan#202 P0 192.168.241.50.80 > 192.168.240.50.46278: S 3382481337:3382481337(0) ack 2153055700 win 28960 <mss 1460,sackOK,timestamp 513884542 503529072,nop,wscale 7>
Phase: 3
Type: FLOW-LOOKUP
Subtype:
Result: ALLOW
Config:
Additional Information:
Found flow with id 9583, using existing flow
展望3.FTDデータプレーンのsyslogには、所有者とバックアップ所有者の接続の作成と終了が表示されます。
firepower# cluster exec show log | include 46278
unit-1-1(LOCAL):******************************************************
Dec 01 2020 11:01:44: %FTD-6-302013: Built inbound TCP connection 9583 for INSIDE:192.168.240.50/46278 (192.168.240.50/46278) to OUTSIDE:192.168.241.50/80 (192.168.241.50/80)
Dec 01 2020 11:01:53: %FTD-6-302014: Teardown TCP connection 9583 for INSIDE:192.168.240.50/46278 to OUTSIDE:192.168.241.50/80 duration 0:00:08 bytes 1024001808 TCP FINs from INSIDE
unit-2-1:*************************************************************
unit-3-1:*************************************************************
Dec 01 2020 11:01:44: %FTD-6-302022: Built director stub TCP connection for INSIDE:192.168.240.50/46278 (192.168.240.50/46278) to OUTSIDE:192.168.241.50/80 (192.168.241.50/80)
Dec 01 2020 11:01:53: %FTD-6-302023: Teardown director TCP connection for INSIDE:192.168.240.50/46278 to OUTSIDE:192.168.241.50/80 duration 0:00:08 forwarded bytes 0 Cluster flow with CLU closed on owner
ケース スタディ 3非対称トラフィック(ディレクタがトラフィックを転送)。
観察1.reinject-hideキャプチャは、ユニット–1-1(非対称フロー)およびユニット–2-1(非対称フロー)のパケットを示します。
firepower# cluster exec show cap
unit-1-1(LOCAL):******************************************************
capture CCL type raw-data buffer 33554432 interface cluster [Buffer Full - 33554320 bytes]
capture CAPI type raw-data buffer 100000 trace interface INSIDE [Buffer Full - 98552 bytes]
match tcp host 192.168.240.50 host 192.168.241.50 eq www
capture CAPO type raw-data buffer 100000 trace interface OUTSIDE [Buffer Full - 98552 bytes]
match tcp host 192.168.240.50 host 192.168.241.50 eq www
capture CAPI_RH type raw-data reinject-hide buffer 100000 interface INSIDE [Buffer Full - 98552 bytes]
match tcp host 192.168.240.50 host 192.168.241.50 eq www
capture CAPO_RH type raw-data reinject-hide buffer 100000 interface OUTSIDE [Buffer Full - 99932 bytes]
match tcp host 192.168.240.50 host 192.168.241.50 eq www
unit-2-1:*************************************************************
capture CCL type raw-data buffer 33554432 interface cluster [Buffer Full - 33553268 bytes]
capture CAPI type raw-data buffer 100000 trace interface INSIDE [Capturing - 0 bytes]
match tcp host 192.168.240.50 host 192.168.241.50 eq www
capture CAPO type raw-data buffer 100000 trace interface OUTSIDE [Buffer Full - 99052 bytes]
match tcp host 192.168.240.50 host 192.168.241.50 eq www
capture CAPI_RH type raw-data reinject-hide buffer 100000 interface INSIDE [Capturing - 0 bytes]
match tcp host 192.168.240.50 host 192.168.241.50 eq www
capture CAPO_RH type raw-data reinject-hide buffer 100000 interface OUTSIDE [Buffer Full - 99052 bytes]
match tcp host 192.168.240.50 host 192.168.241.50 eq www
unit-3-1:*************************************************************
capture CCL type raw-data buffer 33554432 interface cluster [Capturing - 53815 bytes]
capture CAPI type raw-data buffer 100000 trace interface INSIDE [Capturing - 0 bytes]
match tcp host 192.168.240.50 host 192.168.241.50 eq www
capture CAPO type raw-data buffer 100000 trace interface OUTSIDE [Capturing - 658 bytes]
match tcp host 192.168.240.50 host 192.168.241.50 eq www
capture CAPI_RH type raw-data reinject-hide buffer 100000 interface INSIDE [Capturing - 0 bytes]
match tcp host 192.168.240.50 host 192.168.241.50 eq www
capture CAPO_RH type raw-data reinject-hide buffer 100000 interface OUTSIDE [Capturing - 658 bytes]
match tcp host 192.168.240.50 host 192.168.241.50 eq www
展望2.送信元ポート46502を使用したフローの接続フラグ分析。
firepower# cluster exec show conn
unit-1-1(LOCAL):******************************************************
23 in use, 25 most used
Cluster:
fwd connections: 0 in use, 1 most used
dir connections: 0 in use, 122 most used
centralized connections: 0 in use, 0 most used
VPN redirect connections: 0 in use, 0 most used
Inspect Snort:
preserve-connection: 2 enabled, 0 in effect, 4 most enabled, 1 most in effect
TCP OUTSIDE 192.168.241.50:80 INSIDE 192.168.240.50:46502, idle 0:00:00, bytes 448760236, flags UIO N1
TCP OUTSIDE 192.168.241.50:80 INSIDE 192.168.240.50:46500, idle 0:00:06, bytes 0, flags aA N1
unit-2-1:*************************************************************
21 in use, 271 most used
Cluster:
fwd connections: 0 in use, 2 most used
dir connections: 1 in use, 2 most used
centralized connections: 0 in use, 0 most used
VPN redirect connections: 0 in use, 0 most used
Inspect Snort:
preserve-connection: 0 enabled, 0 in effect, 249 most enabled, 0 most in effect
TCP OUTSIDE 192.168.241.50:80 INSIDE 192.168.240.50:46502, idle 0:00:00, bytes 0, flags Y
unit-3-1:*************************************************************
17 in use, 20 most used
Cluster:
fwd connections: 1 in use, 5 most used
dir connections: 0 in use, 127 most used
centralized connections: 0 in use, 0 most used
VPN redirect connections: 0 in use, 0 most used
Inspect Snort:
preserve-connection: 0 enabled, 0 in effect, 1 most enabled, 0 most in effect
ユニット |
フラグ |
注 |
ユニット–1-1 |
UIO |
・フローオーナー – ユニットがフローを処理します。 |
ユニット2-1 |
Y |
・ディレクタ – ユニット–2-1にはフラグ「Y」があるため、ユニット–2-1がこのフローのディレクタとして選択されたことを示します。 ・バックアップ・オーナー ・最後に、この出力からは明らかではありませんが、show captureおよびshow logの出力から、ユニット–2-1がこのフローを所有者に転送していることがわかります(ただし、技術的にはこのシナリオではフォワーダとは見なされていません)。 注:1つのユニットをディレクタ(Yフロー)とフォワーダ(zフロー)の両方にすることはできません。これらの2つのロールは相互に排他的です。ディレクタ(Yフロー)はトラフィックを転送できます。このケーススタディの後半にあるshow logの出力を参照してください。 |
ユニット3-1 |
- |
- |
それを図で示します。
展望3.トレースを使用したキャプチャは、非対称トラフィックと、ユニット–2-1からユニット–1-1へのリダイレクションを示しています。
ステップ 1:対象のフローに属するパケットを特定します(ポート46502)。
firepower# cluster exec show capture CAPI | include 46502
unit-1-1(LOCAL):******************************************************
3: 12:58:33.356121 802.1Q vlan#201 P0 192.168.240.50.46502 > 192.168.241.50.80: S 4124514680:4124514680(0) win 29200 <mss 1460,sackOK,timestamp 510537534 0,nop,wscale 7>
4: 12:58:33.357037 802.1Q vlan#201 P0 192.168.241.50.80 > 192.168.240.50.46502: S 883000451:883000451(0) ack 4124514681 win 28960 <mss 1380,sackOK,timestamp 520893004 510537534,nop,wscale 7>
5: 12:58:33.357357 802.1Q vlan#201 P0 192.168.240.50.46502 > 192.168.241.50.80: . ack 883000452 win 229 <nop,nop,timestamp 510537536 520893004>
unit-2-1:*************************************************************
unit-3-1:*************************************************************
戻り方向:
firepower# cluster exec show capture CAPO | include 46502
unit-1-1(LOCAL):******************************************************
3: 12:58:33.356426 802.1Q vlan#202 P0 192.168.240.50.46502 > 192.168.241.50.80: S 1434968587:1434968587(0) win 29200 <mss 1380,sackOK,timestamp 510537534 0,nop,wscale 7>
4: 12:58:33.356915 802.1Q vlan#202 P0 192.168.241.50.80 > 192.168.240.50.46502: S 4257314722:4257314722(0) ack 1434968588 win 28960 <mss 1460,sackOK,timestamp 520893004 510537534,nop,wscale 7>
5: 12:58:33.357403 802.1Q vlan#202 P0 192.168.240.50.46502 > 192.168.241.50.80: . ack 4257314723 win 229 <nop,nop,timestamp 510537536 520893004>
unit-2-1:*************************************************************
1: 12:58:33.359249 802.1Q vlan#202 P0 192.168.241.50.80 > 192.168.240.50.46502: S 4257314722:4257314722(0) ack 1434968588 win 28960 <mss 1460,sackOK,timestamp 520893004 510537534,nop,wscale 7>
2: 12:58:33.360302 802.1Q vlan#202 P0 192.168.241.50.80 > 192.168.240.50.46502: . ack 1434968736 win 235 <nop,nop,timestamp 520893005 510537536>
3: 12:58:33.361004 802.1Q vlan#202 P0 192.168.241.50.80 > 192.168.240.50.46502: . 4257314723:4257316091(1368) ack 1434968736 win 235 <nop,nop,timestamp 520893006 510537536>
…
unit-3-1:*************************************************************
ステップ 2:パケットをトレースします。デフォルトでは、最初の50個の入力パケットだけがトレースされます。簡単にするために、関係のないトレースフェーズは省略します。
ユニット1-1(オーナー):
firepower# cluster exec show capture CAPI packet-number 3 trace
unit-1-1(LOCAL):******************************************************
3: 12:58:33.356121 802.1Q vlan#201 P0 192.168.240.50.46502 > 192.168.241.50.80: S 4124514680:4124514680(0) win 29200 <mss 1460,sackOK,timestamp 510537534 0,nop,wscale 7>
...
Phase: 4
Type: CLUSTER-EVENT
Subtype:
Result: ALLOW
Config:
Additional Information:
Input interface: 'INSIDE'
Flow type: NO FLOW
I (0) got initial, attempting ownership.
Phase: 5
Type: CLUSTER-EVENT
Subtype:
Result: ALLOW
Config:
Additional Information:
Input interface: 'INSIDE'
Flow type: NO FLOW
I (0) am becoming owner
ユニット2-1(フォワーダ)
リターントラフィック(TCP SYN/ACK)。対象のユニットはユニット2-1で、これはディレクタ/バックアップの所有者であり、トラフィックを所有者に転送します。
firepower# cluster exec unit unit-2-1 show capture CAPO packet-number 1 trace
1: 12:58:33.359249 802.1Q vlan#202 P0 192.168.241.50.80 > 192.168.240.50.46502: S 4257314722:4257314722(0) ack 1434968588 win 28960 <mss 1460,sackOK,timestamp 520893004 510537534,nop,wscale 7>
...
Phase: 4
Type: CLUSTER-EVENT
Subtype:
Result: ALLOW
Config:
Additional Information:
Input interface: 'OUTSIDE'
Flow type: NO FLOW
I (1) got initial, attempting ownership.
Phase: 5
Type: CLUSTER-EVENT
Subtype:
Result: ALLOW
Config:
Additional Information:
Input interface: 'OUTSIDE'
Flow type: NO FLOW
I (1) am early redirecting to (0) due to matching action (-1).
展望4.FTDデータプレーンのsyslogには、すべてのユニットでの接続の作成と終了が表示されます。
firepower# cluster exec show log | i 46502
unit-1-1(LOCAL):******************************************************
Dec 01 2020 12:58:33: %FTD-6-302013: Built inbound TCP connection 9742 for INSIDE:192.168.240.50/46502 (192.168.240.50/46502) to OUTSIDE:192.168.241.50/80 (192.168.241.50/80)
Dec 01 2020 12:59:02: %FTD-6-302014: Teardown TCP connection 9742 for INSIDE:192.168.240.50/46502 to OUTSIDE:192.168.241.50/80 duration 0:00:28 bytes 2048000440 TCP FINs from INSIDE
unit-2-1:*************************************************************
Dec 01 2020 12:58:33: %FTD-6-302022: Built forwarder stub TCP connection for OUTSIDE:192.168.241.50/80 (192.168.241.50/80) to unknown:192.168.240.50/46502 (192.168.240.50/46502)
Dec 01 2020 12:58:33: %FTD-6-302023: Teardown forwarder TCP connection for OUTSIDE:192.168.241.50/80 to unknown:192.168.240.50/46502 duration 0:00:00 forwarded bytes 0 Forwarding or redirect flow removed to create director or backup flow
Dec 01 2020 12:58:33: %FTD-6-302022: Built director stub TCP connection for INSIDE:192.168.240.50/46502 (192.168.240.50/46502) to OUTSIDE:192.168.241.50/80 (192.168.241.50/80)
Dec 01 2020 12:59:02: %FTD-6-302023: Teardown director TCP connection for INSIDE:192.168.240.50/46502 to OUTSIDE:192.168.241.50/80 duration 0:00:28 forwarded bytes 2048316300 Cluster flow with CLU closed on owner
unit-3-1:*************************************************************
firepower#
ケース スタディ 4非対称トラフィック(所有者はディレクタ)
観察1.reinject-hideキャプチャは、ユニット–1-1(非対称フロー)およびユニット–2-1(非対称フロー)のパケットを示します。
firepower# cluster exec show cap
unit-1-1(LOCAL):******************************************************
capture CCL type raw-data buffer 33554432 interface cluster [Buffer Full - 33554229 bytes]
capture CAPI type raw-data buffer 100000 trace interface INSIDE [Buffer Full - 98974 bytes]
match tcp host 192.168.240.50 host 192.168.241.50 eq www
capture CAPO type raw-data buffer 100000 trace interface OUTSIDE [Buffer Full - 98974 bytes]
match tcp host 192.168.240.50 host 192.168.241.50 eq www
capture CAPI_RH type raw-data reinject-hide buffer 100000 interface INSIDE [Buffer Full - 98974 bytes]
match tcp host 192.168.240.50 host 192.168.241.50 eq www
capture CAPO_RH type raw-data reinject-hide buffer 100000 interface OUTSIDE [Buffer Full - 99924 bytes]
match tcp host 192.168.240.50 host 192.168.241.50 eq www
unit-2-1:*************************************************************
capture CCL type raw-data buffer 33554432 interface cluster [Buffer Full - 33552925 bytes]
capture CAPI type raw-data buffer 100000 trace interface INSIDE [Capturing - 0 bytes]
match tcp host 192.168.240.50 host 192.168.241.50 eq www
capture CAPO type raw-data buffer 100000 trace interface OUTSIDE [Buffer Full - 99052 bytes]
match tcp host 192.168.240.50 host 192.168.241.50 eq www
capture CAPI_RH type raw-data reinject-hide buffer 100000 interface INSIDE [Capturing - 0 bytes]
match tcp host 192.168.240.50 host 192.168.241.50 eq www
capture CAPO_RH type raw-data reinject-hide buffer 100000 interface OUTSIDE [Buffer Full - 99052 bytes]
match tcp host 192.168.240.50 host 192.168.241.50 eq www
unit-3-1:*************************************************************
capture CCL type raw-data buffer 33554432 interface cluster [Capturing - 227690 bytes]
capture CAPI type raw-data buffer 100000 trace interface INSIDE [Capturing - 0 bytes]
match tcp host 192.168.240.50 host 192.168.241.50 eq www
capture CAPO type raw-data buffer 100000 trace interface OUTSIDE [Capturing - 4754 bytes]
match tcp host 192.168.240.50 host 192.168.241.50 eq www
capture CAPI_RH type raw-data reinject-hide buffer 100000 interface INSIDE [Capturing - 0 bytes]
match tcp host 192.168.240.50 host 192.168.241.50 eq www
capture CAPO_RH type raw-data reinject-hide buffer 100000 interface OUTSIDE [Capturing - 0 bytes]
match tcp host 192.168.240.50 host 192.168.241.50 eq www
展望2.送信元ポート46916を使用したフローの接続フラグ分析。
firepower# cluster exec show conn
unit-1-1(LOCAL):******************************************************
23 in use, 25 most used
Cluster:
fwd connections: 0 in use, 1 most used
dir connections: 0 in use, 122 most used
centralized connections: 0 in use, 0 most used
VPN redirect connections: 0 in use, 0 most used
Inspect Snort:
preserve-connection: 1 enabled, 0 in effect, 4 most enabled, 1 most in effect
TCP OUTSIDE 192.168.241.50:80 INSIDE 192.168.240.50:46916, idle 0:00:00, bytes 414682616, flags UIO N1
unit-2-1:*************************************************************
21 in use, 271 most used
Cluster:
fwd connections: 1 in use, 2 most used
dir connections: 0 in use, 2 most used
centralized connections: 0 in use, 0 most used
VPN redirect connections: 0 in use, 0 most used
Inspect Snort:
preserve-connection: 0 enabled, 0 in effect, 249 most enabled, 0 most in effect
TCP OUTSIDE 192.168.241.50:80 NP Identity Ifc 192.168.240.50:46916, idle 0:00:00, bytes 0, flags z
unit-3-1:*************************************************************
17 in use, 20 most used
Cluster:
fwd connections: 0 in use, 5 most used
dir connections: 1 in use, 127 most used
centralized connections: 0 in use, 0 most used
VPN redirect connections: 0 in use, 0 most used
Inspect Snort:
preserve-connection: 0 enabled, 0 in effect, 1 most enabled, 0 most in effect
TCP OUTSIDE 192.168.241.50:80 INSIDE 192.168.240.50:46916, idle 0:00:04, bytes 0, flags y
ユニット |
フラグ |
注 |
ユニット–1-1 |
UIO |
・フロー所有者 – ユニットがフローを処理します ・ディレクタ:ユニット–3-1には「Y」ではなく「Y」があるため、ユニット–1-1がこのフローのディレクタとして選択されたことを示します。したがって、このユニットは所有者でもあるため、別のユニット(この場合はユニット3-1)がバックアップ所有者として選出されました |
ユニット2-1 |
z |
・フォワーダ |
ユニット3-1 |
y |
– バックアップ所有者 |
それを図で示します。
展望3.トレースを使用したキャプチャは、非対称トラフィックと、ユニット–2-1からユニット–1-1へのリダイレクションを示しています。
ユニット2-1(フォワーダ)
firepower# cluster exec unit unit-2-1 show capture CAPO packet-number 1 trace
1: 16:11:33.653164 802.1Q vlan#202 P0 192.168.241.50.80 > 192.168.240.50.46916: S 1331019196:1331019196(0) ack 3089755618 win 28960 <mss 1460,sackOK,timestamp 532473211 522117741,nop,wscale 7>
...
Phase: 4
Type: CLUSTER-EVENT
Subtype:
Result: ALLOW
Config:
Additional Information:
Input interface: 'OUTSIDE'
Flow type: NO FLOW
I (1) got initial, attempting ownership.
Phase: 5
Type: CLUSTER-EVENT
Subtype:
Result: ALLOW
Config:
Additional Information:
Input interface: 'OUTSIDE'
Flow type: NO FLOW
I (1) am early redirecting to (0) due to matching action (-1).
展望4.FTDデータプレーンのsyslogには、すべてのユニットでの接続の作成と終了が表示されます。
firepower# cluster exec show log | i 46916
unit-1-1(LOCAL):******************************************************
Dec 01 2020 16:11:33: %FTD-6-302013: Built inbound TCP connection 10023 for INSIDE:192.168.240.50/46916 (192.168.240.50/46916) to OUTSIDE:192.168.241.50/80 (192.168.241.50/80)
Dec 01 2020 16:11:42: %FTD-6-302014: Teardown TCP connection 10023 for INSIDE:192.168.240.50/46916 to OUTSIDE:192.168.241.50/80 duration 0:00:09 bytes 1024010016 TCP FINs from INSIDE
unit-2-1:*************************************************************
Dec 01 2020 16:11:33: %FTD-6-302022: Built forwarder stub TCP connection for OUTSIDE:192.168.241.50/80 (192.168.241.50/80) to unknown:192.168.240.50/46916 (192.168.240.50/46916)
Dec 01 2020 16:11:42: %FTD-6-302023: Teardown forwarder TCP connection for OUTSIDE:192.168.241.50/80 to unknown:192.168.240.50/46916 duration 0:00:09 forwarded bytes 1024009868 Cluster flow with CLU closed on owner
unit-3-1:*************************************************************
Dec 01 2020 16:11:33: %FTD-6-302022: Built backup stub TCP connection for INSIDE:192.168.240.50/46916 (192.168.240.50/46916) to OUTSIDE:192.168.241.50/80 (192.168.241.50/80)
Dec 01 2020 16:11:42: %FTD-6-302023: Teardown backup TCP connection for INSIDE:192.168.240.50/46916 to OUTSIDE:192.168.241.50/80 duration 0:00:09 forwarded bytes 0 Cluster flow with CLU closed on owner
ケース スタディ 5非対称トラフィック(所有者がディレクタと異なる)。
観察1.reinject-hideキャプチャは、ユニット–1-1(非対称フロー)およびユニット–2-1(非対称フロー)のパケットを示します。
firepower# cluster exec show cap
unit-1-1(LOCAL):******************************************************
capture CCL type raw-data buffer 33554432 interface cluster [Buffer Full - 33553207 bytes]
capture CAPI type raw-data buffer 100000 trace interface INSIDE [Buffer Full - 99396 bytes]
match tcp host 192.168.240.50 host 192.168.241.50 eq www
capture CAPO type raw-data buffer 100000 trace interface OUTSIDE [Buffer Full - 99224 bytes]
match tcp host 192.168.240.50 host 192.168.241.50 eq www
capture CAPI_RH type raw-data reinject-hide buffer 100000 interface INSIDE [Buffer Full - 99396 bytes]
match tcp host 192.168.240.50 host 192.168.241.50 eq www
capture CAPO_RH type raw-data reinject-hide buffer 100000 interface OUTSIDE [Buffer Full - 99928 bytes]
match tcp host 192.168.240.50 host 192.168.241.50 eq www
unit-2-1:*************************************************************
capture CCL type raw-data buffer 33554432 interface cluster [Buffer Full - 33554251 bytes]
capture CAPI type raw-data buffer 100000 trace interface INSIDE [Capturing - 0 bytes]
match tcp host 192.168.240.50 host 192.168.241.50 eq www
capture CAPO type raw-data buffer 100000 trace interface OUTSIDE [Buffer Full - 99052 bytes]
match tcp host 192.168.240.50 host 192.168.241.50 eq www
capture CAPI_RH type raw-data reinject-hide buffer 100000 interface INSIDE [Capturing - 0 bytes]
match tcp host 192.168.240.50 host 192.168.241.50 eq www
capture CAPO_RH type raw-data reinject-hide buffer 100000 interface OUTSIDE [Buffer Full - 99052 bytes]
match tcp host 192.168.240.50 host 192.168.241.50 eq www
unit-3-1:*************************************************************
capture CCL type raw-data buffer 33554432 interface cluster [Capturing - 131925 bytes]
capture CAPI type raw-data buffer 100000 trace interface INSIDE [Capturing - 0 bytes]
match tcp host 192.168.240.50 host 192.168.241.50 eq www
capture CAPO type raw-data buffer 100000 trace interface OUTSIDE [Capturing - 2592 bytes]
match tcp host 192.168.240.50 host 192.168.241.50 eq www
capture CAPI_RH type raw-data reinject-hide buffer 100000 interface INSIDE [Capturing - 0 bytes]
match tcp host 192.168.240.50 host 192.168.241.50 eq www
capture CAPO_RH type raw-data reinject-hide buffer 100000 interface OUTSIDE [Capturing - 0 bytes]
match tcp host 192.168.240.50 host 192.168.241.50 eq www
展望2.送信元ポート46994を使用したフローの接続フラグ分析:
firepower# cluster exec show conn
unit-1-1(LOCAL):******************************************************
23 in use, 25 most used
Cluster:
fwd connections: 0 in use, 1 most used
dir connections: 0 in use, 122 most used
centralized connections: 0 in use, 0 most used
VPN redirect connections: 0 in use, 0 most used
Inspect Snort:
preserve-connection: 1 enabled, 0 in effect, 4 most enabled, 1 most in effect
TCP OUTSIDE 192.168.241.50:80 INSIDE 192.168.240.50:46994, idle 0:00:00, bytes 406028640, flags UIO N1
unit-2-1:*************************************************************
22 in use, 271 most used
Cluster:
fwd connections: 1 in use, 2 most used
dir connections: 0 in use, 2 most used
centralized connections: 0 in use, 0 most used
VPN redirect connections: 0 in use, 0 most used
Inspect Snort:
preserve-connection: 0 enabled, 0 in effect, 249 most enabled, 0 most in effect
TCP OUTSIDE 192.168.241.50:80 NP Identity Ifc 192.168.240.50:46994, idle 0:00:00, bytes 0, flags z
unit-3-1:*************************************************************
17 in use, 20 most used
Cluster:
fwd connections: 2 in use, 5 most used
dir connections: 1 in use, 127 most used
centralized connections: 0 in use, 0 most used
VPN redirect connections: 0 in use, 0 most used
Inspect Snort:
preserve-connection: 0 enabled, 0 in effect, 1 most enabled, 0 most in effect
TCP OUTSIDE 192.168.241.50:80 INSIDE 192.168.240.50:46994, idle 0:00:05, bytes 0, flags Y
ユニット |
フラグ |
注 |
ユニット–1-1 |
UIO |
・フロー所有者 – ユニットがフローを処理します |
ユニット2-1 |
z |
・フォワーダ |
ユニット3-1 |
Y |
・バックアップ・オーナー ·Director |
それを図で示します。
展望3.トレースを使用したキャプチャは、非対称トラフィックと、ユニット–2-1からユニット–1-1へのリダイレクションを示しています。
ユニット1-1(オーナー)
firepower# cluster exec show cap CAPI packet-number 1 trace
unit-1-1(LOCAL):******************************************************
…
Phase: 4
Type: CLUSTER-EVENT
Subtype:
Result: ALLOW
Config:
Additional Information:
Input interface: 'INSIDE'
Flow type: NO FLOW
I (0) got initial, attempting ownership.
Phase: 5
Type: CLUSTER-EVENT
Subtype:
Result: ALLOW
Config:
Additional Information:
Input interface: 'INSIDE'
Flow type: NO FLOW
I (0) am becoming owner
ユニット2-1(フォワーダ)
firepower# cluster exec unit unit-2-1 show cap CAPO packet-number 1 trace
1: 16:46:44.232074 802.1Q vlan#202 P0 192.168.241.50.80 > 192.168.240.50.46994: S 2863659376:2863659376(0) ack 2879616990 win 28960 <mss 1460,sackOK,timestamp 534583774 524228304,nop,wscale 7>
…
Phase: 4
Type: CLUSTER-EVENT
Subtype:
Result: ALLOW
Config:
Additional Information:
Input interface: 'OUTSIDE'
Flow type: NO FLOW
I (1) got initial, attempting ownership.
Phase: 5
Type: CLUSTER-EVENT
Subtype:
Result: ALLOW
Config:
Additional Information:
Input interface: 'OUTSIDE'
Flow type: NO FLOW
I (1) am early redirecting to (0) due to matching action (-1).
展望4.FTDデータプレーンのsyslogには、すべてのユニットでの接続の作成と終了が表示されます。
firepower# cluster exec show log | i 46994
unit-1-1(LOCAL):******************************************************
Dec 01 2020 16:46:44: %FTD-6-302013: Built inbound TCP connection 10080 for INSIDE:192.168.240.50/46994 (192.168.240.50/46994) to OUTSIDE:192.168.241.50/80 (192.168.241.50/80)
Dec 01 2020 16:46:53: %FTD-6-302014: Teardown TCP connection 10080 for INSIDE:192.168.240.50/46994 to OUTSIDE:192.168.241.50/80 duration 0:00:09 bytes 1024000440 TCP FINs from INSIDE
unit-2-1:*************************************************************
Dec 01 2020 16:46:44: %FTD-6-302022: Built forwarder stub TCP connection for OUTSIDE:192.168.241.50/80 (192.168.241.50/80) to unknown:192.168.240.50/46994 (192.168.240.50/46994)
Dec 01 2020 16:46:53: %FTD-6-302023: Teardown forwarder TCP connection for OUTSIDE:192.168.241.50/80 to unknown:192.168.240.50/46994 duration 0:00:09 forwarded bytes 1024000292 Cluster flow with CLU closed on owner
unit-3-1:*************************************************************
Dec 01 2020 16:46:44: %FTD-6-302022: Built director stub TCP connection for INSIDE:192.168.240.50/46994 (192.168.240.50/46994) to OUTSIDE:192.168.241.50/80 (192.168.241.50/80)
Dec 01 2020 16:46:53: %FTD-6-302023: Teardown director TCP connection for INSIDE:192.168.240.50/46994 to OUTSIDE:192.168.241.50/80 duration 0:00:09 forwarded bytes 0 Cluster flow with CLU closed on owner
次のケーススタディでは、使用されるトポロジはインラインセットを持つクラスタに基づいています。
ケース スタディ 6非対称トラフィック(インラインセット、所有者はディレクタ)
観察1.reinject-hideキャプチャは、ユニット–1-1(非対称フロー)とユニット–2-1(非対称フロー)のパケットを示します。さらに、所有者はユニット2-1です(reinject-hideキャプチャ用にINSIDEとOUTSIDEの両方のインターフェイスにパケットがあり、ユニット1-1にはOUTSIDEだけがあります)。
firepower# cluster exec show cap
unit-1-1(LOCAL):******************************************************
capture CCL type raw-data buffer 33554432 interface cluster [Buffer Full - 33553253 bytes]
capture CAPO type raw-data trace interface OUTSIDE [Buffer Full - 523432 bytes]
match tcp host 192.168.240.50 host 192.168.240.51 eq www
capture CAPI type raw-data trace interface INSIDE [Capturing - 0 bytes]
match tcp host 192.168.240.50 host 192.168.240.51 eq www
capture CAPO_RH type raw-data reinject-hide interface OUTSIDE [Buffer Full - 523432 bytes]
match tcp host 192.168.240.50 host 192.168.240.51 eq www
capture CAPI_RH type raw-data reinject-hide interface INSIDE [Capturing - 0 bytes]
match tcp host 192.168.240.50 host 192.168.240.51 eq www
unit-2-1:*************************************************************
capture CCL type raw-data buffer 33554432 interface cluster [Buffer Full - 33554312 bytes]
capture CAPO type raw-data trace interface OUTSIDE [Buffer Full - 523782 bytes]
match tcp host 192.168.240.50 host 192.168.240.51 eq www
capture CAPI type raw-data trace interface INSIDE [Buffer Full - 523782 bytes]
match tcp host 192.168.240.50 host 192.168.240.51 eq www
capture CAPO_RH type raw-data reinject-hide interface OUTSIDE [Buffer Full - 524218 bytes]
match tcp host 192.168.240.50 host 192.168.240.51 eq www
capture CAPI_RH type raw-data reinject-hide interface INSIDE [Buffer Full - 523782 bytes]
match tcp host 192.168.240.50 host 192.168.240.51 eq www
unit-3-1:*************************************************************
capture CCL type raw-data buffer 33554432 interface cluster [Capturing - 53118 bytes]
capture CAPO type raw-data trace interface OUTSIDE [Capturing - 0 bytes]
match tcp host 192.168.240.50 host 192.168.240.51 eq www
capture CAPI type raw-data trace interface INSIDE [Capturing - 0 bytes]
match tcp host 192.168.240.50 host 192.168.240.51 eq www
capture CAPO_RH type raw-data reinject-hide interface OUTSIDE [Capturing - 0 bytes]
match tcp host 192.168.240.50 host 192.168.240.51 eq www
capture CAPI_RH type raw-data reinject-hide interface INSIDE [Capturing - 0 bytes]
match tcp host 192.168.240.50 host 192.168.240.51 eq www
展望2.送信元ポート51844を使用したフローの接続フラグ分析。
firepower# cluster exec show conn addr 192.168.240.51
unit-1-1(LOCAL):******************************************************
30 in use, 102 most used
Cluster:
fwd connections: 1 in use, 1 most used
dir connections: 2 in use, 122 most used
centralized connections: 3 in use, 39 most used
VPN redirect connections: 0 in use, 0 most used
Inspect Snort:
preserve-connection: 0 enabled, 0 in effect, 4 most enabled, 1 most in effect
TCP OUTSIDE 192.168.240.51:80 NP Identity Ifc 192.168.240.50:51844, idle 0:00:00, bytes 0, flags z
unit-2-1:*************************************************************
23 in use, 271 most used
Cluster:
fwd connections: 0 in use, 2 most used
dir connections: 4 in use, 26 most used
centralized connections: 0 in use, 14 most used
VPN redirect connections: 0 in use, 0 most used
Inspect Snort:
preserve-connection: 0 enabled, 0 in effect, 249 most enabled, 0 most in effect
TCP OUTSIDE 192.168.240.51:80 INSIDE 192.168.240.50:51844, idle 0:00:00, bytes 231214400, flags b N
unit-3-1:*************************************************************
20 in use, 55 most used
Cluster:
fwd connections: 0 in use, 5 most used
dir connections: 1 in use, 127 most used
centralized connections: 0 in use, 24 most used
VPN redirect connections: 0 in use, 0 most used
Inspect Snort:
preserve-connection: 0 enabled, 0 in effect, 1 most enabled, 0 most in effect
TCP OUTSIDE 192.168.240.51:80 INSIDE 192.168.240.50:51844, idle 0:00:01, bytes 0, flags y
ユニット |
フラグ |
注 |
ユニット–1-1 |
z |
・フォワーダ |
ユニット2-1 |
b N |
・フロー所有者 – ユニットがフローを処理します |
ユニット3-1 |
y |
・バックアップ・オーナー |
それを図で示します。
展望3.トレースを使用したキャプチャは、非対称トラフィックと、ユニット–1-1からユニット–2-1へのリダイレクションを示しています。
ユニット2-1(オーナー/ディレクタ)
firepower# cluster exec unit unit-2-1 show cap CAPI packet-number 1 trace
1: 18:10:12.842912 192.168.240.50.51844 > 192.168.240.51.80: S 4082593463:4082593463(0) win 29200 <mss 1460,sackOK,timestamp 76258053 0,nop,wscale 7>
Phase: 1
Type: CLUSTER-EVENT
Subtype:
Result: ALLOW
Config:
Additional Information:
Input interface: 'INSIDE'
Flow type: NO FLOW
I (1) got initial, attempting ownership.
Phase: 2
Type: CLUSTER-EVENT
Subtype:
Result: ALLOW
Config:
Additional Information:
Input interface: 'INSIDE'
Flow type: NO FLOW
I (1) am becoming owner
ユニット1-1(フォワーダ)
firepower# cluster exec show cap CAPO packet-number 1 trace
unit-1-1(LOCAL):******************************************************
1: 18:10:12.842317 192.168.240.51.80 > 192.168.240.50.51844: S 2339579109:2339579109(0) ack 4082593464 win 28960 <mss 1460,sackOK,timestamp 513139467 76258053,nop,wscale 7>
Phase: 1
Type: CLUSTER-EVENT
Subtype:
Result: ALLOW
Config:
Additional Information:
Input interface: 'OUTSIDE'
Flow type: NO FLOW
I (0) am asking director (1).
リターントラフィック(TCP SYN/ACK)
ユニット2-1(オーナー/ディレクタ)
firepower# cluster exec unit unit-2-1 show cap CAPO packet-number 2 trace
2: 18:10:12.843660 192.168.240.51.80 > 192.168.240.50.51844: S 2339579109:2339579109(0) ack 4082593464 win 28960 <mss 1460,sackOK,timestamp 513139467 76258053,nop,wscale 7>
Phase: 1
Type: CLUSTER-EVENT
Subtype:
Result: ALLOW
Config:
Additional Information:
Input interface: 'OUTSIDE'
Flow type: FULL
I (1) am owner, update sender (0).
Phase: 2
Type: FLOW-LOOKUP
Subtype:
Result: ALLOW
Config:
Additional Information:
Found flow with id 7109, using existing flow
展望4.FTDデータプレーンのsyslogには、すべてのユニットでの接続の作成と終了が表示されます。
firepower# cluster exec show log | include 51844
unit-1-1(LOCAL):******************************************************
Dec 02 2020 18:10:12: %FTD-6-302022: Built forwarder stub TCP connection for OUTSIDE:192.168.240.51/80 (192.168.240.51/80) to unknown:192.168.240.50/51844 (192.168.240.50/51844)
Dec 02 2020 18:10:22: %FTD-6-302023: Teardown forwarder TCP connection for OUTSIDE:192.168.240.51/80 to unknown:192.168.240.50/51844 duration 0:00:09 forwarded bytes 1024001740 Cluster flow with CLU closed on owner
unit-2-1:*************************************************************
Dec 02 2020 18:10:12: %FTD-6-302303: Built TCP state-bypass connection 7109 from INSIDE:192.168.240.50/51844 (192.168.240.50/51844) to OUTSIDE:192.168.240.51/80 (192.168.240.51/80)
Dec 02 2020 18:10:22: %FTD-6-302304: Teardown TCP state-bypass connection 7109 from INSIDE:192.168.240.50/51844 to OUTSIDE:192.168.240.51/80 duration 0:00:09 bytes 1024001888 TCP FINs
unit-3-1:*************************************************************
Dec 02 2020 18:10:12: %FTD-6-302022: Built backup stub TCP connection for INSIDE:192.168.240.50/51844 (192.168.240.50/51844) to OUTSIDE:192.168.240.51/80 (192.168.240.51/80)
Dec 02 2020 18:10:22: %FTD-6-302023: Teardown backup TCP connection for INSIDE:192.168.240.50/51844 to OUTSIDE:192.168.240.51/80 duration 0:00:09 forwarded bytes 0 Cluster flow with CLU closed on owner
ケース スタディ 7非対称トラフィック(インラインセット、所有者がディレクタと異なる)
所有者はユニット2-1です(reinject-hideキャプチャ用にINSIDEとOUTSIDEの両方のインターフェイスにパケットが存在するのに対し、ユニット3-1はOUTSIDEにのみ存在します)。
firepower# cluster exec show cap
unit-1-1(LOCAL):******************************************************
capture CCL type raw-data buffer 33554432 interface cluster [Capturing - 13902 bytes]
capture CAPO type raw-data trace interface OUTSIDE [Capturing - 90 bytes]
match tcp host 192.168.240.50 host 192.168.240.51 eq www
capture CAPI type raw-data trace interface INSIDE [Capturing - 0 bytes]
match tcp host 192.168.240.50 host 192.168.240.51 eq www
capture CAPO_RH type raw-data reinject-hide interface OUTSIDE [Capturing - 0 bytes]
match tcp host 192.168.240.50 host 192.168.240.51 eq www
capture CAPI_RH type raw-data reinject-hide interface INSIDE [Capturing - 0 bytes]
match tcp host 192.168.240.50 host 192.168.240.51 eq www
unit-2-1:*************************************************************
capture CCL type raw-data buffer 33554432 interface cluster [Buffer Full - 33553936 bytes]
capture CAPO type raw-data trace interface OUTSIDE [Buffer Full - 523126 bytes]
match tcp host 192.168.240.50 host 192.168.240.51 eq www
capture CAPI type raw-data trace interface INSIDE [Buffer Full - 523126 bytes]
match tcp host 192.168.240.50 host 192.168.240.51 eq www
capture CAPO_RH type raw-data reinject-hide interface OUTSIDE [Buffer Full - 524230 bytes]
match tcp host 192.168.240.50 host 192.168.240.51 eq www
capture CAPI_RH type raw-data reinject-hide interface INSIDE [Buffer Full - 523126 bytes]
match tcp host 192.168.240.50 host 192.168.240.51 eq www
unit-3-1:*************************************************************
capture CCL type raw-data buffer 33554432 interface cluster [Buffer Full - 33553566 bytes]
capture CAPO type raw-data trace interface OUTSIDE [Buffer Full - 523522 bytes]
match tcp host 192.168.240.50 host 192.168.240.51 eq www
capture CAPI type raw-data trace interface INSIDE [Capturing - 0 bytes]
match tcp host 192.168.240.50 host 192.168.240.51 eq www
capture CAPO_RH type raw-data reinject-hide interface OUTSIDE [Buffer Full - 523432 bytes]
match tcp host 192.168.240.50 host 192.168.240.51 eq www
capture CAPI_RH type raw-data reinject-hide interface INSIDE [Capturing - 0 bytes]
match tcp host 192.168.240.50 host 192.168.240.51 eq www
展望2.送信元ポート59210を使用したフローの接続フラグ分析。
firepower# cluster exec show conn addr 192.168.240.51
unit-1-1(LOCAL):******************************************************
25 in use, 102 most used
Cluster:
fwd connections: 0 in use, 1 most used
dir connections: 2 in use, 122 most used
centralized connections: 0 in use, 39 most used
VPN redirect connections: 0 in use, 0 most used
Inspect Snort:
preserve-connection: 0 enabled, 0 in effect, 4 most enabled, 1 most in effect
TCP OUTSIDE 192.168.240.51:80 INSIDE 192.168.240.50:59210, idle 0:00:03, bytes 0, flags Y
unit-2-1:*************************************************************
21 in use, 271 most used
Cluster:
fwd connections: 0 in use, 2 most used
dir connections: 0 in use, 28 most used
centralized connections: 0 in use, 14 most used
VPN redirect connections: 0 in use, 0 most used
Inspect Snort:
preserve-connection: 0 enabled, 0 in effect, 249 most enabled, 0 most in effect
TCP OUTSIDE 192.168.240.51:80 INSIDE 192.168.240.50:59210, idle 0:00:00, bytes 610132872, flags b N
unit-3-1:*************************************************************
19 in use, 55 most used
Cluster:
fwd connections: 1 in use, 5 most used
dir connections: 0 in use, 127 most used
centralized connections: 0 in use, 24 most used
VPN redirect connections: 0 in use, 0 most used
Inspect Snort:
preserve-connection: 0 enabled, 0 in effect, 1 most enabled, 0 most in effect
TCP OUTSIDE 192.168.240.51:80 NP Identity Ifc 192.168.240.50:59210, idle 0:00:00, bytes 0, flags z
ユニット |
フラグ |
注 |
ユニット–1-1 |
Y |
・ダイレクタ/バックアップ・オーナー |
ユニット2-1 |
b N |
・フロー所有者 – ユニットがフローを処理します |
ユニット3-1 |
z |
・フォワーダ |
それを図で示します。
注:ステップ2(CCLを通過するパケット)は、ステップ4(データトラフィック)の前に実行することが重要です。別のケース(競合状態など)では、ディレクタはフローを認識しません。したがって、これはインラインセットであるため、はパケットを宛先に転送します。インターフェイスがインラインセットにない場合、データパケットはドロップされます。
展望3.トレースを使用したキャプチャは、CCL上の非対称トラフィックと交換を示します。
転送トラフィック(TCP SYN)
ユニット2-1(オーナー)
firepower# cluster exec unit unit-2-1 show cap CAPI packet-number 1 trace
1: 09:19:49.760702 192.168.240.50.59210 > 192.168.240.51.80: S 4110299695:4110299695(0) win 29200 <mss 1460,sackOK,timestamp 130834570 0,nop,wscale 7>
Phase: 1
Type: CLUSTER-EVENT
Subtype:
Result: ALLOW
Config:
Additional Information:
Input interface: 'INSIDE'
Flow type: NO FLOW
I (1) got initial, attempting ownership.
Phase: 2
Type: CLUSTER-EVENT
Subtype:
Result: ALLOW
Config:
Additional Information:
Input interface: 'INSIDE'
Flow type: NO FLOW
I (1) am becoming owner
リターントラフィック(TCP SYN/ACK)
ユニット–3-1(ID 2 – フォワーダ)は、CCLを介してユニット–1-1(ID 0 – ディレクタ)にパケットを送信します。
firepower# cluster exec unit unit-3-1 show cap CAPO packet-number 1 trace
1: 09:19:49.760336 192.168.240.51.80 > 192.168.240.50.59210: S 4209225081:4209225081(0) ack 4110299696 win 28960 <mss 1460,sackOK,timestamp 567715984 130834570,nop,wscale 7>
Phase: 1
Type: CLUSTER-EVENT
Subtype:
Result: ALLOW
Config:
Additional Information:
Input interface: 'OUTSIDE'
Flow type: NO FLOW
I (2) am asking director (0).
ユニット–1-1(ダイレクタ):ユニット–1-1(ID 0)は、フロー所有者がユニット–2-1(ID 1)であることを認識し、CCLを介してユニット–3-1(ID 2 – フォワーダ)にパケットを返信します。
firepower# cluster exec show cap CAPO packet-number 1 trace
unit-1-1(LOCAL):******************************************************
1: 09:19:49.761038 192.168.240.51.80 > 192.168.240.50.59210: S 4209225081:4209225081(0) ack 4110299696 win 28960 <mss 1460,sackOK,timestamp 567715984 130834570,nop,wscale 7>
Phase: 1
Type: CLUSTER-EVENT
Subtype:
Result: ALLOW
Config:
Additional Information:
Input interface: 'OUTSIDE'
Flow type: STUB
I (0) am director, valid owner (1), update sender (2).
ユニット–3-1(ID 2 – フォワーダ)は、CCLを介してパケットを取得し、ユニット–2-1(ID 1 – 所有者)に送信します。
firepower# cluster exec unit unit-3-1 show cap CAPO packet-number 2 trace
...
2: 09:19:49.761008 192.168.240.51.80 > 192.168.240.50.59210: S 4209225081:4209225081(0) ack 4110299696 win 28960 <mss 1460,sackOK,timestamp 567715984 130834570,nop,wscale 7>
Phase: 1
Type: CLUSTER-EVENT
Subtype:
Result: ALLOW
Config:
Additional Information:
Input interface: 'OUTSIDE'
Flow type: STUB
I (2) am becoming forwarder to (1), sender (0).
所有者はパケットを再び挿入し、宛先に転送します。
firepower# cluster exec unit unit-2-1 show cap CAPO packet-number 2 trace
2: 09:19:49.775701 192.168.240.51.80 > 192.168.240.50.59210: S 4209225081:4209225081(0) ack 4110299696 win 28960 <mss 1460,sackOK,timestamp 567715984 130834570,nop,wscale 7>
Phase: 1
Type: CLUSTER-EVENT
Subtype:
Result: ALLOW
Config:
Additional Information:
Input interface: 'OUTSIDE'
Flow type: FULL
I (1) am owner, sender (2).
展望4.FTDデータプレーンのsyslogには、すべてのユニットでの接続の作成と終了が表示されます。
firepower# cluster exec show log | i 59210
unit-1-1(LOCAL):******************************************************
Dec 03 2020 09:19:49: %FTD-6-302022: Built director stub TCP connection for INSIDE:192.168.240.50/59210 (192.168.240.50/59210) to OUTSIDE:192.168.240.51/80 (192.168.240.51/80)
Dec 03 2020 09:19:59: %FTD-6-302023: Teardown director TCP connection for INSIDE:192.168.240.50/59210 to OUTSIDE:192.168.240.51/80 duration 0:00:09 forwarded bytes 0 Cluster flow with CLU closed on owner
unit-2-1:*************************************************************
Dec 03 2020 09:19:49: %FTD-6-302303: Built TCP state-bypass connection 14483 from INSIDE:192.168.240.50/59210 (192.168.240.50/59210) to OUTSIDE:192.168.240.51/80 (192.168.240.51/80)
Dec 03 2020 09:19:59: %FTD-6-302304: Teardown TCP state-bypass connection 14483 from INSIDE:192.168.240.50/59210 to OUTSIDE:192.168.240.51/80 duration 0:00:09 bytes 1024003336 TCP FINs
unit-3-1:*************************************************************
Dec 03 2020 09:19:49: %FTD-6-302022: Built forwarder stub TCP connection for OUTSIDE:192.168.240.51/80 (192.168.240.51/80) to unknown:192.168.240.50/59210 (192.168.240.50/59210)
Dec 03 2020 09:19:59: %FTD-6-302023: Teardown forwarder TCP connection for OUTSIDE:192.168.240.51/80 to unknown:192.168.240.50/59210 duration 0:00:09 forwarded bytes 1024003188 Cluster flow with CLU closed on owner
クラスタの問題は、次のように分類できます。
設定に関する重要な考慮事項
クラスタIPの不均衡を引き起こす低ポートから送信されたトラフィックによる高いPATプール範囲の使用
FTDはPAT IPを複数の範囲に分割し、xlateを同じソース範囲に維持しようとします。次の表に、送信元ポートが同じ送信元レンジ内のグローバルポートにどのように変換されるかを示します。
元の送信元ポート |
変換済み送信元ポート |
1-511 |
1-511 |
512-1023 |
512-1023 |
1024-65535 |
1024-65535 |
送信元ポートの範囲がいっぱいになり、その範囲から新しいPAT xlateを割り当てる必要がある場合、FTDは次のIPに移動して、その送信元ポートの範囲に新しい変換を割り当てます。
症状
クラスタを通過するNATトラフィックの接続の問題
検証
# show nat pool
FTDデータプレーンログにPATプール枯渇が示されます。
Dec 9 09:00:00 192.0.2.10 FTD-FW %ASA-3-202010: PAT pool exhausted. Unable to create TCP connection from Inside:192.0.2.150/49464 to Outside:192.0.2.250/20015
Dec 9 09:00:00 192.0.2.10 FTD-FW %ASA-3-202010: PAT pool exhausted. Unable to create TCP connection from Inside:192.0.2.148/54141 to Outside:192.0.2.251/443
緩和
NATフラットポート範囲を設定し、リザーブポートを含める。
さらに、6.7/9.15.1以降では、PATの対象となる大量のバックグラウンドトラフィックによってノードがクラスタを離れたりクラスタに参加したりした場合にのみ、ポートブロックの分散が不均衡になることがあります。この機能が自動的に回復する唯一の方法は、ポートブロックがノード間で再分散されるように解放される場合です。
ポートブロックベースの分散では、たとえばpb-1、pb-2 ... pb-10などの10ポートブロックを使用してノードが割り当てられます。ノードは常に最初の使用可能なポートブロックから開始し、枯渇するまでランダムポートを割り当てます。割り当ては、その時点までのすべてのポートブロックが使い果たされた場合にのみ、次のポートブロックに移動します。
たとえば、ホストが512の接続を確立すると、ユニットはpb-1からの512のすべての接続に対してマッピングされたポートをランダムに割り当てます。ここで、これらすべての512接続がアクティブな状態で、ホストがpb-1が使い果たされて513番目の接続を確立すると、ホストはpb-2に移動し、そこからランダムなポートを割り当てます。ここで、513の接続のうち、10番目の接続が終了し、pb-1で使用可能な1つのポートがクリアされたと仮定します。この時点で、ホストが514番目の接続を確立すると、クラスタユニットは、pb-1に空きポート(10番目の接続の削除の一部として解放されたポート)が存在するようになったので、マップされたポートをpb-2ではなくpb-1から割り当てます。
注意すべき重要な点は、割り当ては空きポートを持つ最初の使用可能なポートブロックから行われ、その結果、最後のポートブロックは通常ロードされるシステム内で常に再配送に使用できるということです。また、PATは通常、短期間の接続に使用されます。ポートブロックが短時間で使用可能になる可能性は非常に高くなります。したがって、プール分散のバランスをとるために必要な時間は、ポートブロックベースのプール分散によって改善できます。
ただし、pb-1からpb-10までのすべてのポートブロックが使い果たされた場合、または各ポートブロックが長時間接続できるポートを保持している場合は、ポートブロックが速やかに解放されずに再配送されます。このような場合、最も中断の少ないアプローチは次のとおりです。
警告:これにより、関連する接続が中断されます。
別の宛先へのリダイレクトが発生すると、デュアルチャネルWebサイト(Webメール、銀行など)やSSO Webサイトを参照できません。
症状
デュアルチャネルWebサイト(Webメール、銀行Webサイトなど)を参照できません。ユーザがクライアントに2つ目のソケット/接続を開くことを要求するWebサイトに接続し、2つ目の接続が最初の接続をハッシュしたクラスタメンバとは異なるクラスタメンバにハッシュされ、トラフィックがIP PATプールを使用する場合、トラフィックは別のパブリックIPアドレスから接続を受信するとサーバによってリセットされます。
検証
データプレーンのクラスタキャプチャを取得して、影響を受けるトランジットフローの処理方法を確認します。この場合、TCPリセットは宛先Webサイトから送信されます。
軽減策(6.7/9.15.1より前)
EtherChannelロードバランシングアルゴリズムについて
プール内に十分なPAT IPがないため、制御ノードに送信されるすべてのトラフィックによるクラスタパフォーマンスの低下。
症状
クラスタ内にデータノードに空きIPを割り当てるための十分なPAT IPがないため、PAT設定の対象となるすべてのトラフィックは、処理のために制御ノードに転送されます。
検証
show nat pool clusterコマンドを使用して、各ユニットの割り当てを表示し、すべてのユニットがプール内に少なくとも1つのIPを所有していることを確認します。
緩和
6.7/9.15.1よりも前の場合は、クラスタ内のノード数と少なくとも同じサイズのPATプールがあることを確認します。6.7/9.15.1以降のPATプールでは、すべてのPATプールIPからポートブロックを割り当てます。PATプールの使用率が非常に高く、プールが頻繁に使い果たされる場合は、PATプールサイズを増やす必要があります(「FAQ」セクションを参照)。
xlateがセッション単位で有効になっていないため、制御ノードに送信されるすべてのトラフィックによるパフォーマンスの低下。
症状
多数の高速UDPバックアップフローがクラスタ制御ノードを介して処理されるため、パフォーマンスに影響する可能性があります。
バックグラウンド
PATを使用するデータノードで処理できるのは、セッション単位で有効になっているxlateを使用する接続だけです。show run all xlateコマンドを使用して、xlateのセッションごとの設定を表示します。
セッション単位で有効にすると、関連する接続が切断されるとすぐにxlateが切断されます。これにより、接続にPATが適用される場合の1秒あたりの接続パフォーマンスが向上します。非セッションごとのxlateは、関連する接続が解除されてから30秒間ライブになります。接続レートが十分に高い場合は、各グローバルIP上の使用可能な65k TCP/UDPポートを短時間で使用できます。
デフォルトでは、すべてのTCPトラフィックはxlate単位で有効になっており、UDP DNSトラフィックだけがセッション単位で有効になっています。つまり、DNS以外のすべてのUDPトラフィックが処理のために制御ノードに転送されます。
検証
次のコマンドを使用して、クラスタユニット間の接続とパケット分散を確認します。
firepower# show cluster info conn-distribution
firepower# show cluster info packet-distribution
firepower# show cluster info load-monitor
cluster exec show connコマンドを使用して、UDP接続を所有しているクラスタノードを確認します。
firepower# cluster exec show conn
このコマンドを使用して、クラスタノード間のプールの使用状況を把握します。
firepower# cluster exec show nat pool ip| in UDP
緩和
対象のトラフィック(UDPなど)に対してセッションごとのPAT(per-session permit udpコマンド)を設定します。ICMPの場合、デフォルトのマルチセッションPATから変更することはできません。そのため、PATが設定されている場合、ICMPトラフィックは常にコントロールノードによって処理されます。
ノードがクラスタから出たりクラスタに参加したりすると、PATプールの分散が不均衡になります。
症状
検証
%ASA-3-202010: NAT pool exhausted. Unable to create TCP connection from inside:192.0.2.1/2239 to outside:192.0.2.150/80
緩和
症状
クラスタによってPATされるトラフィックの主要な接続問題。これは、設計上、FTDデータプレーンがグローバルNATアドレスのGARPを送信しないためです。
検証
直接接続されたデバイスのARPテーブルには、制御ノードを変更した後のクラスタデータインターフェイスのさまざまなMACアドレスが表示されます。
root@kali2:~/tests# arp -a
? (192.168.240.1) at f4:db:e6:33:44:2e [ether] on eth0
root@kali2:~/tests# arp -a
? (192.168.240.1) at f4:db:e6:9e:3d:0e [ether] on eth0
緩和
クラスタデータインターフェイスでスタティック(仮想)MACを設定します。
PATの対象となる接続が失敗する
症状
クラスタによってPATされるトラフィックの接続の問題。
検証/緩和
firepower# debug nat 2
nat: no free blocks available to reserve for 192.168.241.59, proto 17
nat: no free blocks available to reserve for 192.168.241.59, proto 17
nat: no free blocks available to reserve for 192.168.241.58, proto 17
nat: no free blocks available to reserve for 192.168.241.58, proto 17
nat: no free blocks available to reserve for 192.168.241.57, proto 17
デバッグを停止するには、次の手順を実行します。
firepower# un all
ASAおよびFTDのPATクラスタリングの改善(9.15以降および6.7)
何が変更されたのですか。
PATの動作が再設計されました。個々のIPは、クラスタメンバーごとに配布されなくなります。代わりに、PAT IPはポートブロックに分割され、IPスティッキ性の動作と組み合わせて、これらのポートブロックをクラスタメンバ間で均等に(可能な限り)分散します。
新しい設計では、次の制限事項に対処します(前のセクションを参照)。
技術的には、デフォルトの1 ~ 511、512 ~ 1023、および1024 ~ 65535ポート範囲の代わりに、PATのデフォルトのポート範囲として1024 ~ 65535が存在します。このデフォルトの範囲は、通常のPATの特権ポート範囲1 ~ 1023を含むように拡張できます(「include-reserve」オプション)。
次に、FTD 6.7でのPATプールの設定例を示します。詳細については、『設定ガイド』の関連セクションを参照してください。
PATに関するその他のトラブルシューティング情報
FTDデータプレーンのsyslog(6.7/9.15.1以降)
スティッキ性無効化syslogは、クラスタノード上のスティッキIPですべてのポートが使い果たされ、割り当てが空きポートを持つ次に使用可能なIPに移動すると生成されます。次に例を示します。
%ASA-4-305021: Ports exhausted in pre-allocated PAT pool IP 192.0.2.100 for host 198.51.100.100 Allocating from new PAT pool IP 203.0.113.100.
プールの不均衡のsyslogは、クラスタに参加するノードで生成され、ポートブロックのシェアを取得しないか、または不均等なシェアを取得しません。次に例を示します。
%ASA-4-305022: Cluster unit ASA-4 has been allocated 0 port blocks for PAT usage. All units should have at least 32 port blocks.
%ASA-4-305022: Cluster unit ASA-4 has been allocated 12 port blocks for PAT usage. All units should have at least 32 port blocks.
Show コマンド
プール配布ステータス
show nat pool cluster summaryの出力では、各PAT IPアドレスに対して、平衡分散シナリオのノード間で1つ以上のポートブロックの差があってはなりません。平衡型および不平衡型のポートブロック分散の例。
firepower# show nat pool cluster summary
port-blocks count display order: total, unit-1-1, unit-2-1, unit-3-1
IP OUTSIDE:ip_192.168.241.57-59 192.168.241.57 (126 - 42 / 42 / 42)
IP OUTSIDE:ip_192.168.241.57-59 192.168.241.58 (126 - 42 / 42 / 42)
IP OUTSIDE:ip_192.168.241.57-59 192.168.241.59 (126 - 42 / 42 / 42)
不均衡な分散:
firepower# show nat pool cluster summary
port-blocks count display order: total, unit-1-1, unit-4-1, unit-2-1, unit-3-1
IP outside:src_map 192.0.2.100 (128 - 32 / 22 / 38 / 36)
プールの所有権の状態
show nat pool clusterの出力には、所有者またはバックアップのいずれかがUNKNOWNである単一のポートブロックがあってはなりません。プールが存在する場合は、プール所有者通信の問題を示しています。以下に例を挙げます。
firepower# show nat pool cluster | in
[3072-3583], owner unit-4-1, backup <UNKNOWN>
[56832-57343], owner <UNKNOWN>, backup <UNKNOWN>
[10240-10751], owner unit-2-1, backup <UNKNOWN>
ポートブロック内のポート割り当てのアカウンティング
show nat poolコマンドが拡張され、詳細情報とフィルタリングされた出力を表示する追加オプションが追加されています。以下に例を挙げます。
firepower# show nat pool detail
TCP PAT pool INSIDE, address 192.168.240.1, range 1-1023, allocated 0
TCP PAT pool INSIDE, address 192.168.240.1, range 1024-65535, allocated 18
UDP PAT pool INSIDE, address 192.168.240.1, range 1-1023, allocated 0
UDP PAT pool INSIDE, address 192.168.240.1, range 1024-65535, allocated 20
TCP PAT pool OUTSIDE, address 192.168.241.1, range 1-1023, allocated 0
TCP PAT pool OUTSIDE, address 192.168.241.1, range 1024-65535, allocated 18
UDP PAT pool OUTSIDE, address 192.168.241.1, range 1-1023, allocated 0
UDP PAT pool OUTSIDE, address 192.168.241.1, range 1024-65535, allocated 20
UDP PAT pool OUTSIDE, address 192.168.241.58
range 1024-1535, allocated 512
range 1536-2047, allocated 512
range 2048-2559, allocated 512
range 2560-3071, allocated 512
...
unit-2-1:*************************************************************
UDP PAT pool OUTSIDE, address 192.168.241.57
range 1024-1535, allocated 512 *
range 1536-2047, allocated 512 *
range 2048-2559, allocated 512 *
'*'は、それがバックアップされたポートブロックであることを示します
この問題を解決するには、clear xlate global <ip> gport <start-end>コマンドを使用して、他のノード上のポートブロックの一部を手動でクリアし、必要なノードに再配布します。
手動でトリガーされたポートブロックの再配布
firepower# show nat pool detail | i 19968
range 19968-20479, allocated 512
range 19968-20479, allocated 512
range 19968-20479, allocated 512
firepower# clear xlate global 192.168.241.57 gport 19968-20479
INFO: 1074 xlates deleted
6.7/9.15.1以降のPATに関するFAQ
Q.クラスタ内の使用可能なユニットの数に対して使用可能なIPの数がある場合でも、ユニットごとに1つのIPをオプションとして使用できますか。
A.現在では、IPアドレスベースのプール分散方式とポートブロックベースのプール分散方式を切り替える切り替えはありません。
古いIPアドレスベースのプール分散方式では、ホストからの複数の接続(単一のアプリケーショントランザクションの一部)がクラスタの異なるノードにロードバランシングされ、異なるマッピングされたIPアドレスに変換されて宛先サーバが異なるエンティティから送信されたものとして認識されるというマルチセッションアプリケーション障害が発生していました。
また、新しいポートブロックベースの分散方式を使用すると、1つのPAT IPアドレスで十分な数のPAT IPアドレスを処理できるようになったとしても、PATが必要な接続数に基づいて十分な数のPAT IPアドレスを使用することが常に推奨されます。
Q.クラスタのPATプール用のIPアドレスのプールを引き続き使用できますか。
A.はい、できます。すべてのPATプールIPからのポートブロックがクラスタノードに分散されます。
Q. PATプールに複数のIPアドレスを使用している場合、各IPアドレスごとに各メンバーに割り当てられるポートのブロックは同じですか。
A.いいえ。各IPは個別に分散されています。
Q.すべてのクラスタノードにすべてのパブリックIPがありますが、ポートのサブセットだけですか。この場合、送信元IPが同じパブリックIPを使用するたびにIPアドレスが一致することが保証されますか。
A.正解です。各PAT IPは各ノードによって部分的に所有されています。選択したパブリックIPがノードで使い果たされると、スティッキIPを保持できないことを示すsyslogが生成され、割り当ては次に使用可能なパブリックIPに移動します。スタンドアロン、HA、またはクラスタの導入であっても、IPスティッキ性はプールの可用性に応じて常にベストエフォート型です。
Q. PATプール内の単一のIPアドレスをベースにしたものがすべて存在しますが、PATプール内の複数のIPアドレスが使用されている場合は適用されません。
A. PATプール内の複数のIPアドレスにも適用されます。PATプール内のすべてのIPからのポートブロックは、クラスタノード間で分散されます。PATプール内のすべてのIPアドレスは、クラスタ内のすべてのメンバに分割されます。したがって、PATプール内にクラスCのアドレスがある場合、すべてのクラスタメンバは、PATプールアドレスの各部分からポートプールを取得します。
Q. CGNATで動作しますか。
A.はい、CGNATも同様にサポートされています。ブロック割り当てPATとも呼ばれるCGNATのデフォルトのブロックサイズは「512」で、xlate block-allocation size CLIを使用して変更できます。通常のダイナミックPAT(非CGNAT)の場合、ブロックサイズは常に「512」で、固定で設定できません。
Q.ユニットがクラスタから出る場合、制御ノードは他のユニットにポートブロック範囲を割り当てますか、それとも制御ノード自体にポートブロック範囲を残しますか。
A.各ポートブロックには所有者とバックアップがあります。xlateは、ポートブロックから作成されるたびに、ポートブロックバックアップノードにも複製されます。ノードがクラスタを離れると、バックアップノードはすべてのポートブロックと現在の接続を所有します。バックアップノードは、これらの追加のポートブロックの所有者になったため、これらの追加のポートブロックに対して新しいバックアップを選択し、障害シナリオを処理するためにそのノードに対して現在のすべてのxlateを複製します。
Q.そのアラートに基づいて、スティッキ性を強化するためにどのようなアクションを実行できますか。
A.スティッキ性が保持できない理由は2つあります。
理由1:トラフィックのロードバランシングが正しく行われないため、ノードの1つが他のノードよりも多くの接続数を認識し、これが特定のスティッキIP枯渇の原因になります。これは、トラフィックがクラスタノード間で均等に分散されていることを確認する場合に対処できます。たとえば、FPR41xxクラスタでは、接続されたスイッチのロードバランシングアルゴリズムを調整します。FPR9300クラスタでは、シャーシ全体でブレードの数が同じになるようにします。
理由2:PATプールの使用率が非常に高いため、プールが頻繁に使い果たされます。これに対処するには、PATプールサイズを増やします。
Q. extendedキーワードのサポートはどのように処理されるのですか。このコマンドはエラーを示し、アップグレード中にNATコマンド全体が追加されるのを防ぎますか。または、extendedキーワードを削除して警告を表示しますか。
A. PAT拡張オプションは、ASA 9.15.1/FP 6.7以降のクラスタではサポートされていません。CLI/ASDM/CSM/FMCのいずれからも設定オプションは削除されません。(アップグレードを介して直接または間接的に)設定すると、警告メッセージが表示されて設定が受け入れられますが、PATの拡張機能の動作は確認できません。
Q.同時接続と同じ数の変換ですか。
A. 6.7/9.15.1より前のバージョンでは、1 ~ 65535でしたが、送信元ポートは1 ~ 1024の範囲ではあまり使用されないため、事実上1024 ~ 65535(64512 conns)になります。6.7/9.15.1以降の実装では、「flat」をデフォルトの動作として使用すると、1024-65535になります。ただし、1-1024を使用する場合は、「include-reserve」オプションを使用できます。
Q.ノードがクラスタに戻って参加する場合、古いバックアップノードがバックアップとして存在し、そのバックアップノードは古いポートブロックをクラスタに提供しますか。
A.その時点でのポートブロックのアベイラビリティによって異なります。ノードがクラスタを離れると、そのノードのすべてのポートブロックがバックアップノードに移動します。次に、空きポートブロックを蓄積し、必要なノードに配布するのは制御ノードです。
Q.制御ノードの状態に変更があった場合、新しい制御ノードが選択され、PATブロックの割り当てが維持されますか、またはポートブロックが新しい制御ノードに基づいて再割り当てされるのですか。
A.新しい制御ノードは、どのブロックが割り当てられたか、およびどのブロックが空いているかについて理解し、そこから開始します。
Q. xlateの最大数は、この新しい動作の同時接続の最大数と同じですか。
A. あります。xlateの最大数は、PATポートのアベイラビリティによって異なります。同時接続の最大数とは関係ありません。1つのアドレスだけを許可する場合は、可能な接続が65535個あります。より多くのIPアドレスが必要な場合は、より多くのIPアドレスを割り当てる必要があります。十分なアドレス/ポートがある場合は、最大同時接続数に到達できます。
Q.新しいクラスタメンバが追加されるときのポートブロック割り当てのプロセスは何ですか。 リブートによってクラスタメンバーが追加された場合はどうなりますか。
A.ポートブロックは常にコントロールノードによって分散されます。ポートブロックは、空きポートブロックがある場合にのみ新しいノードに割り当てられます。空きポートブロックは、ポートブロック内のマッピングされたポートを介して接続が提供されないことを意味します。
さらに、再結合時に、各ノードは所有できるブロックの数を再計算します。ノードが想定より多くのブロックを保持している場合は、追加のポートブロックが使用可能になった時点で、その追加のポートブロックをコントロールノードに解放します。次に、制御ノードは、これらを新たに結合されたデータノードに割り当てる。
Q. TCPおよびUDPプロトコルまたはSCTPだけがサポートされていますか。
A. SCTPはダイナミックPATではサポートされていません。SCTPトラフィックの場合は、スタティックネットワークオブジェクトNATのみを使用することを推奨します。
Q.ノードでブロックポートが使い果たされると、パケットは廃棄され、次に使用可能なIPブロックは使用されません。
A.いいえ、すぐにはドロップされません。次のPAT IPから使用可能なポートブロックを使用する。すべてのPAT IPのすべてのポートブロックが使い果たされると、トラフィックはドロップされます。
Q.クラスタのアップグレード時間帯に制御ノードの過負荷を回避するには、制御ノードですべての接続が処理されるのを待つのではなく、早い段階で手動で新しい制御を選択する方が良いですか(4単位のクラスタのアップグレードの途中など)。
A.コントロールは最後に更新する必要があります。これは、制御ノードが新しいバージョンを実行する場合、すべてのノードが新しいバージョンを実行しない限り、制御ノードはプールの配布を開始しないためです。また、アップグレードを実行すると、新しいバージョンを持つすべてのデータノードは、古いバージョンを実行しているコントロールノードからのプール配布メッセージを無視します。
この詳細を説明するために、A、B、C、Dの4つのノードを制御するクラスタ展開を考えてみましょう。一般的な無中断アップグレード手順を次に示します。
a. PATの設定を処理します
b.各PAT IPをポートブロックに分割する
c.すべてのポートブロックが未割り当て状態
d.コントロールから受信した古いバージョンのクラスタPATメッセージを無視します。
e.すべてのPAT接続をプライマリにリダイレクトします。
4.同様に、新しいバージョンで他のノードを起動します。
5.ユニット'A'コントロールをリロードします。制御用のバックアップがないため、既存の接続はすべてドロップされます
6.新しいコントロールは、新しい形式のポートブロックの配布を開始します
7.ユニット「A」が再結合し、ポートブロック分配メッセージを受け入れて動作できる
症状
サイト間クラスタの導入では、1つの特定のサイトで処理する必要があるフラグメント化されたパケット(サイトローカルトラフィック)は、他のサイトのユニットに送信できます。これは、これらのサイトの1つがフラグメント所有者を持つことができるためです。
クラスタロジックでは、フラグメント化されたパケットの接続に対して定義された追加の役割として、フラグメント所有者があります。
フラグメント化されたパケットの場合、フラグメントを受信するクラスタユニットは、フラグメントの送信元IPアドレス、宛先IPアドレス、およびパケットIDのハッシュに基づいてフラグメント所有者を決定します。すべてのフラグメントは、クラスタ制御リンクを介してフラグメント所有者に転送されます。スイッチのロードバランスハッシュで使用される5タプルは最初のフラグメントだけに含まれるため、フラグメントは異なるクラスタユニットにロードバランシングできます。他のフラグメントには送信元ポートと宛先ポートが含まれず、他のクラスタユニットにロードバランシングできます。フラグメント所有者は、送信元/宛先IPアドレスとポートのハッシュに基づいてディレクタを決定できるように、パケットを一時的に再構成します。新しい接続の場合は、フラグメント所有者が接続所有者になります。既存の接続の場合、フラグメント所有者はすべてのフラグメントをクラスタ制御リンク経由で接続所有者に転送します。次に、接続の所有者がすべてのフラグメントを再構成します。
クライアントからサーバへのフラグメント化されたICMPエコー要求のフローについて、次のトポロジを検討します。
操作の順序を理解するために、内部、外部、およびクラスタ制御リンクインターフェイス上のクラスタ全体のパケットキャプチャがトレースオプションで設定されています。 さらに、reinject-hideオプションを使用したパケットキャプチャが内部インターフェイスで設定されます。
firepower# cluster exec capture capi interface inside trace match icmp any any
firepower# cluster exec capture capir interface inside reinject-hide trace match icmp any any
firepower# cluster exec capture capo interface outside trace match icmp any any
firepower# cluster exec capture capccl interface cluster trace match icmp any any
クラスタ内の操作の順序:
1.サイト1のユニット–1-1は、フラグメント化されたICMPエコー要求パケットを受信します。
firepower# cluster exec show cap capir
unit-1-1(LOCAL):******************************************************
2 packets captured
1: 20:13:58.227801 802.1Q vlan#10 P0 192.0.2.10 > 203.0.113.10 icmp: echo request
2: 20:13:58.227832 802.1Q vlan#10 P0
2 packets shown
2. unit-1-1は、サイト2のユニット–2-2をフラグメント所有者として選択し、フラグメント化されたパケットを送信します。
ユニット1-1からユニット2-2に送信されるパケットの宛先MACアドレスは、ユニット2-2のCCLリンクのMACアドレスです。
firepower# show cap capccl packet-number 1 detail
7 packets captured
1: 20:13:58.227817 0015.c500.018f 0015.c500.029f 0x0800 Length: 1509
192.0.2.10 > 203.0.113.10 icmp: echo request (wrong icmp csum) (frag 46772:1475@0+) (ttl 3)
1 packet shown
firepower# show cap capccl packet-number 2 detail
7 packets captured
2: 20:13:58.227832 0015.c500.018f 0015.c500.029f 0x0800 Length: 637
192.0.2.10 > 203.0.113.10 (frag 46772:603@1480) (ttl 3)
1 packet shown
firepower# cluster exec show interface po48 | i MAC
unit-1-1(LOCAL):******************************************************
MAC address 0015.c500.018f, MTU 1500
unit-1-2:*************************************************************
MAC address 0015.c500.019f, MTU 1500
unit-2-2:*************************************************************
MAC address 0015.c500.029f, MTU 1500
unit-1-3:*************************************************************
MAC address 0015.c500.016f, MTU 1500
unit-2-1:*************************************************************
MAC address 0015.c500.028f, MTU 1500
unit-2-3:*************************************************************
MAC address 0015.c500.026f, MTU 1500
3. unit-2-2は、フラグメント化されたパケットを受信して再構成し、フローの所有者になります。
firepower# cluster exec unit unit-2-2 show capture capccl packet-number 1 trace
11 packets captured
1: 20:13:58.231845 192.0.2.10 > 203.0.113.10 icmp: echo request
Phase: 1
Type: CLUSTER-EVENT
Subtype:
Result: ALLOW
Config:
Additional Information:
Input interface: 'inside'
Flow type: NO FLOW
I (2) received a FWD_FRAG_TO_FRAG_OWNER from (0).
Phase: 2
Type: CLUSTER-EVENT
Subtype:
Result: ALLOW
Config:
Additional Information:
Input interface: 'inside'
Flow type: NO FLOW
I (2) have reassembled a packet and am processing it.
Phase: 3
Type: CAPTURE
Subtype:
Result: ALLOW
Config:
Additional Information:
MAC Access list
Phase: 4
Type: ACCESS-LIST
Subtype:
Result: ALLOW
Config:
Implicit Rule
Additional Information:
MAC Access list
Phase: 5
Type: ROUTE-LOOKUP
Subtype: No ECMP load balancing
Result: ALLOW
Config:
Additional Information:
Destination is locally connected. No ECMP load balancing.
Found next-hop 203.0.113.10 using egress ifc outside(vrfid:0)
Phase: 6
Type: CLUSTER-EVENT
Subtype:
Result: ALLOW
Config:
Additional Information:
Input interface: 'inside'
Flow type: NO FLOW
I (2) am becoming owner
Phase: 7
Type: ACCESS-LIST
Subtype: log
Result: ALLOW
Config:
access-group CSM_FW_ACL_ global
access-list CSM_FW_ACL_ advanced trust ip any any rule-id 268435460 event-log flow-end
access-list CSM_FW_ACL_ remark rule-id 268435460: PREFILTER POLICY: igasimov_prefilter1
access-list CSM_FW_ACL_ remark rule-id 268435460: RULE: r1
Additional Information:
...
Phase: 19
Type: FLOW-CREATION
Subtype:
Result: ALLOW
Config:
Additional Information:
New flow created with id 1719, packet dispatched to next module
...
Result:
input-interface: cluster(vrfid:0)
input-status: up
input-line-status: up
output-interface: outside(vrfid:0)
output-status: up
output-line-status: up
Action: allow
1 packet shown
firepower# cluster exec unit unit-2-2 show capture capccl packet-number 2 trace
11 packets captured
2: 20:13:58.231875
Phase: 1
Type: CLUSTER-EVENT
Subtype:
Result: ALLOW
Config:
Additional Information:
Input interface: 'inside'
Flow type: NO FLOW
I (2) received a FWD_FRAG_TO_FRAG_OWNER from (0).
Result:
input-interface: cluster(vrfid:0)
input-status: up
input-line-status: up
Action: allow
1 packet shown
4. unit-2-2は、セキュリティポリシーに基づいてパケットを許可し、外部インターフェイスを介してサイト2からサイト1にパケットを送信します。
firepower# cluster exec unit unit-2-2 show cap capo
2 packets captured
1: 20:13:58.232058 802.1Q vlan#20 P0 192.0.2.10 > 203.0.113.10 icmp: echo request
2: 20:13:58.232058 802.1Q vlan#20 P0
観察/警告
Interface: inside
Configuration: Size: 200, Chain: 24, Timeout: 5, Reassembly: virtual
Run-time stats: Queue: 0, Full assembly: 0
Drops: Size overflow: 0, Timeout: 0,
Chain overflow: 0, Fragment queue threshold exceeded: 0,
Small fragments: 0, Invalid IP len: 0,
Reassembly overlap: 0, Fraghead alloc failed: 0,
SGT mismatch: 0, Block alloc failed: 0,
Invalid IPV6 header: 0, Passenger flow assembly failed: 0
クラスタ展開では、フラグメント所有者または接続所有者が、フラグメント化されたパケットをフラグメントキューに入れます。フラグメントキューのサイズは、fragment size <size> <nameif>コマンドで設定されたサイズカウンタ(デフォルトでは200)の値によって制限されます。フラグメントキューのサイズがサイズの2/3に達すると、フラグメントキューのしきい値を超えたと見なされ、現在のフラグメントチェーンに含まれない新しいフラグメントはすべて廃棄されます。この場合、Fragment queue threshold exceededが増加し、syslogメッセージFTD-3-209006が生成されます。firepower# show fragment inside
Interface: inside
Configuration: Size: 200, Chain: 24, Timeout: 5, Reassembly: virtual
Run-time stats: Queue: 133, Full assembly: 0
Drops: Size overflow: 0, Timeout: 8178,
Chain overflow: 0, Fragment queue threshold exceeded: 40802,
Small fragments: 0, Invalid IP len: 0,
Reassembly overlap: 9673, Fraghead alloc failed: 0,
SGT mismatch: 0, Block alloc failed: 0,
Invalid IPV6 header: 0, Passenger flow assembly failed: 0
%FTD-3-209006: Fragment queue threshold exceeded, dropped TCP fragment from 192.0.2.10/21456 to 203.0.113.10/443 on inside interface.
回避策として、[Firepower Management Center] > [Devices] > [Device Management] > [Edit Device] > [Interfaces] > [Interface] > [Advanced] > [Security Configuration] > [Override Default Fragment Setting]、[save]設定の順に選択し、ポリシーを展開して、サイズを大きくします。次に、show fragmentコマンド出力のキューカウンタと、syslogメッセージFTD-3-209006の発生を監視します。
ACIポッドでのアクティブなL4チェックサム検証が原因で、クラスタを介した接続が断続的に問題が発生する
症状
緩和
症状
ユニットがクラスタに参加できず、次のメッセージが表示されます。
The SECONDARY has left the cluster because application configuration sync is timed out on this unit. Disabling cluster now!
Cluster disable is performing cleanup..done.
Unit unit-2-1 is quitting due to system failure for 1 time(s) (last failure is SECONDARY application configuration sync timeout). Rejoin will be attempted after 5 minutes.
All data interfaces have been shutdown due to clustering being disabled. To recover either enable clustering or remove cluster group configuration.
検証/緩和
firepower# show interface
Interface Port-channel1 "Inside", is up, line protocol is up
Hardware is EtherSVI, BW 40000 Mbps, DLY 10 usec
MAC address 3890.a5f1.aa5e, MTU 9084
Interface Port-channel48 "cluster", is up, line protocol is up
Hardware is EtherSVI, BW 40000 Mbps, DLY 10 usec
Description: Clustering Interface
MAC address 0015.c500.028f, MTU 9184
IP address 127.2.2.1, subnet mask 255.255.0.
firepower# ping 127.2.1.1 size 9184
Switch# show interface
port-channel12 is up
admin state is up,
Hardware: Port-Channel, address: 7069.5a3a.7976 (bia 7069.5a3a.7976)
MTU 9084 bytes, BW 40000000 Kbit , DLY 10 usec
port-channel13 is up
admin state is up,
Hardware: Port-Channel, address: 7069.5a3a.7967 (bia 7069.5a3a.7967)
MTU 9084 bytes, BW 40000000 Kbit , DLY 10 use
症状
ユニットがクラスタに参加できず、次のメッセージが表示されます。
Interface mismatch between cluster primary and joining unit unit-2-1. unit-2-1 aborting cluster join.
Cluster disable is performing cleanup..done.
Unit unit-2-1 is quitting due to system failure for 1 time(s) (last failure is Internal clustering error). Rejoin will be attempted after 5 minutes.
All data interfaces have been shutdown due to clustering being disabled. To recover either enable clustering or remove cluster group configuration.
検証/緩和
各シャーシのFCM GUIにログインし、[Interfaces] タブに移動して、すべてのクラスタメンバーのインターフェイス設定が同じであるかどうかを確認します。
症状
クラスタ内には複数の制御ユニットがあります。このトポロジを参照してください。
シャーシ1:
firepower# show cluster info
Cluster ftd_cluster1: On
Interface mode: spanned
This is "unit-1-1" in state PRIMARY
ID : 0
Site ID : 1
Version : 9.15(1)
Serial No.: FLM2103TU5H
CCL IP : 127.2.1.1
CCL MAC : 0015.c500.018f
Last join : 07:30:25 UTC Dec 14 2020
Last leave: N/A
Other members in the cluster:
Unit "unit-1-2" in state SECONDARY
ID : 1
Site ID : 1
Version : 9.15(1)
Serial No.: FLM2103TU4D
CCL IP : 127.2.1.2
CCL MAC : 0015.c500.019f
Last join : 07:30:26 UTC Dec 14 2020
Last leave: N/A
Unit "unit-1-3" in state SECONDARY
ID : 3
Site ID : 1
Version : 9.15(1)
Serial No.: FLM2102THJT
CCL IP : 127.2.1.3
CCL MAC : 0015.c500.016f
Last join : 07:31:49 UTC Dec 14 2020
Last leave: N/A
シャーシ2:
firepower# show cluster info
Cluster ftd_cluster1: On
Interface mode: spanned
This is "unit-2-1" in state PRIMARY
ID : 4
Site ID : 1
Version : 9.15(1)
Serial No.: FLM2103TUN1
CCL IP : 127.2.2.1
CCL MAC : 0015.c500.028f
Last join : 11:21:56 UTC Dec 23 2020
Last leave: 11:18:51 UTC Dec 23 2020
Other members in the cluster:
Unit "unit-2-2" in state SECONDARY
ID : 2
Site ID : 1
Version : 9.15(1)
Serial No.: FLM2102THR9
CCL IP : 127.2.2.2
CCL MAC : 0015.c500.029f
Last join : 11:18:58 UTC Dec 23 2020
Last leave: 22:28:01 UTC Dec 22 2020
Unit "unit-2-3" in state SECONDARY
ID : 5
Site ID : 1
Version : 9.15(1)
Serial No.: FLM2103TUML
CCL IP : 127.2.2.3
CCL MAC : 0015.c500.026f
Last join : 11:20:26 UTC Dec 23 2020
Last leave: 22:28:00 UTC Dec 22 2020
検証
firepower# ping 127.2.1.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 127.2.1.1, timeout is 2 seconds:
?????
Success rate is 0 percent (0/5)
firepower# show arp
cluster 127.2.2.3 0015.c500.026f 1
cluster 127.2.2.2 0015.c500.029f 1
firepower# capture capccl interface cluster
firepower# show capture capccl | i 127.2.1.1
2: 12:10:57.652310 arp who-has 127.2.1.1 tell 127.2.2.1
41: 12:11:02.652859 arp who-has 127.2.1.1 tell 127.2.2.1
74: 12:11:07.653439 arp who-has 127.2.1.1 tell 127.2.2.1
97: 12:11:12.654018 arp who-has 127.2.1.1 tell 127.2.2.1
126: 12:11:17.654568 arp who-has 127.2.1.1 tell 127.2.2.1
151: 12:11:22.655148 arp who-has 127.2.1.1 tell 127.2.2.1
174: 12:11:27.655697 arp who-has 127.2.1.1 tell 127.2.2.1
緩和
次に、スイッチの設定例を示します。
Nexus# show run int po48-49
interface port-channel48
description FPR1
switchport access vlan 48
vpc 48
interface port-channel49
description FPR2
switchport access vlan 48
vpc 49
Nexus# show vlan id 48
VLAN Name Status Ports
---- ----------- --------- -------------------------------
48 CCL active Po48, Po49, Po100, Eth1/53, Eth1/54
VLAN Type Vlan-mode
---- ----- ----------
48 enet CE
1 Po1 up success success 10,20
48 Po48 up success success 48
49 Po49 up success success 48
Nexus1# show vpc brief
Legend:
(*) - local vPC is down, forwarding via vPC peer-link
vPC domain id : 1
Peer status : peer adjacency formed ok
vPC keep-alive status : peer is alive
Configuration consistency status : success
Per-vlan consistency status : success
Type-2 consistency status : success
vPC role : primary
Number of vPCs configured : 3
Peer Gateway : Disabled
Dual-active excluded VLANs : -
Graceful Consistency Check : Enabled
Auto-recovery status : Disabled
Delay-restore status : Timer is off.(timeout = 30s)
Delay-restore SVI status : Timer is off.(timeout = 10s)
vPC Peer-link status
---------------------------------------------------------------------
id Port Status Active vlans
-- ---- ------ --------------------------------------------------
1 Po100 up 1,10,20,48-49,148
vPC status
----------------------------------------------------------------------
id Port Status Consistency Reason Active vlans
-- ---- ------ ----------- ------ ------------
1 Po1 up success success 10,20
48 Po48 up success success 48
49 Po49 up success success 48
症状
1つ以上のデータポートチャネルインターフェイスが中断されています。管理上有効なデータインターフェイスが中断されると、インターフェイスのヘルスチェックに失敗したため、同じシャーシ内のすべてのクラスタユニットがクラスタから除外されます。
このトポロジを参照してください。
検証
firepower#
Beginning configuration replication to SECONDARY unit-2-2
End Configuration Replication to SECONDARY.
Asking SECONDARY unit unit-2-2 to quit because it failed interface health check 4 times (last failure on Port-channel1). Clustering must be manually enabled on the unit to rejoin.
firepower# Unit is kicked out from cluster because of interface health check failure.
Cluster disable is performing cleanup..done.
All data interfaces have been shutdown due to clustering being disabled. To recover either enable clustering or remove cluster group configuration.
Cluster unit unit-2-1 transitioned from SECONDARY to DISABLED
firepower# show cluster history
==========================================================================
From State To State Reason
==========================================================================
12:59:37 UTC Dec 23 2020
ONCALL SECONDARY_COLD Received cluster control message
12:59:37 UTC Dec 23 2020
SECONDARY_COLD SECONDARY_APP_SYNC Client progression done
13:00:23 UTC Dec 23 2020
SECONDARY_APP_SYNC SECONDARY_CONFIG SECONDARY application configuration sync done
13:00:35 UTC Dec 23 2020
SECONDARY_CONFIG SECONDARY_FILESYS Configuration replication finished
13:00:36 UTC Dec 23 2020
SECONDARY_FILESYS SECONDARY_BULK_SYNC Client progression done
13:01:35 UTC Dec 23 2020
SECONDARY_BULK_SYNC DISABLED Received control message DISABLE (interface health check failure)
firepower# show cluster info trace module hc
Dec 23 13:01:36.636 [INFO]cluster_fsm_clear_np_flows: The clustering re-enable timer is started to expire in 598000 ms.
Dec 23 13:01:32.115 [INFO]cluster_fsm_disable: The clustering re-enable timer is stopped.
Dec 23 13:01:32.115 [INFO]Interface Port-channel1 is down
FPR2(fxos)# show port-channel summary
Flags: D - Down P - Up in port-channel (members)
I - Individual H - Hot-standby (LACP only)
s - Suspended r - Module-removed
S - Switched R - Routed
U - Up (port-channel)
M - Not in use. Min-links not met
--------------------------------------------------------------------------
Group Port-Channel Type Protocol Member Ports
--------------------------------------------------------------------------
1 Po1(SD) Eth LACP Eth2/1(s) Eth2/2(s) Eth2/3(s) Eth2/4(s)
48 Po48(SU) Eth LACP Eth3/1(P) Eth3/2(P) Eth3/3(P) Eth3/4(P)
緩和
症状
ユニットがクラスタを離れます。
検証/緩和
firepower# show cluster history
FPR4150# connect local-mgmt
FPR4150 (local-mgmt)# dir cores
クラスタユニットの/ngfwパーティションのディスク使用率が94 %に達すると、ユニットはクラスタを終了します。ディスク使用率チェックは3秒ごとに行われます。
> show disk
Filesystem Size Used Avail Use% Mounted on
rootfs 81G 421M 80G 1% /
devtmpfs 81G 1.9G 79G 3% /dev
tmpfs 94G 1.8M 94G 1% /run
tmpfs 94G 2.2M 94G 1% /var/volatile
/dev/sda1 1.5G 156M 1.4G 11% /mnt/boot
/dev/sda2 978M 28M 900M 3% /opt/cisco/config
/dev/sda3 4.6G 88M 4.2G 3% /opt/cisco/platform/logs
/dev/sda5 50G 52M 47G 1% /var/data/cores
/dev/sda6 191G 191G 13M 100% /ngfw
cgroup_root 94G 0 94G 0% /dev/cgroups
この場合、show cluster historyの出力には次のように表示されます。
15:36:10 UTC May 19 2021
PRIMARY Event: Primary unit unit-1-1 is quitting
due to diskstatus Application health check failure, and
primary's application state is down
または
14:07:26 CEST May 18 2021
SECONDARY DISABLED Received control message DISABLE (application health check failure)
障害を確認するもう1つの方法は次のとおりです。
firepower# show cluster info health
Member ID to name mapping:
0 - unit-1-1(myself) 1 - unit-2-1
0 1
Port-channel48 up up
Ethernet1/1 up up
Port-channel12 up up
Port-channel13 up up
Unit overall healthy healthy
Service health status:
0 1
diskstatus (monitor on) down down
snort (monitor on) up up
Cluster overall healthy
また、ディスクが100 %以下の場合、ディスク領域が解放されるまで、ユニットがクラスタに参加して戻ることが困難な場合があります。
各クラスタユニットは、5分ごとにローカルおよびピアユニットのCPUとメモリの使用率をチェックします。使用率がシステムのしきい値(LINA CPU 50 %またはLINAメモリ59 %)を超える場合、情報メッセージが表示されます。
firepower# more log/cluster_trace.log | i CPU
May 20 16:18:06.614 [INFO][CPU load 87% | memory load 37%] of module 1 in chassis 1 (unit-1-1) exceeds overflow protection threshold [CPU 50% | Memory 59%]. System may be oversubscribed on member failure.
May 20 16:18:06.614 [INFO][CPU load 87% | memory load 37%] of chassis 1 exceeds overflow protection threshold [CPU 50% | Memory 59%]. System may be oversubscribed on chassis failure.
May 20 16:23:06.644 [INFO][CPU load 84% | memory load 35%] of module 1 in chassis 1 (unit-1-1) exceeds overflow protection threshold [CPU 50% | Memory 59%]. System may be oversubscribed on member failure.
このメッセージは、ユニットに障害が発生した場合に、他のユニットのリソースがオーバーサブスクライブされる可能性があることを示しています。
6.3より前のFMCリリースでの動作
6.3 FMC以降
サポートされる最小マネージャ |
管理対象デバイス |
サポートされている管理対象デバイスの最小バージョンが必要 |
注意事項 |
FMC 6.3 |
FP9300およびFP4100上のFTDクラスタのみ |
6.2.0 |
これはFMC機能のみです |
警告:クラスタがFTDで形成された後、自動登録が開始されるまで待機する必要があります。クラスタノードを手動で登録([デバイスの追加])するのではなく、[調整]オプションを使用する必要があります。
症状
ノード登録の失敗
緩和
何らかの理由でデータノードの登録が失敗した場合は、次の2つのオプションがあります。
改定 | 発行日 | コメント |
---|---|---|
2.0 |
28-Jun-2023 |
代替テキストが追加されました。偏った言葉を置き換え。ブランディング要件、SEO、機械翻訳、スタイル要件、文法、フォーマットを更新。 |
1.0 |
26-Jan-2021 |
初版 |