] > Routing(3)

第 6 回 ルーティング(3)

本日の内容


このドキュメントは http://edu.net.c.dendai.ac.jp/ 上で公開されています。

画像を含めて印刷したい場合は Java の機能を切って下さい。

6-1. OSPF

ここでは、ダイナミックルーティングの一方式であるリンクステートアルゴリズ ムを採用している OSPF について解説します。 OSPF(Open Shortest Path First Version 2 RFC 2328)はリンクステート型のルーティン グプロトコルです。

OSPFの特徴

  1. IGP
  2. ネットワークのサイズの制限がない
  3. メトリックはホップ数ではなく、通信コストを表せる。しかも設定範囲が 広い(32bit の整数)
  4. 対外線のメトリックの計算も(1)ローカルなメトリックより優先させるの と、 (2)ローカルなメトリックに足し込むのの二種類の指定ができる
  5. サブネットマスクを伝搬するので VLSM(Valuable Length Subnet Mask)に 対応している。
  6. エリアによる階層ルーティングができ、各エリアではルーティング情報を 減らすことが可能
  7. セキュリティの設定が可能
  8. 一対一通信では IP アドレスがなくても設定が可能

扱うネットワーク

AS と IGP, EGP の関係 OSPF は IGP、 つまり一つのネットワーク管理下にあるネットワークで使用し ます。 独立した一つの管理ネットワークを自律システム(Autonomous System AS)と呼 ばれます。 この AS という言葉を使うと、IGP は AS 内ルーティングプロトコル、 EGP は AS 間ルーティングプロトコルと言うことができます。 AS は通常はプロバイダーなど大きなネットワークになりますが、東京電機大 は一つの AS になっています(AS番号 17943)。

OSPF で扱えるネットワークの形態は次の 4 つです。

Point-to-Point(点対点)ネットワーク
ルータ同士を直接電話回線などのシリアル接続などで接続したもの。イン ターフェイスと相手のルータが対応するため、 IP アドレスをつける必要はあ りません。
ブロードキャストネットワーク
一つのネットワークに 3 台以上のルータが接続できるネットワークで、 ブロードキャストの機能を備えているネットワーク。 Ethernet はブロードキャストネットワークです。
非ブロードキャストネットワーク
一つのネットワークに 3 台以上のルータが接続できるが、ブロードキャスト の機能がないネットワーク。 これを OSPF が取り扱うのに二つのモードがあります。 一つは NBMA(Non Broadcast Multi Access)でこれは OSPF がこのネットワー ク上でブロードキャストネットワークをシミュレートします。 もう一つは Point-to-Multipoint ネットワークで、これは Point-to-Point ネットワークの集まりとして扱います。

OSPFのプロトコル

  1. 各ルータは Hello プロトコルで隣接ルータの情報を得る
  2. 代表ルータ ローカルなネットワークごとに代表ルータを決定する
  3. ローカルなネットワーク内で代表ルータへの通信経路 adjacency を決定する
  4. 各代表ルータは AS 内に向けてリンクステート広告 (LSA)を行う
  5. すべてのルータは adjacency を介してリンクステート広告を受けとり、 リンクステートデータベースを作る
  6. リンクステートデータベースから AS のネットワーク全体を把握し、ダイ クストラ法により最短経路を求める
  7. 最短経路をルーティングテーブルとする

一旦リンクステートデータベースができた後は定期的な Hello を流すだけな ので通常のトラフィックは少ない。 また、障害が発生した際も、障害を発見したルータ自ら変更部分の LSA を流 すか、あるいは障害を他のルータが Hello などで検知した後に変更部分の LSA が一回流れるだけなので、障害時の対応は即座に行われる。

リンクステート広告

OSPF ではまず、 Hello プロトコルにより Neighbor と呼ばれる隣接ルー タを探します。 そして、 Neighbor が決まったところでネットワーク毎にDisignated(代 表)ルータ を決めます。 そして、リンクステート広告を行います。

R12 と N9 周辺

ネットワーク例

ルータの周りの接続状況は、各ルータが自分がどのネットワークへ接続してい るかをメトリックを添えてマルチキャスト、または、 adjacent に従って広告 します。 ネットワークがそのルータと接続しているかは代表ルータが広告します。 ネットワークからルータへはメトリック 0 で送ります。

Linkstate Database

リンクステートデータベースとはネットワークとルータの接続情報のデータベー スです。 これは LSA を集めたもので、ネットワークの接続情報の有向グラフを表現し ます。 グラフの頂点になるのはルータとネットワークです。 ルータ同士が直接 Point-to-Point ネットワークにより接続している時、ルー タ同士を相互に辺で結びます。 ネットワークに対してルータがインターフェイスを持つ時、ルータからネット ワークへ有向辺がひかれます。 ネットワークからルータへ有向辺が引かれるかどうかはネットワークの種類に よります。 ネットワークがそのネットワークを通過するトラフィックを扱うか否かで、ト ランジットネットワーク、スタブネットワークに分けます。 そして、トランジットネットワークのみ、ルータへ辺を引きます。 また、ルータからネットワークへは 32bit の整数でメトリックを設定します。

すべてのルータが通信により同じリンクステートデータベースを持ちます。 これは、各要素にメトリックが入った隣接行列で表現します。 なお、ネットワークからルータへの辺のメトリックは0 とします。 次のネットワークの例に対して、隣接行列は次のようになります。

ネットワーク例
RT1 RT2 RT3 RT4 RT5 RT6 RT7 RT8 RT9 RT10 RT11 RT12 N3 N6 N8 N9
RT1 0
RT2 0
RT3 6 0
RT4 8 0
RT5 866
RT6 875
RT7 6 0
RT8 0
RT9 0
RT10 7 00
RT11 000
RT12 00
N1 3
N2 3
N3 1111
N4 2
N6 111
N7 4
N8 32
N9 111
N10 2
N11 3
N12 82
N13 8
N14 8
N15 9
H1 10

このリンクステートデータベースに対して、各ルータはダイクストラ法により、 自ルータから最短経路木を計算します。 例えば、 RT6 が最短経路木を計算すると次のようになります。 但し、外部ネットワークである N12 の取扱は次の節でしますので、ここでは二つ経路 が書かれてます。

ダイクストラ法

  1. すべての頂点への距離を ∞ とし、フラグを off にします。
  2. 出発地点のルータを距離を 0 とします。
  3. 以下をフラグが off になっている頂点がなくなるまで繰り返します。]
    1. フラグが off になっていて最も距離の近い頂点を選びます。
    2. その頂点のフラグを on にします。
    3. その頂点の隣接している頂点に対して、 距離を計算し、もしより近い値になったら新しい距離とします。
最短経路木

これをもとにルーティングテーブルを計算すると次のようになります。

宛先転送先メトリック
N1RT310
N2RT310
N3RT37
N4RT38
Ib*7
IaRT1012
N6RT108
N7RT1012
N8RT1010
N9RT1011
N10RT1013
N11RT1014
H1RT1021
RT5RT56
RT7RT108

外部ネットワークのメトリック

外部メトリックの計算法 外部ネットワークへのメトリックを処理するのに、二種類の方法が選べます。

Type 1
外部ネットワークのメトリックを内部ネットワークのメトリックと同様に 扱います。 つまり最短経路を計算する対象とします。
Type 2
外部ネットワークの選択では、内部ネットワークのメトリックは無視して、 外部ネットワークメトリックだけで考えます。

エリア

エリア分割 ルーティングを簡単にし、ルータやネットワークの負荷を減らすために、 AS をエリアに分割することができます。 エリアには 32 bit のエリア番号が付きます。 エリア 0 はバックボーンと呼ばれます。 そして、それ以外のエリアはすべてバックボーンに接続します。 これはスターグラフという形になります。 バックボーンが中心部のハブとなり、他のエリアはスポークになります。 このようにすると、通常のエリア内のルータはエリア内だけは、リンクステー トデータベースを作りルーティングテーブルを計算しますが、 他のエリアへは基本的にはバックボーンへと送ります。 つまり、他のエリアの情報はエリア 0 で入ってくる外部ネットワークの情報 を Type 1 で計算したようになります。 その結果、エリア外のリンクステート情報を扱う必要がなくなりますので、効 率が上がります。

このとき、バックボーンのルータは、バックボーン内のルータと、各エリアか らのネットワークの情報を元にルーティングを計算します。 別エリアのリンクステート広告は受けとらないので、負荷は減りますが、すべ てのネットワークに対してどのエリアに含まれているかの情報は受けとります。

バックボーンと他のエリアにまたがっているルータ(エリアボーダルータ)は、 バックボーンと他のエリアの両方のルーティングを計算する必要があります。 そして、バックボーンには他のエリアにあるネットワークへのメトリックの情 報を、他のエリアにはバックボーンから得られるすべてのネットワークへのメ トリックの情報をそれぞれ流します。

なお、このエリアはすべてバックボーンと接してなければならないという原則 を破るためにバーチャルリンクという設定があります。 これは特定のルータに対してバックボーンからのスタティックルーティングを 設定することにより、そのルータもバックボーンのルータとするものです。 これにより、バックボーンに接していないエリアを作ることができます。 またさらに、バックボーンでないエリア同士が接している時、通常はバックボー ンを介さないと通信ができませんが、その接しているルータにバーチャルリン クを張ることでそのルータを介して通信をすることができます。

エリア分割の例

エリア分割の例

スタブエリア

バックボーンと一箇所でしか接していないエリアを スタブエリア と呼びます。 このスタブエリアは他のエリアのネットワーク情報の代わりに、エリアボーダ ルータへデフォルトを指定するだけでルーティングテーブルが完成しますので、 ルータの計算が楽になります。

その他

RIP は UDP の 520 番ポートを使用しますが、 OSPF は TCP や UDP とは別の 独自のプロトコルを IP の上で使用します。 また、 OSPF はマルチキャストを使用します。 但し、 TTL は 1 とするためルータを介した中継はしません。 使用するマルチキャストアドレスは全ルータに対しては 224.0.0.5 を、各 代表ルータには 224.0.0.6となります。


坂本直志 <sakamoto@c.dendai.ac.jp>
東京電機大学工学部情報通信工学科