RIPとは ― ホップ数で経路を決める仕組み
RIPは、
RIPは、ホップ数が少ない経路を選ぶルーティングプロトコル
RIP(Routing Information Protocol)は、経由するルータの数が少ない経路を選ぶルーティングプロトコルです。経路の良し悪しは経由するルータの数であるホップ数だけで決まり、15ホップより遠い宛先には届きません。経路は、隣のルータと交換する経路表をもとに決めます。
RIPのような方式を、距離ベクトル型と呼びます。各ルータはネットワーク全体の地図を持たず、隣から聞いた距離をもとに経路を決めます。15ホップの上限があるため、RIPを使えるのは小さなネットワークに限られます。
距離ベクトル型とは:隣から聞いた距離に1を足す
たとえば、3台のルータR1・R2・R3が1列につながっているとします。R1には192.168.10.0/24のLANが直接つながっているので、R1の経路表では、このLANまでの距離は0です。
R1は、自分の経路表を隣のR2へ送ります。R2は、R1の距離0にR1までの1ホップを足して、このLANまでの距離を1と記録します。次にR2が経路表をR3へ送ると、R3は1にさらに1を足して、距離2と記録します。
各ルータが知っているのは、宛先ごとの距離と、どの隣へ渡せばよいかの2つだけです。この距離と向きの組を距離ベクトルと呼びます。R3は、R1とR2の間がどうつながっているかを知りません。
この計算方法は、ベルマンフォード法というアルゴリズムにもとづいています(RFC 2453の3.1節)。OSPFのようなリンクステート型は、エリア内のつながり方全体を全ルータで共有する点が違います。
ホップ数と上限:15まで届き、16は到達不能
RIPの距離の単位がホップ数で、宛先のネットワークに着くまでに経由するルータの数を表します。ルータ自身に直接つながるネットワークは、0と数えます。
ホップ数の上限は15です。16は無限大を表す値で、その宛先には届かないことを意味します。RFC 2453の3.2節によると、RIPを使えるのは、最も長い経路が15ホップまでのネットワークです。
なお、RFC 2453は直接つながるネットワークの距離を1と数えます。Ciscoのルータの設定ガイドは0と数えるので、ルータの台数との対応が1つずれます。どちらの数え方でも、16が到達不能を表す点は同じです。
次の図で、1列につなぐルータの台数を変えられます。R1の先のLANまでの距離は、1台増えるごとに1ずつ増えます。
- LAN192.168.10.0/24
- R10(直接)
- R21ホップ
- R32ホップ
- R43ホップ
- R54ホップ
- R65ホップ
- R76ホップ
- R87ホップ
- R98ホップ
- R109ホップ
- R1110ホップ
- R1211ホップ
- R1312ホップ
- R1413ホップ
- R1514ホップ
- R1615ホップ
- R1716(到達不能)
同じ宛先への経路を2つの隣から聞いたときは、距離の小さい方を選びます。RIPは回線の速さを見ないので、遅い回線でもホップ数が少なければ選ばれます。たとえば、OSPFの記事のSPFの例では、RIPならT1回線で直結する経路が選ばれます。
30秒ごとの更新と、収束の遅さ
RIPのルータは、30秒ごとに経路表の全体を隣へ送ります。この周期はRFC 2453の3.8節で定められていて、送るときはUDPの520番ポートを使います。隣から更新が届かなくても、ルータはすぐには経路を消しません。
RFC 2453の決まりでは、ある経路の更新が180秒届かないと、ルータはその経路の距離を16にします。そのあと120秒は距離16のまま隣へ送り続け、それから経路表から消します。
Ciscoのルータは、既定の時間が少し違います。更新が180秒届かない経路を使えないものとする点は同じですが、経路表から消すのは、更新が届かなくなってから240秒後です。
すべてのルータの経路表が新しい状態にそろうことを収束と呼びます。RIPでは、変化が隣から隣へ1台ずつ伝わるので、遠くのルータほど収束に時間がかかります。そこで、経路の距離が変わったら30秒を待たずにすぐ送る決まりがあります。これをトリガードアップデートと呼びます。
ルーティングループとスプリットホライズン
前の節の3台で、R1とR2の間の回線が切れたとします。R2は、R1から更新が届かなくなるので、192.168.10.0/24を到達不能にします。ところがR3は、まだR2経由で距離2の経路を持っています。
R3が定期の更新で距離2を送ると、R2はそれを信じて、R3経由で距離3の経路があると記録します。実際には、R3の経路はR2を通るので、このLAN宛てのパケットはR2とR3の間を行き来します。
| できごと | R2の | R3の |
|---|---|---|
| R1と | 到達不能 | 距離2・R2経由 |
| R3が | 距離3・R3経由 | 距離2・R2経由 |
| R2が | 距離3・R3経由 | 距離4・R2経由 |
| R3が | 距離5・R3経由 | 距離4・R2経由 |
| 同じやりとりが | 5、 | 6、 |
| 距離が | 到達不能 | 到達不能 |
距離はやりとりのたびに増え、16に届いたところで、ようやく両方が到達不能になります。この現象を無限カウントと呼びます。RFC 2453の3.4.2節によると、上限を16と小さくしたのは、無限カウントを早く止めるためです。
スプリットホライズンとポイズンリバース
このループは、R3がR2から聞いた経路をR2へ送り返したために起きました。そこで、経路を聞いた相手には、その経路を送り返さないことにします。この決まりをスプリットホライズンと呼びます。
送り返さない代わりに、距離16にして送り返す方法もあります。これをポイズンリバースと呼びます。受け取った側はすぐに到達不能と分かるので、2台が互いを指すループをすぐに解消できます。
ただし、3台が輪になって互いを指すループは、スプリットホライズンでは止められません。その場合は、トリガードアップデートで変化を早く広め、収束を早めます。RFC 2453の3.4.4節によると、それでも無限カウントが起きる可能性は残ります。
Ciscoのルータは、RFC 2453にはないホールドダウンという仕組みも使います。経路が使えなくなってから180秒の間は、その宛先へのより良い経路の更新を受け入れません。まだ古い経路を持つ隣の更新を信じて、ループを作ることを防ぐためです。
RIPv1・RIPv2・RIPngの違い
最初の版のRIPv1は、経路にサブネットマスクを付けずに送ります。このため、受け取ったルータは、その経路のネットワークの範囲を正しく判断できないことがあります。RIPv2は、経路ごとにサブネットマスクを付けて送ります。サブネットマスクを送るかどうかで、RIPv1はクラスフル、RIPv2はクラスレスのルーティングプロトコルと呼ばれます。
サブネットマスクがあれば、VLSMで長さを変えたサブネットも1つずつ伝えられます。RIPv2は、更新の送り先をマルチキャストの224.0.0.9にできます。メッセージに認証の情報を付けることもできますが、RIPv1には認証がありません。
IPv6で使う版はRIPngで、ホップ数の上限はRIPと同じ15です。RIPngは、UDPの520番ではなく521番ポートを使います。
| 版 | 使う | サブネットマスク | 更新の | 仕様 |
|---|---|---|---|---|
| RIPv1 | IPv4 | 送らない | ブロードキャスト | RFC 1058 |
| RIPv2 | IPv4 | 経路ごとに | マルチキャストの | RFC 2453 |
| RIPng | IPv6 | 経路ごとに | マルチキャストの | RFC 2080 |
RIPとOSPFの違い
RIPとOSPFは、どちらも組織の中で使うルーティングプロトコルです。根本的な違いは、各ルータが持つ情報の量です。RIPは隣から聞いた距離だけを持ち、OSPFはエリア内の地図を持ちます。
| 観点 | RIP | OSPF |
|---|---|---|
| 方式 | 距離ベクトル型 | リンクステート型 |
| 経路を | ホップ数だけ | コストの |
| 各ルータが | 宛先ごとの | エリア内の |
| 送る | 経路表の | 変化した |
| 変化が | 1台ずつ | 全ルータへ |
| 規模の | 最も | エリアに |
RIPは隣へ経路表を送るだけなので、仕組みが単純で設定も少なく済みます。その代わり、変化が伝わるのが遅く、ループの対策も必要です。OSPFは地図をそろえる手間がかかる分、変化が全体に速く伝わります。
RIPが向く規模と、OSPF・BGPを使う理由
RFC 2453の3.1節によると、RIPは中規模の組織内で使うルーティングプロトコル(IGP)として設計されました。より複雑な環境で使うことは想定していません。同じRFCの1節は、小さなネットワークならRIPは帯域や設定の負担が小さいとしています。
大規模なネットワークにRIPが向かない理由は3つあります。15ホップを超える経路を持てないこと、回線の速さを経路選びに使わないこと、収束が遅いことです。このため、大きな組織の中ではOSPFが、組織と組織の間ではBGPが使われます。
1台のルータが、RIPとOSPFの両方で同じ宛先の経路を知ることもあります。そのときは、アドミニストレーティブディスタンスが小さいOSPFの経路が選ばれます。Ciscoのルータの既定値は、OSPFが110、RIPが120です。
練習問題(全6問)
正解:ホップ数
RIPは、
正解:到達不能と
RIPの
正解:2
R2は
正解:ある
スプリットホライズンは、
正解:RIPは
RIPは
正解:RIPv2は
RIPv1の
選んでから「採点する」を押すと、解説つきで答え合わせができます。
参考にした資料
- RFC 2453 RIP Version 2(距離ベクトル型・ホップ数の上限・タイマー・スプリットホライズン・サブネットマスク)
- RFC 1058 Routing Information Protocol(RIPv1)
- RFC 2080 RIPng for IPv6(IPv6で使う版)
- Cisco IP Routing: RIP Configuration Guide(ホップ数の数え方、更新の周期)
関連記事
おすすめの本 PR
ネットワークを初めて学ぶ人向けの入門書です。
![『[改訂新版]3分間ネットワーク基礎講座』の表紙](https://m.media-amazon.com/images/P/4774143731.09.MZZZZZZZ.jpg)
