このドキュメントでは、cEdgeルータ用SD-WAN IPsecのIPsecアンチリプレイの動作と、アンチリプレイの問題のトラブルシューティング方法について説明します。
次の項目に関する知識があることが推奨されます。
このドキュメントの情報は、次のソフトウェアとハードウェアのバージョンに基づいています。
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されたものです。このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。
IPSec認証には、受信側でチェックされるESPヘッダーのシーケンス番号を使用して、古いまたは重複したIPSecパケットに対するアンチリプレイ保護が組み込まれています。アンチリプレイパケットドロップは、順序が入れ替わって配信されたパケット、またはアンチリプレイウィンドウ外のパケットが原因で、IPSecのデータプレーンで最も一般的な問題の1つです。IPSecアンチリプレイドロップの一般的なトラブルシューティング方法については、「IPSecアンチリプレイチェック障害のトラブルシューティング」を参照してください。この一般的な手法はSD-WANにも適用されます。ただし、Cisco SD-WANソリューションで使用される従来のIPSecとIPSecには、実装の違いがいくつかあります。この記事では、Cisco IOS ®XEを使用するcEdgeプラットフォームの相違点とアプローチについて説明します。
IPsec SAがIKEプロトコルを使用して2つのピア間でネゴシエートされる従来のIPsecとは異なり、SD-WANはグループキーの概念を使用します。このモデルでは、SD-WANエッジデバイスがTLOC(Transport Locator)ごとにデータプレーン着信SAを定期的に生成し、これらのSAをSD-WANコントローラに送信します。コントローラは、SD-WANファブリック内の残りのエッジデバイスにSAを伝搬します。
SD-WANデータプレーン動作の詳細については、『SD-WANデータプレーンセキュリティの概要』を参照してください。
IPsec ESPヘッダーでは、SPI(Security Parameter Index)は32ビットの値で、受信側は着信パケットの復号先のSAを識別するために使用します。SD-WANでは、この着信SPIはshow crypto ipsec saで識別できます。
cedge-2#show crypto ipsec sa | se inbound
inbound esp sas:
spi: 0x123(291)
transform: esp-gcm 256 ,
in use settings ={Transport UDP-Encaps, esn}
conn id: 2083, flow_id: CSR:83, sibling_flags FFFFFFFF80000008, crypto map: Tunnel1-vesen-head-0
sa timing: remaining key lifetime 9410 days, 4 hours, 6 mins
Kilobyte Volume Rekey has been disabled
IV size: 8 bytes
replay detection support: Y
Status: ACTIVE(ACTIVE)
ピアデバイスから送信された実際のパケットでは、SPI値が前の出力と異なることに注意してください。パケットコピーオプションを有効にした場合のパケットトレース出力の例を次に示します。
Packet Copy In 45000102 0cc64000 ff111c5e ac127cd0 ac127cd1 3062303a 00eea51b 04000123 00000138 78014444 f40d7445 3308bf7a e2c2d4a3 73f05304 546871af 8d4e6b9f
ESPヘッダーの実際のSPIは0x04000123です。この理由は、SD-WANのSPIの最初のビットが追加情報でエンコードされ、SPIフィールドの下位ビットのみが実際のSPIに割り当てられるためです。
従来のIPsec:
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Security Parameters Index (SPI) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
SD-WAN:
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | CTR | MSNS| Security Parameters Index (SPI) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
ここで、
QoS(低遅延キューイング)は常にIPsecの暗号化とカプセル化の後で実行されるため、QoSのためにパケットが順不同で配信される環境では、IPsecのリプレイ障害が発生することがよくあります。複数シーケンス番号空間ソリューションでは、特定のセキュリティアソシエーションの異なるQoSトラフィッククラスにマッピングされた複数シーケンス番号空間を使用することで、この問題を解決します。異なるシーケンス番号空間は、図のようにESPパケットSPIフィールドにエンコードされたMSNSビットによってインデックスされます。詳細については、「QoSのIPsecアンチリプレイメカニズム」を参照してください。
前述したように、このMultiple Sequence Number(MSNTC)の実装は、SAの選択に効果的なSPI値を使用できることを意味します。つまり、下位25ビットを削減します。この実装でリプレイ・ウィンドウ・サイズを構成する場合のもう1つの実用的な考慮事項は、アグリゲート・リプレイ・ウィンドウのリプレイ・ウィンドウ・サイズが構成されている点です。したがって、各シーケンス番号スペースの有効なリプレイ・ウィンドウ・サイズはアグリゲートの1/8です。
設定例:
config-t
Security
IPsec
replay-window 1024
Commit
注:各シーケンス番号空間の有効なリプレイウィンドウサイズは、1024/8 = 128です。
cEdgeデバイスでは、各シーケンス番号空間で受信された最後のシーケンス番号は、show crypto ipsec sa peer x.x.x.x platform IPSec dataplaneの出力から取得できます。
cedge-2#show crypto ipsec sa peer 172.18.124.208 platform <snip> ------------------ show platform hardware qfp active feature ipsec datapath crypto-sa 5 ------------------ Crypto Context Handle: ea54f530 peer sa handle: 0 anti-replay enabled esn enabled Inbound SA Total SNS: 8 Space highest ar number ---------------------------------------- 0 39444 1 0 2 1355 3 0 4 0 5 0 6 0 7 0 <snip>
この例では、0 (0x00)のMSNSの最も大きいアンチリプレイウィンドウのシーケンス番号(アンチリプレイスライディングウィンドウの右端)は3944で、2 (0x04)のMSNSのシーケンス番号は1335で、これらのカウンタを使用してシーケンス番号が同じシーケンス番号空間のパケットのリプレイウィンドウ内にあるかどうかを確認します。
アンチリプレイエラーとshow出力を照合して、図に示すように、SPIとシーケンス番号のインデックスを見つけることができます。

前の情報を取得すると、図に示すように、右端(上のウィンドウ)とスライディングウィンドウ。

通常のIPsec(非SD-WAN)とは異なり、キー再生成コマンドはアンチリプレイウィンドウでは有効になりません。
request platform software sdwan security ipsec-rekey
次のコマンドを実行すると、設定されているリプレイウィンドウが有効になります。
警告:コマンドがコントロール接続とデータプレーンに与える影響について確実に理解しておいてください。
clear sdwan control connection
または
request platform software sdwan port_hop color <color>
または
interface Tunnelx
shutdown
no shutdown
IPSecアンチリプレイドロップでは、問題の状態と潜在的なトリガーを理解することが重要です。少なくとも、の一連の情報を収集して、コンテキストを提供します。
上記の情報を収集した後、トラブルシューティングワークフローに進みます。
IPSecリプレイの問題に対する一般的なトラブルシューティングアプローチは、従来のIPSecの場合と同様です。説明したように、ピアごとのSAシーケンス空間と複数シーケンス番号空間を考慮に入れます。次の手順を実行します。
ステップ 1:最初に、syslogからのリプレイドロップのピアとドロップレートを特定します。廃棄の統計情報を得るには、廃棄レートを定量化できるように、出力のタイムスタンプ付きのスナップショットを複数収集します。
*Feb 19 21:28:25.006: %IOSXE-3-PLATFORM: R0/0: cpp_cp: QFP:0.0 Thread:000 TS:00001141238701410779 %IPSEC-3-REPLAY_ERROR: IPSec SA receives anti-replay error, DP Handle 6, src_addr 172.18.124.208, dest_addr 172.18.124.209, SPI 0x123
cedge-2#show platform hardware qfp active feature ipsec datapath drops
Load for five secs: 1%/0%; one minute: 1%; five minutes: 1%
No time source, *11:25:53.524 EDT Wed Feb 26 2020
------------------------------------------------------------------------
Drop Type Name Packets
------------------------------------------------------------------------
4 IN_US_V4_PKT_SA_NOT_FOUND_SPI 30
19 IN_CD_SW_IPSEC_ANTI_REPLAY_FAIL 41
ステップ 2a 比較的低いトラフィックレートの場合は、copy packetオプションを使用して、ピアのipv4アドレスに設定された条件でパケットトレースを実行します。現在のリプレイウィンドウ(右端)に対してドロップされたパケットのシーケンス番号と、隣接するパケットのシーケンス番号を確認します。それらが実際に重複しているか、またはリプレイウィンドウ外にあるかを確認します。
ステップ2b: 予測可能なトリガーを使用せずにトラフィックレートを高くする場合は、循環バッファとEEMを使用してEPCキャプチャを設定し、リプレイエラーが検出されたときにキャプチャを停止します。EEMは現在19.3の時点でvManageでサポートされていないため、このトラブルシューティングタスクを実行する際にはcEdgeをCLIモードにする必要があります。
ステップ 3受信側でshow crypto ipsec sa peer x.x.x.x platformの出力を収集します。これは、パケットキャプチャと同時、またはパケットトレースの収集時に行うのが理想的です。このコマンドには、着信SAと発信SAの両方に関するリアルタイムデータプレーンリプレイウィンドウ情報が含まれます。
ステップ 4ドロップされたパケットの順序が間違っている場合は、送信側と受信側の両方から同時にキャプチャを取得し、問題が送信元にあるのか、アンダーレイのネットワーク配信層にあるのかを特定します。
ステップ 5パケットが重複しておらず、リプレイウィンドウ外でもないにもかかわらずドロップされた場合、通常は受信側のソフトウェアの問題を示しています。
問題の説明:
ハードウェア:ASR1001-X
SW:17.06.03a
セッションピア10.62.33.91に対して複数のアンチリプレイエラーが発生するため、BFDセッションが継続的にフラップし、これら2つのサイト間のトラフィックが影響を受けます。
Jul 26 20:31:20.879: %IOSXE-3-PLATFORM: R0/0: cpp_cp: QFP:0.0 Thread:027 TS:00000093139972173042 %IPSEC-3-REPLAY_ERROR: IPSec SA receives anti-replay error, DP Handle 22, src_addr 10.62.33.91, dest_addr 10.62.63.251, SPI 0x106
Jul 26 20:32:23.567: %IOSXE-3-PLATFORM: R0/0: cpp_cp: QFP:0.0 Thread:009 TS:00000093202660128696 %IPSEC-3-REPLAY_ERROR: IPSec SA receives anti-replay error, DP Handle 22, src_addr 10.62.33.91, dest_addr 10.62.63.251, SPI 0x106
Jul 26 20:33:33.939: %IOSXE-3-PLATFORM: R0/0: cpp_cp: QFP:0.0 Thread:051 TS:00000093273031417384 %IPSEC-3-REPLAY_ERROR: IPSec SA receives anti-replay error, DP Handle 22, src_addr 10.62.33.91, dest_addr 10.62.63.251, SPI 0x106
Jul 26 20:34:34.407: %IOSXE-3-PLATFORM: R0/0: cpp_cp: QFP:0.0 Thread:020 TS:00000093333499638628 %IPSEC-3-REPLAY_ERROR: IPSec SA receives anti-replay error, DP Handle 22, src_addr 10.62.33.91, dest_addr 10.62.63.251, SPI 0x106
ステップ 1:設定されているアンチリプレイウィンドウが8192であることを確認します。
cEdge#show sdwan security-info
security-info authentication-type deprecated
security-info rekey 86400
security-info replay-window 8192
security-info encryption-supported "AES_GCM_256 (and AES_256_CBC for multicast)"
security-info fips-mode Disabled
security-info pairwise-keying Disabled
security-info pwk-sym-rekey Enabled
security-info extended-ar-window Disabled
security-info integrity-type "ip-udp-esp esp"
ステップ 2 ピア10.62.33.91の有効なリプレイウィンドウサイズを確認し、設定値を比較して確認します。
show crypto ipsec sa peer 10.62.33.91 platform
<snip>
------------------ show platform hardware qfp active feature ipsec sa 22 ------------------
<snip>
------------------ show platform software ipsec fp active encryption-processor 0 context c441ff4c ------------------
<snip>
window size: 64 <-- Effective Window Size
window base(ESN): 0
Multi-SNS window_top
-----------------------------------
index: 0, win_top: 0x00000000010dc0
index: 1, win_top: 0000000000000000
index: 2, win_top: 0x00000000b65f00
index: 3, win_top: 0000000000000000
index: 4, win_top: 0000000000000000
index: 5, win_top: 0000000000000000
index: 6, win_top: 0000000000000000
index: 7, win_top: 0000000000000000
traffic hard limit: 12876354284605669376
byte count: 0
packet count: 11378618
出力に表示されるウィンドウサイズ:64(MSS)は、設定されているリプレイウィンドウ8192(8192//8=1024)と一致しません。これは、このリプレイウィンドウが設定されていても、コマンドが有効にならなかったことを意味します。
ステップ 3セッション送信元:10.62.33.91、宛先:10.62.63.251からの着信トラフィックに対して、パケットトレースを設定し、同時にキャプチャをモニタする(オプション)
cEdge#debug platform packet-trace packet 2048 circular fia-trace data-size 2048
cEdge#debug platform packet-trace copy packet both size 2048 L3
cEdge#debug platform condition ipv4 10.62.33.91/32 in
cEdge#debug platform condition start
ステップ 4 パケットトレースの概要を収集します。
cEdge#show platform packet summay
811 Te0/0/0.972 Te0/0/1.301 FWD
812 Te0/0/0.972 Te0/0/1.301 FWD
813 Te0/0/0.972 Te0/0/1.301 FWD
814 Te0/0/0.972 Te0/0/1.301 FWD
815 Te0/0/0.972 Te0/0/1.301 FWD
816 Te0/0/0.972 Te0/0/0.972 DROP 56 (IpsecInput)
817 Te0/0/0.972 Te0/0/0.972 DROP 56 (IpsecInput)
818 Te0/0/0.972 Te0/0/0.972 DROP 56 (IpsecInput)
819 Te0/0/0.972 Te0/0/0.972 DROP 56 (IpsecInput)
837 Te0/0/0.972 Te0/0/1.301 FWD
838 Te0/0/0.972 Te0/0/1.301 FWD
ステップ 5 キャプチャされたドロップされた(IpsecInput)パケットを展開します。
(IpsecInput)パケットドロップ:
cEdge#sh platform pack pack 816
Packet: 816 CBUG ID: 973582
Summary
Input : TenGigabitEthernet0/0/0.972
Output : TenGigabitEthernet0/0/0.972
State : DROP 56 (IpsecInput)
Timestamp
Start : 97495234494754 ns (07/26/2022 21:43:56.25110 UTC)
Stop : 97495234610186 ns (07/26/2022 21:43:56.25225 UTC)
Path Trace
Feature: IPV4(Input)
Input : TenGigabitEthernet0/0/0.972
Output : <unknown>
Source : 10.62.33.91
Destination : 10.62.63.251
Protocol : 17 (UDP)
SrcPort : 12367
DstPort : 12347
<snip>
Packet Copy In
45000072 ab314000 fd115c77 0a3e215b 0a3e3ffb 304f303b 005e0000 04000106
00b6dfed 00000000 d0a60d5b 6161b06e 453d0e3d 5ab694ce 5311bbb6 640ecd68
7ceb2726 80e39efd 70e5549e 57b24820 fb963be5 76d01ff8 273559b0 32382ab4
c601d886 da1b3b94 7a2826e2 ead8f308 c464
817 DROP:
-------------------------------
Packet: 817
<snip>
Packet Copy In
45000072 ab314000 fd115c77 0a3e215b 0a3e3ffb 304f303b 005e0000 04000106
00b6dfec 00000000 cc72d5dd ef73fe25 2440bed6 31378b78 3c506ee5 98e3dba4
bc9e6aa0 50ea98f6 7dee25c8 c1579ce0 1212290c 650f5947 57b9bc04 97c7996c
d4dbf3e6 25b33684 a7129b67 141a5e73 8736
SD-WANはUDPカプセル化ESPを使用:
ステップ 6MSNSインデックスの確認
show crypto ipsec sa peer 10.62.33.91 platform
<snip>
------------------ show platform hardware qfp active feature ipsec sa 22 ------------------
<snip>
------------------ show platform software ipsec fp active encryption-processor 0 context c441ff4c ------------------
<snip>
window size: 64
window base(ESN): 0
Multi-SNS window_top
-----------------------------------
index: 0, win_top: 0x00000000010dc0
index: 1, win_top: 0000000000000000
index: 2, win_top: 0x00000000b65f00
index: 3, win_top: 0000000000000000
index: 4, win_top: 0000000000000000
index: 5, win_top: 0000000000000000
index: 6, win_top: 0000000000000000
index: 7, win_top: 0000000000000000
traffic hard limit: 12876354284605669376
byte count: 0
packet count: 11378618
2 (0x04)のMSNSの最も大きいアンチリプレイウィンドウのシーケンス番号(アンチリプレイスライディングウィンドウの右端)は0b65f00です。
ステップ 7 転送(FWD)でキャプチャされたパケットを展開します。
転送パケット:
Packet: 838
<snip>
Packet Copy In
4564008e ab044000 fd115c24 0a3e215b 0a3e3ffb 304f303b 007a0000 04000106
00b6e015 00000000 088bbd6a f4e4b35f b131143f ef1f91eb 659149f7 dbe6b025
be7fbfd0 5fad1c71 014321f1 3e0d38f2 cc8d0e5f 1494e4fa 097c7723 dfc7ceef
4a14f444 abcc1777 0bb9337f cd70c1da 01fc5262 848b657c 3a834680 b07b7092
81f07310 4eacd656 ed36894a e468
パケット:837
Packet: 837
<snip>
Packet Copy In
4564008e ab044000 fd115c24 0a3e215b 0a3e3ffb 304f303b 007a0000 04000106
00b6e014 00000000 76b2a256 8e835507 13d14430 ae16d62c c152cdfd 2657c20c
01d7ce1d b3dfa451 a2cbf6e9 32f267f9 e10e9dec 395a0f9e 38589adb aad8dfb8
a3b72c8d a96f2dce 2a1557ab 67959b6e 94bbbb0a cfc4fc9e 391888da af0e492c
80bebb0e 9d7365a4 153117a6 4089
ステップ 8 ドロップの前後およびドロップの前後に転送される複数のパケット(FWD)からシーケンス番号情報を収集して取得します。
FWD:
839 PKT: 00b6e003 FWD
838 PKT: 00b6e001 FWD
837 PKT: 00b6e000 FWD
815 PKT: 00b6e044 FWD
814 PKT: 00b6dfe8 FWD
813 PKT: 00b6e00d FWD
DROP:
816 PKT: 00b6dfed DROP
817 PKT: 00b6dfec DROP
818 PKT: 00b6dfeb DROP
819 PKT: 00b6dfe9 DROP
820 PKT: 00b6dfea DROP
ステップ 9 計算を簡素化するために、シーケンス番号を16進数から10進数に変換し、並べ替えます。
REORDERED:
813 PKT: 00b6e00d FWD --- Decimal: 11984909
814 PKT: 00b6dfe8 FWD --- Decimal: 11984872
815 PKT: 00b6e044 FWD --- Decimal: 11984964 ***** Highest Value
816 PKT: 00b6dfed DROP--- Decimal: 11984877
817 PKT: 00b6dfec DROP--- Decimal: 11984876
818 PKT: 00b6dfeb DROP--- Decimal: 11984875
819 PKT: 00b6dfe9 DROP--- Decimal: 11984873
820 PKT: 00b6dfea DROP--- Decimal: 11984874
<snip>
837 PKT: 00b6e014 FWD --- Decimal: 11984916
838 PKT: 00b6e015 FWD --- Decimal: 11984917
839 PKT: 00b6e016 FWD --- Decimal: 11984918
ステップ 10 各パケットの最大のシーケンス番号と受信したシーケンス番号の差分を計算します。
Difference:
815 PKT: Decimal: 11984964 ***** Highest Value
--------------------------------------
815(Highest) - X PKT = Diff
--------------------------------------
816 PKT: 11984964 - 11984877 = 87 DROP
817 PKT: 11984964 - 11984876 = 88 DROP
818 PKT: 11984964 - 11984875 = 89 DROP
819 PKT: 11984964 - 11984873 = 91 DROP
820 PKT: 11984964 - 11984874 = 90 DROP
<snip>
837 PKT: 11984964 - 11984916 = 48 FWD
838 PKT: 11984964 - 11984917 = 47 FWD
839 PKT: 11984964 - 11984918 = 45 FWD
この例では、次の図に示すように、スライディングウィンドウをウィンドウサイズ64と右端11984964で表示できます。

ドロップ・パケットに対して受信されたシーケンス番号は、そのシーケンス空間のリプレイ・ウィンドウの右端よりかなり先にあります。
ステップ2で見られたように、ウィンドウサイズは以前の値64のままであるため、新しく設定されたリプレイウィンドウを強制的に有効にするコマンドセクションのコマンドのいずれかを、1024に拡大されたウィンドウサイズを有効にするために適用する必要があります。
ESP SPIとシーケンス番号を関連付けるのに役立つもう1つの便利なツールはWiresharkです。
着信方向のパケットキャプチャを設定し、pcapファイルにエクスポートします。
monitor caputure CAP match ipv4 host 10.62.33.91 host 10.62.63.251 buffer size 20 inter TenGigabitEthernet0/0/0 in
monitor caputure CAP star
monitor caputure CAP stop
monitor caputure CAP export bootflash:Anti-replay.pca
pcapキャプチャがWiresharkで開いたら、ESP SPIとシーケンス番号を表示するには、右クリックしてプロトコル設定を選択し、パケットを1つ展開します。 UDPENCAPを検索し、図に示すように、デフォルトポートをSD-WANポート(送信元ポート)に変更します。

UDPENCAPが正しいポートで配置されると、図に示すように、ESP情報が表示されます。

| 改定 | 発行日 | コメント |
|---|---|---|
2.0 |
24-Jun-2026
|
スペル、文法、文の構造、間隔、URLの問題の修正、およびCCWアラートを更新。 |
1.0 |
08-Sep-2022
|
初版 |