OSPF(Open Shortest Path First)
ネスペ勉強のためにルーティングプロトコルの一種であるOSPFについて調べた内容を書いてみる。内容を読むだけではなく書くことで覚えるのを目的とする。
OSPFとは
OSPF(Open Shortest Path First)はリンクステート型のルーティングプロトコルの一種となっている。ルーティングプロトコルはIGP(Interior Gateway Protocol)とEGP(Exteriror Gateway Protocol)の二つに大きく分かれるが、OSPFはIGPの方に属している。IGPはAS(自律システム)内のルーティングに用いられるプロトコルで、対照的にEGPはAS間でのルーティングプロトコルとなる。
上記で色々用語が出てきたので、それぞれについて更に調べていく。
リンクステート型
そもそもリンクステートとはネットワークの接続状況のことで、OSPFは接続されている回線の帯域幅や接続状況などを交換して、それをもとに各ルータがルーティングテーブルを作成する。各ルータがネットワークのトポロジ情報を持っているため全体の構造を把握しつつ最適なルートを選ぶことができるようになっている。
これをリンクステート型のルーティングプロトコルといい、対照的にネットワークのトポロジ情報などを持たず距離(ホップ数)のみの情報でルーティングテーブルを作成するものをディスタンスベクタ型という。
IGP/EGPとAS
IGPはAS内でのルーティングプロトコル、EGPはAS間のルーティングプロトコルのことを言い、OSPFはIGPが該当する。ASはAutonomous System(自律システム)のことをいい、これは同一の管理者や経路制御ポリシーを持つネットワークとなっている。例としては企業、独立機関、学校などがあげられ、それらが接続されるような広域イーサネット、インターネットなどはEGPによるルーティングが行われる。

OSPFの強み
1. 接続情報を利用した最適な経路選択
OSPFは前述の通りリンクステート型のルーティングプロトコルとなっているため、ネットワークのトポロジ情報や接続情報などを加味して最適となる経路を選択することができる。比較対象としてRIPを挙げると、単純なホップ数では経路Aの方が適しているが、実は経路Bは帯域幅が広く高速に通信できるといった場合では、RIPは経路Aを選択する。しかしOSPFは後者の経路Bを選択することができる。
2. エリアによる効率的な情報交換
OSPFではエリアと呼ばれる概念があり、ネットワークをいくつかのまとまりに分けることができる。これにより、大規模なネットワークの場合でもトポロジ情報が全てのルータへ共有されずに、エリア内の必要な情報のみが伝送される。
3. 負荷分散が可能(冗長性も)
OSPFはルーティングテーブルに同じコストの経路を複数載せることができるため、ルータはラウンドロビンなどの方式で負荷を分散することができる。また、同一のコストのものを経路情報として載せられるので、冗長性を確保することもできる。
OSPFの仕組み
OSPFは以下のような仕組みで動作する。
1. 隣接ルータとの接続確認
まず隣接するルータとの接続をHelloパケットにより確認する。このパケットは定期的に送られており、一定時間送信が停止するとその経路に障害が起きたと判断するのにも利用される。
2. リンクステート情報の交換
隣接ルータとの接続が確立されるとリンクステート情報の交換を行う。このリンクステート情報をLSAといい、LSAにはLSAタイプ1からタイプ11までの種類がある。それらにはルータID、リンクの情報(数、IPなど)、経路情報、代表ルータの情報などが含まれる。
3. データベースの構築
交換したLSAをもとに、リンクステートデータベース(LSDB)を構築する。これは交換した各ルータのLSAを保存しておく場所で、トポロジテーブルとも呼ばれる。このデータベースをもとにSPFツリーという自身のルータを起点としたネットワーク構成図を自動的に作成する。
4. ルーティングテーブルの生成
SPFツリーなどから最短経路を作成し、それをルーティングテーブルに落とし込んでいく。このとき、同コストの経路が複数見つかった場合はそれらをテーブルに書き込むことで負荷分散ができたり冗長性を確保出来たりする。
