H O M E > ネットワークのおべんきょしませんか? Cisco CCNA/CCNP/CCIE、ネットワークスペシャリスト試験の勉強にピッタリ > 2004年12月
(所属カテゴリー:IPルーティング---投稿日時:2004年12月31日)
OSPF Helloパケットとは、ネイバーの検出と維持に利用するためのパケットです。OSPFの5つのパケット種類のうちの1つで、パケットタイプ1です。
OSPFのパケットの種類をまとめたものが次の表です。
タイプ | パケット種類 | 説明 |
タイプ1 | Hello | 他のOSPFルータとHelloパケットを送受信することによって、ダイナミックにネイバーを確立します。また定期的にHelloパケットを送信することによってネイバーの維持を行います。 |
タイプ2 | DBD(DataBase Description) | アジャセンシーを確立したあと、リンクステートデータベースの同期を取るために送受信します。 |
タイプ3 | LSR(Link State Request) | 特定のリンクステート情報(LSA)を要求するために送信します。 |
タイプ4 | LSU(Link State Update) | LSRの応答として送信されるリンクステート情報です。LSUパケットの中にリンクステート情報であるLSAが含まれています。 |
タイプ5 | LSAck(Link State ACknowledgement) | DBDやLSUを受信したことを意味する確認応答です。 |
OSPF HelloパケットはOSPFが有効になっているインタフェースから定期的に送信されます。Helloパケットを送信する間隔をHelloインターバルと呼びます。Helloインターバルは、OSPFインタフェースタイプによって異なります。また、Helloパケットを受信できずにネイバーがダウンしたとみなす時間をDeadインターバルといいます。Deadインターバルの時間もOSPFインタフェースタイプによって異なります。
OSPFインタフェースごとのHello/Deadインターバルのデフォルトは次のようになります。
OSPFネットワークタイプ | Helloインターバル(秒) | Deadインターバル(秒) |
Broadcast | 10 | 40 |
NBMA | 30 | 120 |
Point-to-point | 10 | 40 |
Point-to-multipoint | 30 | 120 |
Hello/Deadインターバルの値を変更するには、インタフェースコンフィグレーションモードで次のコマンドを入力します。
(config-if)#ip ospf hello-interval [second]
(config-if)#ip ospf dead-interval [second]
なお、Helloインターバルを変更するとDeadインターバルは自動的に変更したHelloインターバルの4倍の値になります。しかし、Deadインターバルを変更してもHelloインターバルは自動的に変更されません。
OSPF Helloパケットは、すべてのOSPFルータ(ALLSPFRouters)を示す224.0.0.5を送信先IPアドレスとして送信されます。ただし、NBMAネットワークではマルチキャストを転送することができないので、明示的にユニキャストアドレスを指定する必要があります。
次の図がOSPF Helloパケットのフォーマットを示したものです。
OSPFのパケットフォーマットは、すべてのパケットタイプに共通の24バイトのOSPFヘッダとパケットタイプごとのデータから構成されています。OSPFヘッダの各フィールドの概要は次の通りです。
OSPFのバージョンです。現在のOSPFバージョンは2です。
OSPFパケットのタイプを示します。
ヘッダも含めたOSPFパケットの長さをバイト単位で表した値が入ります。
OSPFルータのルータIDが格納されます。
パケットが生成されたエリアのエリア番号です。バーチャルリンク上にOSPFパケットが送られる場合には、エリアIDは0、つまりバックボーンエリアのエリア番号です。これは、バーチャルリンクはバックボーンエリアの一部として考えているためです。
エラーチェックのためのチェックサム計算に用います。
OSPFの認証のタイプを示します。この認証タイプフィールドの取りうる値は、次のとおりです。
認証タイプの値 | 認証の種類 |
0 | 認証なし |
1 | クリアテキスト認証 |
2 | MD5による認証 |
認証タイプが0のときには、認証を行わないためこのフィールドには意味がありません。認証タイプが1、2のときには、認証に必要な情報が入ります。
次にHelloパケットのデータの各フィールドについて見ます。
Helloパケットが送信されたインタフェースのサブネットマスクです。もし受信したHelloパケットのネットワークマスクとインタフェースのサブネットマスクが一致しなければ、そのパケットは無視されます。Helloパケットは、同じネットワークでのみ交換されるためです。
Helloパケットが送信される間隔です。前にも述べている通り、OSPFネットワークタイプ(ブロードキャストマルチアクセス、ポイントツーポイント、NBMA)によってデフォルト値が異なっています。Helloインターバルの値が一致しないとネイバーになることができません。
オプションフィールドは、OSPFルータのさまざまな機能を表しています。このオプショフィールドの中にスタブエリアの場合にスタブエリアであることを示すフラグ(スタブエリアフラグと呼ぶことにします)などがあります。
DR/BDRの選定に利用されるOSPFルータプライオリティです。この値が大きいルータほどDR/BDR の選定のときに優先されます。もし、プライオリティが0であれば、DR/BDRになることができなくなります。
ルータがダウンしたとみなす間隔です。最後にHelloパケットを受信してからDeadインターバルの間に次のHelloパケットを受信することができなければ、ネイバーのルータがダウンしたとみなされます。もし、Deadインターバルの値がお互いに一致していなければ、ネイバーになることができません。
マルチアクセスネットワーク上のDRのインタフェースIPアドレスです。ルータIDではありません。DRが選定されていなかったり、ポイントツーポイントネットワークであるなどDR/BDRの選定が行われない場合は、このフィールドは、0.0.0.0という値がセットされます。
マルチアクセスネットワーク上のBDRのインタフェースIPアドレスです。ルータIDではありません。DRが選定されていなかったり、ポイントツーポイントネットワークであるなどDR/BDRの選定が行われない場合は、このフィールドは、0.0.0.0という値がセットされます。
ルータが認識しているすべてのネイバーのルータIDがリストされています。ルータがHelloパケットをやり取りして、このネイバーフィールドにお互いがリストされた状態が2Way状態となります。
パケットフォーマットのフィールドの解説でも触れていますが、OSPFでネイバーになるためにはHelloパケットの次の条件が一致していなければいけません。
うまくネイバーになってくれないときには、以上の条件がきちんと一致しているかどうかも確かめてみてください。
更にOSPFを究めるなら!Gene作成の『究めるOSPF』がお勧め!詳細はこちら↓
http://www.n-study.com/library/2005/11/ccnaccnpccieosp.html