目次
概要
OSPFルータを識別するルータIDについて、設定ミスの切り分けと修正を行います。
ネットワーク構成
以下のネットワーク構成でOSPFによるルーティングを行っています。
設定概要
各ルータのOSPFに関する設定の概要は次の通りです。これらの設定には、一部設定ミスがあります。
R1
interface Ethernet0/0 ip address 192.168.1.1 255.255.255.0 ! interface Ethernet0/1 ip address 192.168.12.1 255.255.255.0 ! router ospf 1 router-id 1.1.1.1 log-adjacency-changes network 192.168.1.1 0.0.0.0 area 0 network 192.168.0.0 0.0.255.255 area 0
R2
interface Ethernet0/0 ip address 192.168.12.2 255.255.255.0 ! interface Ethernet0/1 ip address 192.168.23.2 255.255.255.0 ! router ospf 1 router-id 2.2.2.2 log-adjacency-changes network 192.168.1.2 0.0.0.0 area 0 network 192.168.0.0 0.0.255.255 area 0
R3
interface Ethernet0/0 ip address 192.168.23.3 255.255.255.0 ! interface Ethernet0/1 ip address 192.168.34.3 255.255.255.0 ! router ospf 1 router-id 3.3.3.3 log-adjacency-changes network 192.168.1.3 0.0.0.0 area 0 network 192.168.0.0 0.0.255.255 area 0
R4
interface Ethernet0/0 ip address 192.168.34.4 255.255.255.0 ! interface Ethernet0/1 ip address 192.168.4.4 255.255.255.0 ! router ospf 1 router-id 1.1.1.1 log-adjacency-changes network 192.168.1.4 0.0.0.0 area 0 network 192.168.0.0 0.0.255.255 area 0
トラブルの症状
それぞれのサブネット上のルータでネイバーを確立することができています。
R1 show ip ospf neighbor
R1#show ip ospf neighbor Neighbor ID Pri State Dead Time Address Interface 2.2.2.2 1 FULL/DR 00:00:39 192.168.12.2 Ethernet0/1
R2 show ip ospf neighbor
R2#show ip ospf neighbor Neighbor ID Pri State Dead Time Address Interface 3.3.3.3 1 FULL/DR 00:00:39 192.168.23.3 Ethernet0/1 1.1.1.1 1 FULL/BDR 00:00:39 192.168.12.1 Ethernet0/0
R3 show ip ospf neighbor
R3#show ip ospf neighbor Neighbor ID Pri State Dead Time Address Interface 1.1.1.1 1 FULL/BDR 00:00:39 192.168.34.4 Ethernet0/1 2.2.2.2 1 FULL/BDR 00:00:39 192.168.23.2 Ethernet0/0
R4 show ip ospf neighbor
R4#show ip ospf neighbor Neighbor ID Pri State Dead Time Address Interface 3.3.3.3 1 FULL/DR 00:00:37 192.168.34.3 Ethernet0/0
ネイバーを確立してすべてのルータでLSDBの同期を取れているように見えますが、LSDBの内容が正しくありません。R1でshow ip ospf databaseを確認すると、次のようになります。
R1 show ip ospf database
R1#show ip ospf database OSPF Router with ID (1.1.1.1) (Process ID 1) Router Link States (Area 0) Link ID ADV Router Age Seq# Checksum Link count 1.1.1.1 1.1.1.1 6 0x8000007F 0x0058D8 2 2.2.2.2 2.2.2.2 615 0x80000003 0x008B7E 2 3.3.3.3 3.3.3.3 620 0x80000002 0x006E65 2 Net Link States (Area 0) Link ID ADV Router Age Seq# Checksum 192.168.12.2 2.2.2.2 616 0x80000001 0x008F1F 192.168.23.3 3.3.3.3 620 0x80000001 0x004254 192.168.34.3 3.3.3.3 620 0x80000001 0x0096F8
LSDBを見ると、LSAタイプ1が3つしかありません。そして、ルータID 1.1.1.のLSAタイプ1がフラッピングしているようで、Sequence番号がどんどん増えていってしまっています。LSDBが正しくないので、ルーティングテーブル上のOSPFルータが正常に計算されておらず、ルーティングテーブルに必要なルートが存在していません。
R1 show ip route ospf
R1#show ip route ospf O 192.168.23.0/24 [110/20] via 192.168.12.2, 00:12:54, Ethernet0/1 O 192.168.34.0/24 [110/30] via 192.168.12.2, 00:12:54, Ethernet0/1
R2 show ip route ospf
R2#show ip route ospf O 192.168.34.0/24 [110/20] via 192.168.23.3, 00:00:05, Ethernet0/1 O 192.168.1.0/24 [110/20] via 192.168.12.1, 00:00:05, Ethernet0/0
R3 show ip route ospf
R3#show ip route ospf O 192.168.12.0/24 [110/20] via 192.168.23.2, 00:00:08, Ethernet0/0 O 192.168.4.0/24 [110/20] via 192.168.34.4, 00:00:08, Ethernet0/1
R4 show ip route ospf
R4#show ip route ospf O 192.168.12.0/24 [110/30] via 192.168.34.3, 00:13:46, Ethernet0/0 O 192.168.23.0/24 [110/20] via 192.168.34.3, 00:13:46, Ethernet0/0
問題
- なぜLSDBの内容が正しくないのですか。
- LSDBの内容が正しくなり正常にルーティングできるようにするためには、どのように設定を修正すればよいですか。
解答
なぜLSDBの内容が正しくないのですか。
同一エリア内のR1とR4でルータID 1.1.1.1 が重複している。ルータID 1.1.1.1のLSAタイプ1がR1とR4からアドバタイズされるため、LSDBで1.1.1.1のLSAタイプ1がフラッピングしている。
LSDBの内容が正しくなり正常にルーティングできるようにするためには、どのように設定を修正すればよいですか。
R4
router ospf 1 router-id 4.4.4.4
ワンポイント
- OSPFはルータIDでルータを識別する
- ルータIDをスタティックに設定するときにはルータIDが重複しないように注意
解説
OSPFはルータIDによってルータを識別しています。つまり、ルータIDはOSPFルータの名前のようなものです。当然、ルータIDが重複してはいけません。OSPFルータIDは、次のように決定されます。
- router-idコマンドによる手動設定
- アクティブなループバックインタフェースのうち最大のIPアドレス
- アクティブなインタフェースのうち最大のIPアドレス
IPアドレスからルータIDを決定しているときは、ルータIDが重複することはほとんどありません。IPアドレスは重複しないように設定されていることが普通だからです。router-idコマンドでスタティックに設定するときには、重複しないように注意してください。
同一サブネット上のOSPFルータでルータIDが重複していると、次のようなメッセージが表示されます。
*Mar 1 00:04:50.687: %OSPF-4-DUP_RTRID_NBR: OSPF detected duplicate router-id 1.1.1.1 from 192.168.1.2 on interface FastEthernet0/0
HelloパケットにルータIDが記述されているので、HelloパケットによってルータIDが重複しているルータが存在していることをすぐに検出できます。しかし、Helloパケットを直接やり取りしない別サブネットにルータIDが重複しているルータが存在すると、わかりにくくなります。
各ルータは自身が持つリンク(OSPFが有効なインタフェース)の情報をLSAタイプ1でアドバタイズします。LSAタイプ1もルータIDで識別します。ルータIDが重複しているルータが存在すると、それぞれのルータが同じルータIDでLSAタイプ1を生成します。その結果、LSDBを確認すると重複しているルータIDのLSAタイプ1がフラッピングします。LSDBを見ると、重複しているルータIDのLSAタイプ1のシーケンス番号がどんどん増えていきます。このようにLSAタイプ1がフラッピングすると、ルータIDが重複しているルータの存在がわかり、次のようなメッセージが表示されます。
*Mar 1 00:26:17.243: %OSPF-4-DUP_RTRID_AREA: Detected router with duplicate router ID 1.1.1.1 in area 0
ただ、ルータIDが重複しているルータがどれなのかということは、このメッセージだけでは特定できません。エリアの中のどこかにルータIDが重複しているルータが存在しているということがわかるだけです。各ルータのルータIDを見ると、R1とR4のルータIDが重複してしまっています。
R4 show ip ospf
R4#show ip ospf Routing Process "ospf 1" with ID 1.1.1.1 Start time: 00:00:11.496, Time elapsed: 00:12:09.588 Supports only single TOS(TOS0) routes Supports opaque LSA Supports Link-local Signaling (LLS) Supports area transit capability Router is not originating router-LSAs with maximum metric ~省略~
R4で誤ってR1と同じ1.1.1.1になってしまっていることがわかります。R4のルータIDをR1と重複しないように修正します。
R4 ルータIDの修正
router ospf 1 router-id 4.4.4.4 end clear ip ospf process yes
R4のルータIDを修正すると、R1~R4で正しくLSDBの同期を取ることができ、ルーティング可能になります。
R1 show ip ospf database/show ip route ospf
R1#show ip ospf database OSPF Router with ID (1.1.1.1) (Process ID 1) Router Link States (Area 0) Link ID ADV Router Age Seq# Checksum Link count 1.1.1.1 1.1.1.1 108 0x800000B9 0x00E313 2 2.2.2.2 2.2.2.2 999 0x80000003 0x008B7E 2 3.3.3.3 3.3.3.3 1000 0x80000003 0x006C66 2 4.4.4.4 4.4.4.4 64 0x80000002 0x00045F 2 Net Link States (Area 0) Link ID ADV Router Age Seq# Checksum 192.168.12.2 2.2.2.2 1004 0x80000001 0x008F1F 192.168.23.3 3.3.3.3 1001 0x80000001 0x004254 192.168.34.3 3.3.3.3 63 0x80000002 0x002B57 R1#show ip route ospf O 192.168.4.0/24 [110/40] via 192.168.12.2, 00:00:53, Ethernet0/1 O 192.168.23.0/24 [110/20] via 192.168.12.2, 00:00:53, Ethernet0/1 O 192.168.34.0/24 [110/30] via 192.168.12.2, 00:00:53, Ethernet0/1
ちなみに、次のようにエリアが異なればルータIDが重複していても問題なくルーティングできます。OSPFでは、他のエリアの詳細な構成は認識していないからです。
上記のR1とR4が異なるエリアに所属していて、R1とR4のルータIDが重複してしまっている場合のshow ip ospf databaseおよびshow ip route ospfコマンドは以下のようになっています。
R1 show ip ospf database/show ip route ospf
R1#show ip ospf database OSPF Router with ID (1.1.1.1) (Process ID 1) Router Link States (Area 1) Link ID ADV Router Age Seq# Checksum Link count 1.1.1.1 1.1.1.1 384 0x80000003 0x00515C 2 2.2.2.2 2.2.2.2 385 0x80000002 0x00EA3E 1 Net Link States (Area 1) Link ID ADV Router Age Seq# Checksum 192.168.12.2 2.2.2.2 385 0x80000001 0x008F1F Summary Net Link States (Area 1) Link ID ADV Router Age Seq# Checksum 192.168.4.0 2.2.2.2 167 0x80000001 0x009C0D 192.168.23.0 2.2.2.2 425 0x80000001 0x0002A8 192.168.34.0 2.2.2.2 167 0x80000001 0x00ECA8 R1#show ip route ospf O IA 192.168.4.0/24 [110/40] via 192.168.12.2, 00:02:49, Ethernet0/1 O IA 192.168.23.0/24 [110/20] via 192.168.12.2, 00:06:22, Ethernet0/1 O IA 192.168.34.0/24 [110/30] via 192.168.12.2, 00:02:49, Ethernet0/1
R4 show ip ospf database/show ip route ospf
R4#show ip ospf database OSPF Router with ID (1.1.1.1) (Process ID 1) Router Link States (Area 4) Link ID ADV Router Age Seq# Checksum Link count 1.1.1.1 1.1.1.1 230 0x80000001 0x00EA91 2 3.3.3.3 3.3.3.3 191 0x80000003 0x009A57 1 Net Link States (Area 4) Link ID ADV Router Age Seq# Checksum 192.168.34.3 3.3.3.3 191 0x80000001 0x0096F8 Summary Net Link States (Area 4) Link ID ADV Router Age Seq# Checksum 192.168.1.0 3.3.3.3 402 0x80000001 0x009F09 192.168.12.0 3.3.3.3 427 0x80000001 0x00C1E5 192.168.23.0 3.3.3.3 427 0x80000001 0x00E3C2 R4#show ip route ospf O IA 192.168.12.0/24 [110/30] via 192.168.34.3, 00:03:08, Ethernet0/0 O IA 192.168.23.0/24 [110/20] via 192.168.34.3, 00:03:08, Ethernet0/0 O IA 192.168.1.0/24 [110/40] via 192.168.34.3, 00:03:08, Ethernet0/0
ルーティングテーブルに必要なルート情報が適切に登録されるので、問題なく通信できます。ただ、エリアが違っている場合も、ルータIDが重複しないようにするべきです。
OSPFの仕組み
- OSPFとは? 初心者にもわかりやすくOSPFの特徴を解説
- OSPFの処理の流れ
- OSPFルータID ~OSPFルータを識別~
- OSPFルータのルータIDが重複してしまったら?
- OSPF ネイバーとアジャセンシー
- OSPF DR/BDR
- イーサネット上のshow ip ospf neighborの見え方
- OSPFネットワークタイプ ~OSPFが有効なインタフェースの分類~
- OSPF LSDBの同期処理
- 大規模なOSPFネットワークの問題点
- OSPFエリア ~エリア内は詳しく、エリア外は概要だけ~
- OSPFルータの種類
- OSPF LSAの種類
- OSPF エリアの種類
- OSPFの基本的な設定と確認コマンド [Cisco]
- インタフェースでOSPFを有効化することの詳細
- OSPF ループバックインタフェースのアドバタイズ
- OSPF Hello/Deadインターバルの設定と確認コマンド
- OSPFコストの設定と確認
- OSPFルータプライオリティの設定と確認コマンド
- OSPFネイバー認証の設定 ~正規のルータとのみネイバーになる~
- バーチャルリンク上のネイバー認証
- OSPF スタブエリアの設定と確認[Cisco]
- OSPF スタブエリアの設定例 [Cisco]
- OSPFデフォルトルートの生成 ~default-information originateコマンド~
- OSPFデフォルトルートの生成 ~スタブエリア~
- OSPF バーチャルリンク ~仮想的なエリア0のポイントツーポイントリンク~
- OSPF バーチャルリンクの設定と確認 [Cisco]
- OSPF バーチャルリンクの設定例 [Cisco]
- OSPF 不連続バックボーンのVirtual-link設定例
- OSPFのルート集約と設定
- OSPFルート集約の設定例(Cisco)
- OSPF ルート種類による優先順位
- OSPFネイバーの状態がExstartでスタックする原因
- OSPFパケットの種類とOSPFヘッダフォーマット
- OSPF Helloパケット
- OSPF DD(Database Description)パケット
- OSPF LSR(Link State Request)パケット
- OSPF LSU(Link State Update)パケット
- OSPF LSAck(Link State Acknowledgement)パケット
- OSPF 再配送ルートの制限 ~redistribute maximum-prefixコマンド~
- OSPFでのディストリビュートリスト/プレフィクスリストの動作
- OSPFでのディストリビュートリストの設定例 Part1
- OSPFでのディストリビュートリストの設定例 Part2
- OSPFのLSAフィルタの概要 ~LSAタイプ3/タイプ5をフィルタ~
- LSAタイプ3のフィルタ設定例
- LSAタイプ5のフィルタ設定例
- 3階層モデルLANのOSPFルーティング
- 演習:実践的なOSPFルーティング Part1:OSPFの基本設定
- 演習:実践的なOSPFルーティング Part2:デフォルトルートの生成
- 演習:実践的なOSPFルーティング Part3:スタブエリア
- 演習:実践的なOSPFルーティング Part4:ルート集約
- 演習:実践的なOSPFルーティング Part5:トラブルシューティング
- OSPF 設定ミスの切り分けと修正 Part1
- OSPF 設定ミスの切り分けと修正 Part2
- OSPF 設定ミスの切り分けと修正 Part3
- OSPF 設定ミスの切り分けと修正 Part4
- OSPF 設定ミスの切り分けと修正 Part5
- OSPF 設定ミスの切り分けと修正 Part6
- Cisco OSPFv3 for IPv4の設定と確認コマンド
- Cisco OSPFv3 for IPv4の設定例
- OSPFv3の設定例 [Cisco]
- OSPFv3 ルート集約の設定例 [Cisco]