OSPF(経路学習プロセス)
OSPF がルータに設定されると、OSPF プロセスに参加している全てのインタフェースからHelloパケットが送信し、隣接ルータを検出し、ネイバーテーブルに登録します。
隣接関係を形成したら、LSA(Link State Advertisement)というIPアドレスやサブネットマスク、メトリックなど、リンクの情報を隣接ルータにマルチキャストで送信します。
OSPFルータは、この LSA を収集して自分のリンクステートデータベースに登録します。全ての LSA を学習し終わったら、ダイクストラ(Dijkstra)のSPF (Shortest Path First algorithm)を実行して各宛先ネットワークの最短パスを計算します。
このSPFの計算の際には、コストという、「108/帯域幅」で求められる値が使われます。求めた最短パスは、ルーティングテーブルに登録されます。
帯域幅 | コスト |
56kbps | 1785 |
1.544Mbps(T1) | 64 |
10Mbps | 10 |
100Mbps | 1 |
OSPF の学習プロセスが実行され、ルーティングテーブルが完成すると隣接関係を維持するために、マルチキャストアドレス「224.0.0.5」を使ってHello パケットを送信するようになります。
この Hello パケットを送信する間隔は、ネットワークの種類によって違ってきます。
ブロードキャストネットワーク
- デフォルトの Hello 間隔 ・・・ 10秒
- デフォルトの Dead 間隔 ・・・ 40秒
NBMA ネットワーク
- デフォルトの Hello 間隔 ・・・ 30秒
- デフォルトの Dead 間隔 ・・・ 120秒
デフォルトでは、Dead 間隔は、Hello 間隔の値の4倍の値に設定されています。Dead 間隔とは、OSPFF ルータが停止していると見なす時間です。Hello パケットが4回受信されないと無効であると判断します。
Hello 間隔、Dead 間隔の設定は、管理者が自由に設定することができますが、隣接ルータ間で一致していなければなりません。EIGRP では、異なる値でも問題ありませんでしたが、OSPF では、合わせておく必要があるので注意して下さい。
Hello 間隔・Dead 間隔の設定
Hello 間隔、Dead 間隔を設定するには、インタフェースコンフィグレーションモードで下のコマンドを実行します。
Router(config-if)#ip ospf hello-interval {秒数}
Router(config-if)#ip ospf dead-interval {秒数}
OSPF は、リンクステートルーティングプロトコルですから、RIP や IGRP などのディスタンスベクタルーティングプロトコルと違い、頻繁にルーティングアップデートは行いませんが、情報を維持するために 30分間隔で LSA パケットを送信しています。コンバージェンス後も定期的に LSA が交換されることを覚えておいて下さい。
次の「OSPF(DR・BDRの選出)」では、OSPF ネットワークで重要になってくる DR、BDR の選出の仕組みについて紹介します。