IGRP【Interior Gateway Routing Protocol】

広告

広告

IGRPとは

最終更新
2006-07-23T16:52:00+09:00
この記事のURI参照
https://www.7key.jp/nw/routing/r_protocol/igrp.html#what

IGRPはCisco Systems社によって1980年代半ばに開発されたルーティングプロトコルです。RIPと同様ディスタンスベクタ型ルーティングプロトコルなのですが、経路を選択する際にネットワークの負荷状況や帯域幅などを考慮にいれるため、RIPよりも柔軟な経路選択を行うことが可能なルーティングプロトコルとなっています。

IGRPIGPsで、ディスタンスベクタ型ルーティングプロトコルです。ルータはお互いにルート情報を90秒ごとに交換し、ルーティングテーブルの作成と整合性を保っています。RIPではルート情報の交換は30秒ごととなっているため、IGRPの方がネットワークの帯域消費量が小さくなりますが、コンバージェンス時間が長いとの欠点もあります。

また、IGRPでは複合メトリックという考え方が採用されています。IGRPではデフォルトで帯域幅と遅延を基準にして最適経路を選択します。また、設定によっては、帯域幅と遅延に加え、負荷、信頼性、MTUを基準としてメトリックを計算することが可能となっています。RIPとは異なりホップ数をメトリック算出の考慮には入れませんが、ネットワークの大きさを限定するためにホップ数自体は数えています。IGRPではデフォルトでホップ数100まで、設定によって最大ホップ数255まで拡張できます。ただしこのことが大規模ネットワークをサポートできるということには繋がりません。RIPの上限であるホップ数15ではあまりにも小さなネットワークしかサポートできないために、この上限をもう少しだけ緩やかにして柔軟なネットワークの設計を意図しているのです。

IGRPクラスフルルーティングプロトコルであり、ルーティング情報の中にサブネットワークマスクの情報を含めることができません。このことから、VLSMや不連続サブネットワークをサポートできないという欠点があります。

IGRPにはAS番号ルータに割り当てます。同じAS番号をもつIGRPルータ同士はルーティングアップデートのやり取りを行いますが、違うAS番号をもつIGRPルータ同士ではルーティングアップデートのやり取りを行いません。このことによって柔軟にドメインを分割することが可能となっています。ただし、ここでいうAS番号はBGPで使用するAS番号とは違うので注意が必要です。

IGRPパケット

最終更新
2006-07-23T15:28:00+09:00
この記事のURI参照
https://www.7key.jp/nw/routing/r_protocol/igrp.html#packet

RIPはアプリケーション層のプロトコルとして定義されていますが、IGRPトランスポート層のプロトコルとなっています。プロトコル番号には9が割り当てられています。

IGRPパケットフォーマット図

IGRPヘッダ

バージョンフィールド(4bit)
IGRPのバージョンを表し、常に1が入れられます。
オペレーションフィールド(4bit)
1:リクエスト/2:アップデート。リクエストパケットはIGRPヘッダのみとなります。
エディションフィールド(8bit)
ルーティング情報に変更があるたびに増加する数値が入ります。これによって古い情報を誤って採用してしまうことを防ぎます。
AS番号フィールド(16bit)
IGRPプロセスを識別するためのAS番号が入れられます。
内部ルート数フィールド(16bit)
直接接続しているメジャーネットワークがいくつのサブネットワークに分割されているのかを示します。直接接続されているネットワークがサブネット化されていない場合このフィールドには0が入ります。
システムルート数フィールド(16bit)
直接接続しているメジャーネットワーク以外のネットワークの数を表します。IGRPはメジャーネットワーク境界で集約をされますので、この数値は集約されたルートの数となります。
外部ルート数フィールド(16bit)
デフォルトルートとして認識されているネットワークの数を表します。
チェックサムフィールド(16bit)
IGRPヘッダとエントリのエラーチェックを行うためのフィールドです。

エントリ

宛先アドレスフィールド(24bit)
宛先アドレスは3オクテットで表します。内部ルートは同一メジャーネットワーク内のサブネットワークなので少なくとも最初の1オクテットは共通となっています。従って内部ルートの場合は宛先IPアドレスの2オクテット目から4オクテット目までが入れられます。外部ルートはメジャーネットワーク境界で集約されたルートなので少なくとも最後の1オクテットは全て0となることから、外部ルートの場合は宛先IPアドレスの先頭の3オクテットが入れられます。
遅延フィールド(24bit)
宛先までの遅延の総和が入れられます。
帯域幅フィールド(24bit)
宛先までのルートの中で最も小さい帯域幅が入れられます。
MTUフィールド(16bit)
宛先までのルートの中で最も小さいMTUサイズが入れられます。
信頼性フィールド(8bit)
信頼性を表す分数の分子が入れられます(1〜255)。
負荷フィールド(8bit)
負荷を表す分数の分子が入れられます(1〜255)。
ホップ数フィールド(8bit)
宛先までのホップ数が入れられます。

内部ルートのエントリはIGRPヘッダに続くエントリにの最初に入り、システムルートのエントリはその後に入り、デフォルトルートのエントリが存在する際そのエントリは最後に入ります。

IGRPのメトリック

最終更新
2006-11-25T12:48:00+09:00
この記事のURI参照
https://www.7key.jp/nw/routing/r_protocol/igrp.html#metric

IGRPでは、ネットワークの様々なパラメータを考慮してメトリックを決定するメカニズムを採用しています。このメカニズムを複合メトリック【Composite Metric】と呼びます。IGRPが考慮に入れるパラメータは、大域幅、遅延、負荷、信頼性、MTUとなっています。

大域幅【Bandwidth】

インターフェイスに接続された物理ネットワークの速度を単位kbpsで設定する。IGRPでは、宛先ネットワークまでのルートを構成する物理回線の中で最小の大域幅を用いる。

遅延【Delay】

負荷のない状態でインターフェイスが受け入れることのできる最大サイズのパケットを、物理メディア上で送信するのに必要な時間の長さを表す値で、単位はマイクロ秒(100万分の1秒)。この値は通常ネットワーク管理者が設定をするか、ルータのデフォルト値をそのまま用いる。IGRPでは、宛先ネットワークまでのルートを構成する全ての物理回線の遅延を合計した値を用いる。

負荷【Load】

データを運ぶための時間とその平均を測定した値で、5分間に渡る指数平均値。分母255の分数として表され、255/255は完全な飽和状態を表す。IGRPでは、宛先ネットワークまでのルートを構成する回線の内、最も使用率の高いものを採用する。

信頼性【Reliability】

データを運ぶための時間とその平均を測定した値。この値の中には、該当リンクを用いて到着するフレームのエラー率や、どれくらい頻繁にリンクアップ/ダウンを繰り返しているかなどが含まれる。分母255の分数として表され、255/255は信頼性100%を表す。IGRPでは、各宛先ネットワークまでのルートを構成する回線の内、最も信頼性の低いものを採用する。

MTU【Maximum Transmission Unit】

リンクが受け入れることのできる最大パケット長。IGRPでは、以前は宛先までのルートを構成する物理回線の中で最小のMTU値を使用していたが、現在ではメトリックの計算にMTUは用いられない。

メトリックの計算

メトリックの計算には、K1、K2、K3、K4、K5を用いて以下の計算式にて行います。

(K5 == 0の場合)
[Metric] = (K1 * Bandwidth) + (K2 * Bandwidth)/(256 - Load) + (K3 * Delay)
(K5 != 0の場合)
[Metric] = {(K1 * Bandwidth) + (K2 * Bandwidth)/(256 - Load) + (K3 * Delay)} * K5 / (Rely + K4)

デフォルトでは、K1=K3=1、K2=K4=K5=0となっています。よってデフォルトでのメトリック値は、大域幅+遅延により求められることとなります。これは、負荷と信頼性が非常に変化し易い値であり、その値を基に最適ルートを決定することが適切ではないと判断されるからです。

K値の設定方法

Router(config-router)# metric weight [TOS値] [K1] [K2] [K3] [K4] [K5]

TOS値は【Type of Service】であり、IGRPのサービスタイプを表す。現在定義されているタイプは"0"のみ。

IGRPのタイマ

最終更新
2006-11-25T11:32:00+09:00
この記事のURI参照
https://www.7key.jp/nw/routing/r_protocol/igrp.html#timer

IGRPRIP同様に、アップデートタイマ、無効タイマ、ホールドダウンタイマ、フラッシュタイマを実装しています。各タイマの用い方はRIPと同様ですが、上限値がRIPとは異なっています。

アップデートタイマ【Update Timer】

アップデートタイマーはその間隔を計るためのタイマーです。ルータルーティングアップデートを送信する際、このタイマーを0にセットします。時間が経つにつれてこのタイマーはカウントされ、タイマーが90秒(RIPでは30秒)を示したとき、再度ルーティングアップデートを送信します。

無効タイマ【Lnvalid Timer,Expriration Timer】

隣接ルータから受信したルート情報をルーティングテーブルに加えた後、ある一定の時間を過ぎてもそのルート情報が送られて来ない場合は、そのルートに何らかの異常が発生したおそれがあります。そのルートの異常を調べるのが無効タイマーの役割です。ルータはルーティングアップデートを受信するたびに、以前受信したルート情報がそのアップデートに含まれているかどうかを確認し、確認ができたら無効タイマーを0にセットします。IGRPでは3回連続(RIPでは6回連続)でルートが受信できなかった場合、そのエントリは無効になったものとみなしてホールドダウンタイマーを起動します。

ホールドダウンタイマ【Hold-down Timer】

ホールドダウンタイマーが起動するのは、無効タイマーが上限に達したときや、宛先到達不可能を表すメトリックを受け取ったときなど、つまりそのルートがダウンしていると疑われるときです。ルートがダウンしたと疑われるとき、そのルートが無効になったことを全てのルータが認識できる程度の時間をホールドダウン時間と言います。ホールドダウンタイマーの上限は、IGRPでは標準で280秒(RIPで180秒)にセットされています。ホールドダウン状態ではルーティングテーブル上で"possibly down"と表示されますが、エントリは存在していますので、そのネットワーク宛に送信されたパケットはそのエントリに従ってルーティングされます(宛先ネットワークにそのパケットが到達するかどうかはわかりませんが)。

ルータはホールドダウン状態の間、ダウンしたと疑われるルートに関してメトリックが劣るか同等のものはすべて無視します。メトリックが優れるものを受信した場合は、新たなルートが発見されたものとみなしてホールドダウンタイマーをリセットします。ホールドダウンタイマーが上限に達した場合もリセットされます。

フラッシュタイマ【Flush Timer】

フラッシュタイマーガーベージコレクションタイマー【Garbage Collection Timer】とも呼ばれます。フラッシュタイマーは無効タイマーと同時に起動し、IGRPでは標準で630秒(RIPでは240秒)で上限に達します。フラッシュタイマーが上限に達したルート、即ちフラッシュタイマーが上限に達するまでにアップデートを受け取ることができなかったルートは、ルーティングテーブルから削除されます。ただし、トリガアップデートを受け取るとフラッシュタイマーは0にセットされます。

不等コストロードバランシング

最終更新
2006-11-25T12:57:00+09:00
この記事のURI参照
https://www.7key.jp/nw/routing/r_protocol/igrp.html#u_eq_load_balancing

通常ルーティングプロトコルは、1つの宛先に対してコストの等しい経路が複数ある場合には、これら複数の経路にロードバランシングします。このように等コスト経路を用いるルートバランシングのことを等コストロードバランシング【Equal-cost Load Balancing】と呼びます。IGRPは等コストロードバランシングとともに、不等コストの経路にロードバランシングする機能もサポートをしており、これを不等コストロードバランシング【Unequal-cost Load Balancing】と呼びます。通常コストが最小の経路へ全てのトラフィックが送信されることとなるため、この経路の負荷が高くなりこの経路が常に最適な経路ではあり得ないかもしれません。そこでIGRPでは不等コストロードバランシングを用いて適切に負荷を分散させることとしています。

補足事項

最終更新
2006-05-12T01:01:00+09:00
この記事のURI参照
https://www.7key.jp/nw/routing/r_protocol/igrp.html#supplement

広告

当ページ作成にあたり、参考にさせてもらったリソース

Copyright (C) 2006 七鍵 key@do.ai 初版:2006年07月23日 最終更新:2006年11月25日