ルートを追加・変更したのに通信経路が変わらない。
設定は正しいはずなのに、トラフィックが旧経路を通り続ける。
本記事では、ルーティング変更が反映されない原因を網羅的に整理し、 現場でそのまま使える確認コマンドと判断基準を提示します。
まず結論:ルーティング変更が反映されない主な原因
- ルーティングテーブルに実際には入っていない
- 優先度(Administrative Distance / Metric)で負けている
- ルートキャッシュが残っている
- PBR(ポリシールーティング)が上書きしている
- 別装置で経路が吸収・要約されている
- セッション維持により旧経路が使われ続けている
- 片方向のみ変更され非対称になっている
以下で順番に潰していけば必ず原因に到達できます。
Step1:本当にルートが入っているか確認する
■ Cisco系
show ip route 192.168.10.0
show ip route | include 192.168.10.0
■ Linux
ip route show
ip route get 192.168.10.10
判断基準
- 目的ネットワークが「active」で存在するか
- Next-hopが想定通りか
- 複数ルートが存在しないか
存在しなければ → 広告失敗 or 静的設定ミス
Step2:Administrative Distance / Metricで負けていないか
ルートは入っているが、別ルートが優先されているケースは非常に多いです。
確認ポイント
- OSPFより静的が優先されていないか
- EBGPよりiBGPが優先されていないか
- Floating Staticが有効になっていないか
Cisco確認
show ip route 192.168.10.0
[110/20] の110がAdministrative Distance、20がMetric。
ADが小さいものが勝つため、意図通りか確認します。
Step3:ルートキャッシュの影響を疑う
特にLinuxや一部装置ではフローベースのキャッシュにより、 旧経路がしばらく使われ続けます。
Linux
ip route flush cache
FW装置の場合
- セッションテーブルをクリア
- 該当セッションのみ削除
変更後も旧経路が使われる場合はほぼセッション残存です。
Step4:PBR(ポリシールーティング)を確認
通常ルートを変更しても、PBRが優先されると意味がありません。
Cisco
show route-map
show ip policy
Linux(ip rule使用時)
ip rule show
PBRはルーティングテーブルより上位で評価されます。
Step5:上位装置で要約・ブラックホールされていないか
以下のような構成で起こりやすいです。
- コアでサマリルートを生成
- Null0向けにスタティックが入っている
- BGPでAggregateのみ広告している
確認
show ip route summary
show ip bgp 192.168.10.0
より具体的なルートが存在するか確認すること。
Step6:非対称ルーティングになっていないか
片方向だけ変更すると、戻り経路が旧経路のままになり、 FWで破棄されることがあります。
確認方法
traceroute 192.168.10.10
送信元と受信側両方から実施します。
往復経路が一致しているかが重要。
Step7:ダイナミックルーティングの収束を確認
OSPF
show ip ospf neighbor
show ip ospf database
BGP
show ip bgp summary
show ip bgp 192.168.10.0
確認ポイント
- NeighborがEstablishedか
- LSA/Prefixが配布されているか
- Route-mapでフィルタされていないか
Step8:ECMPの影響
ECMP環境ではトラフィックが分散され、 「変更が反映されていない」ように見えることがあります。
確認
show ip route 192.168.10.0
Next-hopが複数存在するか確認。
現場で使える即断フローチャート
- ルートが入っているか? → NOなら広告確認
- AD/Metricで勝っているか? → NOなら優先度調整
- PBRがないか? → あれば修正
- セッション残っていないか? → クリア
- 戻り経路も変更済みか? → traceroute確認
- 上位で要約されていないか? → サマリ確認
よくある実例
ケース1:静的ルート追加したのに変わらない
→ OSPFのAD(110)より静的(1)が優先されるはずだが、
Floating StaticでAD200になっていた。
ケース2:FW跨ぎで変わらない
→ セッションテーブルに旧経路が残存。
ケース3:BGPで変更したのに反映されない
→ Route-mapでフィルタされていた。
まとめ
ルーティング変更が反映されない原因は、
- ルート未登録
- 優先度負け
- PBR上書き
- セッション残存
- 非対称経路
- 要約吸収
のいずれかです。
「ルーティングテーブル → 優先度 → ポリシー → セッション → 往復経路」 この順番で確認すれば必ず解決できます。



