OSPFとは、自動でルーティングを決定するプロトコルの一つで、多くの企業内ネットワークで用いられているプロトコルです。しかし、このOSPFはリンクステート型やディスタンスベクタ、LSA、コストなどなど関連する単語が多く、初心者にはわかりづらことも多いかと思います。
そこで、この記事では、OSPFの特徴、仕組みを初心者の方にもわかりやすく解説します。
OSPFとは?
OSPFとは、一言で言うと、リンクステート型のダイナミックルーティングプロトコルです。
といってもなんじゃそりゃ!?という感じだと思うので、順を追って説明します。
まず、ルーティングプロトコルと呼ばれる通信のルートを決定する方法には、静的(スタティック)と呼ばれる人間が手動でルートを登録する方法と、動的(ダイナミック)と呼ばれるルータ等の機器が基準をもとに自動でルートを決定する方法の2種類があります。
このうち動的(ダイナミック)にOSPFはあたるのですが、このダイナミックルーティングプロトコルにも、大きく分けて「IGP」と「EGP」の2種類があります。
この2種類の違いは、AS内部のルーティングか、AS外部のルーティングか、ということです。
ASとは、「Autonomous System」の略称で、企業内ネットワークなど一つの大きなネットワークの固まりを指します。それぞれのネットワークの固まりにはAS番号と呼ばれる番号が付けられ、識別します。
そして、このAS内部のルーティングであるIGPの中にも、ディスタンスベクター型とリンクステート型で2種類あります。
■ルーティングプロトコルの種類
ルーティング | 静的ルーティング | デフォルトルート | ||
動的ルーティング | IGP | ディスタンスベクター型 | RIP | |
リンクステート型 | OSPF | |||
EGP | BGP |
ちなみにEGPの一種であるBGPについてはこちらの記事で詳しく解説しているので、合わせて読んでみてください。
ディスタンスベクタ型とリンクステート型の違いは?
ディスタンスベクタ型とは?
まず、ディスタンスベクタ型は、「ディスタンス=距離」という名の通り、ルータが宛先機器までの距離情報を交換し、距離が最短のルートを選ぶというシンプルな仕組みです。
ルータの負荷が軽いのはメリットですが、距離情報を毎回ブルードキャストで送信するためトラフィックが発生しやすく、機器の台数の多い大規模ネットワークにはあまり向きません。
ディスタンスベクタの代表的なプロトコルには、RIPv2やEIGRPなどがあります。
リンクステート型とは?
次に、今回のOSPFも含むリンクステートです。リンクステートは、隣接するルータのインタフェース情報を送信し、そのデータベースを元に、最短経路を決定する方法です。
「AルータはBルータと隣接していて、距離は3km」「BルータはCルータと隣接していて、距離は5km」と言った情報を集め、「じゃあAルータからCルータの最短ルートはBルータを経由するルートだ」といったような流れでルートを決定していきます。
ディスタンスベクタより計算方法が複雑なのでルータの負荷は大きいものの、送信する情報自体はディスタンスベクタよりも少ないです。そしてこのリンクステートの代表的なプロトコルは、今回の記事のOSPFやIS-ISが挙げられます。
OSPFの特徴とは?
OSPFとは何かについて、ここまで少し細分化して説明しましたが、次は具体的にどんな特徴があるのか解説していきます。
①リンクステート型
一つ目は、リンクステート型のプロトコルだということです。先ほども説明しましたが、リンクステート型は、隣接するルータの情報を送信し、そのデータベースを元に、最短経路を決定します。
②エリアの概念
二つ目は、エリアという概念があることです。OSPFでは、それぞれ隣接するルータのインターフェイス情報を送り合うため、ルータの台数が多いと、その分情報も多くなります。そこで、ネットワークをエリアと呼ばれる単位に分け、エリア間はルート情報だけの交換にすることで、階層的に情報を管理することができるようになります。
③トラフィック量の軽減
三つ目が、トラフィック量の軽減です。
ディスタンスベクタ型は定期的に距離情報をブロードキャストで送信するのに対して、OSPFは普段は生存確認の応答だけで、ネットワーク機器の追加や故障時など、何か変化がある時のみ情報のアップデートを行うため、トラフィック量が軽減されます。
④コンバージョンが速い
4つ目が、コンバージョンが速いことです。3つ目のトラフィック量の軽減に付随しますが、変化がある際にその部分だけアップデートを行うため、ディスタンスベクタに比べ扱うデータ量が少なく、コンバージョンが速くなります。
OSPFの構成要素は?
代表ルータ(DR)とバックアップ代表ルータ(BDR)とは?
先ほど説明した通り、それぞれのルータは隣接するルータの情報を送りますが、その情報の送信先はすべてのルータではなく、DR(Designated router)と呼ばれる代表ルータに情報を送る仕組みになっています。また、そのDRルータが故障した時用に、バックアップとしてBDR(Backup Designated Router)も登録されます。ちなみに、DRにもBDRにも選ばれなかった情報を送るのみのルータは、DROTHERと言います。
このDRとBDRは、「OSPFプライオリティ値」が高いものが選ばれます。このプライオリティ値は、0~255の数字で設定され、プライオリティ値が0の場合は、DR、BDRには選出されません。もしすべてのルータのプライオリティ値が同じ場合は、ROUTERIDが最大のものが選ばれます。
LSAとLSDBとは?
LSAは「Link State Advertisement」、LSDBは「Link State Data Base」の略称で、一言で言うと、LSAは「DROTHERが送る隣接ルータの情報」のこと、LSDBは「DRに貯められる、各ルータから送られてきたLSAを集めたデータベース」のことです。
なお、このLSDBをもとに作成されるネットワークの全体図のことを、「トポロジマップ」と言います。
コスト値とは?
LSAによって各ルータの隣接情報が集められたのち、最適なルートを決定するための基準として用いられるのが、コスト値です。OSPFでは、各インターフェイスにコスト値が設定されます。
コスト値は、「100Mbps(108bps)÷リンクの帯域幅」で計算され、自動で設定されます。他のルーティングプロトコルでは、単純なホップ数(経由するルータの数)などを基準とするのに対し、コスト値は帯域幅を考慮することが特徴です。帯域幅が大きいほどコストが低くなるため、単純な距離だけでなく、帯域も踏まえた最短のルートを選択することができます。
SPFツリーとは?
上記のLSDBから作成されたトポロジマップをもとに、SPFツリーと呼ばれる階層的なマップを作成します。トポロジマップは集めた情報を単純に構成図化したようなもので、SPFツリーは各ルータを起点とした最短ルートを図解したものです。
このSPFツリーの作成にはSPFアルゴリズムが使用され、コスト値を基準に最短ルートを判断します。
OSPFの処理の流れとは?
① Helloパケットによるネイバー関係の確立
OSPFでは、隣接ルータとHelloパケットを交換することでネイバー関係を確立します。
このHelloパケットはマルチキャストで定期的に送信され、それぞれのルータの生存確認として使われていて、このHelloパケットが届かないと、そのルータがダウンしたと判断します。
②DR、BDRの決定
先ほど構成要素のところで説明した通り、OSPFでは、OSPFプライオリティ値を基準に、DRとBDRとなるルータを決定します。DR、BDRはかくネットワークごとに選出され、そのルータがダウンするまでは基本的に変更しません。このDR、BDRを決定することで、情報を送り合う隣接関係を形成します。
③LSAの交換
隣接関係の確立後、各ルータは隣接するルータのインターフェイス情報(LSA)をDR、BDR宛てに送信します。各ルータからLSAを受け取ったDRは、LSDB、トポロジマップを作成します。
④SPFツリー、ルーティングテーブルの作成
LSAを交換し、各ルータの情報が集まったら、DR、BDRはSPFツリーと呼ばれる各ルータを起点とした最短ルートを階層的に示したSPFツリーを作成します。
そして、このSPFツリーをもとに、「AルータはBルータ経由ルート」、「CルータはDルータ経由してAルータに行くルート」、といったルーティングテーブルを作成します。ダイナミックルーティングプロトコルとしての機能としては、このルーティングテーブルの作成までが一連の流れになります。
おわりに
いかがだったでしょうか。少しややこしい仕組みなので解説も長くなってしまいましたが、このOSPFは多くの企業内ネットワークでも用いられているプロトコルなので、しっかり理解しておきましょう。
コメント