OSPF(Open Shortest Path Fast)


---目次---

1.OSPFの概要と特徴
1-1.OSPFの概要
1-2.OSPFの特徴
2.OSPFの動作
2-1.ルータID
2-2.ネイバーとアジャセンシー
2-3.ネットワークタイプ
2-4.DRとBDR
2-5.Helloプロトコル
2-6.リンクステート情報の変更
3.OSPFのエリア
3-1.ルータの種類
3-2.エリアの種類
3-3.バーチャルリンク
3-4.OSPFの経路集約
4.OSPFのパケットフォーマット
4-1.OSPFパケットの種類
4-2.Helloパケット
4-3.DDパケット
4-4.LSRパケット
4-5.LSUパケット
4-6.LSAckパケット
5.LSAの詳細
5-1.LSAの種類
5-2.LSAヘッダ
5-3.ルータリンク
5-4.ネットワークリンク
5-5.集約リンク、ASBR集約リンク
5-6.自律システム外部リンク
5-7.NSSAリンク
5-8.オプション



1.OSPFの概要と特徴

1-1.OSPFの概要

OSPF(Open Shortest Path Fast)はTCP/IPにおけるIETF標準のリンクステート型ルーティングプロトコルの一つです。 OSPFは大規模なネットワークで効率のよいルーティングを行うために開発されています。
要するに、OSPFとは企業などの大きなネットワークを構成する際にネットワークにどのような道筋を辿らせるか考える仕組み、 ということです。

OSPFが開発される前は、RIP(Routing Information Protocol)というルーティングプロトコルが人気でした。
RIPとは、インターネットの前身のARPANETと呼ばれるネットワークから使われている、古い古いルーティングプロトコル です。古いからといって、現在は使われていないかというとそうでもなく、現在でも小規模な環境ではよく使われています。 なぜなら、RIPは仕組みが単純なので、実装や利用が簡単にできるというメリットがあるからです。

しかし、RIPにはいくつか制限があり、問題点もあります。そのため、大規模なネットワークには向いていません。
そこで登場したのが、大規模なネットワークにおいて効率のよいルーティングができるOSPFです。
OSPFでは、RIPの様々な制限をなくし、より大規模なネットワークにおいて効率よくルーティングすることを目的と しています。

1-2.OSPFの特徴

OSPFには次のような特徴があります。
(a)IGPsの一種
(b)リンクステート型ルーティングプロトコル
(c)コンバージェンス時間が短い(素早い収束性)
(d)クラスレスルーティングプロトコル
(e)コストに基づいたルーティング
(f)エリアの概念
(g)マルチキャストによる通信
(h)認証機能のサポート
(i)CPU、メモリの使用率が高い
(j)きちんとしたアドレス設計が必要

(a)IGPsの一種
ルーティングプロトコルにはAS(Autonomous System)の内部で利用するIGPs(Interior Gateway Protocol)と、 外部(AS間)で利用するEGPs(Exterior Gateway Protocol)があります。
OSPFは、RIPと同じAS(Autonomous System)内部のルーティングを対象としたIGPsの一種です。 ただし、RIPよりも大規模なネットワークを対象としています。
IGPsには他にも、OSIスタックのIS-IS(Intermediate System-to-Intermediate System)やCisco社独自のIGRP(Interior Gateway Routing Protocol)などがあります。
AS(Autonomous System)は自律システムと呼ばれるもので、狭義の意味と広義の意味を持っています。
狭義
同一のルーティングプロトコルを採用しているネットワークの集合
広義
ある管理組織が同一の管理ポリシーに従って運用されているネットワークの集合
IGPsやEGPsは広義のASです。広義のASの中には複数のルーティングプロトコルが運用されている場合もありますが、 AS内に含まれる組織が責任を持って管理することになります。
また、企業の情報システムやISP(Internet Service Provider)などは、1つのASになります。

IGPsはさらに、ルーティングプロトコルのアルゴリズムによって3つに分けられます。
  • ディスタンスベクタ型…RIP、IGRP
  • リンクステート型…OSPF、IS-IS
  • ハイブリッド(拡張ディスタンスベクタ)型…EIGRP

OSPFはリンクステート型のルーティングプロトコルなので、ここではリンクステート型のみ説明します。

(b)リンクステート型ルーティングプロトコル
リンクステート型では、ルータは自分の持っているインタフェースの情報(リンクステート)を 交換します。リンクステート情報はLSA(Link State Advertisement)とも呼ばれ、ルータが持つインタフェースの種類、 そのインタフェースのIPアドレス、インタフェースのコスト、接続されているネットワークのタイプなどが含まれます。 このLSAからLSDB(リンクステートデータベース)を作成します。
つまり、LSAにはあるルータがどのリンクにどのように接続しているか、という情報が書かれていて、 LSAを受け取ったルータでは、その情報に基づいてネットワーク構成を把握し、ネットワーク構成を表す表 (LSDB)を構築します。LSDBは、ネットワークの「地図」に相当するものです。この地図を基にして、 宛先ネットワークまでの最適な経路を計算して、ルーティングテーブルを作成します。
LSDBは、全てのルータで共通です。ですから、非常に大規模なネットワークでは、交換される LSAの数が非常に多くなり、それに伴ってLSDBサイズが巨大になります。 その結果、ルータのCPUサイクルやメモリを消費することになるので、好ましくありません。

OSPFでは、ルーティング情報の交換は何らかの変更があったときのみ行われます。それ以外は定期的にHelloプロトコルと呼ばれる プロトコルによって、他のルータが正常に動作しているかどうかを確認するメッセージを送信します。 そのため、ネットワークが安定している場合には、OSPFは非常に「静かな」ルーティングプロトコルであるといえます。

(c)コンバージェンス時間が短い(素早い収束性)
ネットワーク上の全てのルータが、全ての経路を認識している状態をコンバージェンス(収束)状態といいます。 ルーティングアルゴリズムによって、このコンバージェンス状態に至るまでに必要とする時間(コンバージェンス時間) が異なります。

リンクステート型では、全てのルータが共通のネットワークの地図、つまりLSDBを 持っていることによって、何か変更が起こったときにでもすぐに各ルータが変更を認識することができます。 従って、ディスタンスベクタ型ルーティングプロトコルよりも、はるかに高速にコンバージェンスさせることが 可能です。

コンバージェンスが高速であるために、RIPなどで見られたような間違った情報によってルーティングループが発生する 可能性はほとんどありません。各OSPFルータは、ネットワーク全体の地図を持っているということも、ループが発生する 可能性が極めて小さくなることにつながります。このことは、大きなネットワークで安定して運用できることにつながり、 OSPFはスケーラビリティ(規模対応性)に優れているといえます。

(d)クラスレスルーティングプロトコル
ルータが交換するルーティング情報の中にサブネットマスクの情報が含まれるかどうかによって、ルーティング プロトコルは次の2つに分けられます。
クラスフルルーティングプロトコル
サブネットマスクの情報が含まれていないため、ルーティングテーブルに載せるためには受信したルーティング情報から サブネットマスクを判断して、各宛先のネットワークアドレスを認識しなければなりません。
クラスレスルーティングプロトコル
サブネットマスクの情報から「クラスの境界に縛られることなく」各宛先ネットワークに対するネットワークアドレスを 認識して、ルーティングテーブルに載せることができます。クラスの境界に縛られないということが、クラス「レス」 という意味になります。

LSAの中にサブネットマスクが含まれているので、OSPFはクラスレスルーティングプロトコルです。
そのため、可変長サブネットマスク(VLSM:Variable Length Subnet Mask)や不連続サブネットをサポートすることが 可能です。

(e)コストに基づいたルーティング
メトリックとは経路の選択基準のことです。主にルーティングプロトコルによるダイナミックルーティングで、 宛先ネットワークに到達するための経路が複数ある場合、メトリックが小さい経路を採用し、そちらのほうに パケットを送ります。

OSPFの経路選択の基準としてメトリックは、コストを採用しています。
宛先ネットワークまでの経路上のコストを累積していき、最もコストが小さい経路がルーティングテーブルに採用されます。
コストはネットワーク管理者が設定することが できるのですが、シスコルータの実装ではインタフェースの帯域幅から自動的に計算されます。多くの他のベンダも シスコルータの帯域幅を反映したコスト計算を採用しています。コストを計算する式は次のとおりです。
100(Mbps)÷インタフェースの帯域幅(Mbps)

帯域幅が大きいほどコストの値が小さくなるので、OSPFが選択する経路は、標準では帯域幅が最も大きい経路を優先 することになります。
ただし、小数点以下を考慮しないため、この計算式では100Mbps以上の帯域幅に対しては全て1というコストになります。 100Mbps以上のリンクが存在する場合には、正しくネットワークの帯域幅を反映できない可能性があります。その場合は、 管理者が手動でコスト値を設定することもできます。シスコルータでは計算式の分子の値を変更してコストの計算を 行うこともできるようになっています。

もし、同じコストの経路が複数存在する場合には、その経路を利用して等コストロードバランスを行うことができます。 OSPFでは、等コストロードバランスを行うことによって、ネットワークをより効率よく利用できるようになります。

(f)エリアの概念
リンクステート型ルーティングプロトコルでは、各ルータがLSDBを持ちます。そのため、ネットワークが大規模になれば DBのサイズが膨大になり、LSAの数も増えてしまいます。そこで、OSPFではエリアという概念を取り入れて、 大規模ネットワークでより効率よくルーティングできるように考えられています。
OSPFネットワークをエリアに分割すると、エリア内のルータ同士だけでLSAを交換して同一のLSDB を保持し、エリア内のネットワークについては詳細な情報を持ちます。つまり、エリアとは「同一のLSDBを持つルータの集合」 と捉えることができます。
他のエリア内のネットワークに到達するためには、エリアとエリアを接続するエリア境界ルータ(ABR:Area Border Router) と呼ばれるルータを経由します。
ABRは複数のエリアに所属するルータであり、所属しているエリアごとのLSDBを持っています。 他のエリアにあるネットワークの情報については、詳細な情報をエリア内に通知するのではなく、集約ルートもしくは デフォルトルートを通知します。そのため、エリア内のルータのLSDBやルーティングテーブルの サイズを小さくすることができます。
また、他のエリアの詳細な情報が流れないということは、他のエリアにあるネットワークの変更によって、LSDBの同期を取り、 SPFアルゴリズムでルーティングテーブルの計算を行う必要がありません。そのため、ルータに 余計な負荷をかけることもなくなります。
このように見てみると、OSPFネットワークにおいてはエリアの設計がとても重要になることが分かると思います。なお、 エリアの識別は16ビットのエリア番号によって行います。

図1

OSPFネットワークを複数のエリアに分割する際には、決まりがあります。それは、各エリアは必ずバックボーンエリアに 隣接していなくてはならないということです。OSPFのエリアには、様々な種類があり、バックボーンエリアもそのうちの 1つです。バックボーンエリアはエリア番号0で、全てのエリアを接続する中心となるエリアです。エリア間のトラフィックは 全てバックボーンエリアを経由することになります。
全てのエリアがバックボーンエリアに隣接することから、必然的にOSPFのエリアは階層型の構成をとることになります。 IPアドレッシングを階層型の構成にし、それをうまくOSPFのエリア構成に当てはめていくことが、OSPFネットワークを設計 する上でのポイントといえます。
ただし、物理的にバックボーンエリアに接続できないエリアが出てくるかもしれません。そのときには、バーチャルリンク というリンクを介してバックボーンエリアに仮想的に隣接させることができます。

(g)マルチキャストによる通信
また、OSPFルータ同士のやり取りはブロードキャストではなく、マルチキャストで行われるので、ネットワーク上の 他のコンピュータやOSPFを有効にしていないルータなどに余計な負荷をかけることもありません。

(h)認証機能のサポート
セキュリティを向上させるために、OSPFでは認証機能のサポートも行っています。認証はクリアテキストの方式と、 MD5によるハッシュ値での認証の2通りあります。

(i)CPU、メモリの使用率が高い
OSPFでのSPF計算は非常にルータのCPUに負荷をかけます。また、大規模なネットワークではLSDBが 多くのメモリを消費することになります。従って、RIPよりもより高性能なルータが必要です。

(j)きちんとしたアドレス設計が必要
また、安定したネットワークにするためには、あらかじめきちんと階層型のネットワーク構成をとり、エリア設計を 検討することがとても重要です。階層型ネットワーク構成をとることによって、適切な経路集約を行うことができる ようになります。その結果、ルータがやり取りするLSAが少なくなり、ルーティングテーブルサイズも小さくなります。 もし、ネットワーク構成があまり考えられていないと、SPF計算が頻発したり、リンクステートデータベースが巨大に なってしまったりします。このような設計と構築の難しさもOSPFのデメリットと考えられるかもしれません。


2.OSPFの動作

2-1.ルータID

ルータIDとは、32ビットの値でIPアドレスと同じように8ビットごとに10進数で表し、「.」で区切る表記方法をします。 ルータIDは、OSPFルータを識別するための名前と考えてください。OSPFルータは、ルータIDによって他のOSPFルータを 認識して、ネイバーやアジャセンシー関係を確立し、LSAの交換を行うことができるようになります。
ルータIDとして、OSPFルータのアクティブなインタフェースのうち、最も大きいIPアドレスが使われるようになります。

図2

しかし、物理的なインタフェースからルータIDを取得すると、もし、そのインタフェースがダウンしてしまったら、 ルータIDを次に大きなIPアドレスに変更しなければならなくなります。そのときにCPUに余計な負荷をかけてしまうので、安定した ネットワークを実現することができなくなります。そこで、シスコルータでは「ループバックインタフェース」を 利用することを推奨しています。
ループバックインタフェースとは、ルータの中で1つでもアクティブなインタフェースがある限り絶対に落ちない 論理的なインタフェースです。もし、OSPFルータでループバックインタフェースが存在すれば、ループバックインタフェース のIPアドレスがルータIDになります。ループバックインタフェースが複数存在すれば、その中の最も大きいIPアドレスが ルータIDです。また、シスコルータでは明示的に設定によってルータIDを指定することも可能です。その場合、 インタフェースのIPアドレスを使う必要がなく、分かりやすい値を設定できます。

図3

2-2.ネイバーとアジャセンシー

OSPFでは、LSAの交換は同じネットワークに所属したルータ同士で行いますが、全てのルータ同士で 行うわけではありません。ルータはネイバーやアジャセンシーといった関係を確立し、Helloプロトコルのやり取りや LSAの交換を行います。
ネイバー(Neighbor)
同じネットワークに接続されているOSPFルータ同士の関係です。お互いのルータIDを認識した時点で、 ネイバー関係となります。ネイバー関係になったルータはHelloプロトコルのやり取りを定期的に行い、 ネイバー関係を維持します。
アジャセンシー(Adjacency)
実際にLSAを交換するルータの組を示しています。 つまり、ネイバー関係の中で、実際にLSAを交換する組がアジャセンシーになります。

OSPFがサポートするネットワークタイプによって異なるのですが、LANなどのマルチアクセスネットワークでは、 全てのネイバーが必ずしもアジャセンシーを確立するわけではありません。マルチアクセスネットワークで、 全てのネイバーがアジャセンシーを確立してLSAを交換すると、トラフィックが増大してネットワークに負荷を かけてしまうからです。そのためにマルチアクセスネットワークでは、アジャセンシーを確立するDR/BDRが 選ばれることになります。

2-3.ネットワークタイプ

OSPFでは、ネットワークを以下の3種類に分類して捉えています。
  • ブロードキャストマルチアクセスネットワーク
  • ポイントツーポイントネットワーク
  • NBMA(Non Broadcast Multi Access)ネットワーク

ブロードキャストマルチアクセスネットワークは、イーサネットやトークンリング、FDDI(Fiber-Distributed Data Interface) などのLANと考えてください。複数のルータを接続することができ、ブロードキャストもしくはマルチキャストで 1つのパケットを複数のルータに送り届けることができます。ブロードキャストマルチアクセスネットワーク上では、 DR(Designated Router)とBDR(Backup DR)の選出が行われます。ネイバーは全てOSPFルータ間で確立されますが、 アジャセンシーはDR/BDRとの間だけです。あるOSPFルータから他のOSPFルータへは、224.0.0.5(AllSPFRouters)アドレスを 使い、DR/BDR以外のルータからDR/BDRへは、224.0.0.6(AllDRouters)のマルチキャストアドレスを使って通信を行います。

ポイントツーポイントネットワークは、その名前の通りルータ同士が1対1で接続されているネットワークです。1組の ポイントツーポイントネットワーク上のルータは、ネイバーと共にアジャセンシーも結びます。LSAを交換する相手は 対向のルータであることが必ず決まってくるので、DR/BDRの選出は不要です。ですから、224.0.0.6(AllDRouter)の マルチキャストアドレスは使いません。ポイントツーポイントネットワーク上のルータは、224.0.0.5(AllSPFRouter)の マルチキャストアドレスで通信を行います。

NBMAネットワークの例は、フレームリレーやATMのネットワークです。これらネットワークは、ブロードキャスト マルチアクセスネットワークと同じように、マルチアクセスをサポートし、1つのネットワークに複数のルータを 接続するのは可能です。しかし、ブロードキャスト機能をサポートしていません。あるパケットをNBMA上のルータに 送る場合には、ブロードキャストではなくユニキャストで各ルータへパケットを複製して送信します。 NBMAねっとわーくでは、DR/BDRの選出を行いますが、全ての通信はユニキャストで行われます。ですから、 ネイバーやアジャセンシーを確立するためには、OSPFルータ同士がお互いのアドレスを認識しなければならないので、 そのための設定が追加で必要になります。

2-4.DRとBDR

OSPFネットワークのうち、ブロードキャストマルチアクセスネットワークやNBMAネットワークのマルチアクセス ネットワークでは、DR(Designated Router)とBDR(Backup Designated Router)の選定が行われます。 そして、DR/BDR以外のその他のルータは、DR/BDRとの間でアジャセンシーを確立して、LSAの交換を行います。

もし、DR/BDRの選定を行わずに、全てのOSPFルータ間でアジャセンシーを確立してLSAを交換するとしましょう。 ルータが3台の時は、LSAを交換するルータの数は3組です。ルータが4台になれば6組、5台になれば10組…という具合に どんどんLSAを交換するルータの組が増えてきます。一般にN台のルータが存在すれば、このN台のルータから2つの ルータを選ぶ組み合わせは、次の通りです。
N(N-1)/2

ルータが増えると、ルータが交換するLSAの数も膨大なものになってきてしまいます。そうなると、LSAだけで ネットワークがあふれてしまうかもしれません。
そこで、DR/BDRを使って送信されるLSAの数を少なくします。DR/BDRは自身が接続されているマルチアクセスネットワーク を代表するルータと考えることができます。他のOSPFルータはDR/BDRとの間でアジャセンシーを確立して LSAを送信し、DR/BDRは送られてきたLSAをまとめて他のOSPFルータにマルチキャストします(図4)。

図4

ここで、勘違いしやすいことですがDR/BDRはルータのマルチアクセスインタフェースごとに決まります。各ルータ単位では ありません。あるインタフェースでDRであるルータが他のインタフェースでもDRになるとは限りません。
OSPFネットワークを設計する上での注意点として、DR/BDRはルータに負荷がかかるので、複数のインタフェースでDR/BDR とならないようにする方が望ましいです。
DR/BDRの選定は、ルータIDとOSPFプライオリティの2つの要素を元に行われます。
ルータIDが最も大きいルータがDRになり、次にルータIDが大きいルータがBDRになります。ルータIDは、ベンダによっては 明示的に指定することができるので、ルータIDを適切に設定すれば、望ましいルータをDR/BDRにすることができます。 しかし、場合によってはDR/BDRにしたいルータのルータIDを大きな値にできないことも考えられます。そのような場合、 OSPFプライオリティに従ってDR/BDRを決定します。OSPFプライオリティは8ビットで0〜255の値をとります。 プライオリティの値が高いほど、DR/BDRとなる優先度が高くなります。また、プライオリティ「0」はDR/BDRにならないと いうことを意味しています。DR/BDRの選定は、ルータIDによる選定よりもOSPFプライオリティによる選定が優先されます。
ただし、ルータIDもしくはOSPFプライオリティが高いルータが必ずDR/BDRになるかというと、そうならないこともあります。 DR/BDRが頻繁に変更されるのは、ネットワークの安定性を考えると望ましいことではありません。 DR/BDRの変更に伴って、わずかな時間とはいえ、パケットをルーティングできない時間が発生してしまいます。 ですから、なるべくDR/BDRの変更が起こらないように考えられています。例えば、図5で、ルータAがプライオリティ5 でDR、ルータBがプライオリティ2でBDRとなっています。ここに、もしプライオリティ10のルータEを追加したとしても、 DR/BDRは変わりません。

図5

ルータAに障害が発生してダウンしたときは、BDRであるルータBがDRの役割を引き継ぎます。たとえルータEの プライオリティがルータBより高くても、ルータEはDRになることはありません。ルータEはこのときに、BDRとなることが できます。もし、今のDRであるルータBがダウンすると、ようやくルータEはDRになることができます。

図6

以上のように、なるべくDR/BDRの変更が起こらないような動作になっています。そのため、マルチアクセスネットワーク上に 複数のOSPFルータが存在するとき、ルータの起動する順番を考えておく必要があります。なぜなら、もしDRにしたい ルータよりも先に他のルータを起動してしまうと、そのルータがDRになってしまいます。あとから起動してきたDRにしたい ルータは、たとえプライオリティが高くてもDRになることができなくなります。OSPFで運用しているネットワークで、 確実に意図したルータをDRにするためには、プライオリティの設定に加えて、ルータの起動順序をマニュアル化している 例が多く見られます。

2-5.Helloプロトコル

OSPFは、他のOSPFルータの発見や正常に動作していることの確認をHelloプロトコルによって行います。 まずは、Helloパケットにどのような情報が含まれているかを見ていきます。
Helloパケットの情報
  • ルータID
  • HelloとDeadの間隔
  • ネイバー
  • エリアID
  • OSPFプライオリティ
  • DRのIPアドレス
  • BDRのIPアドレス
  • 認証パスワード
  • スタブエリアフラグ

実際にルータが起動すると、「DOWN」→「INIT」→「2WAY」→「EXSTART」→「EXCHANGE」→「LOADING」→「FULL」という状態を経て、 ネイバーのOSPFルータを発見しリンクステートデータベースの同期を行います(図7参照)。

図7

---------------------------------------------------
@Helloパケットを全く受信していない状態をDOWN状態といいます。DOWN状態では、まだ他のOSPFルータの存在は わかりません。

AルータBでルータAからのHelloパケットを受信すると、INIT状態になります。Helloパケットの中には、ネイバーを リストするフィールドがあり、ルータID、DR/BDRがすでに存在すればそのルータID、エリア番号などが入っています。 ルータBは、ネイバーテーブルにルータAの情報を格納します。
それから、ルータBはネイバーフィールドの中に自分のルータIDを追加して、Helloパケットを送信します。

BルータAがルータBからのHelloパケットを受信すると、同様にルータAのネイバーテーブルにルータBの情報が追加されます。 ネイバーテーブルにお互いの情報が追加された状態が2WAY状態です。つまり、ルータがお互いに存在を認識した状態が 2WAY状態です。

Cこのあと、マルチアクセスネットワークであればルータIDによるDR/BDRを選出して、DR/BDRとのアジャセンシーを 確立します。ポイントツーポイントネットワークであれば、ネイバーとアジャセンシーを確立して、リンクステート情報を 交換できるようにします。例では、マルチアクセスネットワーク(イーサネット)なので、DR/BDRの選定を行い、 ルータIDが上位のルータAがDRとなります。

D続いて、ルータ自身が持っているリンクステートデータベースの交換を始めるために、マスタールータとスレーブルータを 決定します。ルータIDが高いほうがマスタールータとなります。マスターとスレーブはあくまでもデータベースの交換を 行うときの関係で、DR/BDRとは意味が異なります。マスターとスレーブの決定に加えて、これから交換する DD(Database Description)パケットのシーケンス番号を決定します。この状態をEXSTART状態と呼びます。

Eルータは、EXCHANGE状態に移行し、マスタールータとなるルータBがまずDDパケットを送信します。DDパケットを受信すると、 きちんと受信したことを示すLSAckパケットを返します。

FDDパケットを受信してリンクステートデータベースに足りない情報があれば、LSR(Link State Request)をネイバーに 送信して、足りない情報を要求します。LSRで要求された情報は、LSU(Link State Update)パケットで知らせます。 LSUの中に該当のリンクステート情報であるLSA(Link State Advertisement)が含まれています。 LSUを受け取ると、受信確認のLSAckを返しています。このように、リンクステートデータベースの同期を取っている状態が LOADING状態です。

Gそして必要な情報を全て手に入れ、リンクステートデータベースの完全な同期を取ることができれば、FULL状態になります。
---------------------------------------------------

FULL状態になり、リンクステートデータベースの同期を取ることができたら、ルータBはリンクステートデータベースに SPFアルゴリズムを適用し、自身のルーティングテーブルを構築します。
その後も定期的にHelloパケットをやり取りし、他のルータが正常に動作しているかどうかを判断しています。この定期的な 間隔をHello間隔と呼びます。もし、ルータに障害が発生すると、そのルータからHelloが届かなくなってしまいます。 Helloが届かなくなってからダウンしたと見なすまでの時間をDead間隔と呼んでいます。Hello間隔やDead間隔の デフォルト値は、ネットワークタイプによって異なります。

2-6.リンクステート情報の変更

リンクステート型ルーティングプロトコルは、全てのルータで共通のリンクステートデータベースを保持する必要が あります。そのため、ネットワークに変更があった場合、すなわちリンクステート情報に変更があった場合は、速やかに その変更を他のルータに通知して、リンクステートデータベースの同期を保たなければいけません。
図8のネットワークにおいて、ルータAがもつイーサネットセグメントがダウンしたときを考えます。次のプロセスで 各ルータにネットワークの変更が伝わり、コンバージェンスします。

図8

---------------------------------------------------
@ルータAがE1インタフェースにおいてネットワークがダウンしたことを認識すると、その変更のLSAを含んだLSUパケットを 全DR向けの224.0.0.6(AllDRouter)に送信します。

AこのLSUパケットを受信したDRは確認応答としてLSAckを返し、そのネットワーク上の全OSPFルータ向けの224.0.0.5 (AllSPFRouter)にLSUパケットをフラッディングします。LSUパケットを受信した各ルータは、LSAckでDRに確認応答します。

B他のネットワークに接続されているルータは、マルチアクセスネットワークであればDRあてに、ポイントツーポイントで あれば、ネイバーにLSUパケットを送信します。このように順に変更をネットワーク全体に伝えていきます。

CLSUパケットを受信したルータは、自身のリンクステートデータベースを更新して、再びSPFアルゴリズムを適用し、 新しいルーティングテーブルを構築します。
---------------------------------------------------

以上のように、OSPFではネットワークの変更を検出すると、すぐにその変更をOSPFネットワーク全体に伝えてリンクステート データベースの同期を保ちます。OSPFでのコンバージェンスは、
LSUをフラッディングする時間+リンクステートデータベースの更新時間+ルーティングテーブルの計算時間

で完了します。ネットワークが適切に設計されていれば、通常この時間はおよそ6秒から数十秒です。RIPやIGRPの ディスタンスベクタ型ルーティングプロトコルでは、数分程度かかってしまったことを考えれば、OSPFははるかに 高速にコンバージェンスすることが分かります。

3.OSPFのエリア

"1-2.OSPFの特徴"で、エリアについては簡単に触れていました。ここでは、もう少し突っ込んで見ていきます。

3-1.ルータの種類

OSPFネットワークをエリアに分割することによって、各エリアに含まれるOSPFルータやエリアとエリアを接続するルータは、 次のように分類されます(図4-2-1)。
○内部ルータ
全てのインタフェースが同じエリアに所属しているルータを、内部ルータと呼びます。全てのインタフェースがバックボーン エリアに所属するルータは、次に紹介するバックボーンルータでもあり、内部ルータでもあります。

○バックボーンルータ
バックボーンエリアに所属しているインタフェースを、少なくとも1つ持つルータをバックボーンルータと呼びます。 次に紹介するエリア境界ルータは、バックボーンエリアとその他のエリアを接続することから、バックボーンルータでも あります。

○エリア境界ルータ
複数のエリアに所属するインタフェースを持つルータをエリア境界ルータ(ABR:Area Border Router)と呼びます。 エリアごとにリンクステートデータベースを持ち、エリアごとにリンクステート情報をやり取りしています。各エリアは、 原則としてバックボーンエリアに隣接していなければならないので、ABRはバックボーンエリアのリンクステートデータベースと その他のエリアのリンクステートデータベースを個別に保持していることになります。このため、ABRはより多くのメモリと CPU処理能力が求められます。
また、ABRはエリアの出口でもあり入り口でもあります。あるエリアから他のエリアへ行くためには必ずABRを経由し、 他のエリアからエリア内にはいるにも必ずABRを経由します。さらにABRは、別のエリアの情報を集約してエリア内に 流し込む役割も持っています。

○自律システム境界ルータ
自律システム境界ルータ(ASBR:Autonomous System Boundary Router)とは、インタフェースのうち少なくとも1つが、 非OSPFネットワーク(別の自律システム)に所属するルータです。非OSPFネットワークとは、RIPやIGRP、あるいは スタティックルーティングプロトコルを運用しているネットワークを指しています。このようなASBRでは、ルーティング プロトコル間で適切なリディストリビューション(再配送)の設定を行うことによって、非OSPFネットワークのルートを OSPFネットワークに注入したり、逆にOSPFネットワークのルートを非OSPFネットワークへ注入することができます。

ルータは、以上の複数のタイプになることもできます。例えば、非OSPFネットワークだけでなく、バックボーンエリアと エリア1を相互接続しているルータは、ASBRでもありABRでもあります。
ABRやASBRはトラフィックが集中し、ルータに負荷がかかりやすくなります。ですから、ルータのパフォーマンスを考慮して、 3つ以上のエリアを接続するABRやABRとASBRを兼用させるような配置は避けたほうが無難です。

図9

3-2.エリアの種類

OSPFのエリアは、その性質によっていくつかに分類されます。

○バックボーンエリア
バックボーンエリアは、複数のエリアを相互接続するエリアです。単一のエリアで構成しているとき以外は、エリアは 必ずこのバックボーンエリアに隣接していなければなりません。バックボーンエリアは、エリア番号0で定義されています。 エリア間のトラフィックは、必ずバックボーンエリアを通過することになります。

○標準エリア
標準のOSPFエリアです。

○スタブエリア
エリア内を流れるLSAを削減するために考えられているエリアです。スタブエリア内から自律システム外部の ネットワークへ到達するために、スタブエリアのABRがエリア内にデフォルトルートを流し込みます。これによって、 スタブエリア内の各ルータのリンクステートデータベース、ルーティングテーブルのサイズを小さくすることができます。 その結果、ルータのメモリ、CPUプロセス使用量を減らすことができます。
スタブエリアの制限として、内部にASBRを置くことはできません。また、バーチャルリンクのトランジットエリアに することもできません。
エリアをスタブエリアにするためには、エリア内の全てのルータに対して、所属するエリアがスタブエリアであるという 設定を行います。スタブエリアの設定を行うと、Helloパケットの中にあるオプションフィールドのフラグで、 自律システム外部リンクを受け取ることができないということが示されます。

○トータリースタブエリア
トータリースタブエリアは、シスコ社独自の実装です。スタブエリアよりもさらにエリア内を流れるLSAを削減するために 考えられています。他のエリアへのトラフィックは必ずABRを経由するはずです。そのため、他のエリアのネットワークを 表現した集約リンクエントリは、ABRへと向かうデフォルトルートに置き換えることができるはずです。スタブエリア内では、 他のOSPFエリア内ネットワークや自律システム外部ネットワークへLSAが到達するために、ABRがトータリースタブエリア内の デフォルトルートを通知します。従って、エリアをトータリースタブエリアにすることによって、さらにルータのメモリ、 CPUプロセスの使用量を削減することができるようになります
スタブエリアと同様に、トータリースタブエリア内部にASBRを置くことはできません。バーチャルリンクのトランジットエリア にすることも同様にできません。
トータリースタブエリアの設定はスタブエリアの設定に加えて、ABRにおいて該当のエリアがトータリースタブエリアである という設定を行います。

○NSSA(Not So Stuby Area)
NSSAはスタブエリアの特殊なものです。スタブエリア、トータリースタブエリア内にはともにASBRを置くことができなかった のですが、NSSAではASBRを置くことができるようになっています。しかし、バーチャルリンクにおけるトランジットエリアに なることはできません。
NSSAの設定は、NSSA内の全てのルータに対して該当のエリアがNSSAであるということを設定します。

3-3.バーチャルリンク

OSPFで複数のエリアを構成する場合、バックボーンエリアに隣接させなくてはいけないという原則があることは 以前に述べました。しかし、どうしてもバックボーンエリアに隣接させることができないという状況も考えられます。 例えば、地理的な問題でルータをバックボーンに接続することができないことがあるかもしれません。また、バックボーン エリア内のリンク障害でバックボーンエリアが分断されてしまい、エリア間の通信ができなくなってしまう状況が 発生するかもしれません。このような場合にバーチャルリンクを利用します。
バーチャルリンクは、非バックボーンエリアを経由するバックボーンエリアへの仮想的なリンクです。バーチャルリンクは、 主に次の2つの目的で利用されます。
@非バックボーンエリアを通じて、あるエリアをバックボーンエリアに接続する。図10
A非バックボーンエリアを通じて、分断されたバックボーンエリアを接続する。図11

バーチャルリンクの設定は、ABR間で行いますが、設定するABR間は直接の物理的なリンクは必要ありません。 バーチャルリンクは仮想的なリンクなので、設定するABR間でのIP接続性があれば設定することができます。 SPFの計算のため、OSPFではバーチャルリンクをポイントツーポイントと見なしています。
また、バーチャルリンクが横断するエリアのことをトランジットエリア(通過エリア)と呼びます。スタブエリア、 トータリースタブエリア、NSSAはトランジットエリアにすることはできません。
ただし、バーチャルリンクを使用するとネットワークが複雑になり、トラブルが発生したときなどは、トラブルシューティング が困難になります。そのため、OSPFネットワークを設計する観点からは、なるべくバーチャルリンクを使用する必要が ないような設計の方がよいでしょう。

図10


図11

3-4.OSPFの経路集約

OSPFでももちろん経路集約をサポートしていますし、経路集約を行うことによってより安定した拡張性の高い ネットワークにすることができます。
OSPFでは、明示的に手動で経路集約の設定を行う必要があります。ただし、どこででも集約を行うことができるわけではなく、 集約を行うことができるポイントは次の2通りです。
  • エリア内のルートをABRが集約して、他のエリア(バックボーンエリア)へ通知。
  • 非OSPFドメインのネットワークをASBRで集約して、OSPFドメイン内へ通知。

集約の具体的な例として、図12を見てみましょう。

図12

エリア1に、192.168.1.0/24から192.168.15.0/24までのネットワークがあります。このネットワークアドレスの共通ビットを 考えていくと、上位の20ビットが共通なので192.168.0.0/20のネットワークアドレスに集約することができます。 そこで、ABRであるルータBによって、この集約経路をバックボーンエリアを通じて他のOSPFエリアへと通知することが できます。
また、RIPを利用している非OSPFドメインのネットワークとして200.100.1.0/24から200.100.17.0/24のネットワークが あります。この17個のネットワークアドレスは上位21ビットが共通です。従って、200.100.1.0/21のネットワークアドレスに 集約可能です。このRIPネットワークのアドレスをASBRであるルータAで集約して、OSPFドメインに流し込むことが可能です。
集約を行うことによって、ルータのルーティングテーブルのサイズを小さくすることができます。また、集約された 個別のネットワークの状態が変更したとしても、その影響を最小限にとどめることができます。結果として、 ルータのSPFアルゴリズム計算の頻度が少なくなり、ルータのCPUやメモリの負荷を減らすことができるようになります。 ただし、効率よく経路集約を行うためには、あらかじめよく考えられたアドレス設計が必要です。


4.OSPFのパケットフォーマット

4-1.OSPFパケットの種類

OSPFのパケットには次のような種類があります。
タイプパケットの種類
1Hello
2DD(Database Description)
3LSR(Link State Request)
4LSU(Link State Update)
5LSAck(Link State Acknowledgement)
これらOSPFパケットは、全て図13にあるようなOSPFヘッダを持っています。OSPFヘッダの中にあるタイプによって、 パケットの種別を識別することができます。

図13

---------------------------------------------------

(a)バージョン
OSPFのバージョンです。現在のOSPFバージョンは2です。
(b)タイプ
表に示したOSPFパケットのタイプを示します。
(c)パケット長
ヘッダも含めた、OSPFパケットの長さをバイト単位で表した値が入ります。
(d)ルータID
OSPFルータのルータIDが格納されます。
(e)エリアID
パケットが生成されたエリアのエリア番号です。バーチャルリンク上にOSPFパケットが送られる場合には、 エリアIDは0、つまりバックボーンエリアのエリア番号です。これは、バーチャルリンクはバックボーンエリアの一部として 考えられているためです。
(f)チェックサム
エラーチェックのためのチェックサム計算に用います。
(g)認証タイプ
OSPFの認証のタイプを示します。この認証タイプフィールドの取りうる値は、次の通りです。
認証タイプの値認証の種類
0認証無し
1クリアテキスト認証
2MD5による認証
(h)認証データ
認証タイプが0のときには、認証を行わないためこのフィールドには意味がありません。認証タイプが1のときには、 認証パスワードが記述されます。認証タイプが2のときは、図14に示す情報が入ります。

図14
認証データ長
パケットのあとに付けられるメッセージダイジェストの長さを表す。
キーID
メッセージダイジェストを作成するためのキーの番号。
暗号シーケンス
暗号化されたシーケンス番号。
各OSPFパケットは、この共通のOSPFヘッダのあとにパケットタイプごとの個別のデータが付加されています。このあと、 個別のOSPFパケットタイプごとのフォーマットを見ていくことにします。
---------------------------------------------------

4-2.Helloパケット

Helloパケットは、OSPFにおいてネイバーの発見、アジャセンシーの確立と維持を行うという非常に重要な役割を 持っています。Helloパケットのフォーマットは、図15の通りです。

図15

---------------------------------------------------

(a)ネットワークマスク
Helloパケットが送信されたインタフェースのサブネットマスクです。もし受信したHelloパケットのネットワークマスクと インタフェースのサブネットマスクが一致しなければ、そのパケットは無視されます。Helloパケットは、同じ ネットワークでのみ交換されるためです。
(b)Hello間隔
Helloパケットが送信される間隔です。OSPFネットワークタイプ(ブロードキャストマルチアクセス、ポイントツーポイント、 NBMA)によってデフォルト値が異なっています。Hello間隔の値が一致しないとネイバーになることができません。
(c)オプション
オプションフィールドは、OSPFルータのさまざまな機能を表しています。このオプションフィールドは、Helloパケット、 DDパケット、LSAに全て共通しているので、あとでまとめて解説します。
(d)ルータプライオリティ
DR/BDRの選定に利用されるOSPFルータプライオリティです。この値が大きいルータほどDR/BDRの選定のときに優先されます。 もし、プライオリティが0であれば、DR/BDRになることができなくなります。
(e)Dead間隔
ルータがダウンしたと見なす間隔です。最後にHelloパケットを受信してから、Dead間隔の間に次のHelloパケットを受信 することができなければ、ネイバーのルータがダウンしたと見なされます。もし、Dead間隔の値がお互いに一致していなければ、 ネイバーになることができません。
(f)DRのIPアドレス
マルチアクセスネットワーク上のDRのインタフェースIPアドレスです。ルータIDではありません。DRが選定されて いなかったり、ポイントツーポイントネットワークであるなどDR/BDRの選定が行われない場合は、このフィールドは0.0.0.0 という値がセットされます。
(g)BDRのIPアドレス
マルチアクセスネットワーク上のBDRのインタフェースIPアドレスです。ルータIDではありません。DRが選定されて いなかったり、ポイントツーポイントネットワークであるなどDR/BDRの選定が行われない場合は、このフィールドは0.0.0.0 という値がセットされます。
(h)ネイバー
ルータが認識している全てのネイバーのルータIDがリストされています。ルータがHelloパケットをやり取りして、 このネイバーフィールドにお互いがリストされた状態が2WAY状態となります。
---------------------------------------------------

4-3.DDパケット

DDパケットは、アジャセンシーを確立する過程でOSPFルータがLSDBの同期を取るために利用されています。DDパケットの 中に記述されているLSAヘッダを比較してLSDBの同期が取れているのかどうかを確認します。もし、同期が取れていなければ、 不足しているLSAをLSRパケットで要求することになります。DDパケットのフォーマットは図16の通りです。

図16

---------------------------------------------------

(a)インタフェースMTU
インタフェースMTUは、DDパケットの送信ルータがフラグメントせずに送ることができる最大のIPパケットサイズです。 バーチャルリンク上でDDパケットがやり取りされる場合、インタフェースMTUフィールドは0x0000という値になります。
(b)オプション
オプションフィールドは、OSPFルータの様々な機能を表しています。このオプションフィールドは、Helloパケット、 DDパケット、LSAに全て共通しているので、あとでまとめて解説します。
オプションのあと5ビットは、0x0000で予約されています。
(c)Iビット
Iビットは、一連のDDパケットのうち、先頭のDDパケットの場合、1にセットされます。2番目以降のDDパケットは 0がセットされます。
(d)Mビット
Mビットは、DDパケットがまだ続いていることを示すためのビットです。まだあとにDDパケットが続くのであれば、 Mビットは1にセットされます。最後のDDパケットに対して、Mビットは0にセットされます。
(e)MSビット
MSビットは、DDパケット交換時のマスターとスレーブを表すためのビットです。ルータIDの高いルータがマスターとなり、 LSDBの同期を取ります。マスタールータはMSビットが1にセットされ、スレーブルータはMSビットが0にセットされます。
(f)DDシーケンス番号
LSDBの同期を取るときのシーケンス番号です。シーケンス番号は、マスタールータによって一意の値が決められ 同期のプロセスの中で増加していきます。
(g)LSAヘッダ
DDパケットを発信するルータの一部、もしくは全てのLSAヘッダが含まれています。
---------------------------------------------------

4-4.LSRパケット

LSDB同期時にDDパケットがやり取りされて、自分のLSDB上にないLSAや新しいLSAをLSRパケットによって、要求することが できます。
LSRパケットのフォーマットは図17の通りです。

図17

---------------------------------------------------

(a)リンクステートタイプ
ルータリンクやネットワークリンクなど、LSAのタイプを示すコードが記述されます。
(b)リンクステートID
リンクステートIDはリンクステートタイプによってその意味が変わってきます。
(c)アドバタイジングルータ
LSAを生成したルータのルータIDが記述されます。
---------------------------------------------------

4-5.LSUパケット

LSUパケットは、LSRで要求されたLSAを通知したり、ネットワークに何か変更が発生したときにその変更を通知するために 使われています。LSUパケットは1つ以上のLSAから構成されています。
LSUパケットのフォーマットは図18の通りです。

図18

---------------------------------------------------

(a)LSA数
LSUパケットに含まれているLSAの数が記述されます。1つのLSUパケットで運ぶことができるLSAの数は、 最大パケットサイズによって決まります。
(b)LSA
完全なLSAがそのあとに記述されます。
---------------------------------------------------

4-6.LSAckパケット

LSAckパケットは、LSAのやり取りを信頼性のあるものにするために利用されています。つまり、LSUパケットによって 通知されたLSAを正常に受信したことを相手に伝える目的で、LSAckパケットが出されています。
1つのLSAckパケットで複数のLSAの確認応答を行うため、OSPFヘッダのあとにLSAヘッダのみが記述されています。


5.LSAの詳細

5-1.LSAの種類

ここからは、LSUパケットに含まれる各LSAの詳細について見ていくことにします。
LSAにはいくつかの種類があり、それぞれ表現しているリンクステートが異なります。LSAの種類を次の表にまとめます。
LSAタイプLSA名説明
1ルータリンク 全てのOSPFルータが生成するリンクステート情報。リンクのタイプやIPアドレス、関連付けられるコストなどの情報が 記述されている。ルータリンクは、生成するルータが所属するエリア内のみにフラッディングされていく。
2ネットワークリンク マルチアクセスネットワークにおけるDRが生成するリンクステート情報。あるマルチアクセスネットワークに接続 されているルータがリストされている。ネットワークリンクは、該当するマルチアクセスネットワークが所属するエリア内 だけにフラッディングされる。
3、4集約リンク、ASBR集約リンク エリア境界ルータ(ABR)が生成する。タイプ3では、ローカルなエリア(ABRがバックボーンエリアに接続しているエリア) のネットワークの集約された情報が記述されている。タイプ3は、バックボーンエリアを介して、他のABRが自身の ローカルエリアにフラッディングする。タイプ4は、自律システム境界ルータ(ASBR)への接続性を通知するためのもの。 集約リンクは、トータリースタブエリアには流れない。
5自律システム外部リンク 自律システム境界ルータ(ASBR)によって生成される。ASBRによって、非OSPFドメインのネットワークをOSPFドメインに 再配送したときの非OSPFドメインに存在するネットワークについて記述されている。自律システム外部リンクは、スタブエリア、 トータリースタブエリア、NSSAには流れない。
6グループメンバシップ マルチキャストOSPF(MOSPF)ルータによってフラッディングされる。グループメンバシップリンクによって、マルチキャスト グループに対するメンバシップを通知する。
7NSSA NSSA内にいるASBRによって生成される。非OSPFドメインのネットワークをこのLSAでOSPFドメインに流すことができる。 しかし、NSSAは、NSSAないにしか流れない。他のエリアに流れるときには、ABRがタイプ5自律システム外部リンクに変換して、 バックボーンエリアにフラッディングする。

5-2.LSAヘッダ

どのLSAも共通のLSAヘッダを持っています。このLSAヘッダは、DDパケットやLSAckパケットに記述されているものです。
LSAヘッダのフォーマットは、図19の通りです。

図19

---------------------------------------------------

(a)エージ
エージフィールドには、LSAが生成されてからの経過時間が秒単位で記述されています。LSDB上にあるときも、 エージフィールドの値は順次増加していくことになります。
(b)オプション
HelloパケットやDDパケットとLSAに含まれるフィールドで、OSPFルータの様々な機能を示しています。
(c)タイプ
LSAの種類を示すコード化されたタイプ値が入ります。
(d)リンクステートID
リンクステートIDフィールドは、LSAタイプごとによって使い方が異なります。
(e)アドバタイジングルータ
LSAを生成したルータのルータIDです。
(f)シーケンス番号
LSAの情報の新しさを示すものです。シーケンス番号が大きいLSAほど新しいものであると判断されます。
(g)チェックサム
エージフィールドを除く、LSA全体に対するチェックサムです。エージフィールドは時間と共に増加していくので チェックサムに含めることができません。
(h)LSA長
LSAヘッダを含めたLSA全体の長さがバイト単位で記述されます。
---------------------------------------------------

5-3.ルータリンク

ルータリンクLSAはすべてのOSPFルータで生成されるものです。ルータリンクLSAには、ルータのOSPFが有効になっている インタフェースとインタフェースに関連するOSPFコストが書かれています。ルータリンクLSAは、生成されたエリア内に フラッディングされることになります。ルータリンクLSAのフォーマットは、図20のとおりです。

図20

---------------------------------------------------

(a)Vビット
生成したバーチャルリンクの終端のルータであれば1がセットされます。
(b)Eビット
生成したルータがASBRのとき1にセットされます。
(c)Bビット
生成したルータがABRのとき1にセットされます。
(d)リンク数
生成したルータが持っているリンク(インタフェース)の数が記述されます。
このあと続く「リンクID」〜「TOSメトリック」までが1セットになっています。ルータが持っているインタフェースごとに このセットが繰り返されます。
「リンクタイプ」によって「リンクID」「リンクデータ」の意味が異なるので、まずは「リンクタイプ」について見ていきます。 また、TOSに関連するフィールドについては、もうすでにほとんどサポートされていないので、詳細は省略します。
(e)リンクタイプ
リンクタイプは、そのリンクがどのような接続をしているのかを表現しています。リンクタイプの種類をリンクID、 リンクデータと一緒に次の表にまとめています。
リンクタイプ接続リンクIDの値リンクデータの値
1ポイントツーポイントネイバールータのルータID生成するルータのインタフェースIPアドレス
2トランジットネットワークDRのIPアドレス生成するルータのインタフェースIPアドレス
3スタブネットワークネットワークアドレスネットワークアドレス
4バーチャルリンクネイバールータのルータID生成するルータのMIB U ifIndex
(f)リンクID
リンクIDは、そのリンクが接続している相手を記述するものです。リンクタイプごとにリンクIDの意味が異なります。 リンクIDについて上の表でまとめています。
(g)リンクデータ
リンクデータもリンクタイプによって意味が異なります。リンクデータについても上の表でまとめています。
(h)メトリック
インタフェースのコストが記述されています。
---------------------------------------------------

5-4.ネットワークリンク

ネットワークリンクLSAはマルチアクセスネットワーク上のDRによって生成されるLSAです。ネットワークリンクLSAの中には、 マルチアクセスネットワークに接続されている全てのルータ(DRを含む)がリストされています。ルータリンクLSAと同様に ネットワークリンクLSAは生成されたエリア内にフラッディングされます。
ネットワークリンクLSAのフォーマットは図21のとおりです。

図21

---------------------------------------------------

(a)リンクステートID
ネットワークリンクLSAのリンクステートIDは、そのネットワークにおけるDRのインタフェースIPアドレスを 示しています。
(b)ネットワークマスク
ネットワーク上で利用されているサブネットマスクが記述されています。
(c)接続ルータ
このフィールドには、DRとアジャセンシーを確立した全てのルータのルータIDとDR自身のルータIDがリスト されています。
---------------------------------------------------

5-5.集約リンク、ASBR集約リンク

タイプ3集約リンクLSAとタイプ4ASBR集約リンクLSAは、同一のフォーマットを持っています。異なるのは、タイプと リンクステートIDだけです。ABRがこれら2つのLSAを生成します。集約リンクは、エリア外部のネットワークを通知します。 ASBR集約リンクは、エリア外部のASBRの存在を通知しています。集約リンク、ASBR集約リンクのフォーマットは図22の通りです。

図22

---------------------------------------------------

(a)リンクステートID
タイプ3のとき、通知されることになるネットワークのネットワークアドレスが記述されます。タイプ4のときには、 通知されることになるASBRのルータIDが記述されます。
(b)ネットワークマスク
タイプ3では、通知するネットワークのサブネットマスクです。タイプ4では意味がありませんので、このフィールドは0に セットされます。
タイプ3で、エリア内にデフォルトルートを通知するときには、リンクステートID、ネットワークマスクともに0.0.0.0という 値になります。
(c)メトリック
通知する宛先に対するOSPFコストが記述されます。ABRにおいて、このメトリックを決定することができます。
---------------------------------------------------

5-6.自律システム外部リンク

自律システム外部リンクLSAはASBRによって生成されます。これらのLSAは、OSPF自律システム外にあるネットワークを 通知するために利用されています。自律システム外部リンクは、スタブエリア(トータリースタブエリア、NSSAを含む)以外に フラッディングされます。
自律システム外部リンクのフォーマットは図23の通りです。

図23

---------------------------------------------------

(a)リンクステートID
自律システム外部リンクの場合、リンクステートIDは外部ネットワークのネットワークアドレスです。
(b)ネットワークマスク
通知する外部ネットワークのサブネットマスクが記述されます。
(c)Eビット
外部メトリックビットと呼ばれています。これは、通知する外部ルートのメトリック計算に関わります。 Eビットが1の時にはメトリックタイプはE2となり、Eビットが0の時にはメトリックタイプはE1です。
メトリックタイプの違いは、外部ルートがOSPFドメインを通過していくときにOSPFのコストが加算されていくかどうかの 違いです。メトリックタイプ2では、外部ルートのコストはASBRが決めたもので変わりません。メトリックタイプ1では、 外部ルートのコストは、ASBRが通知したコストにOSPFドメインのコストが加算されていきます。
(d)メトリック
ASBRがセットするメトリック値です。
(e)転送アドレス
通知したネットワーク宛のパケットを、どこに転送すればよいかを示しています。もし、このフィールドが0.0.0.0のときは、 自律システム外部リンクLSAを生成したASBRにパケットは転送されていきます。
(f)外部ルートタグ
外部ルートに付けられる任意のタグです。OSPFプロトコル自体は、このフィールドを使うことはありません。 ルーティングプロトコル間のリディストリビューションによって発生する可能性があるルーティングループを防ぐ目的などに 使われます。
---------------------------------------------------

5-7.NSSAリンク

NSSA内のASBRによって生成されるLSAです。転送アドレスフィールドを除き、NSSAリンクと自律システム外部リンクの フォーマットは同一です(図24)。NSSAリンクは、NSSAリンクが生成されたNSSAエリア内にのみフラッディングされます。

図24

---------------------------------------------------

転送アドレス
NSSAのASBRと非OSPFドメインの間のネットワークが内部ルートとして通知されていれば、そのネットワークの ネクストホップアドレスが入ります。もし、そのネットワークが内部ルートとして通知されていなければ、NSSAの ASBRのルータIDが入ります。
---------------------------------------------------

5-8.オプション

オプションフィールドは、Helloパケット、DDパケットと全てのLSAに含まれているフィールドです。オプションフィールドに よって、他のルータとオプションの機能をやり取りしています。オプションフィールドは1バイトのフィールドですが、 その内訳は図25の通りです。

図25

---------------------------------------------------

(a)
この部分は利用していません。通常は0がセットされています。
(b)DCビット
生成したルータが、「OSPFデマンドサーキット」をサポートしているかどうかを示します。
OSPFデマンドサーキットとは、ISDN経由でOSPFを動作させるときに利用します。
(c)EAビット
生成したルータが、外部属性LSAという特殊なLSAをサポートしているかどうかを示しています。
(d)N/Pビット
Nビットは、Helloパケットでのみ利用されています。Nビットが1にセットされていれば、そのルータはNSSA外部LSAを サポートしていることを示しています。Nビットが一致していなければ、アジャセンシーを確立することができなくなります。
Pビットは、NSSA外部LSAヘッダでのみ利用されています。このビットは、NSSAのABRがタイプ7からタイプ5に変換することを 示しています。
(e)MCビット
生成したルータが、マルチキャストパケットを転送できることを示しています。MOSPF(Multicast OSPF)でのみ 利用されるビットです。
(f)Eビット
Eビットは、自律システム外部リンクLSAをサポートするかどうかを示します。Eビットが1であれば、自律システム外部リンクを サポートしています。つまり、スタブエリア以外であれば、Eビットは1にセットされています。
(g)Tビット
OSPFルータがTOSをサポートしているかどうかを示しています。
---------------------------------------------------





参考文献は後ほど記載・・・



戻る