OSPF 技術メモ(Cisco IOS / IOS XE 想定)
対象は主にCisco IOS / IOS XEのOSPFv2(IPv4)とする。
Cisco IOS XR、NX-OS、ASAではCLI構文や機能差分がある。
router ospf 1の1はOSPFプロセスIDであり、ルータ内でのみ有効なローカル識別子である。隣接ルータ間で一致させる必要はない。
1. OSPF概要
OSPF(Open Shortest Path First)は、AS内部で利用するリンクステート型IGPである。
各ルータは接続リンクの状態をLSAとして通知し、エリア内でLSDB(Link-State Database)を同期する。各ルータはLSDBを基にSPF(Dijkstra)アルゴリズムを実行し、最短コストの経路をルーティングテーブルへ登録する。
- IPv4:OSPFv2
- IPv6:OSPFv3
- IPプロトコル番号:89
- TCP/UDPポートは使用しない
- メトリック:Cost
- 最小Costの経路を選択
- 同一Costの複数経路はECMPとして利用可能
- ルータID:32ビット値。IPv4アドレス形式で表記する
2. 基本設定例
Cisco IOS / IOS XEでは、OSPFをインターフェース単位で有効化する方法と、networkコマンドで対象インターフェースを指定する方法がある。
現在は、設定対象が明確になるインターフェース単位の設定が推奨されることが多い。
hostname R1
interface Loopback0
ip address 10.255.0.1 255.255.255.255
ip ospf 1 area 0
interface GigabitEthernet0/0
description To-R2
ip address 10.0.12.1 255.255.255.252
ip ospf 1 area 0
ip ospf network point-to-point
router ospf 1
router-id 10.255.0.1
passive-interface default
no passive-interface GigabitEthernet0/0
上記のポイントは以下の通り。
-
router-idは明示設定する - Router IDには通常、安定しているLoopbackアドレスを使用する
-
passive-interface defaultで原則全インターフェースをパッシブにする - 隣接ルータと接続するインターフェースだけ
no passive-interfaceで有効化する - ルータ間のEthernet接続をポイントツーポイントとして扱う場合、
ip ospf network point-to-pointを設定する
Router ID変更後は、OSPFプロセス再起動や隣接関係の再確立が必要になる。
clear ip ospf process
このコマンドはOSPF隣接関係を切断するため、運用中の実行には注意が必要である。
3. OSPFの基本動作
OSPFの主な動作は以下の通り。
- Helloパケットを送信する
- 隣接ルータを発見する
- Helloパケットを相互に認識してネイバー関係を作成する
- DBD、LSR、LSU、LSAckを使用してLSDBを同期する
- SPF計算を実行する
- 最短経路をルーティングテーブルへ登録する
- リンク障害や経路変更時はLSAを更新し、再計算する
OSPFパケットは以下の5種類である。
| パケット種別 | 用途 |
|---|---|
| Hello | 隣接ルータの発見・維持、DR/BDR選出 |
| DBD | LSDB内のLSA要約情報を交換 |
| LSR | 不足しているLSAを要求 |
| LSU | LSAを送信・更新 |
| LSAck | LSU / LSAの受信確認 |
4. Hello、Deadタイマー、マルチキャストアドレス
4.1 Ciscoのデフォルトタイマー
代表的なOSPFネットワークタイプにおけるCisco IOS / IOS XEの一般的なデフォルト値は以下の通り。
| ネットワークタイプ | Hello Interval | Dead Interval | DR/BDR |
|---|---|---|---|
| Broadcast | 10秒 | 40秒 | あり |
| Point-to-Point | 10秒 | 40秒 | なし |
| NBMA | 30秒 | 120秒 | あり |
| Point-to-Multipoint | 30秒 | 120秒 | なし |
Dead Intervalは、Helloを受信できなかった相手をダウンとみなすまでの時間である。一般的なデフォルトではHello Intervalの4倍である。
Hello / Deadタイマーは隣接ルータ間で一致している必要がある。
interface GigabitEthernet0/0
ip ospf hello-interval 5
ip ospf dead-interval 20
両端ルータで同じ値を設定する。
interface GigabitEthernet0/0
ip ospf hello-interval 5
ip ospf dead-interval 20
4.2 ネイバー関係形成時に使用するマルチキャストアドレス
OSPFv2では、主に以下のIPv4マルチキャストアドレスを使用する。
| 宛先アドレス | 名称 | 用途 |
|---|---|---|
| 224.0.0.5 | AllSPFRouters | OSPFルータ全体宛て |
| 224.0.0.6 | AllDRouters | DRおよびBDR宛て |
BroadcastおよびPoint-to-Pointネットワークでは、OSPFルータは通常、Helloパケットを224.0.0.5へ送信する。
ネイバー関係形成までの流れは以下の通り。
- R1がHelloパケットを
224.0.0.5へ送信する - R2がHelloパケットを受信し、R1をネイバー候補として認識する
- R2のHelloパケット内にR1のRouter IDが記載される
- R1がR2のHello内で自分のRouter IDを確認する
- 双方向通信が確認され、2-Way状態になる
- Point-to-Point環境ではLSDB同期を開始し、Full状態へ遷移する
- Broadcast環境ではDR/BDR選出後、DR/BDRとの間でFull状態になる
224.0.0.6は主にBroadcast / NBMA環境において、DROtherルータがDRおよびBDRへLSUを送信する場合などに使用される。
NBMA環境ではマルチキャストを使用できない、または使用しないことがある。その場合、ネイバーを明示的に指定してユニキャスト通信を行う。
interface Serial0/0
ip address 10.0.12.1 255.255.255.0
ip ospf 1 area 0
ip ospf network non-broadcast
router ospf 1
neighbor 10.0.12.2
neighbor 10.0.12.3
OSPFv3では以下のIPv6リンクローカルスコープマルチキャストを使用する。
| 宛先アドレス | 名称 |
|---|---|
| FF02::5 | AllSPFRouters |
| FF02::6 | AllDRouters |
5. ネイバー状態
OSPFのネイバー状態は以下の通り。
| 状態 | 内容 |
|---|---|
| Down | Helloを受信していない状態 |
| Init | 相手のHelloを受信した状態 |
| 2-Way | 双方向にHelloを確認した状態 |
| ExStart | DBD交換の主従関係を決定する状態 |
| Exchange | DBDでLSA要約情報を交換する状態 |
| Loading | 不足LSAをLSR / LSUで取得する状態 |
| Full | LSDB同期完了状態 |
確認コマンドは以下。
show ip ospf neighbor
例:
R1# show ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface
10.255.0.2 1 FULL/ - 00:00:35 10.0.12.2 GigabitEthernet0/0
BroadcastネットワークでDROther同士が2-Wayとなるのは正常である。
Neighbor ID Pri State Dead Time Address Interface
10.255.0.2 1 FULL/DR 00:00:33 10.0.12.2 GigabitEthernet0/0
10.255.0.3 1 2WAY/DROTHER 00:00:36 10.0.12.3 GigabitEthernet0/0
6. OSPFネットワークタイプ
| ネットワークタイプ | DR/BDR | 主な用途 |
|---|---|---|
| Broadcast | あり | Ethernet LAN |
| Point-to-Point | なし | ルータ間接続、トンネル、専用線 |
| NBMA | あり | Frame Relay、DMVPNの一部構成など |
| Point-to-Multipoint | なし | ハブ&スポーク環境 |
Broadcast
Ethernetインターフェースでは通常、Broadcastがデフォルトとなる。
interface GigabitEthernet0/0
ip ospf network broadcast
Point-to-Point
ルータ間のEthernet直結などでDR/BDR選出を不要にしたい場合に使用する。
interface GigabitEthernet0/0
ip ospf network point-to-point
NBMA
interface Serial0/0
ip ospf network non-broadcast
NBMAでは、必要に応じてネイバーを手動定義する。
router ospf 1
neighbor 10.0.12.2
Point-to-Multipoint
interface Tunnel0
ip ospf network point-to-multipoint
ネットワークタイプ不一致は、隣接関係の不成立や経路不安定化の原因になる。
7. DR / BDR
BroadcastおよびNBMAネットワークでは、LSDB同期のメッシュ化を抑制するためにDRとBDRを選出する。
| 役割 | 説明 |
|---|---|
| DR | マルチアクセスセグメント上のLSA同期の中心 |
| BDR | DR障害時のバックアップ |
| DROther | DRでもBDRでもないルータ |
DR / BDR選出基準は以下の通り。
- OSPF Interface Priorityが大きいルータ
- Priorityが同じ場合、Router IDが大きいルータ
Priorityのデフォルトは1である。Priority 0のルータはDR / BDRにならない。
interface GigabitEthernet0/0
ip ospf priority 100
DR / BDR選出対象から除外する例。
interface GigabitEthernet0/0
ip ospf priority 0
DR / BDR選出は通常、非プリエンプティブである。後からPriorityの高いルータが起動しても、既存のDRが直ちに交代するわけではない。
8. Cost
8.1 Costの概要
OSPFはCostが小さい経路を優先する。宛先までの総Costは、経由するリンクのCostを加算して算出する。
Cisco IOS / IOS XEでは、OSPF Costは通常以下の考え方で自動計算される。
Cost = 参照帯域幅 ÷ インターフェース帯域幅
小数点以下は切り捨てられ、最小値は1となる。
CiscoのOSPF参照帯域幅のデフォルトは、一般に100Mbpsである。
router ospf 1
auto-cost reference-bandwidth 100
auto-cost reference-bandwidth の単位はMbpsである。
8.2 デフォルト参照帯域幅100Mbps時のCost
| リンク速度 | 自動Cost |
|---|---|
| 10Mbps | 10 |
| 100Mbps | 1 |
| 1Gbps | 1 |
| 10Gbps | 1 |
| 25Gbps | 1 |
| 40Gbps | 1 |
| 100Gbps | 1 |
デフォルトの100Mbps基準では、FastEthernet以上がすべてCost 1になる。そのため、Gigabit Ethernet、10Gigabit Ethernet、100Gigabit Ethernetを区別できない。
8.3 100Gbpsを基準としたCost例
100Gbpsまでの回線速度を区別したい場合、全OSPFルータで参照帯域幅を100000Mbpsに統一する。
router ospf 1
auto-cost reference-bandwidth 100000
この場合のCost例は以下の通り。
| リンク速度 | Cost |
|---|---|
| 10Mbps | 10000 |
| 100Mbps | 1000 |
| 1Gbps | 100 |
| 10Gbps | 10 |
| 25Gbps | 4 |
| 40Gbps | 2 |
| 100Gbps | 1 |
参照帯域幅の設定は、OSPFドメイン内のすべてのルータで統一する必要がある。不統一の場合、ルータごとに異なるSPF計算結果となり、意図しない経路や非対称経路が発生する可能性がある。
8.4 bandwidthと実リンク速度
Ciscoでは、bandwidthコマンドがOSPFの自動Cost計算に影響する。
interface GigabitEthernet0/0
bandwidth 100000
上記の単位はKbpsであり、100000は100Mbpsを意味する。
ただし、bandwidthコマンドは通常、物理インターフェースの実際のリンク速度を変更しない。OSPF、QoS、EIGRPなどの計算用帯域値を変更する設定である。
実際のリンクアップ速度は以下で確認する。
show interfaces GigabitEthernet0/0
設定帯域幅と実リンク速度を意図せず乖離させると、OSPF Cost計算が実回線能力と一致しなくなる。
8.5 ip ospf costによる明示設定
インターフェース単位でCostを直接指定できる。
interface GigabitEthernet0/0
ip ospf cost 10
CLIヘルプの例は以下。
R1(config-if)# ip ospf cost ?
<1-65535> Cost
ip ospf costを設定した場合、自動計算されたCostより明示設定値が優先される。
主回線を優先し、バックアップ回線を待機系にする例。
interface GigabitEthernet0/0
description Primary-Link
ip ospf cost 10
interface GigabitEthernet0/1
description Backup-Link
ip ospf cost 100
ECMPを意図的に利用する例。
interface GigabitEthernet0/0
ip ospf cost 10
interface GigabitEthernet0/1
ip ospf cost 10
確認コマンド:
show ip ospf interface GigabitEthernet0/0
出力例:
Process ID 1, Router ID 10.255.0.1, Network Type POINT_TO_POINT, Cost: 10
9. LSAタイプとCostの扱い
LSAはOSPFのトポロジー情報であり、LSDBに保存される。OSPFv2で実運用上重要なLSAは以下の通り。
| Type | LSA名 | 主な生成者 | 概要 |
|---|---|---|---|
| 1 | Router LSA | 各ルータ | ルータ自身のリンク情報 |
| 2 | Network LSA | DR | マルチアクセスネットワーク情報 |
| 3 | Summary LSA | ABR | エリア間ネットワーク情報 |
| 4 | ASBR Summary LSA | ABR | ASBRへの到達性 |
| 5 | AS External LSA | ASBR | OSPF外部経路 |
| 7 | NSSA External LSA | NSSA内ASBR | NSSA内の外部経路 |
LSA Type 6はMOSPF用であり、通常のユニキャストIPルーティングでは利用しない。
9.1 Type 1 Router LSAとCost
Type 1 LSAには、ルータ自身が接続する各リンクのCostが含まれる。
ルータから宛先までのIntra-Area経路では、経由リンクのCostが加算される。
例:
R1 --- Cost 10 --- R2 --- Cost 20 --- R3
R1からR3までの総Costは以下となる。
10 + 20 = 30
インターフェースCostの設定例:
interface GigabitEthernet0/0
ip ospf cost 10
interface GigabitEthernet0/1
ip ospf cost 20
9.2 Type 2 Network LSAとCost
Type 2 LSAはDRが生成する。Ethernetなどのマルチアクセスネットワークを、SPF計算上の擬似ノードとして表現する。
Type 2 LSA自体が新たなリンクCostを加算するものではない。ルータからネットワーク擬似ノードまでのCostは、各ルータのType 1 Router LSA内にあるインターフェースCostが使用される。
つまり、Type 2 LSAは「どのルータが同じセグメントに接続しているか」を表すための情報であり、ルータ間のCostは主にType 1のインターフェースCostによって決まる。
9.3 Type 3 Summary LSAとCost
Type 3 LSAはABRが生成するエリア間経路情報である。
Type 3は、広告元ABRから宛先ネットワークまでのCostを持つ。受信側ルータは、広告元ABRまでの自分自身の内部Costを加算して最終Costを決定する。
R1 --- Cost 10 --- ABR1 --- Area 10内の宛先まで Cost 20
ABR1がType 3 LSAで広告するメトリックが20の場合、R1から見た宛先Costは以下となる。
R1からABR1までのCost 10 + Type 3のメトリック 20 = 30
ABRでの経路集約設定例:
router ospf 1
area 10 range 10.10.0.0 255.255.0.0
9.4 Type 4 ASBR Summary LSAとCost
Type 4 LSAは、外部経路をOSPFへ注入するASBRへの到達性を他エリアへ通知するためのLSAである。
Type 4 LSAのメトリックは、ABRからASBRまでのCostを表す。外部経路を利用するルータは、ASBRへ到達する内部Costを考慮して、最終的な外部経路の到達性を判断する。
Type 4そのものは外部ネットワークを表すLSAではなく、外部経路の出口であるASBRを探すための情報である。
9.5 Type 5 External LSAとE1 / E2
Type 5 LSAは、Static、BGP、RIPなどのOSPF外部経路をASBRが広告するために使用する。
外部経路にはE1とE2がある。
| 種別 | 計算方法 | 特徴 |
|---|---|---|
| E1 | 外部メトリック + ASBRまでの内部OSPF Cost | 近いASBRを選びやすい |
| E2 | 外部メトリックを主に比較 | ASBRまでの内部Costは主比較対象ではない |
E1の例:
R1からASBRまでのCost:20
ASBRが広告する外部メトリック:10
総Cost:20 + 10 = 30
E2の例:
R1からASBRまでのCost:20
ASBRが広告する外部メトリック:10
OSPF外部メトリックとしては主に10で比較する
E2では、複数の経路の外部メトリックが同値だった場合に、ASBRまでの内部Costが比較材料となる。
Static routeをE1としてOSPFへ再配送する例:
ip route 192.0.2.0 255.255.255.0 Null0
router ospf 1
redistribute static subnets metric 20 metric-type 1
Static routeをE2としてOSPFへ再配送する例:
ip route 192.0.2.0 255.255.255.0 Null0
router ospf 1
redistribute static subnets metric 20 metric-type 2
Cisco IOSでは、再配送時のデフォルトは一般にE2である。意図を明確にするため、metric-type 1またはmetric-type 2を明示設定することが望ましい。
9.6 Type 7 NSSA External LSAとN1 / N2
Type 7 LSAはNSSA内部で外部経路を広告するために利用する。
NSSA内ではType 5 LSAを使用できないため、ASBRは外部経路をType 7として広告する。NSSAに接続するABRが、必要に応じてType 7をType 5へ変換し、他エリアへ広告する。
Type 7外部経路にもN1 / N2がある。
| 種別 | E1 / E2との対応 | Costの扱い |
|---|---|---|
| N1 | E1相当 | 外部メトリックとASBRまでの内部Costを加算 |
| N2 | E2相当 | 外部メトリックを主に比較 |
NSSA内でStatic routeを再配送する例:
router ospf 1
area 20 nssa
redistribute static subnets metric 20 metric-type 1
この場合、NSSA内ではType 7 / N1として広告される。
10. エリア設計
OSPFではネットワークをAreaに分割する。エリア分割の主目的は以下である。
- LSAフラッディング範囲の削減
- SPF計算負荷の削減
- 障害影響範囲の局所化
- ルーティング情報の集約
Area 0はOSPFバックボーンエリアである。非バックボーンエリア間の通信は、原則としてArea 0を経由する。
| 役割 | 説明 |
|---|---|
| Internal Router | 単一エリアにのみ属するルータ |
| Backbone Router | Area 0に接続するルータ |
| ABR | 複数エリアに接続するルータ |
| ASBR | OSPF外部経路を注入するルータ |
ABRの設定例:
interface GigabitEthernet0/0
description Area-0
ip address 10.0.12.1 255.255.255.252
ip ospf 1 area 0
interface GigabitEthernet0/1
description Area-10
ip address 10.0.23.1 255.255.255.252
ip ospf 1 area 10
router ospf 1
router-id 10.255.0.1
11. Stub Area、Totally Stubby Area、NSSA
| エリア種別 | Type 5 | Type 7 | 外部経路再配送 |
|---|---|---|---|
| Normal Area | 受信する | 使用しない | 可能 |
| Stub Area | 受信しない | 使用しない | 不可 |
| Totally Stubby Area | 受信しない | 使用しない | 不可 |
| NSSA | 受信しない | 使用する | 可能 |
| Totally NSSA | 受信しない | 使用する | 可能 |
Stub Area
Area 10内の全OSPFルータで設定する。
router ospf 1
area 10 stub
ABRでは外部経路の代わりにデフォルトルートを広告する。
デフォルトCostを変更する例:
router ospf 1
area 10 default-cost 100
Totally Stubby Area
Cisco拡張機能である。ABRでのみno-summaryを追加する。
ABR:
router ospf 1
area 10 stub no-summary
Area 10内部ルータ:
router ospf 1
area 10 stub
NSSA
Area 20内部ルータおよびABRで設定する。
router ospf 1
area 20 nssa
Totally NSSAのABR設定例:
router ospf 1
area 20 nssa no-summary
12. 経路種別とAD
12.1 OSPF内の経路種別
Ciscoのルーティングテーブルでは、OSPF経路は以下のように表示される。
| 表示 | 種別 |
|---|---|
O |
Intra-Area Route |
O IA |
Inter-Area Route |
O E1 |
External Type 1 |
O E2 |
External Type 2 |
O N1 |
NSSA External Type 1 |
O N2 |
NSSA External Type 2 |
確認コマンド:
show ip route ospf
例:
O 10.10.1.0/24 [110/20] via 10.0.12.2, 00:01:23, GigabitEthernet0/0
O IA 10.20.1.0/24 [110/30] via 10.0.12.2, 00:01:23, GigabitEthernet0/0
O E1 192.0.2.0/24 [110/50] via 10.0.12.2, 00:01:23, GigabitEthernet0/0
O E2 198.51.100.0/24 [110/20] via 10.0.12.2, 00:01:23, GigabitEthernet0/0
[110/20]の意味は以下の通り。
[Administrative Distance / Metric]
12.2 Administrative Distance(AD)
ADは、異なるルーティング情報源から同一宛先への経路を学習した場合に、どの情報源を優先するかを決めるCiscoローカルの優先度である。
値が小さいほど優先される。
代表的なCiscoデフォルトADは以下。
| 経路情報源 | AD |
|---|---|
| Connected | 0 |
| Static | 1 |
| eBGP | 20 |
| EIGRP Internal | 90 |
| OSPF | 110 |
| IS-IS | 115 |
| RIP | 120 |
| EIGRP External | 170 |
| iBGP | 200 |
たとえば、同一プレフィックスをStatic routeとOSPFの両方で学習している場合、AD 1のStatic routeが優先される。
Static:AD 1
OSPF:AD 110
→ Static routeがルーティングテーブルへ登録される
ADはOSPF LSAでネットワーク全体に広告される値ではない。各ルータがローカルで使用する経路選択パラメータである。
OSPFのADを変更する例:
router ospf 1
distance ospf intra-area 110
distance ospf inter-area 110
distance ospf external 150
この例では、OSPF外部経路だけADを150へ変更している。
通常、ADの変更は慎重に行う。安易な変更は、Static、BGP、OSPFなどの間で意図しない経路選択を起こす原因になる。
13. 再配送
OSPFには以下の経路を再配送できる。
- Static route
- Connected route
- BGP
- RIP
- EIGRP
- IS-IS
- 別OSPFプロセス
Static route再配送例:
ip route 192.0.2.0 255.255.255.0 Null0
router ospf 1
redistribute static subnets metric 20 metric-type 1
Connected route再配送例:
router ospf 1
redistribute connected subnets metric 20 metric-type 1
BGP再配送例:
router ospf 1
redistribute bgp 65000 subnets metric 50 metric-type 1
再配送では、以下を必ず検討する。
- 再配送対象プレフィックスのフィルタリング
- E1 / E2の選択
- メトリックの明示設定
- タグによる再配送ループ防止
- 集約の実施
- デフォルトルートの扱い
タグ付き再配送の例:
route-map STATIC-TO-OSPF permit 10
set tag 110
router ospf 1
redistribute static subnets metric 20 metric-type 1 route-map STATIC-TO-OSPF
14. デフォルトルート広告
既存のデフォルトルートがルーティングテーブルに存在する場合、以下でOSPFへデフォルトルートを広告できる。
router ospf 1
default-information originate
強制的に広告する例:
router ospf 1
default-information originate always
E1として広告する例:
router ospf 1
default-information originate metric 10 metric-type 1
default-information originateで通常エリアへ広告されるデフォルトルートは、AS External LSA Type 5となる。NSSAではType 7として扱われる。
Stub Areaでは、ABRがType 3のデフォルト経路を広告する。
15. OSPFv2認証
OSPFv2では、隣接ルータ間で認証を設定できる。
MD5認証設定例:
interface GigabitEthernet0/0
ip ospf authentication message-digest
ip ospf message-digest-key 1 md5 OSPF-SECRET
エリア単位で認証を必須化する例:
router ospf 1
area 0 authentication message-digest
認証設定は隣接ルータ間で以下を一致させる必要がある。
- 認証方式
- Key ID
- 認証鍵
- 対象インターフェースまたは対象エリア
MD5は古い方式であり、現在の利用可否やより強い認証方式への対応は、Cisco IOS / IOS XEのバージョン、機種、セキュリティポリシーに依存する。実装が対応する場合は、キーチェーンおよびより強い暗号アルゴリズムの利用を検討する。
16. OSPFv3基本設定例
OSPFv3はIPv6用OSPFである。OSPFv3の隣接関係は主にIPv6リンクローカルアドレスを用いて形成される。
ipv6 unicast-routing
interface Loopback0
ipv6 address 2001:db8:255::1/128
ipv6 ospf 1 area 0
interface GigabitEthernet0/0
ipv6 address 2001:db8:12::1/64
ipv6 ospf 1 area 0
ipv6 ospf network point-to-point
ipv6 router ospf 1
router-id 10.255.0.1
passive-interface default
no passive-interface GigabitEthernet0/0
OSPFv3のCost設定例:
interface GigabitEthernet0/0
ipv6 ospf cost 10
OSPFv3のHello / Deadタイマー設定例:
interface GigabitEthernet0/0
ipv6 ospf hello-interval 5
ipv6 ospf dead-interval 20
17. 障害時の確認コマンド
ネイバー状態
show ip ospf neighbor
show ip ospf neighbor detail
インターフェース設定、Cost、タイマー、ネットワークタイプ
show ip ospf interface
show ip ospf interface GigabitEthernet0/0
OSPFプロセス全体
show ip ospf
show ip protocols
LSDB確認
show ip ospf database
show ip ospf database router
show ip ospf database network
show ip ospf database summary
show ip ospf database external
show ip ospf database nssa-external
ルーティングテーブル
show ip route ospf
show ip route 10.10.10.0
OSPF関連のログ確認
show logging
必要に応じてデバッグを使用する。
debug ip ospf adj
debug ip ospf hello
ただし、debugはCPU負荷やログ出力を増加させるため、本番環境では慎重に使用する。
18. 代表的な障害原因
| 症状 | 主な原因 |
|---|---|
| Downのまま | OSPF未有効、L1/L2障害、IP設定誤り、パッシブ設定 |
| Initで停止 | 一方向通信、マルチキャスト到達性問題、ACL、Hello片方向受信 |
| 2-Wayで停止 | Broadcast環境のDROther同士なら正常 |
| ExStart / Exchangeで停止 | MTU不一致、Router ID重複、DBD交換異常 |
| Fullにならない | Area ID、認証、Hello/Dead、ネットワークタイプ不一致 |
| Fullだが経路がない | Area種別、LSAフィルタ、集約、再配送、AD、別プロトコル優先 |
| 意図しない経路を選択 | Cost不統一、E1/E2設定、参照帯域幅不統一、Static route優先 |
| 隣接が断続的に切断 | 回線品質、CPU負荷、Hello/Dead設定、BFD設定、マルチキャスト問題 |
特にMTU不一致は、Hello通信および2-Way状態までは問題なく進行するが、ExStartまたはExchangeで停止する典型的な原因である。
MTU確認例:
show interfaces GigabitEthernet0/0 | include MTU
show ip ospf interface GigabitEthernet0/0
19. 設計・運用上の要点
- Router IDはLoopbackアドレスなどの安定した値を明示設定する
- Area 0を中心に階層化する
- 大規模構成ではエリア分割と経路集約を実施する
- OSPF参照帯域幅は全ルータで統一する
- 高速リンクでは
auto-cost reference-bandwidthまたはip ospf costを設計する - ルータ間接続以外は原則
passive-interfaceとする - OSPF認証を有効化する
- 再配送は最小限とし、フィルタ、タグ、集約を使用する
- E1 / E2を意図的に選択する
- Stub / NSSAを活用して拠点エリアのLSDBを縮小する
- Static route、BGP、OSPF間のADを理解して経路選択を設計する
- BFDなどを使用する場合は、OSPF Hello / Deadとの役割分担を明確にする
-
clear ip ospf processは隣接関係を切断するため、保守時間帯などで実施する