ルーティングプロトコル
ルーティングプロトコル(Routing Protocol)とは、ネットワーク上の任意のノード間の経路(ルート)選択のための情報を、ルータ同士がやり取りする通信プロトコルです。
スタティクルーティングとダイナミックルーティング
スタティックルーティングでは、経路情報を手動で設定します。長所は、情報交換のためのCPU処理やトラフィックがも発生しないことですが、短所は、ネットワークに規模に伴い管理の手間が膨大になることと、ネットワークが変更された場合に転送ができなくなることです。
ダイナミックルーティングでは、経路情報がルーティングプロトコルにより動的に学習されます。長所は、管理に要する手間が省けることと、常に適切な経路を選択することができることですが、短所は、経路情報の交換の度にCPU負荷やトラフィックが増加してしまうことです。
IGPとEGP
ルーティングプロトコルは、その適用範囲により2つに分けられます。ポイントはAS(Autonomous System、自律システム)という概念で、共通のポリシによって管理されているネットワークの集合体を指します。
- IGP(Interior Gateway Protocol):AS内の制御
- EGP(Exterior Gateway Protocol):AS間の制御
IGPとして使用されるプロトコルには、RIP(Routing Information Protocol)、OSPF(Open Shortest Path First)、IS-IS などがあります。RIP は、比較的小規模なネットワークに多く使用され、OSPF と IS-IS は、中規模以上のネットワークに多く使用されています。
EGPとして使用されるプロトコルには、BGP(Border Gateway Protocol)、EGP などがありますが、現在では BGP-4 が AS間ルーティングにおける標準となっています。
ルーティングアルゴリズム
ルーティングアルゴリズムとは、ルーティングテーブルの作り方で、ルーティングアルゴリズムの違いは収束時間や適用規模に関係します。また、メトリックとは宛先のネットワークまでの論理的な距離です。
項目 | ディスタンスベクタ型 | リンクステート型 | パスベクトル型 |
メトリック | ホップ数 | コスト | ASパス |
更新間隔 | 定期的 | 変更時 | 変更時 |
適用規模 | 小規模 | 中規模以上 | 大規模 |
IGP/EGP | IGP | EGP | |
例 | RIPv2 | OSPF | BGP |
RIP
RIPv2は、ルーティングテーブルそのものを定期的にやり取りすることで、ルーティングテーブルを更新します。動作はシンプルですが、ルーティングテーブルが大きくなるとその分帯域を消費し、収束にも時間が掛かるため、大規模な構成には向いていません。
ルーティングアルゴリズムはディスタンスベクタ型です。ディスタンスベクタ型は、ディスタンス(距離=ホップ数)とベクタ(方向=出力インタフェース)に基づいてルートを計算します。ホップ数は、宛先に行くまでに経由するルータの数で、ルータ数の少ないルートが選択されます。
メトリックに使用するホップ数は、宛先に行くまでに経由するルータの数です。例えば、途中の帯域が小さくても、ホップ数が少なければ最適ルートに選択されるという問題があります。尚、最大ホップは15となっており、これを超えた場合は到達不能と見なされます。
- ホールドタイム
経路情報のアップデートの最大期間(180秒)。この間に再受信されなかった経路情報はダウンしたとし、メトリックが16(到達不能)にセットされ消去プロセスに入る。 - ガベージコレクション
消去プロセスに入るとセットされるタイマ(120秒)。この間に新たに経路情報を受信した場合はタイマはクリアされるが、期間を過ぎるとこの経路情報は削除される。
OSPF
OSPFは、通常時にはサイズの小さな Helloパケットのみを送信し、相手が正常に動作しているどうかだけ確認するため、必要以上に帯域を消費しません。そのため、マルチベンダのネットワークで多く使用される傾向にあります。
ルーティングアルゴリズムはリンクステート型です。リンクステート型は、各ルータがリンクの状態や帯域、IPアドレスなどの情報を交換してリンクステートデータベース(LSDB)を作成し、それを基に最適なルートを計算します。
メトリックに使用するコストは、デフォルトで「100/帯域幅Mbps」で算出します。従って、帯域が大きいほどコストは小さくなり、それがルータを越える毎に加算されます。コストの小さいルートが最適ルートとして選択されます。
- リンクステート
ルータ間のリンクのコストや隣接するルータとの関係などを記述した情報。 - イコールコストマルティパス
コストが最小となるルートが複数ある場合は、それらを使って負荷分散する機能。
BGP
BGPは、AS間の経路情報を交換するために設計されたパスベクトル型のルーティングプロトコルです。これは、BGP経路情報が経由してきた一連のAS番号を記憶し、これに基づく最適経路の選択や、経路のループを検知するという動作を行います。
BGPルータは、隣接したルータと1対1のセッションを確立し経路情報を交換します。その後、この情報に更新がない場合は、Keep Aliveパケットによる生存確認のみを行い、更新があった場合には、その差分情報だけを交換します。
BGP経路情報には、パス属性(Path Attribute)と呼ばれるパスに関する情報が含まれており、これに基づき最適経路が決定されます。
- パス属性
生成元(ORIGIN)、ASパス、ネクストホップ、MED(Multi-Exit-Discriminator)、ローカル優先度、アトミック集約、アグリゲータなどの情報が含まれる。 - CIDR(Classless Inter Domain Routing)
クラスを使わないIPアドレスの割り当てと、経路情報の集成を行う技術。受け取った経路やローカル経路を1つに集約し、経路情報の数を抑えることができる。 - ネイバー(Neighbor)またはピア(Peer)
ASで受信している経路やローカル経路などの情報を交換する隣接ルータ。