目次
OSPF Helloパケット
OSPFには、5つのパケット種類があります。Helloパケットは、OSPFの処理を行う上で、最初に送受信するパケットです。OSPF Helloパケットによって、ネイバーの発見とネイバーの維持を行います。
OSPF Helloパケットのフォーマット
OSPFパケットは、IPでカプセル化されます。IPヘッダのプロトコル番号は89です。Helloパケットの宛先IPアドレスは通常224.0.0.5です。これはすべてのOSPFルータを表すマルチキャストアドレスです。フレームリレーのようなNBMA上でOSPFを動作させるときには、neighborコマンドで指定したIPアドレスが宛先IPアドレスになります。
OSPFパケットには、24バイトのOSPFヘッダがあり、OSPFパケットの種類がわかるようにしています。Helloパケットはタイプ1です。
Network Mask
Network Mask(32ビット)は、Helloパケットを送信するインタフェースのサブネットマスクです。ネイバーになるためには、Network Maskが一致していないといけません。ip unnumberedでIPアドレスを設定しているインタフェースでは、Network Maskは0.0.0.0です。
Hello Interval
Hello Interval(16ビット)は、Helloパケットを送信する間隔です。Hello Intervalのデフォルトは、現在の環境では10秒と考えて差し支えありません。Hello Intervalが一致していることがネイバーを確立する条件です。
Options
Options(8ビット)で、OSPFルータのさまざまな機能を示しています。Optionsフィールドでスタブエリアに対応しているかどうかなどを表します。
Router Priority
Router Priority(8ビット)は、イーサネットのようなマルチアクセスネットワークでのDR/BDRの選定に利用します。Router Priorityが大きいルータがDR/BDRに選定されます。Router Priorityが0になっていると、DR/BDRの選定に参加しません。
Router Dead Interval
Router Dead Interval(32ビット)の間、Helloパケットを受信できなければネイバーがダウンしたとみなします。Router Dead IntervalのデフォルトはHello Intervalの4倍です。たいていは40秒です。Router Dead Intervalもネイバーを確立するためには一致していなければいけません。
Designated Router
Designated Router(32ビット)は、DRのIPアドレスが格納されます。DRを選定中だったり、DR/BDRを選定しないポイントツーポイントのネットワークタイプのときには「0.0.0.0」です。
Backup Designated Router
Backup Designated Router(32ビット)は、BDRのIPアドレスが格納されます。BDRを選定中だったり、DR/BDRを選定しないポイントツーポイントのネットワークタイプのときには「0.0.0.0」です。
Neighbor
Neighbor(32ビット)は、ネイバーとして認識しているルータIDが格納されます。はじめは「0.0.0.0」です。複数のネイバーがある場合は、Neighborが複数行となります。
ネイバーになるための条件
OSPF Helloパケットでネイバーを確立します。そのためには、Helloパケットに含まれている以下の情報が一致していなければいけません。
- エリアID(OSPFヘッダ)
- 認証タイプ/認証データ(OSPFヘッダ)
- Network Mask
- Hello Interval
- Dead Interval
- Options(E/Nビット)
OSPFでは、ネイバーを確立できなければ話になりません。ネイバーをうまく確立できないときには、Helloパケットの上記の情報を確認してください。
Hello Interval/Dead Intervalのデフォルト値
Hello Interval/Dead Intervalのデフォルト値はOSPFが有効化されたインタフェースのネットワークタイプによって以下のように決まります。
ネットワークタイプ | Hello Interval | Dead Interval |
---|---|---|
BROADCAST | 10 | 40 |
POINT_TO_POINT | 10 | 40 |
NON_BROADCAST | 30 | 120 |
NON_BROADCASTのネットワークタイプになるのは、フレームリレーやATMのインタフェースです。フレームリレー/ATMを利用することはほとんどないでしょう。Hello/Dead Intervalのデフォルトは10秒/40秒と考えて差し支えありません。
関連記事
Hello/Dead Intervalの変更と確認
Hello/Dead Intervalのデフォルトは10秒/40秒です。そのため、ネイバーのダウンを認識するのに40秒程度かかってしまうことになります。ネイバーのダウンをもっと早く検出できるようにHello/Dead Intervalの値を変更することが多いでしょう。Hello/Dead Intervalを変更するには、OSPFが有効なインタフェースのインタフェースコンフィグレーションで以下のコマンドを利用します。
(config)#interface <interface-name>
(config-if)#ip ospf hello-interval <hello>
(config-if)#ip ospf dead-interval <dead>
<interface-name> : インタフェース名
<hello> : Hello Intervalの値
<dead> : Dead Intervalの値
Dead Intervalの推奨は、Hello Intervalの4倍です。Hello Intervalの値を変更すると、Dead Intervalは自動的にHello Intervalの4倍の値になります。ただし、Dead Intervalの設定を変えても、Hello Intervalの値は自動的に変更されません。
Dead Intervalを1秒に設定してネイバーのダウンをより早く検出できるようにすることも可能です。OSPFが有効なインタフェースコンフィグレーションモードで次のように設定します。
(config)#interface <interface-name>
(config-if)#ip ospf dead-interval minimal hello-multiplier <number>
<interface-name> : インタフェース名
<number> : 3-20の値。Hello Intervalは1/<number>秒になる
Hello/Dead Intervalの値は、ネイバーを確立するための条件です。設定を変更するときには、ネイバーになるべきルータ同士で一致するように注意してください。
Hello/Dead Intervalの値を確認するには、show ip ospf interfaceコマンドを利用します。show ip ospf interfaceコマンドのサンプルは次のようになります。
R1#show ip ospf interface FastEthernet0/0 is up, line protocol is up Internet Address 192.168.12.1/24, Area 0 Process ID 1, Router ID 1.1.1.1, Network Type BROADCAST, Cost: 1 Transmit Delay is 1 sec, State BDR, Priority 1 Designated Router (ID) 2.2.2.2, Interface address 192.168.12.2 Backup Designated router (ID) 1.1.1.1, Interface address 192.168.12.1 Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5 oob-resync timeout 40 Hello due in 00:00:09 Supports Link-local Signaling (LLS) Index 1/1, flood queue length 0 Next 0x0(0)/0x0(0) Last flood scan length is 1, maximum is 1 Last flood scan time is 0 msec, maximum is 0 msec Neighbor Count is 1, Adjacent neighbor count is 1 Adjacent with neighbor 2.2.2.2 (Designated Router) Suppress hello for 0 neighbor(s)
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]