産学連携活動プロジェクト
新しいネットワークサービスを創出する
IPv6エニーキャスト通信アーキテクチャの研究開発
阿多 信吾(大阪市立大学 大学院工学研究科 情報ネットワーク工学)
村田 正幸(大阪大学 サイバーメディアセンター 先端ネットワーク環境研究部門)
1. はじめに
本プロジェクトでは、IPv6アドレス体系で新たに定義された「エニーキャストアドレス」を利用したネットワークサービスを創出するための
エニーキャスト通信アーキテクチャの確立とそのルーティングプロトコルの開発、および標準化への提案を行っていくことによって、エニーキャスト基盤技術を確立する。その結果、今後ますます増大する情報機器のネットワーク接続に際して、真のプラグアンドプレイ、ネットワークの自動構成 (auto configuration) の提供を可能とする。
IPv6では、IPv4における「ユニキャストアドレス」「マルチキャストアドレス」に加えて、「エニーキャストアドレス」が定義されている。ユニキャストアドレス、マルチキャストアドレスは、一対一、一対多通信用のアドレスであるのに対して、エニーキャストアドレスは新しいサービス概念に基づくアドレスである。すなわち、マルチキャストアドレスと同様に複数のノードが同一アドレスを持つことが可能であるが、エニーキャスト通信は、それらのうちひとつの「最適な」ノードとのみ通信を行なえるようにするものである。どのノードを「最適」とするかは、実装する経路制御機構(エニーキャストルーティングプロトコル)によって決定される(図1参照)。
 |
|
 |
|
 |
(a)ユニキャスト |
|
(b)マルチキャスト |
|
(c)エニーキャスト |
図1 IPv6のアドレス体系
エニーキャスト通信の実用化に際して解決すべき課題として、以下の4つが挙げられる。
-
(1) エニーキャスト通信に適した用途を明確にすること
現時点では、エニーキャストアドレスを利用することによってどのような利点、効果があるのか、またどのようなアプリケーションに対してエニーキャストアドレスが適しているのか、について、現在じゅうぶんな議論がなされていない。
(2) 既存上位通信プロトコルとの整合性を確保すること
エニーキャスト通信においては、「最適」なノードは経路制御アルゴリズムに依存するため、同一エニーキャストアドレスが常に同じノードに対応する保証はない。したがって、たとえばTCP/UDPのような同一ノードへの通信を前提とするプロトコルに対して直接エニーキャストアドレスを使用することはできない。
(3) スケーラビリティを確保すること
エニーキャスト通信を実現するには、通常のユニキャスト通信と比べてルータにおける制御コストが高くなり、多用するとルータに大きな負荷が発生する。エニーキャスト通信に適した経路制御を実現するためには、スケーラビリティについてじゅうぶんな配慮が必要である。
(4) エニーキャスト通信の仕様を明確にすること
現在の最大の問題は、RFC3513 (IPv6 Addressing Architecture) ではエニーキャストに関して最低限の定義しかなされていない点である。エニーキャスト通信をどのように実現するかは実装者の判断に依存することが多いにもかかわらず、その標準化は進んでいない。
これらの問題は、個別に解決することはできないものである。たとえば、(1)の問題は、「エニーキャストアドレスの仕様が明確でない」点に依拠する、すなわち(4)の問題が原因であるが、(4)の問題を解決しようとすれば、エニーキャスト通信の利用方法を明確にし、どのような利用形態がエニーキャスト通信に適しているかを明らかにしなければならない。また、(2)の既存上位通信プロトコルとの整合性をどの程度とればいいかという問題については、標準化団体での合意がある程度ないと実際の開発が困難である。
本プロジェクトでは、上に挙げたエニーキャスト通信に関する問題を統合的に解決し、エニーキャストアドレスの特徴を最大限に活用するためのエニーキャスト通信アーキテクチャ、およびそのルーティングプロトコルに関する仕様の明確化、エニーキャストアドレスに基づくサービス実現について検討を行ない、得られた成果を積極的に標準化ドラフトとしてIETFに投稿していくことを目標とする。さらに、標準化に際しては、提案手法を実装して効果を検証し、作成したソースコードを幅広く公開することによってエニーキャスト通信技術の普及を目指す。
2. 本年度の取り組み
2.1. エニーキャストアドレスに関する機能の明確化
先にも述べたとおり、エニーキャストの利用は非常に制限されており、有効な利用方法は見つかっていない。その理由の一つとして、エニーキャスト自体の定義の曖昧さが利用者の混乱を引き起こしていることがあげられる。本課題では、まず今後の議論のためにエニーキャスト通信で用いる用語を定義した、新たなドラフトを作成した。次に、定義した用語を用いてエニーキャストの利用方法をいくつか例を挙げ説明し、さらに、エニーキャストを利用するために必要となる機能の定義を行った。
2.2. エニーキャストアドレス解決プロトコル
エニーキャストアドレスを用いた通信では、同一エニーキャストアドレスに対するパケットは必ずしも同一ホストに到達するとは限らない。したがって、エニーキャストアドレスを直接
TCP などのプロトコルで利用することはできない。このような場合、通信開始前にあらかじめエニーキャストアドレスをユニキャストアドレスに変換(エニーキャストアドレス解決)すれば、同一ホストへの到達性が確保され、TCP
接続を行うことができる。本課題では、エニーキャストアドレス解決の手順を定義し、エニーキャストアドレスを用いた通信においても、実際の通信時にはユニキャストアドレスを用いることで、TCP
通信を実現する機構を提案した。さらに、このメカニズムをSOCKS などで用いられる動的ライブラリの手法を用いて実装し、すべてのアプリケーションがソースコードの修正をすることなくシームレスにエニーキャスト・ユニキャスト通信が行える環境を実現した。
2.3. エニーキャストルーティングプロトコルの設計および実装
エニーキャスト通信を使えば、複数のサーバの中から最適なサーバと自動的に通信可能となる。しかし、この最適なサーバ選択を実現するには、新たなルーティングプロトコルのサポートが必要となるため、現状では利用できない。本研究では、ネットワーク上の任意の場所にエニーキャストサーバが存在する場合に必要となる、ルーティングプロトコルの設計を行った。その特徴としては、(1)
エニーキャストネットワークへの段階的な移行、(2) 到達性の確保(少なくとも一つのホストに必ず到達する)、(3)
スケーラビリティの確保、(4) より少ない修正、があげられる。本課題では、特にエニーキャスト通信とマルチキャスト通信との類似性を元に、既存のインターネットへの適用性を考慮した新たなエニーキャストルーティングプロトコルを提案した。特にルーティングプロトコルの設計においては将来の標準化も視野に入れ、その方式の違いから異なる3種類のプロトコルの設計、並びに実装を行った。いずれのプロトコルも実験環境において適切なサーバ選択がなされることが示された。今後は、運用段階を考慮に入れた検証を行い、どのプロトコルが適しているかを実験的に明らかにしていく予定である。
2.4. エニーキャストアドレスの現実的な運用シナリオ
本課題では、既存の技術を用いたエニーキャスト通信の導入ストーリーをケーススタディとして列挙している。エニーキャスト通信が広く普及していない要因として、「エニーキャスト通信がどの範囲で実用できるかが不明」「エニーキャスト独自のアプリケーションが不明確」であると考える。しかし、これらの問題点はいずれか一方のみを考えれば解決する問題ではない。本ドラフトは、これら2つの問題点を解決するためのたたき台とするために、現在の技術だけで実現可能なエニーキャスト通信のストーリーを列挙した。このドラフトはあくまでも技術的な実現可能性を元に通信モデルの列挙に徹しており、アプリケーションに関する話題は考えられる利用例を並べているだけにすぎない。今後、本ドラフトを用いてアプリケーション側から着目した場合の問題点、課題を明らかにしていくことを目指す。
3. エニーキャストに関する標準化活動
エニーキャスト通信は非常に注目されているものの、その普及には多くの課題が残されていることも事実である。もっとも大きな問題として、エニーキャストアドレス固有の問題を議論する場が現在存在しないことが挙げられる。IPv6
ワーキンググループでは、もともと、エニーキャストアーキテクチャは新しいワーキンググループを作成して議論すべき問題であるとして、ワーキンググループとして積極的に議論してこなかった経緯がある。他のグループにおいてもエニーキャストを利用した提案はなされてはいるものの、エニーキャスト自身を議論の対象とはしてこなかった。しかし、これまでにもエニーキャストをより使いやすくするために新たなワーキンググループを発足させることに対して多くの賛同が得られた経緯もある。また、その後のメーリングリストにおける議論においても、エニーキャスト通信を標準化するためのBOFを改めて開催することに対して前向きな発言が多くなされている。
以上のように、エニーキャスト通信に対しては、関心は高いもののそれを議論する中心的な場がなかったため、その標準化が遅れているというのが現状である。本プロジェクトは、エニーキャスト通信の有する本質的な利点、欠点、そしてエニーキャスト独自の利用法など、これまで明確に規定されていなかったエニーキャスト通信の特徴を明らかにし、エニーキャスト通信機能をより使いやすくすることを最大の目標として取り組む。そして、得られた成果を積極的に標準化ドラフトとしてIETFに提案し、本プロジェクトのメンバーだけでなくIETFにおいて活動している研究者・技術者を巻き込んで、新しいエニーキャストワーキンググループの設立に寄与していく。