【ルーティング⑦】ダイナミックルーティングプロトコル一覧と超ざっくり解説

routing-part7

一般的にはスタティックルーティングだけじゃなくてダイナミックルーティングも使われるみたいだけど、どんな種類が有るのかしら?

チャーチルさん

ポン先生

よく利用されるものはいくつかあるよ。今日はその違いを勉強しよう。

ダイナミックルーティングのプロトコルには幾つかの種類があります。機種や規模、構築時期によって異なりますし、何故複数あるのか良く分からない・・・という人もいることでしょう。この記事ではよく利用されるルーティングプロトコルの概要を解説します。各プロトコルの詳細を語るととんでもない長さになるので、ざっくりの違いについて説明します。

スタティックルーティング、ダイナミックルーティングについてはこの記事を参照です。

ルーティングプロトコルの分類

まず、ルーティングプロトコルはAS(Autonomous System、自律システム)内のプロトコルかAS間のプロトコルかで大きく分類されます。ASとはあるポリシーによって管理されているネットワークの事です。例えば企業のネットワークやISP(Internet Service Provider)のネットワーク等です。特にインターネットは世界中を繋ぐ超巨大なネットワークの集合体です。そのため1つの団体が管理するという事は現実的ではなく、分割して管理、必要な部分は互いに繋いで通信しているといったイメージです。

AS内のプロトコルをIGP(Interior Gateway Protocol)、AS間のプロトコルをEGP(Exterior Gateway Protocol)と言います。

AS(自律システム)とルーティングプロトコル

IGP、EGP毎の具体的なルーティングプロトコルは下記の通りです。

ダイナミックルーティングプロトコル一覧
  • IGP

    • RIP

    • OSPF

    • IS-IS

    • IGRP

    • EIGRP

  • EGP

    • EGP

    • BGP

一般的に目にするであろうプロトコルはRIP, OSPF, EIGRP, BGPあたりですね。他は現在使われていないものが殆どです。

IGPについて

IGPはAS内で利用されるルーティングプロトコルの分類です。要は企業の拠点やデータセンターで主に利用するものと思っておけばOKです。複数のルーティングプロトコルが有りますが、ここでは比較的目にするRIP, OSPF, EIGRPについて触れていきます。

同じIGPのプロトコルであっても特徴が異なります。ざっくり違いを挙げると下記の通りです。

■プロトコル
 RIPOSPFEIGRP
ディスタンスベクタ型リンクステート型ハイブリッド型
ルータ間で交換する情報ルーティングテーブルリンクステートルーティングテーブルの一部
ルータ間通信の帯域幅大きい小さい小さい
ルーティングテーブルの更新定期的変更時変更時
収束(コンバージェンス)遅い速い速い
隣接ルータの確認(ネイバー)無し有り有り
ネットワークの規模感小規模中~大規模中~大規模

RIP

RIP(Routing Information Protocol)はかなり古いプロトコルですが現在でも使われています。比較的シンプルであり運用も容易です。

RIPの特徴
  • ディスタンスベクタ型プロトコル
  • メトリックはホップ数
  • 16ホップ以上は転送不可
  • 30秒ごとに定期更新(レギュラーアップデート)
  • 障害時にも更新(トリガーアップデート)
  • 収束(コンバージェンス)が遅い
  • RIPv1ではクラスフル、RIPv2ではクラスレス

RIPはディスタンスベクタ型と呼ばれるプロトコルで、ディスタンス(距離)とベクタ(方向)によって最適な経路を決定します。要はホップ数(目的地に到達するまでに経由するルータの数)が少ない経路が良い、という事です。また、ホップ数は最大15までで16ホップ以上の経路は転送不可となります。

経路情報は30秒毎に定期的に送信します。これをレギュラーアップデートと言います。レギュラーアップデートではルーティングテーブルの情報を全て隣接ルータに送信します。また、レギュラーアップデートとは別に障害(例えばルータのインタフェースダウン等)が発生した場合は変更箇所のみ通知します。これをトリガーアップデートと言います。

また、ルータが数珠つなぎになっているような構成の場合、経路情報が端のルータに伝わるまで時間がかかります。そのためネットワーク全体で見ると収束(コンバージェンス)が遅くなってしまいます

さらに、RIPにはRIPv1とRIPv2があります。一番の違いはRIPv1はクラスフルであるという事です。

例えば172.16.0.0/24と言うアドレス帯があったとすると、これはクラスBなのでRIPとしては強制的に/16として扱われます。つまり本当は/24で広報したいがそもそもサブネットマスクの情報を含める事ができないのです。RIPv2ではこのあたりの使い勝手の悪さが改良され、サブネットマスク情報を含め広報出来るようになっています。

このようにRIPは昔からあるものの、一般的には大規模なネットワークには向かないと言われています。少なくてもこれから企業LANの新規構築をしようと言う時にわざわざRIPを選択する必要は無いでしょう。ただし、昔に構築された環境ではまだまだRIPを見る機会はあるのでネットワークエンジニアとしては最低限の事は理解しておくべきです。

ポン先生

ただし、実際の構築環境でRIPの特徴がデメリットになり得るかは良く考える必要があるよ。例えば16ホップ以上は転送不可ってあるけど、一般的な企業LANで16ホップ以上の環境って普通は無いしね。まぁそれでもRIPを選択するのは特別な事情がある時だけかな。。。

OSPF

OSPF(Open Shortest Path First)は企業LANで最もよく使われていると言っても良いルーティングプロトコルです。RIPよりも多少設計の難易度は上がりますが汎用性が高い仕様になっています。

OSPFの特徴
  • リンクステート型プロトコル
  • 配布されるLSAを基に LSDB、ルーティングテーブルを作成
  • メトリックは帯域幅に基づいたコスト値
  • 収束(コンバージェンス)が速い

OSPFはリンクステート型と呼ばれるプロトコルです。メトリックはコスト値で決定します。OSPFのコストとは目的地に到達するまでの帯域幅の事です。例えば目的地までのルートが2つあり、Aルートは2ホップ、Bルートは6ホップだとします。RIP的な観点(ホップ数)で見るとAルートの方が良さそうですが、Aルートは64kbps、Bルートは1Gbpsだったらどうでしょう?明らかにBルートの方が早く通信できそうですよね。RIPではホップ数しか考慮していませんでしたがOSPFは各ルートの帯域幅まで考慮してより良いルートを選択します。

またRIPはルーティングテーブルの情報をそのまま他のルータに伝えていました。一方OSPFはLSA(Link State Advertisement)という情報をルータ間で共有します。LSAには各ルータやリンクの情報が含まれています。このLSAの情報を基にルータはLSDB(Link State Database)を作成します。

ここで重要なのはRIPのように単純なセグメント情報だけをやり取りしているのではなく、ネットワーク全体の構造を各ルータが把握しているという事です。これによって各ルータがどのように接続されているのか、どの接続箇所がコストが高い(低い)のか等の情報を把握し最適なルートを計算出来るようになります。また、障害発生時の収束が速く(ルーティングテーブルの書き換えが速く)、大規模なネットワークでの運用も可能です。

実際、企業LANでのダイナミックルーティングはOSPFが使われている所を良く見るよねー

チャーチルさん

EIGRP

EIGRP(Enhanced Interior Gateway Routing Protocol)はCisco独自のルーティングプロトコルです。

EIGRPの特徴
  • ハイブリッド型プロトコル
  • 複合メトリックを採用
  • 収束(コンバージェンス)が速い
  • Cisco機器限定

EIGRPはハイブリッド型と呼ばれるプロトコルです。ディスタンスベクタ型をベースにリンクステート型の特徴も取り入れ、大規模なネットワークでも効率的に運用出来る仕組みになっています。イメージ的にはRIPとOSPFの良いとこ取りを目指したようなプロトコルです。

メトリックは帯域幅や遅延から計算する複合メトリックを採用しています。これは1つの指標だけではなく複数の要素から最適ルートを決めるという事ですね。

RIPでは無し、OSPFでは有ったネイバー(隣接ルータとの関係)はEIGRPでも採用されています。また、ルーティング情報も差分のアップデートが配信されるためネットワークの負荷も少なくなります。

また、ルーティングテーブルとは別にトポロジーテーブルという受信したルート情報を全て格納するテーブルを持っています。実際はトポロジーテーブルの中で最適なルートがルーティングテーブルに載ります。並行して、最適ルートがダウンしたした際のバックアップルートも確保しています。障害を検知したらバックアップルートへ切り替わるため収束も高速になっています。

そして一番の特徴はCisco独自のプロトコルという点です。つまりCiscoのルータやL3スイッチ、ファイアウォールでしか使えません。EIGRP自体は優れたプロトコルではありますが構成上メーカ縛りがネックになるケースがあります。例えば以下のような事もあります。

構築時は全てCiscoで構築

数年後、機器更改時の検討で別メーカへリプレイスしたい

EIGRPを使っており別プロトコルへの変更は時間がかかる、リスクが有る

仕方なくCiscoのまま設定踏襲でリプレイスとした

長期的に見てルーティング周りはCiscoで固めるということであればEIGRPは良い選択肢になりますが、数年後の事は分からない・別メーカの機種を追加する可能性があるという状況であればOSPFの方が無難ではあります。

メーカ独自のプロトコルもあるんだね。EIGRPを使うかどうかはSIerや顧客の考え方によっても変わりそうだね。

チャーチルさん

EGPについて

EGPにはEGP、BGPというルーティングプロトコルがあります。
※EGPは分類とプロトコル名が同じで紛らわしいですが、現在は使われていないので気にする必要が無く、BGPだけ知っておけばOKです!

BGP

BGPの特徴
  • AS間でのルーティングプロトコル
  • パスベクタ型
  • メトリックはパスアトリビュート
  • 経路情報の交換にTCPを利用

BGP(Border Gateway Protocol)はAS間を跨いだルーティングで使われるプロトコルであり、主にインターネットで利用されます。インターネットは超巨大なネットワークの集合体であり1つのASでの管理は現実的ではありません。つまり1つの団体や管理者では管理しきれない程大きいという事ですね。そのため複数のASで管理され相互に接続する事で世界中が繋がっています。

BGPはそういったAS間の通信を支える仕組みです。BGPはパスベクタ型と言うプロトコルで、隣のASとルーティングテーブルの情報を交換します。メトリックとしてはパスアトリビュート(path attribute)があります。パスアトリビュートとは各経路の優先度などを示す属性の事で複数の項目から構成されています。BGPではこれを見て最適経路を選択します。RIPでは単純なホップ数のみで機械的に最適経路を選択していましたが、BGPではパスアトリビュートによってさらに柔軟な経路制御が可能になります。

また、経路情報の交換でもRIPと異なりTCPを利用しており、インターネットのようにルータ間が物理的に長距離になるシチュエーションでも信頼できる仕組みになっています。

ポン先生

BGPはインターネット以外でもキャリアの閉域網で利用されるよ。なのでISP以外のネットワークエンジニアでも扱う可能性はあるから内容は知っておこう~

まとめ

ポイント
  • AS=ISPなどネットワークの管理単位

  • IGP=AS内ルーティングプロトコル

  • EGP=AS間ルーティングプロトコル

  • よく見るのはIGP→RIP・OSPF・EIGRP、EGP→BGP

  • RIP

    • ディスタンスベクタ型

    • メトリックはホップ数

    • 収束が遅い

    • RIPv1ではクラスフル、RIPv2ではクラスレス

  • OSPF

    • リンクステート型

    • ルート情報そのものではなくLSAを広報

    • メトリックはコスト値

    • 収束が速い

  • EIGRP

    • ハイブリッド型

    • メトリックは複合

    • 収束が速い

    • Cisco機器限定

  • BGP

    • パスベクタ型

    • メトリックはパスアトリビュート

    • 経路情報の交換にTCPを利用

    • インターネットで利用

ルーティングプロトコルの仕組みは具体的に書き始めるとかなりの量になるのでこの記事ではざっくりの触りだけです。少しずつ勉強して行きましょう。ダイナミックルーティングはイチから新規構築をする!というよりも既存で設定されており、リプレイスや構成変更で頭を使うシーンの方が多いかもしれません。既存環境では自分が経験の無いプロトコルが使われている可能性があるので、各プロトコル毎の性格は最低限知っておいた方が良いですね。