冗長化構成なのに片系にしか通信が流れない理由|原因別に徹底解説

  • URLをコピーしました!

「冗長構成にしているのに、なぜか片系にしか通信が流れない」
この問題は、設計・ルーティング・スイッチ・FW・負荷分散方式の理解不足によって発生します。

本記事では、なぜ冗長なのに負荷分散されないのかを構造的に整理し、 原因の特定手順から具体的な対処方法までを完全解説します。

目次

まず結論|片系にしか流れないのは「設計上そうなっている」ケースが多い

多くのケースで、

  • 負荷分散設計になっていない
  • ルーティングの優先度差
  • ECMPが成立していない
  • ハッシュアルゴリズムの特性
  • FWセッション保持の影響

のいずれかが原因です。

原因① Active-Standby構成になっている

典型例

  • HSRP/VRRPでpriority差がある
  • FWクラスタがActive-Standby
  • STPで片側ブロック

この場合、そもそも同時利用設計ではありません。

確認方法

show standby brief
show vrrp
show spanning-tree

→ Active機のみがフォワーディング状態であることを確認します。

原因② ルーティング優先度差(Administrative Distance)

例えば以下のような構成:

  • 静的ルート(AD 1)
  • OSPF(AD 110)

この場合、静的ルートが常に選択されます。

確認コマンド

show ip route

ルートの左側に表示される数値がADです。

原因③ ECMPが成立していない

ECMP(Equal Cost Multi Path)は、 完全に同一メトリックである必要があります。

成立条件

  • 同一プロトコル
  • 同一メトリック
  • 同一AD
  • max-pathsが有効

確認

show ip route x.x.x.x
show ip protocols

ルートが1本しか表示されていなければECMPは成立していません。

原因④ ハッシュアルゴリズムの偏り

LAGやECMPでは、通常以下をハッシュキーにします。

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

通信パターンが少ないと、 ハッシュが偏り片系に集中します。

  • 単一サーバへの大量アクセス
  • 単一クライアント→単一宛先

確認例(Cisco)

show etherchannel load-balance

原因⑤ 非対称ルーティング

往路は回線A、復路は回線Bになると、 FWがセッションを破棄する場合があります。

確認

traceroute x.x.x.x
tcpdump -i eth0 host x.x.x.x

往復経路が一致しているか確認します。

原因⑥ FWセッション保持の影響

FWはセッション単位で経路を固定します。

  • 既存セッションは切替されない
  • セッションタイムアウトまで片系固定

確認

show session
show conn

原因⑦ STPで片側がBlocking

L2冗長ではSTPがループ防止のため片系を遮断します。

確認

show spanning-tree vlan X

原因⑧ 負荷分散方式の誤解

「冗長=分散」ではありません。

方式動作
Active-Standby常に片系
ECMPフロー単位分散
LAGハッシュ分散
SD-WANポリシーベース

完全診断チェックリスト

  1. 構成はActive-Standbyではないか?
  2. AD差はないか?
  3. ECMP成立条件は満たしているか?
  4. ハッシュ偏りはないか?
  5. 往復経路は一致しているか?
  6. FWセッション固定の影響はないか?
  7. STPでブロックされていないか?

設計段階で防ぐ方法

① 負荷分散方式を明確に定義する

  • Active-Activeにするのか
  • フェイルオーバー前提なのか

② ECMPを正しく設計する

router ospf 1
 maximum-paths 2

③ ハッシュアルゴリズムを確認

分散キーを適切に設定します。

④ 非対称ルーティングを排除

  • PBRの整理
  • FWクラスタ同期確認

まとめ

冗長構成なのに片系にしか流れない原因は、

  • 設計意図の誤解
  • ルーティング優先度差
  • ECMP未成立
  • ハッシュ偏り
  • FWセッション保持
  • STPブロック

がほとんどです。

重要なのは、 「冗長」と「分散」は別概念であると理解することです。

目次