1.はじめに
前回はルーティングについてざっくり復習しました。
今回は続きとして、ダイナミックルーティングで使用するルーティングプロトコルについてまとめていきます。
2.ルーティングプロトコルとは
ルータ同士が情報を交換し合う際に使用するプロトコルです。
ルータは、お互いに情報を交換し合う事で、最適な経路を選択し、自身の保有しているルーティングテーブルを最新の状態に保つことができます。
ルーティングプロトコルはいくつかの種類がありますが、
本ページでは代表的なプロトコルをピックアップして、それぞれの特徴を見ていきたいと思います。
3.IGPとEGP
ルーティングプロトコルは、まずIGPとEGPの大きな二つの枠に分類できます。
二つの違いは、ASの内部で使用するプロトコルか、ASの外部で他のASとのやり取りを行う際に使用するプロトコルか、という点です。
AS,IGP,EGPに関する説明は以下に記載します。
【3-1】AS(Autonomous System)
・AS
ASはネットワークの構成単位です。
企業ネットワークなど、同一のルーティングポリシーで管理されているネットワークの集合体が一つのASとなります。(インターネット内に存在する自治体みたいなイメージです)
私たちの使用しているPCやデバイスは全て、どれかしらのASに所属するネットワークに接続していることになります。
・ASN(Autonomous System Number)
各ASには一意の識別番号(ASN)が割り当てられており、インターネット上で独自のネットワークとして認識されます。
AS番号は、グローバルAS番号とプライベートAS番号の大きく2つに分類することができます。
ASの外部とやり取りをする際は、この番号を使用して他のASと経路情報を交換します。
(ASNはASの外部との通信を行う場合でのみ必要となります。)
【3-2】IGP(Interior Gateway Protocol)
各AS内で経路情報を交換するために使用するプロトコルです。
IGPには、RIP/OSPF/EIGRPなどの種類があります。
RIPはルータへの負荷が少なく、設定も簡単ですが、大規模で複雑なネットワーク環境には適していません。
OSPFは複雑な処理を行うため、ルータへの負荷は大きいですが、大規模環境や経路上の障害発生時も素早く対応する事が出来ます。
EIGRPは上記二つのいいとこ取りという感じですが、Ciscoが独自に開発したプロトコルの為、Cisco製品でのみ使用が可能です。
【3-3】EGP(Exterior Gateway Protocol)
自ASと他のASとのやり取りを行う際に、異なるAS間で経路情報を交換するために使用するプロトコルです。
その中でも、主流のプロトコルとしてBGPがあります。
4.IGPに分類されるルーティングプロトコル
【4-1】RIP(Routing Information Protocol)
・概要
経路を選択する際の計算量が少なくて単純なプロトコルですので、スペックの低いルータなどでも使用できて、管理や設定が容易です。
また、ルータのCPUやメモリの負荷は少なめです。
・経路の選択方法
RIPはディスタンスベクタ型のアルゴリズム(処理方法)を使用します。
隣接するルータと30秒間隔で経路情報を交換し合い、最小の「ホップ数」(宛先に辿り着くまでに経由するルータの数)となる経路を最適経路として選択します。
RIPの「メトリック値」=「ホップ数」となります。
隣接するルータ間で経路情報を交換し合うため、離れているルータまで情報が伝わるのが遅く、大規模環境での使用を得意としていません。
また、RIPがカウントする上限ホップ数は15ですので、宛先までに経由するルータの個数が16を超える場合は到達不能と判断されてしまいます。
~備考~
ルーターの経由数のみで最適経路を判断するという性質上、各回線の速度を考慮しないため、結果として通信速度の遅い経路を選択してしまうことがあります。
(以下の図では、赤線の経路を最適経路とします)
・ルーティングループについて
RIPを使用する上で発生する可能性のある問題がルーティングループです。
経路情報を交換するタイミングで障害が発生すると、ルーティングループ(隣接する機器同士で転送ループが発生し、ホップ数のカウント=メトリックが上がり続ける)が発生してしまいます。
メトリックが上限である16に到達した時点で、到達不能としてルーティングテーブルから破棄されますが、情報交換が30秒間隔の為、メトリックが上限に到達するまでに数分間かかります。
なお、ルーティングループを防ぐためには以下の機能を使用します。
(デフォルトで有効になっているらしい)
①スプリットホライズン
②ルートポイズニング
③ポイズンリバース
④ホールドダウンタイマー
⑤トリガードアップデート
【4-2】OSPF(Open Shortest Path First)
・概要
仕様や処理が複雑なため、ルータへの負荷が大きく実装も難しいが、ネットワークの変更や経路上の障害にも素早く柔軟に対応でき、負荷分散も可能です。
その為、中~大規模環境向けのルーティングプロトコルと言えます。
・経路情報の取得方法
OSPFはリンクステート型のアルゴリズムを使用しています。
ルータ同士でLSA(Link State Advertisement)という情報を交換し、ネットワーク内の情報を集めてLSDB(Link State Database)を作成します。
LSAには、OSPFエリア(LSAを交換する範囲を示す論理グループ)内にいるルータの情報や「コスト(インターフェイスの帯域幅によって算出される値)」情報が含まれており、
OSPFエリア内の各ルータは、それらの情報を基にルーティングテーブルを作成します。
なお、OSPFの「メトリック値」=「コスト」となります。
情報をルータ同士で交換するには、隣接ルータとネイバー関係を確立させる必要がありますが、そのためには隣接ルータと以下の設定値を完全一致させる必要があります。
①エリアID
②ネットワークマスク
③Hello/Deadインターバル
④スタブエリアフラグ(オプション)
⑤認証設定の値(認証が有効な場合)
⑥隣接するI/FのMTUサイズ
~備考~
OSPFエリア内の全てのルータがネットワーク内の情報に関するデータベース(LSDB)を保持しており、ネットワークに変更があった際にLSAを送信して情報の差分を埋める方式(トリガーアップデート)を採用しています。
その為、全てのルータが速やかにネットワーク状況の変更を認識し、最新の経路情報を保持する事ができます。(コンバージェンス)
コンバージェンスが高速なので、RIPのように誤ったルーティングテーブルを保持している事によってルーティングループが発生する、というような事はほとんど発生しません。
5.EGPに分類されるルーティングプロトコル
【5-1】BGP(Border Gateway Protocol )
・概要
BGPは、組織間通信などの、異なるAS間を接続する際に使用され、
「eBGP(exterior BGP)」と「iBGP(interior BGP)」で構成されています。
eBGP:異なるAS間を結ぶ境界上のルータ同士がAS間経路情報(自ASが他のどのASと繋がっているか等)を交換します。
iBGP:AS内のルータ間でAS間経路情報を交換します。
・経路情報の取得方法
BGPはパスベクタ型のアルゴリズムを使用しています。
隣接するAS間で経路情報を交換し合い、AS内の経路情報とパスアストリビュート(各ASの管理者が設定する事のできる経路の優先度)を基に最適経路を選択します。
パスアストリビュートが設定されていないデフォルトの状態では、宛先ネットワークまでに経由するASが少ない経路を最適経路として選択します。
なお、BGPの「メトリック値」=「パスアトリビュート」となります。