IPネットワークの世界では、パケットの中継を行う「ルーティング」の役割が非常に重要です。もしIPネットワークの分野を極めようというのであれば、ルーティングの仕組みを理解することは必要不可欠でしょう。本連載では、ルーティングにおける「経路情報」を管理する「ルーティング・プロトコル」に焦点をあて、その仕組みや運用法を解説していきます。TCP/IPやルーティングに関するある程度の知識があることを前提に解説を進めていきますので、あらかじめ、「連載:ルータの仕組みを学ぼう 第2回 イーサネットとルーティング」「連載:ネットワーク・コマンドでトラブル解決 第3回 ルーティングの設定は正しいか?」などを一読されることをお勧めします(編集局)
IPネットワークにおいて経路情報を管理する手法として、「スタティック・ルーティング」と「ダイナミック・ルーティング」が存在します。スタティック・ルーティングとは、経路情報を各ルータ内に手動で設定する手法で、この経路情報は基本的にルーティング・テーブルより消えることがありません。これに対し、ダイナミック・ルーティングとは、「RIP(Routing Information Protocol)」「OSPF(Open Shortest Path First)」「BGP(Border Gateway Protocol)」などのルーティング・プロトコルを用いてルータが経路情報を自動的に学習する手法で、この経路情報はダイナミックに更新されます。
それでは、これら2つの手法の長所と短所を簡単に比較してみましょう。
スタティック・ルーティングの長所は、管理される経路情報が基本的にルーティング・テーブルより削除されることがないため、安定したネットワーク到達性の提供が可能なことです。また、経路情報を手動で設定するので情報交換のためのCPU処理やトラフィックも発生しません。しかし、あて先ネットワークが実在しなくなった場合にもこの情報に基づくトラフィックの転送が行われてしまったり(図1)、経路情報の数に比例して、その管理に要する手間も膨大になるという短所があります。
――通常時
経路情報に基づき、ネットワークAからネットワークBへのトラフィックはルータ2に送られます
――障害発生時
経路情報は自動的に更新されないため、ネットワークAからネットワークBへのトラフィックはルータ2に送られ、通信不能に陥ります
ダイナミック・ルーティングの長所は、経路情報がルーティング・プロトコルにより動的に学習されるため、管理に要する手間が省けることです。また、ネットワークの更新をダイナミックに反映できるため、利用不能となった経路あてのトラフィックを速やかに破棄したり、適切なう回路を選択させることが可能です(図2)。しかし、設定ミスや機器障害により誤まった経路情報がアナウンスされると、これらの情報もネットワーク全般に伝達されるため、広範囲にわたり通信不能に陥ってしまうという短所もあります。さらに最悪なケースでは、経路ループを引き起こし、CPU負荷やトラフィックが急速に増加し、ネットワークそのものがダウンすることも考えられます。
――通常時
経路情報に基づき、ネットワークAからネットワークBへのトラフィックはルータ2に送られます
――障害発生時
経路情報は自動的に更新され、ルータ3経由の経路情報がアクティブになります。このため、ネットワークAからネットワークBへのトラフィックはルータ3を経由して転送されます
ネットワークを構築する際にどちらの手法を用いるかを決定するには、両手法の長所と短所を考慮する必要があります。しかし実際には、ダイナミック・ルーティングをまったく使用せずにネットワークを構築するということはほとんどありません。インターネットの普及に伴い、IPネットワークの規模がますます大きくなっている今日、このような巨大なネットワークにおいて経路情報を手動でのみ管理することは現実的に不可能です。また、さまざまなアプリケーションがIP上で動作するようになると、おのずとネットワークの冗長化やトラフィックのコントロールという要望も出てくるでしょう。これらの要望を満たすためにも、やはりダイナミック・ルーティングが必要不可欠であるといえます。
ルーティング・プロトコルは、「IGP(Interior Gateway Protocol)」と「EGP(Exterior Gateway Protocol)」という2つに大別することができます。インターネットを1つの巨大なIPネットワークととらえた場合、現在のインターネットは複数のAS(Autonomous System:自律システム)の集合体ということができます。ASとは、同じルーティング・ポリシーの下で動作するルータの集合体のことであり、各ASでは独自の規則やポリシーを持っています。このASの内部ルーティングに使用されるルーティング・プロトコルが「IGP」と呼ばれ、AS間でのルーティングに使用されるルーティング・プロトコルが「EGP」と呼ばれています。
IGPとして使用されるプロトコルには、「RIP」「OSPF」「IS-IS」「IGRP/EIGRP(Cisco Systems社独自のプロトコル)」などが存在します。RIPやIGRPは比較的小規模なネットワークに適しています。また、中規模以上のネットワークには、OSPF、IS-IS、EIGRPなどがより適しています。具体的には、企業ネットワークにおいては、RIP、OSPF、EIGRPなどが採用され、キャリアやサービス・プロバイダなどのネットワークにおいては、OSPFまたはIS-ISが採用されていることが多いようです。
EGPとして使用されるプロトコルには、BGPやEGP*1などが存在します。インターネットが台頭し始めたころにはEGPが使用されていましたが、このルーティング・プロトコルは現在ではほとんど使用されていません。これは、EGPが広く普及したにもかかわらず、ルーティング・ループへの対処や、トポロジの制限が設けられていたなど、いくつかの問題を抱えていたためです。現在では、「BGP-4(バージョン4)」がインターネットのAS間ルーティングにおける標準となっています。
*1一般的な総称としてのEGPではなく、「EGP」と呼ばれるルーティング・プロトコルを指しています
ここでは、主要なルーティング・プロトコルである「RIP」「OSPF」「BGP」の3つを取り上げ、それぞれの特徴を紹介していきます。
RIPは、IP用のルーティング・プロトコルとして、非常に古くから使用されています。このプロトコルは、UDPのブロードキャスト・データ・パケットを用いて、経路情報を隣接ルータにアナウンスします。この中には、「メトリック」と呼ばれるあて先ネットワークまでのディスタンスを表す情報(ルータのホップ数)が含まれており、ルータを超えるごとに1つずつ加算されます。RIPは、このメトリックを利用してネットワーク・トポロジを把握するため、「ディスタンス・ベクタ・アルゴリズム」に基づいたルーティング・プロトコルと呼ばれています。
RIPでは、メトリックがより少ない経路情報が最適経路として使用されます。最大メトリックは15となっており、これを超えた場合は到達不能と見なされます。RIPでは、これらのすべての経路情報を30秒周期で隣接ルータにアナウンスすることにより、情報の更新を行います。
RIPは、大規模なネットワークで使用すると、経路の収束までに非常に時間がかかります。これは、古い実装のRIP1(バージョン1)では、経路情報の更新があった場合、この更新を反映するのに、定期的な配信間隔(30秒)やホールド・タイム(180秒)、ガベージ・コレクション(120秒)などの制約があるためです。新しい実装のRIP1やRIP2(バージョン2)では、トリガード・アップデートの採用により、経路情報の定期的な配信間隔による制約は改善されていますが、依然としてホールド・タイムやガベージ・コレクションなどの制約は残っています。
OSPFは、IETFのOSPFワーキング・グループで開発されたIP専用のプロトコルです。OSPFでは、各ルータが「リンクステート」と呼ばれる情報要素を作成し、IPマルチキャストを用いてほかの全OSPFルータに配信します。これを受信したルータは、このリンクステート情報に基づき、ほかのルータがどこに存在し、どのように接続されているのかというLSDBを作成し、ネットワーク・トポロジを把握します。このため、OSPFは「リンクステート・アルゴリズム」に基づいたルーティング・プロトコルと呼ばれています。
OSPFでは、コスト値(主にインターフェイスの帯域幅により決定)の低い経路情報が最適経路として使用されます。また、一度リンクステート情報が交換されると、この情報に更新がない場合は、基本的にはHelloパケットによる生存確認のみを行います。そして、更新があった場合には、その差分情報だけを交換します。
以下が、RIPとOSPFの特徴を比較した表です。
経路情報の送信 | 収束速度 | 最適経路 | 負荷分散 | VLSM | 認証 | 実装難度 | |
---|---|---|---|---|---|---|---|
RIP1 | 定期的 (全経路) |
遅い | ホップ数 | なし | 未対応 | 未対応 | 低い |
RIP2 | 定期的 (全経路) |
遅い | ホップ数 | なし | 対応 | 対応 | 低い |
OSPF | 変更時 (差分のみ) |
速い | コスト値 | あり | 対応 | 対応 | 高い |
表1 RIPとOSPFの比較 |
RIPは、かつて非常に多くのネットワークにて採用されていました。これは、その実装が比較的容易であり、またその当時のリンクステート型ルーティング・プロトコルより安定していたからともいわれています。しかし、ネットワーク規模の拡大や、リンクステート型ルーティング・プロトコルの実装がほぼ安定してきたこともあり、現在では、OSPFなどを採用する例が多くなってきています。
BGPは、AS間の経路情報を交換するために設計されたルーティング・プロトコルです。このBGPは、「パスベクトル型ルーティング・プロトコル」と呼ばれています。これは、BGP経路情報が経由してきた一連のAS番号を運び、これに基づく最適経路の選択や、経路のループを検知するという動作を行うためです(特にこのループ検知の機能は、かつてのEGPにはなかった利点です)。
BGPルータは、隣接したルータとTCPを用いて1対1のセッションを確立し、セッション確立直後にすべての経路情報を交換します。その後、この情報に更新がない場合は、Keep Aliveパケットによる生存確認のみを行います。また、更新があった場合には、その差分情報だけを交換します。BGP経路情報には、パス属性と呼ばれるパスに関する情報が含まれており、これに基づき最適経路が決定されます。このため、BGPではこれらのパス属性の変更で柔軟にトラフィック・コントロールを行うことが可能であり、これはBGPの大きな特徴といえます。
ネットワークを構築する際には、これらのルーティング・プロトコルを用途に応じて選択することになります。基本的には、すでに記述したように、AS内のルーティングではOSPFやRIPなどを使用し、また、AS間のルーティングにはBGPを使用することになります。実際には、OSPFとBGPの組み合わせが多いようです。
次回からは、これらルーティング・プロトコルの仕組みや運用法について解説していきたいと思います。
ホールド・タイム:hold time
RIPにおいて、経路情報のアップデートを受信する際に許容されている最大期間。「ホールドダウン・タイム」と呼ばれることもある。期間は180秒である。この期間内に再受信されなかった経路情報はダウンしたと見なされ、メトリックが無限(16)にセットされて隣接ルータに通知され、消去プロセスに入ることになる
ガベージ・コレクション:garbage-collection
RIPにおいて、経路情報が消去プロセスに入った際にセットされるタイマー。期間は120秒である。この期間内に新たに到達可能な経路情報を受信した際には、このタイマーはクリアされるが、期間を過ぎるとこの経路は削除される
トリガード・アップデート:triggered update
RIPにおいて、経路情報に変更があると、すぐにこの情報を隣接ルータに伝える機能。これにより、経路情報の定期的なアップデート周期を待たずに、更新情報を伝達することができる
リンクステート:Link State
リンクをルータのインターフェイスと考えた場合、そのインターフェイス・コストや隣接するルータとの関係などを記述した情報を指す
LSDB:Link State DataBase
リンクステート情報を収集して作成されるデータベース。OSPFなどでは、この情報に基づきネットワーク・トポロジの把握や最適経路の選択が行われる
パス属性:Path Attribute
BGP経路情報に含まれるパスに関する情報。パス属性には、ASパス属性や、ORIGIN属性、Next-Hop属性などがある
Copyright © ITmedia, Inc. All Rights Reserved.