冗長構成を組んでいるのに、
- 切替に30秒以上かかる
- アプリがタイムアウトする
- ユーザから「一瞬落ちた」と言われる
このような問題に悩んでいませんか?
本記事では、ネットワーク/FW/L3SW/サーバを跨ぐ構成において、 フェイルオーバー時間が長くなる本当の原因と、 現場で実際に効果がある具体的チューニング方法を体系的に解説します。
この記事を読むだけで、
- どこを調整すれば何秒短縮できるのか
- どのレイヤがボトルネックか
- 安全な短縮手順
まで理解できる構成になっています。
目次
■ 結論:フェイルオーバー時間は「最も遅いレイヤ」で決まる
フェイルオーバー時間は以下の合計です。
検知時間 + 収束時間 + ARP更新時間 + セッション再確立時間
つまり、 どれか1つでも遅ければ全体が遅くなります。
■ レイヤ別:フェイルオーバー時間の内訳と短縮方法
① L2レイヤ(STP関連)
■ 遅くなる原因
- STPがListening/Learningを経由
- PortFast未設定
- トポロジ変更通知(TCN)によるMACフラッシュ
■ チューニング方法
spanning-tree portfast
spanning-tree portfast trunk
可能なら:
- RSTPへ移行
- STP依存をやめてL3設計へ移行
👉 期待短縮:30秒 → 1秒未満
② FHRP(HSRP / VRRP)
■ デフォルト値(遅い)
Hello: 3秒
Hold: 10秒
→ 最大10秒停止
■ 推奨チューニング
standby 1 timers msec 200 msec 600
200ms Hello / 600ms Hold
👉 期待短縮:10秒 → 0.6秒
※CPU負荷とのバランス要確認
③ ルーティングプロトコル(OSPF/BGP)
■ OSPFの場合
デフォルト:
Hello: 10秒
Dead: 40秒
■ 高速化設定
ip ospf dead-interval minimal hello-multiplier 5
→ 約1秒以内検知
■ BGPの場合
デフォルト:
Keepalive: 60秒
Hold: 180秒
高速化:
neighbor x.x.x.x timers 3 9
👉 9秒以内検知
さらに高速化したい場合:
- BFD併用(100ms単位)
④ FWクラスタ(セッション同期)
■ 遅延要因
- セッション同期未設定
- 同期遅延
- 非対称ルーティング
■ 確認ポイント
- session syncが有効か
- 同期リンク帯域に余裕があるか
- ECMPで経路が揺れていないか
同期が正しく動いていれば、 TCP再接続なしで切替可能。
⑤ ARPキャッシュ問題
VIP切替後、 クライアント側が古いMACを保持していると通信断が発生します。
■ 対策
- Gratuitous ARP送信確認
- arp gratuitous enable
- arp timeout短縮
⑥ アプリ/TCP側の要因
ネットワークが1秒で復旧しても、 アプリが以下設定だと復旧しません。
- TCP再送タイマーが長い
- Keepalive未設定
- DB接続プール未再接続
Linux確認例
sysctl net.ipv4.tcp_retries2
sysctl net.ipv4.tcp_keepalive_time
■ 実践:フェイルオーバー時間短縮の最適手順
Step1:どこで止まっているか測定
- パケットキャプチャ
- show standby / show vrrp
- show ip route
- FWログ確認
Step2:検知時間を1秒以下にする
優先順位:
- FHRPタイマー調整
- OSPF Dead短縮
- BFD導入
Step3:L2依存を減らす
- L3化
- STP依存削減
- ループ構成見直し
Step4:セッション維持設計へ移行
- FW同期確認
- ステートフル切替検証
- ECMP無効化検証
■ 目標値の現実的ライン
| 構成 | 目標フェイルオーバー時間 |
|---|---|
| STP依存構成 | 3〜10秒 |
| FHRP高速化構成 | 1秒未満 |
| BFD + セッション同期 | 300ms以下 |
■ よくある誤解
誤解①:冗長にすれば速くなる
冗長は「止まらない設計」であり、 速さは「タイマー設計」で決まります。
誤解②:全部最小値にすればいい
タイマーを短くしすぎると、 誤検知 → フラップ → 逆に不安定になります。
■ まとめ
フェイルオーバー時間は、
- 検知時間
- 収束時間
- ARP更新
- セッション維持
この4要素で決まります。
最も効果が大きいのは:
- FHRPタイマー短縮
- OSPF/BFD高速化
- FWセッション同期確認
設計段階でここまで考慮できていれば、 「切替で落ちるネットワーク」から卒業できます。
フェイルオーバーは「起きる前提」で設計するものです。 ぜひ一度、実機でタイマーと切替時間を計測してみてください。
あわせて読みたい


冗長構成なのに切替時に通信断が起きる理由
HSRP/VRRP、FWクラスタ、コアスイッチ二重化、回線二重化―― 構成図上は「冗長」になっているのに、 切替の瞬間に通信が数秒~数十秒止まる 既存セッションだけ切れる ア…
あわせて読みたい


ECMP環境でFWを跨ぐと壊れる理由【非対称ルーティングが生むセッション破壊の正体】
ECMP(Equal Cost Multi Path)を導入した途端、 一部通信だけ失敗する 同じ宛先なのに成功したり失敗したりする pingは通るがTCPが不安定 FWログにdenyは出ていない こ…
あわせて読みたい


FWセッションタイムアウトが引き起こす断続的通信断の正体【なぜ“時間が経つと切れる”のか】
通信は最初は正常。 しかし、 数分後に突然切れる 一定時間操作しないと接続が落ちる 再接続すれば直る サーバにもエラーは出ていない このような断続的通信断は、 FWセ…
