はじめに(Introduction)
拠点内でルータ2台冗長(HSRP)+拠点間をOSPFで経路交換する構成で、LAN側までOSPFを回してしまい、障害時の収束が設計意図から外れました。
同じ事故を繰り返さないためのメモです。
結論(Conclusion)
- OSPFの隣接(Helloでネイバー形成)は WANトランジット+ルータ渡りに限定します
- LAN側は
passive-interfaceでHelloを止め、LAN上でルータ同士が隣接しないようにします - 安全な型:
passive-interface default→ 隣接したいIFだけno passive-interface - 直ること:LAN経由の安い迂回候補が消える
直らないこと:trackなしでHSRP Activeを#1に寄せているため、障害時も入口が#1になる点は残ります
本文(Solution & Process)
前提(今回の設計方針)
- 要件により IP SLA + track は使いません(到達性監視・GW切替なし)
- 障害想定は WANリンク断 / OSPF隣接断(OSPF収束で切替)
- コスト設計(本記事ではIFに ip ospf cost で手動設定):主系WAN=10 / 副系WAN=20 / ルータ渡り=50 / LAN側=10
- HSRP:LANのデフォルトGWは HSRP VIP、通常時は Router #1がActive(trackなしのため障害時もActiveは移りません)
何が起きたか(主系WAN障害時)
- HSRP Activeが#1のため、障害時もトラフィックはまず Router #1 に入ります
- ここでLAN側でOSPFネイバーを張ってしまうと、R1→R2へ行く“道”が2本になりました
- 渡り(cost 50)
- LANセグメント(cost 10)
OSPFメトリックは「経路上の各ルータの送出IFコストの合計」なので、例えば以下の比較になります。
目的地:副系WANの先のプレフィックス(R2が cost=20 のIFで送出する先)
- 渡り経由:
50 + 20 = 70 - LAN折り返し:
10 + 20 = 30← 安いので選ばれやすい
結果:#1→LAN→#2 の折り返し迂回が成立しました。
余計なホップ/帯域消費/障害ドメイン拡大
対策:LAN側を passive-interface にする
狙いはこれだけです。
- WAN:隣接したい
- 渡り:隣接したい
- LAN:隣接したくない(Hello不要)
passive-interface default を使う場合、WANだけでなく渡りも no passive-interface が必要です。
Router #1設定例(基本形)
router ospf 1
passive-interface default
no passive-interface GigabitEthernet0/0 ! 主系WAN
no passive-interface GigabitEthernet0/2 ! ルータ渡り
! ※副系WANも隣接するなら、該当IFを no passive にします
network 192.0.2.0 0.0.0.3 area 0 ! 主系WAN
network 203.0.113.0 0.0.0.3 area 0 ! 渡り
network 198.51.100.0 0.0.0.255 area 0 ! LANを広告するなら(Helloは出ない)
ポイント
- LAN上でR1/R2の隣接が形成されないため、SPFの選択肢から LAN経由のR1↔R2リンクが消えます
- その結果、障害時は(入口が#1でも)#1→渡り→#2 に収束しやすくなります
結果と学び(Result / Learning)
- before:LANで隣接 → 障害時に #1→LAN→#2 が候補に入り、意図しない収束
- after:LANはpassive → 障害時は #1→渡り→#2 に収束
学び:OSPFは「動けばOK」ではなく、どこでネイバーを張るかが設計の本体でした。
trackなし前提でも、LAN側をpassiveにするだけで **地雷(LAN経由の迂回候補)**を消せます。
おわりに(Application)
次回は設定投入直後に、最低限これだけ確認します。
show ip ospf neighbor # neighbor出力は“WAN IF と 渡り IF のみ”になっているのが正
show ip ospf interface brief # OSPF稼働IFにLANが混ざってないか
show ip ospf interface <LAN_IF> # passive/コスト確認
show ip route ospf # 経路とメトリックが想定どおりか

