冗長構成なのに切替時に通信断が起きる理由

  • URLをコピーしました!

HSRP/VRRP、FWクラスタ、コアスイッチ二重化、回線二重化―― 構成図上は「冗長」になっているのに、

  • 切替の瞬間に通信が数秒~数十秒止まる
  • 既存セッションだけ切れる
  • アプリがタイムアウトする
  • ユーザから「一瞬落ちた」と報告が来る

このような事象は非常に多いです。

結論から言えば、「冗長=無停止」ではありません。 設計上の前提と実際の動作が一致していないことが原因です。

本記事では、切替時に通信断が起きる本質的な理由を分解し、 具体的な診断方法と解決策まで解説します。 この記事だけで原因特定から改善方針決定まで可能です。

目次

1. まず理解すべき前提:切替には“収束時間”がある

冗長プロトコルは以下の処理を行います:

  • 障害検知
  • 役割変更
  • ARP更新
  • ルーティング再収束
  • セッション再構築

この間、数百ms~数秒の通信断が発生する可能性があります。

問題は「どの層で止まっているか」を見極めることです。

2. 通信断が起きる代表的な原因

① ARP更新遅延(L2層の問題)

現象

  • GW切替後も古いMACに送信される
  • 数秒後に復旧

原因

  • Gratuitous ARP未送信
  • 端末側ARPキャッシュ保持

確認方法

  • 切替直後にarp -a確認
  • パケットキャプチャでGARP確認

解決策

  • GARP送信設定有効化
  • ARPタイマー最適化

② セッション同期不足(FWクラスタ)

現象

  • 既存TCP通信のみ切断
  • 新規通信は通る

原因

  • セッション同期無効
  • NAT情報未同期

確認方法

  • 両系のセッションテーブル比較
  • 同期IFエラーカウンタ確認

解決策

  • state sync有効化
  • 同期専用リンク確保

③ ルーティング再収束遅延(L3層)

現象

  • 数秒~十数秒の通信断
  • tracerouteで経路変化確認

原因

  • OSPF/BGPタイマー長い
  • デフォルトルート消失

解決策

  • BFD導入
  • hello/deadタイマー最適化

④ HSRP/VRRPトラッキング不足

現象

  • リンクはUpだが上位到達不可
  • ブラックホール発生

解決策

  • IP SLA導入
  • trackオブジェクト活用

⑤ 非対称ルーティング発生

現象

  • 片方向だけ通る
  • FWログ片系のみ

原因

  • ECMP不整合
  • 片系のみセッション保持

対策

  • フロー単位固定
  • セッション同期強化

3. どこで止まっているかを特定する診断フロー

Step1:pingで確認

  • GWまで止まる → L2問題
  • 外部のみ止まる → ルーティング問題

Step2:既存TCPのみ落ちるか?

  • Yes → セッション同期問題

Step3:ARP確認

  • MAC変わっていない → GARP問題

Step4:ルーティング確認

  • 切替後に経路消失していないか

4. 無停止に近づけるための設計原則

  • セッション同期必須
  • BFD導入
  • GARP送信確認
  • 到達性トラッキング設定
  • 実機フェイルオーバーテスト実施

図上の冗長ではなく、動作検証済みの冗長が必要です。

5. よくある誤解

  • 「二重化すれば止まらない」→ 誤り
  • 「リンク冗長=通信冗長」→ 誤り
  • 「デフォルト設定で十分」→ 危険

6. 結論

冗長構成で通信断が起きる理由は、

  • L2(ARP更新)
  • L3(経路収束)
  • L4(セッション同期)

いずれか、または複合要因です。

「どの層で止まっているか」を切り分けることが最短解決ルートです。

設計時点で収束時間を考慮し、実機試験を行うことが最も重要です。

目次