IPv6 エニーキャスト ルーティングプロトコル PIA-SM の設計および実装 大阪大学 基礎工学部情報科学科 計算機科学コース 村田研究室 松永 怜士 ・基礎工学部情報科学科4年、村田研究室の松永怜士です ・IPv6・・・というタイトルで特別研究報告をさせていただきます。 ・よろしくお願いします。 2004/2/26
エニーキャスト通信とは IPv6 の新しい機能のひとつ 同じサービスを提供する複数のノードの中からルータによって自動的に選択された最適な1つと通信 同じアドレスを複数のノードに割り当てる → エニーキャストアドレス 応用例 : ミラーサーバ Any Any Any ・まず本報告の背景といたしまして、エニーキャスト通信について説明いたします。 ・エニーキャスト通信とは同じサービス・・・と通信することで、 ・これらのノードには同じアドレスが割り当てられます。 ・このような性質から、たとえば、ミラーサーバーでの利用が考えられます。 - 複数のミラーサーバに同じアドレス - クライアントはどのサーバと通信するか意識しない - 最適なサーバと通信 Any Any = エニーキャストアドレス Any 2004/2/26
問題点と研究の目的 問題点 研究の目的 エニーキャストアドレスを扱うことができるルーティングプロトコルが存在しない 複数のエニーキャストレシーバが異なるセグメントに分散して存在する場合、経路情報が適切に交換されない → エニーキャスト通信の利用が制限される 研究の目的 エニーキャスト通信を実現するための ルーティングプロトコルを設計、実装する ・しかし、現状ではエニーキャスト通信はほとんど利用されておりません。 ・その最も大きな原因の一つに、エニー・・・しないことがあげられます。 ・そのため、複数の・・・ないので、結果として・・・されています。 ・そこで本報告ではエニー・・・設計し、 ・実機に実装することで、このエニーキャストルーティングプロトコルの実現可能性を示します。 2004/2/26
エニーキャストルーティングプロトコルPIA-SM の設計方針 既存のルーティングプロトコルを改変 複数のノードの管理 → マルチキャストルーティング PIM-SM を用いる エニーキャストパケットの配送 → ユニキャストルーティング 通信対象 通信形態 パケットの配送 ユニキャスト 1 1 対 1 1 つのパケットを配送 エニーキャスト 多数 マルチキャスト 1 対 多数 パケットを複製して配送 ・新たなエニーキャストルーティングプロトコルの設計に当たり、 ・本報告では実装の容易さを考え、 ・既存・・・改変して実装することにしました。 ・そこでエニーキャスト通信と同じく、 同じアドレスのノードが多数存在するマルチキャスト通信に着目し、 ・複数のノードの管理、および経路作成に、 マルチキャストルーティングの手法を用いることにします。 ・ただし、マルチキャスト通信ではパケットを複製して配送するので、 パケットの配送にはユニキャストルーティングを用いることにします。 ・今回エニーキャストルーティングプロトコルを設計するに当たり ・元となるマルチキャストルーティングプロトコルとして ・PIM-SM を採用しました。 ・以上が、今回設計するルーティングプロトコル PIA-SM の設計方針となります。 2004/2/26
PIA-SM の概要 A1 A2 S 2.ルーティング テーブルの作成 RP Any R2 Any Any R1 R2 R4 Any Any ルーティングテーブル ランデブーポイント 2.ルーティング テーブルの作成 RP dst next hop Any R2 ルーティングテーブル Any dst next hop Any R1 R2 R4 ランデブー ポイントツリー Any Any R1 R3 R5 ・ここからは PIA-SM プロトコルの概要を説明いたします。 ・プロトコルの概要は大きく3つにわけて説明いたします。 ・1つ目として、新規にエニーキャストアドレスを持つノードの参加について述べます。 ・新規ノードの参加を検知したルータはある特定のルータを根とし、 エニーキャストアドレスを持つノードを葉とするツリーを作成します。 ・この時ツリーの根となるルータをランデブーポイントと呼び、 ・構築されるツリーをランデブーポイントツリーと呼びます。 ・2つ目として、このランデブーポイントツリーの構築とユニキャストルーティングテーブル のエントリ作成について述べます。 ・3つ目にエニーキャストアドレス宛のパケットの配送について述べます。 Any Any to Any A1 A2 S エニーキャスト アドレス = Any エニーキャスト アドレス = Any Data 2004/2/26 1.新規ノードの参加 3. エニーキャストパケットの配送
1.新規ノードの参加 新規参加ノード (エニーキャストレシーバ) がエニーキャストルータへ通知 物理的に直接接続しているルータが検知 Host-based Anycast using MLD [1] で 提案されている手法 新規参加ノードの通知: ARD Report ARD Report ・新規参加ノードは自身のエニーキャストアドレスをエニーキャストルータへ通知し、 ・直接接続しているルータがこれを受信することで、新規参加ノードを検知します。 ・このノードをエニーキャストレシーバと呼びます。 ・このとき、マルチキャスト通信の時に同様の目的で使われる ・MLD を エニーキャストアドレスが扱えるように拡張した ・ARD というメッセージを用います。 ・ARD を用いることでセグメント上を ・エニーキャストルータからエニーキャストレシーバへ転送することができるようになります。 ・次にエニーキャストルータ間の経路の作成について述べます。 エニーキャスト レシーバ エニーキャスト ルータ Any [1] B. Haberman and D. Thaler, “Host-based anycast using MLD,” Internet draft draft-haberman-ipngwg-host-anycast-01.txt, May 2002. 2004/2/26
2.ルーティングテーブルの作成 エニーキャストルータがエニーキャストレシーバを検知する エニーキャストルータはランデブーポイントツリーへ参加 参加メッセージ (PIA Join) をランデブーポイントへ 最も早く参加したエニーキャストレシーバを転送先として選択 → ユニキャストルーティングテーブルにエントリ作成 Join メッセージを転送したルータもランデブーポイントツリーへ参加 2) Join 4) Join Any R1 ランデブーポイント Any 1.エニーキャストレシーバを検知したエニーキャストルータは、 ・そのエニーキャストアドレスのランデブーポイントツリーに加わります。 2.そのために参加メッセージをランデブーポイントへ向けて送信します。 ・この参加メッセージをPIA Join メッセージと呼びます。 3.このとき、ユニキャストルーティングテーブルに Join メッセージの送信元を ・エニーキャストアドレス宛のパケットの転送先として書き込みます。 4.Join メッセージをランデブーポイントへ受信したルータもまた、 ・エニーキャストレシーバまでの中継用のルータとして、 ・Join メッセージを転送することで ・ランデブーポイントツリーへと参加します。 5.これがランデブーポイントまで繰り返されます。 ・本報告の PIA-SM では、最も早く参加したエニーキャストレシーバを ・パケットの転送先として選択します。 6.7.8.そのため、2 つめ以降の Join メッセージはランデブーポイントへ転送せず、 ・ユニキャストルーティングテーブルの経路にも変更を与えません。 1) ARD Report R3 RP R2 ルーティングテーブル ルーティングテーブル Any dst next hop 5) Join dst next hop 3) 2004/2/26 Any R1 Any R3
3.エニーキャストパケットの配送 送信者に直接接続しているエニーキャストルータがエニーキャストパケットを受信 元のパケットの先頭にランデブーポイントのユニキャストアドレスを付与 (カプセル化) ランデブーポイントへパケットを転送 ランデブーポイントで元のパケットを取り出し、ユニキャストルーティングを用いてエニーキャストレシーバまで配送 to Any to U S R4 ユニキャスト アドレス = U 送信 Data to Any ・PIA-SM 概要の最後としまして、エニーキャストパケットの配送について述べます。 ・送信者がエニーキャストパケットを送信すると、 ・送信者に直接接続しているルータがエニーキャストパケットを受信します。 ・エニーキャストパケットを受信したルータは、 ・このパケットにランデブーポイントのアドレスを付与します。 ・これをカプセル化と呼びます。 ・ランデブーポイントへユニキャストルーティングを用いて転送します。 ・ランデブーポイントではカプセル化を解除し、元のパケットを取り出します。 ・以降は既に作成されている ・ユニキャストルーティングテーブルに従って ・ランデブーポイントからエニーキャストレシーバまでパケットが配送されます。 以上がPIA-SM の概要です。 次に、このPIA-SM プロトコルの実装に関して述べます。 Data エニーキャスト アドレス = Any RP A1 R1 to Any Data R3 エニーキャスト アドレス = Any ルーティングテーブル ルーティングテーブル A2 R2 Any R1 Any R3 2004/2/26
PIA-SM の実装 解決すべき点 解決策 カプセル化すべきパケットの判別 エニーキャストアドレスはユニキャストアドレスと区別が付かない 解決策 ユニキャストルーティングテーブルにエントリがない宛先へのパケットをルータが転送する時 対応するランデブーポイントがみつかった場合 エニーキャストアドレス宛のパケット → ランデブーポイントへ 対応するランデブーポイントをみつからなかった場合 ユニキャストアドレス宛のパケット → デフォルトルータへ ・PIA-SM プロトコルを実装する際に解決すべき点として、 ・カプセル化すべきパケットをどのように判別するかという問題があります。 ・これはアドレスを見ただけでは、そのアドレスがエニーキャストアドレスか ユニキャストアドレスか区別ができないためです。 ・そこで、この点を解決するため、 ・まずユニキャストルーティングテーブルで ・デフォルトルータ以外に転送先が見つからなかったパケットの宛先アドレスを調べます。 ・次に、このアドレスを管理するランデブーポイントが存在するかどうかを調べます。 ・対応するランデブーポイントが検索された場合、 ・受信したパケットはエニーキャストアドレス宛と判断し、 ・ランデブーポイントへカプセル化して転送します。 ・反対に、対応するランデブーポイントが検索されなかった場合、 ・受信したパケットはユニキャストアドレスであると判断し、 ・デフォルトルータへ転送します。 ・この方法により、エニーキャストパケットのみランデブーポイントへ転送します。 ・この問題を解決したことで、 ・次に、実機に実装して PIA-SM プロトコルが動作するかを確認します。 2004/2/26
PIA-SM プロトコルの動作確認 FreeBSD 4.8 上でデーモンプログラムとして実装 確認すること 実験 エニーキャストアドレス宛のパケットがエニーキャストレシーバまで配送されることを確かめる PIA-SM ルータ 2 台で構成されるネットワークで実験 実験 エニーキャストアドレス宛に Echo Request を送信する → 複数のエニーキャストレシーバのうちルータが選択した 1 つから Echo Reply を受信 ・実装したPIA-SM プロトコルにより、 ・エニーキャストアドレス宛のパケットが・・・を確かめます。 ・その方法として ・エニー・・送信します・ ・その結果・・できれば正しく動作していることを示します。 ・IPv6 の仕様により、エニーキャストアドレスはパケットの送信元アドレスに用いられないので、 ・送信元アドレスは到着したエニーキャストレシーバのユニキャストアドレスになっています。 ・これによりエニーキャストパケットの転送先も確認することができます。 ・この実験の結果、エニーキャストアドレス宛の Echo Request に対して、 ・エニーキャストレシーバのユニキャストアドレスを送信元とした ・Echo Reply を受信しました。 ・これにより、PIA-SM プロトコルが実機で動作することが示されました。 PIA-SM プロトコルが動作していることを確認 2004/2/26
まとめと今後の課題 本報告のまとめ 今後の課題 既存のルーティングプロトコルに基づくエニーキャストルーティングプロトコル PIA-SM の設計 マルチキャストルーティングに基づくグループ管理 ユニキャストルーティングに基づくパケットの転送 PIA-SM の実装および動作確認 今後の課題 最適なエニーキャストレシーバを選択する機能の実装 より大規模なネットワークにおける利用可能性の評価 ・最後に本報告のまとめと今後の課題について述べさせていただきます。 ・本報告では、既存のルーティングプロトコルに基づく ・エニーキャストルーティングプロトコルPIA-SM の設計を行いました。 ・マルチキャスト通信、およびユニキャスト通信との共通点に着目し、 ・グループ管理をマルチキャストの手法で、 ・パケットの転送をユニキャストの手法で行う設計を行いました。 ・その後、実機に実装し、動作確認を行うことで、 ・実際にPIA-SM プロトコルが動作することを示しました。 ・今後の課題といたしましては、 ・現在、最も早く参加したエニーキャストレシーバを転送先として選択しているので、 ・最適さの概念を導入し、最適なエニーキャストレシーバを選択する機能の実装すること、 ・また、実験環境が小規模なネットワークであるため、 ・より大規模なネットワークでの実験を通して、 ・実際の WWW などでの利用可能性を評価することなどを考えております。 以上で特別研究報告を終わります。 ありがとうございました。 2004/2/26