皆さん、こんにちは。
このコラムを読んでいただいている皆さんの中には、CCNAなどのシスコ資格取得を目指している、またはすでに取得されている方も多いと思います。そうした資格試験などに出てくる各種ルーティングプロトコルの特徴説明として、以下のような記述を目にすることが多いですよね。
RIPが大規模ネットワークに適していない理由としては、次のような点が挙げられています。
- ディスタンスベクターだから
- ホップ数が最大15に制限されるから
- ルーティングテーブル全体を30秒ごとにブロードキャストするので無駄な帯域を消費するから
- トポロジー変化時の収束(コンバージェンス)が遅いから
今日は、これらの点について検証してみたいと思います。
理由1:ディスタンスベクターだから
これは意味不明です。
地球上で最も大きなIPネットワークはインターネットで間違いないと思いますが、インターネットを構成するISPなどの組織間でルーティングテーブルを共有するために利用されているのが、「ディスタンスベクター型プロトコル」のBGPです。だからディスタンスベクターが大規模ネットワークに適していないはずがありません。
むしろ、OSPFの経路探索に利用されているダイクストラアルゴリズムは、「リンク数の2乗に比例して計算量が増える」という特徴があり、本来は大規模ネットワーク構築に適した方法ではありません。だからOSPFでは、エリアを分割して、エリア内のみリンクステート型(ダイクストラ)を用い、エリア間のルーティングでは一種のディスタンスベクターを用いているわけです。
そう、実はOSPFもディスタンスベクターを使っているのですよ。
理由2:ホップ数が最大15に制限されるから
私は23年ほどネットワークの仕事をしていますが、ホップ数が16以上のネットワークに関わった記憶がありません。鉄道の管理ネットワークなどでルータをリング状に並べていくような特殊なデザインでない限り、ホップ数が15を超えるのは「超」大規模だと思います。
試しに、この原稿を書きながらyahoo.comへtracerouteしてみました。
いま都内の喫茶店からイーモバイルでインターネット接続していますが、ここからアメリカのどこかに設置されているYahoo!のサーバまでが13ホップですよ! 一般的な企業ネットワークなら15ホップ以下で十分足りるでしょう。
理由3:ルーティングテーブル全体を30秒ごとにブロードキャストするので無駄な帯域を消費するから
ルーティングテーブルなんて、所詮テキストデータじゃないですか! いまどきのメガ単位の回線を圧迫するような情報量には成りえないと思います。
理由4:トポロジー変化時の収束(コンバージェンス)が遅いから
たしかに収束は遅いと思います。最近の機種では、リンクダウンなどの障害が発生すると即座にアップデートを送る(トリガードアップデート)などで、RIPでも高速に収束する場合もありますが、一般論としてOSPFと比較したら遅い、というのは間違いではないと思います。
ただし、収束の早さとスケーラビリティは別の問題なので、RIPを小規模ネットワークに限定する理由にはならないですね。
では、RIPで大規模なネットワークを構築しても問題はないのかと言われると、やはり一般的な企業ネットワークを構築するならOSPFかEIGRPをお勧めしたいです。
最大の不安は実績が少ないことです。
先ほどの「理由3」のルーティングテーブル全体を30秒ごとにアップデートは現在では問題になりませんが、64kbpsのISDNなどでWANを構築していたような太古の昔(?)では、確かに不都合な場合がありました。特に常時接続でなく従量課金型のサービスを使っていた場合には、OSPFのほうが回線コストを節約できたのです。そのような背景もあり「RIPは小規模向けである」という認識が定着したため、RIPを大規模に展開している事例は実際のところ少ないのです。
私の結論
- RIPを「小規模ネットワークにしか使えないルーティングプロトコル」とする技術的根拠はない。
- ただし、歴史的背景などからRIPを大規模ネットワークで利用している実績があまりないので、エンジニアとしてはお勧めしたくない(予期せぬバグの存在などリスクが大きい)
教科書に書いてあることを鵜呑みにせず、自分の頭で考えることによって深い洞察が得られる場合もありますので、ぜひCCNAの模範解答も疑ってみてください。
OSPFやEIGRPについても別の機会に取り上げてみたいと思います。
では。