はじめに:
OSPF(Open Shortest Path First)は、小規模から大規模ネットワーク向けのリンクステート型ルーティングプロトコルです。
IGPの一つで、AS内部での経路情報の交換に使用されます。
OSPF情報はIPパケットに含まれ、プロトコル番号89番を使用します。
RIPはルーティングテーブルの内容をブロードキャストすることで、ルーティング情報の伝搬を行うのに対して、
OSPFはルーティングテーブルに変更があった時のみ、ルートの伝搬をします。
ブロードキャストではなくマルチキャストでルートの伝搬を行います。
ルーティングテーブルに変更がある時だけルートの伝搬を行うので、無駄なトラフィックを防ぐことができます。
DRとBDR:
OSPFではルーティング情報を共有するために、隣接関係を結ぶ必要があります。
これをAdjacencyと言い、この隣接関係が確立されているとリンクステート情報を交換します。
しかしすべてのルータ間で隣接関係を結び、リンクステート情報を交換すると、オーバーヘッドがかなり増加します。
そこで、OSPFではDR、BDRを選定します。
DRはブロードキャストセグメント内の全てのルータと隣接関係を結びます。
セグメント内のDrotherは自分のリンクステート情報をDRに送ります。
もし、DRに何か障害が起こった時は、BDRがDRの役割を引き継ぐようになっています。
※DR:代表ルータ
※BDR:バックアップ代表ルータ
※Drother:DR、BDR以外のルータ
DRの選定方法:
最も高いPriority(優先度)のものがDR、2番目に高いものがBDRとなります。
Priorityは0~255まであります。
数値が高いほど優先順位は高くなります。
Priorityが0のものはDR、BDRになれないためDrotherとなります。
ルータPriorityでDR、BDRが選定ができない場合:
DR、BDRが選定できない場合(全てのOSPFのPriority値が同じ場合)はルータIDを使用します。
ルータIDの選定には順番があります。
1.router-idコマンドで設定したIPアドレス。
2.ループバックインターフェイス内で最も大きなIPアドレス。
3.物理・論理インターフェイス内で最も大きなIPアドレス。
※ルータIDは、OSPFが起動された時点で決定され、変更されません。
途中でIPアドレスを変更、追加したり"router-id"コマンドを使用してもルータIDは変わりません。
そのためルータIDを変更する場合、"clear ip ospf process"コマンドを使用する、もしくはルータを再起動しなければなりません。
OSPF-エリア:
OSPFは自律システムとエリアで構成されています。
自律システムとは共通のプロトコルを使用し、ルーティング情報を交換するルータのグループを指します。
各エリアはバックボーンと接続しなければならないので、エリア番号は必ず「エリア0」が必要になります。
規模が小さいネットワークではエリア0だけを使用するシングルエリアで構成しても大丈夫ですが、
規模が大きいネットワークでは複数のエリアを使用するマルチエリアの構成にするほうが良いです。
シングルエリアには、エリアは一つしかありません。
OSPFではバックボーンエリアが必要なのでエリア番号は必ず0になります。
ネットワーク数が多いとSPFツリーの計算時間がかかるのでエリアを使って、ネットワークを分割します。
複数のエリアを使う場合はマルチエリアと呼ばれます。
シングルエリアの設定:
上図はOSPFシングルエリアの設定方法です。
"router ospf"コマンドで設定を行います。
"router-id"コマンドでループバックアドレスの中のIPアドレスを選択します。
"network"コマンドでOSPFのネットワークの範囲を設定します。
OSPFのエリアの説明である通り、シングルエリにエリアは一つしかなくバックボーンが必要なので上図の設定ではすべて"area 0"としています。
"log-adjacency-changes"と言うコマンドがありますが、これはデフォルトで設定されているものです。
隣接関係にあるルータの変化(up,downなど)をログに出力させるコマンドです。
OSPFのルータのタイプ
マルチエリアの構成では、4種類のルータがあります。
・内部ルータ
すべてのインターフェースが同じエリアに所属しているルータのことです。
・バックボーンルータ
一つ以上のインターフェースがバックボーンエリアに接続しているルータのことです。
・ABR
Area Border Router、エリア境界ルータ。
複数のエリアに接続されたインターフェースを持つルータのことです。
エリアごとのLSDBを持っており、エリア間のルーティングを行います。
・ASBR
AS Boundary Router、AS境界ルータ。
OSPF以外のルーティングプロトコルを使用しているネットワークに接続しているインターフェースを持つルータのことです。
ASBRにルートを再配送することでOSPFを使用しているネットワークと別のネットワークが通信できるようになります。
マルチエリアでネットワークを構成する場合、基本はWANをエリア0とし、
必ずエリア0に隣接させて、エリア1,2,3と割り当てていきます。
マルチエリアでは、スタブエリア(stub),NSSA(nssa),完全スタブエリア(totally stub),完全スタブNSSA(totally nssa)を使用することでルート数を少なくすることができます。
スタブエリア : 無駄なLSAトラフィックを少なくする為のものです。
外部ネットワークがデフォルトルートとして通知されるエリアです。
スタブエリアではASBRは存在できません。また、バックボーンでも不可です。
完全スタブエリア : さらに無駄なLSAトラフィックを少なくする為のものです。
外部ネットワークと外部エリアの経路情報をデフォルトルートで通知されるエリアのことです。
NSSA : 外部のネットワークと接続できるようにしたスタブエリアのことです。
つまりスタブエリア内にASBRを設定できるようにしたものです。
完全スタブNSSA : NSSAよりも経路情報を簡単にしたものがトータリースタブNSSAです。
マルチエリアの設定:
シングルエリアと同様に"router ospf"コマンドで設定を行います。
同じく"network"コマンドでOSPFのネットワークの範囲を設定します。
"area"コマンドでどのエリアに所属しているかを指定します。
今回はエリア1をスタブエリアとしています。
"area"コマンドはエリア内のすべてのルータに設定しなければなりません。
これは"show ip route"コマンドを使って出した出力結果です。
OSPFの動作を確認するコマンドは他にもあります。
show ip ospf border-routers
show ip ospf database
show ip ospf interface
show ip ospf neighbor
show ip ospf virtual-links
IAというものがありますが、これがあることで同じASからのルート情報を受け取っていることがわかります。
Router1はABRなのでデフォルトルートになっています。
OSPFのメリット:
大きなネットワークになるにつれて、ルート数も多くなります。
するとルートの負荷も大きくんるので、ルート数を少なくして負荷を減らす必要があります。
その際にOSPFが役に立ちます。
ルートの負荷が少なくなることで、性能がそれほど高くないルータでも対応できるので、
安価なネットワーク構築ができるようにもなります。