FWを跨ぐ通信で片方向だけ通る原因【なぜ“戻り通信”が消えるのか】

  • URLをコピーしました!

FWを経由する通信で、

「片方向だけ通る」

という現象は現場で非常に多く発生します。

  • 送信はできるが戻りが来ない
  • SYNは届くがACKが返らない
  • pingは通るのに業務通信だけ失敗する
  • denyログは出ていない

この問題は、設定ミスというより構造理解の不足が原因で長期化します。

本記事では、

  • 片方向通信が発生する本当の理由
  • 原因の分類と見分け方
  • 最短で原因を特定する診断手順
  • 「解決した」と言える判断基準
  • 再発防止の設計ポイント

を実務レベルで解説します。

目次

まず結論:FWは「パケット」ではなく「セッション」を見ている

片方向通信の原因の多くは、

セッション整合性の崩れ

です。

ステートフルFWは通信開始時にセッションを作成し、

  • 送信元IP
  • 宛先IP
  • ポート番号
  • TCP状態

を管理しています。

往路と復路が一致しない場合、FWは戻り通信を破棄します。

原因①:非対称ルーティング(最頻出)

■ 構造

往路:

Client → FW-A → Server

復路:

Server → FW-B → Client

この場合、FW-Aだけがセッションを持っています。

FW-Bにはセッションが存在しないため、戻り通信は破棄されます。

■ 症状

  • SYNは届く
  • SYN-ACKが戻らない
  • FWログにdenyが出ないこともある

■ 確認ポイント

  • 戻り経路は同一FWを通っているか
  • ECMPが有効になっていないか
  • PBRが影響していないか

■ 解決条件

往復とも同一FWを通ること。

原因②:NAT変換の不整合

SNAT/DNATを利用している環境では、

変換を行ったFWでしか元に戻せません。

戻りが別FWを通ると変換できず破棄されます。

■ 症状

  • 内側では通信成立しているように見える
  • 外側では応答が消える

■ 確認ポイント

  • NATテーブルにエントリが存在するか
  • 戻りパケットの宛先IPが正しいか
  • FWクラスタのセッション同期が有効か

■ 解決条件

NAT処理を同一装置で完結させること。

原因③:ポリシー設定の片方向ミス

静的ACL中心の構成や一部ポリシー漏れで発生します。

■ 症状

  • 送信方向のみ許可されている
  • 戻り方向がimplicit deny

■ 確認ポイント

  • 送信・受信両方向のポリシー確認
  • セッションタイムアウト直後の通信失敗有無

■ 解決条件

双方向で正しく許可されていること。

原因④:MTU/フラグメント問題

小さいパケットは通るが、大きな通信で止まる場合はMTU問題を疑います。

■ 症状

  • pingは通る
  • ファイル転送だけ失敗

■ 確認方法

ping -M do -s 1472 対向IP

■ 解決条件

Fragmentation Neededが正しく返る、またはMSS調整済みであること。

最短で原因に到達する診断フロー

  1. SYNはFWを通過しているか
  2. セッションは生成されているか
  3. 戻り経路は同一FWか
  4. NAT変換は一致しているか
  5. denyログは出ていないか

この順番で確認すれば、必ず原因に到達できます。

解決したと言える状態

  • 往復とも同一FW経由
  • セッションが安定して生成される
  • 再送が発生しない
  • 通信が継続的に成功する

まとめ

FWを跨ぐ通信で片方向だけ通る原因は、

セッションの不整合

で説明できます。

  • 非対称ルーティング
  • NAT不整合
  • ポリシー片方向設定
  • MTU問題

「パケット」ではなく「セッション」で考えること。

これが解決の鍵です。

目次