$Id: howto-ospf.html,v 1.1.1.1 1999/10/26 17:19:15 sakane Exp $
%Hd: OSPF のついて
はじめに
rfc2178 は読んで無いのでズレたことを書いているかもしれません。
OSPF(Open Shotest Path First:RFC2178)とは?
o 配布情報の中に送信先とネットマスクを持っている。
∴ホストへの経路を扱える。
∴CIDR対応
o SPF経路伝搬型アルゴリズムを使用している。ベクトル距離型アルゴリズムよりも、拡張性がある。
o トポロジ変化を短時間で検出し、収束するための時間後に再計算を行なう。
∴ルータが落ちた事を検出し、別経路を計算する。
OSPF HELLO プロトコルを発生しなくなったことにより検知。
o ゲートウェイ間の通信は認証が行なわれる。
認証機構は各ゲートウェイ間で選択できる。
o サービス型経路制御(type of service routing)
TOSに対して独立した経路を設定できる。
∴IPヘッダの Destination と TOS を使い経路を決定する。
o 経路にコスト(unsigned short)を設定できる。
同一コストの経路が複数存在する場合、全ての経路に均等に分配する。
∴負荷分散
o 外部からの経路制御情報は、内部(AS)を透過的に通過する。
交換するメッセージには、経路の情報源や到達可能性について明記されている。
o ネットワークの集合をエリア(area)と呼ばれるグループに分割できる。
各エリアは自己完結しており、エリア内のトポロジは自由に変更できる。
∴経路制御情報の削減
o 仮想的なネットワークを記述できる。
o broadcast を最小化している。
designated gateway (designated router) の存在。
hardware broadcastが存在する場合には、その機能を使用。
なぜ OSPF か
o 従来の経路制御プロトコルであるRIPでは…
- HOPカウントを経路に持つ。∴拡張性がない?
- CIDRに対応できない。∴時代遅れ
- 保持している全ての情報を一定間隔で交換する。∴低容量回線に負荷がかかる。
- ある終点に対して経路を複数定義出来ない。∴融通が効かない。
- 認証機構が無い。∴誰でも経路情報を変更できる。
RIPとOSPFの使い分け
バックボーンに近いゲートウェイのみでOSPFを動かす。
リーフではRIPを使うという方法が取られることが多い。
基本的な用語
自律システム (Autonomous System)
共通の経路制御プロトコルを用いて経路情報を交換しているルータのグループ。
`AS' と略記される。
Interior Gateway Protocol
AS 内のルータが経路情報交換のために用いる経路制御プロトコル。
`IGP' と略記される。AS はそれぞれ単一の IGP を使用する。異なる AS では
異なる IGP が動作しているかもしれない。
ルータ ID
OSPF プロトコルを走らせている各ルータに割り当てられる 32bit の番号。
この番号によって AS 内のルータを一意に識別することができる。
ネットワーク
この文書では、IP のネットワーク、サブネット、スーパーネット全てを含む
ものを指す。1 つの物理的なネットワークに複数の IP ネットワーク番号、
IP サブネット番号を割り当てることも可能である。その場合、1 つの物理的な
ネットワークはそれぞれ独立した 2 つのネットワークであると見なされる。
ただし Point-to-Point の物理的なネットワークは例外で、ネットワーク番号が
幾つ割り当てられていても 1つのネットワークとして扱われる。
マルチアクセスネットワーク
3 つ以上のルータとアタッチすることが可能な物理的ネットワーク。このネット
ワーク上にあるルータは全て自分以外の相手と直接通信できる。すなわち、
マルチドロップネットワークは除外される。
neighboring ルータ
共通のネットワークにインタフェースを持っている 2 つのルータ。マルチ
アクセスネットワークでは、neighbor は OSPF の Hello プロトコルによって
動的に検出される。
ajacency
経路情報を交換するために選択される neighboring ルータの関係。全ての
neighboring ルータの組み合わせが ajacent になるわけではない。
link-state 広告
ルータ、もしくはネットワークのローカルな状態を記述したもの。ルータの
インタフェースの状態や、ajacency の情報が含まれる。各 link-state 広告は
経路制御ドメインに flood される。全てのルータ、ネットワークより収集
された link-state 広告は、OSPF プロトコルのトポロジカルなデータベースを
形成する。
Hello プロトコル
OSPF プロトコルの一部で、neighbor との関係を確立したり、維持したりする
ために用いられる。マルチアクセスネットワークでは、Hello プロトコルを
使って動的に neighboring ルータを発見することができる。
Designated ルータ
少なくとも 2 つのルータとアタッチしているマルチアクセスネットワークは
Designated ルータを持つ。Designatedルータはマルチアクセスネットワークの
link-state 広告を生成し、またプロトコルの動作において特別な責任を持つ。
Designated ルータの概念により、マルチアクセスネットワークで必要とされる
ajacency の数を減らすことができる。結果的に経路制御プロトコルの
トラフィック量とトポロジカルデータベースのサイズを小さくすることができる。
OSPFでのルータの分類
AS を OSPF エリアに分割する際、ルータはその機能に応じて、
以下の重複可能な4つのカテゴリに分割される。
Internal routers
同じエリアに属するネットワークに直接接続されているルータ。バックボーン
だけにしかインタフェースを持たないルータもこのカテゴリに属する。この
カテゴリのルータは基本的な経路制御アルゴリズムのコピーを 1 つ動作させる。
Area border routers
複数のエリアにアタッチしているルータ。Area border routersは基本的な
アルゴリズムのコピーをアタッチしているエリア毎、更にバックボーン用の
コピーの複数個を動作させる。Area border routersはアタッチしているエリアの
トポロジカル情報を要約し、バックボーンに配布する。
バックボーンはその情報を他のエリアに順次配布する。
Backbone routers
バックボーンにインタフェースを持つルータ。
2 つ以上のエリアにインタフェースを持つルータ (すなわちArea border routers)
全てと、全インタフェースがバックボーンに接続されているルータ(Internal routers)を含む。
AS boundary routers
他の AS に属するルータと経路制御情報を交換しているルータ。
このルータは AS 外への経路を持ち、AS 内にその経路が広告される。
各 AS boundary routers までのパスは AS 内の全ルータが知っている。
このカテゴリは先に分類されたカテゴリーとは独立したものである。
すなわち、AS boundary routers は Internal routes でも Area border routers で
あっても良い。また、バックボーンに関係していてもしていなくても良い。
ルータ起動時
経路制御プロトコルデータが初期化される。
低階層プロトコルからインターフェイスが functional になったことを知る。
OSPF Hello プロトコルを使用し、neighboring ルータを取得する。
Broadcast ネットワーク、Point-to-point ネットワークは、
multicast アドレス ALLSPFRouters に送信し、動的に検出する。
Non-broadcast ネットワークでは、予め設定(?)が必要。
neighbor から adjacency を形成する。
SP tree を作成する。
経路制御プロトコルパケット
IPプロトコル番号 89 を使用する。
タイプ パケット名 プロトコル関数
----------------------------------------------------------
1 Hello neighbor の検出、維持
2 Database Description データベースの内容の要約
3 Link State Request データベースのダウンロード
4 Link State Update データベースの更新
5 Link State Ack ack の flood
Hello パケットは neighbor なルータを発見し、それを維持するために使用される。
Hello パケット以外は adjacency にのみ送信される。
CISCO IOS11.2 でOSPFしてみる。
こっちを参照。