目次
MTUが不一致だとOSPFネイバーの状態がExstartでスタック
OSPFネイバーは、正常であれば2WayまたはFullの状態です。2Wayは単なるネイバー関係で、Fullはアジャセンシー関係でLSDBの同期が完了していることを示しています。ところが、ネイバーの状態がExstart状態でスタックしてしまうことがあります。
ネイバーがExstart状態でスタックしてしまう原因は、主にMTUの不一致です。Exstart状態とは、DDパケットを交換するにあたって、どちらから開始するかを決めている状態です。DDパケットには、Interface MTUの情報が含まれていて、Interface MTUが不一致だとネイバーの状態はExstartから先に進まなくなります。
OSPFのLSUパケットでLSAをアドバタイズします。アドバタイズするLSAがたくさんあると、LSUパケットのサイズが大きくなり分割されることがあります。MTUが一致していないと、分割されたLSUパケットの交換がうまくできなくなる可能性があります。そのため、ネイバー間でMTUが一致していなければいけません。
Exstart状態でスタックする例
次のネットワーク構成で、ネイバーがExstart状態でスタックする具体的な例をみてみましょう。
R1の設定
R1のOSPFに関連する設定は以下の通りです。R1のFa0/0のMTUを1400バイトに変更しています。
R1
interface Loopback0 ip address 192.168.1.1 255.255.255.0 ip ospf network point-to-point ! interface FastEthernet0/0 ip address 192.168.12.1 255.255.255.0 ip mtu 1400 ! router ospf 1 router-id 1.1.1.1 log-adjacency-changes network 192.168.0.0 0.0.255.255 area 0
R2の設定
R2のOSPFに関連する設定は以下の通りです。R2 Fa0/0のMTUサイズはデフォルトのままです。
R2
interface Loopback0 ip address 192.168.2.2 255.255.255.0 ip ospf network point-to-point ! interface FastEthernet0/0 ip address 192.168.12.2 255.255.255.0 ! router ospf 1 router-id 2.2.2.2 log-adjacency-changes network 192.168.0.0 0.0.255.255 area 0
ネイバーの状態
R1とR2のMTUが不一致のとき、show ip ospf neighborコマンドでネイバーの状態を確認します。
R1
R1#show ip ospf neighbor Neighbor ID Pri State Dead Time Address Interface 2.2.2.2 1 EXSTART/DR 00:00:37 192.168.12.2 FastEthernet0/0
R2
R2#show ip ospf neighbor Neighbor ID Pri State Dead Time Address Interface 1.1.1.1 1 EXSTART/BDR 00:00:37 192.168.12.1 FastEthernet0/0
ネイバーの状態はExstart状態にとどまり、LSDBの同期の処理が先に進まないことがわかります。また、debug ip ospf adjコマンドでMTUが不一致であることがよくわかります。
R1
R1#debug ip ospf adj OSPF adjacency events debugging is on R1# *Mar 1 14:13:52.556: OSPF: Send DBD to 2.2.2.2 on FastEthernet0/0 seq 0x1141 opt 0x52 flag 0x7 len 32 *Mar 1 14:13:52.560: OSPF: Retransmitting DBD to 2.2.2.2 on FastEthernet0/0 [22] *Mar 1 14:13:53.304: OSPF: Rcv DBD from 2.2.2.2 on FastEthernet0/0 seq 0x520 opt 0x52 flag 0x7 len 32 mtu 1500 state EXSTART *Mar 1 14:13:53.304: OSPF: Nbr 2.2.2.2 has larger interface MTU R1#u all All possible debugging has been turned off
ip ospf mtu-ignoreコマンド
Exstart状態でスタックしないようにするためには、ネイバー間でMTUが同じになるようにすることが基本です。デフォルトでは、ネイバーのMTUは一致するはずです。MTUを変更するときには、ネイバー同士できちんと同じMTUになるようにしてください。
また、Exstart状態でスタックしないようにするために、MTUの不一致を無視するように設定することもできます。そのためのコマンドは、以下の通りです。
(config-if)#ip ospf mtu-ignore
<interface-name> : インタフェース名
ip ospf mtu-ignoreコマンドは、MTUが小さい方で設定すればOKです。MTUが不一致でもExstart状態から先にすすめるようになります。ただし、大きなサイズのLSUパケットになってしまう場合、正しくLSUパケットを交換できない可能性があります。
先ほど、例に挙げたR1のFa0/0でip ospf mtu-ignoreコマンドを設定すると、ネイバーの状態はFullになりLSDBの同期を確保することができます。
R1
interface FastEthernet0/0 ip ospf mtu-ignore
R1
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 FastEthernet0/0
まとめ
ポイント
- ネイバー間でMTUが一致していないと、Exstart状態でスタックします。
- MTU不一致を無視するには、インタフェースコンフィグレーションモードで次のコマンドを入力します。
- (config-if)#ip ospf mtu-ignore
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]