ファイアウォールの暗号化カウンターが上がるのにトンネルが何も届けないとき、アクセスルールを広げたくなります。しかしその判断は、受信側自身の検査の順序を飛ばしています。受信した ESP パケットは複数の段階を通り、それぞれが異なる理由でパケットの寿命を終わらせます。一致するアソシエーションがない、リプレイや整合性の検査に失敗した、内側のパケットは正常だが先へ通せない、といった理由です。失敗した段階に名前を付ければ、IPsec が壊れたという曖昧な話が、特定のカウンターと特定の修正に変わります。

到着は一つの観測であり、三つではない

ESP がゲートウェイに届いたことを示す外部キャプチャが証明するのは、外側のパケットが到着したことだけです。受け入れは、受信側がアソシエーションを見つけてパケットを検証したことを意味します。配送は、復元された内側のパケットが宛先へルーティングされ、応答が返ったことを意味します。これらは別々の結果であり、それらをまとめて表示するダッシュボードは、必要な情報をちょうど隠してしまいます。

同じ区別がよくある報告を説明します。一方のピアの暗号化カウンターは上がるのに、もう一方は有用な復号トラフィックを報告しない。両方の記述は同時に正しくなり得ます。同じ試行の異なる段階を述べているからです。

アソシエーションの検索は復号より前に行われる

受信側は必要ならフラグメントを再構成し、そのあとパケットのセキュリティアソシエーションを探します。通常のユニキャストでは SPI と宛先がそれを選びます。有効なアソシエーションがなければ以降の処理は行われません。だからこそ古い、あるいは一致しない SPI は、アプリケーションに見えるエラーではなく沈黙を生みます。

アソシエーションには方向があり、鍵の更新中に変わり得ます。現在と考えている受信側アソシエーションのそばに、受信ピア、SPI、タイムスタンプを記録してください。表示された送信側アソシエーションや健全な IKE 関係は、このパケットを受け取るべきアソシエーションの代わりにはなりません。

リプレイと整合性の検査はペイロードが存在する前に拒否する

アソシエーションが見つかると、受信側はそれが指定するアルゴリズムを適用します。リプレイ対策が有効なら、ウィンドウ外のシーケンス番号は拒否されます。整合性検査の失敗も処理を終わらせます。受信したままのパケットと ICV が一致しないからです。どちらの場合も復号された内側のパケットは生まれないので、ルーティング、ポリシー、アプリケーションには何も届きません。

こうした状態には実装が文書化しているエラーとカウンターを使い、受信の失敗をすべてアクセスリストの拒否として扱わないでください。トラフィックを出現させるために整合性やリプレイ対策を切ることは、受信したパケットが正当だった証拠にはなりません。真実を告げていた検査を外しているだけです。

UDP ポート 4500 は入れ物であり、判定ではない

NAT トラバーサルは ESP を UDP の中に入れて運び、同じポートは IKE やキープアライブのメッセージも運びます。したがって 4500 上の活動は、何かがポートを使っていることを示すだけで、アプリケーションが ESP パケットを生成したことを示しません。データトラフィックに帰属させる前に、ペイロードを分類してください。

キャプチャが唯一の証拠である場合、これが重要になります。時間どおりに届くキープアライブは死んだトンネルを生きているように見せ、IKE メッセージはキャプチャを実際のデータ経路より忙しく見せることがあります。

取り出したあとで初めてルーティングとポリシーが適用される

復号が成功すると、復元された内側のパケットは通常の経路に入ります。ポリシー検査、ルーティング、転送規則、そして宛先ホストです。パケットはすべてのセキュリティ検査を通ってもここで落ちることがあり、応答の経路も存在しなければなりません。その失敗は ESP ではなく転送に属します。

カウンターは文書化された段階に結び付けておいてください。インターフェースの受信、受け入れられた ESP、復号バイト、転送された内側のパケットは同じ数である必要はありません。特に高速化された経路がデータプレーンを扱い、コントロールプレーンが別に報告する場合にはそうです。一般的なダッシュボードのラベルは、二つのカウンターが同じ意味だという証明にはなりません。

新しく許可された作業を一つ行うときは、最後に確認できた境界と最初の関連するエラーを残します。その組は、次の管理者がトランスポートの配送、アソシエーションと整合性、あるいは通常の内側転送のどれを調べるべきかを示し、数値を動かすためにすべてのルールを緩めるという常套手段を避けられます。

関連記事