Comments
Description
Transcript
ピアツーピア型レイヤ 2 インターネット VPN 自動設定方式の実装と評価 3
情報処理学会第67回全国大会 4S-3 ピアツーピア型レイヤ 2 インターネット VPN 自動設定方式の実装と評価 堀 賢治 株式会社 KDDI 研究所 プロバイダ 異なるサブネットにある PC,Web カメラ,ネットワークプリンタ, ストレージ,ゲーム機同士などが,あたかも同じサブネットにあ るかのように通信できるレイヤ 2 インターネット VPN(Virtual Private Network, 仮想私設網)を,複雑な設定なく容易に構築 できるソフトウェア[1]が注目されている.[1]は VPN トラヒックが 特定ノードに集中するのに対し,ピアツーピア(以下, P2P と呼 ぶ)型トポロジを採ればトラヒックが特定ノードに集中せず有利 である一方,VPN ルータの設定が複雑で煩わしい.著者らは [2]においてユーザ宅に置くことを想定した VPN ルータにおけ る VPN トンネルの自動設定機能を,プロバイダから常時安定し て提供する方式を提案している.本稿ではその実装概要と, VPN トンネルの接続処理時間の観点から評価結果を述べる. VPN VPN 管理 サーバ (3)ユーザ 認証 (5)ルータリ スト更新 VPN ルータ(R3) VPN ルータ(R1) VPN ルータ(R2) VPNルータ管理メッセージ VPN1のルータリスト={R1} ホスト (ユーザの操作するPC) HTTP (1)R1の管理用web画面を開く (2)ユーザID, パスワード入力 (4)VPN参加操作(VPN名称= 「 VPN1」 を入力, 事前共有鍵 を指定) (6)DHCPリ レーエージ ェント設定 DHCPサーバのUDPポートxxxにDHCPパケットを転送させる DHCP(DHCPサーバのUDPポートxxxへ転送) (8) IPアドレス 割当て ピアツーピア(P2P)型レイヤ 2 インターネット VPN の概要と構築時の問題 DHCP (7)IPアドレス 再取得操作 ★ プロバイダのDHCPサーバによりVPN内のIPアドレス割当 てを管理する(3.節の(3)) ※以下, R2,R3でもR1と同様にVPN参加操作を行ったとする. 本稿想定のインターネット VPN はインターネット上に構築す る.特定ノードにすべての VPN トラヒックが集中するセンター型 の VPN に対し,複数 VPN ルータ間で直接 VPN トラヒックを交 換する VPN は P2P 型と呼ばれる.VPN トラヒックは IP パケット にカプセル化されたインターネットの経路(以下,VPN トンネル と呼ぶ)上を転送されるが,IP パケット内に直接 Ethernet フレー ムを格納する方式がレイヤ 2 インターネット VPN である.本稿 では VPN トンネルを VPN ルータで終端し,ルータ配下に DHCP クライアントを搭載したホストを接続する形態を仮定する. P2P 型の場合は全 VPN ルータ数 n に応じて最大 n(n-1)/2 個,センター型の場合は常に n 個の VPN トンネルを設定する 必要がある.VPN トンネル数に応じて IP アドレスなど必要とな る構成情報の数も増え,また ADSL など非固定 IP アドレスのア クセス回線を利用する場合,VPN トンネルを接続するたびに利 用中の IP アドレスを確認しなければならないため,P2P 型では VPN ルータ設定が複雑である. 3. インター ネット ※本図はR1,R2,R3を「 VPN1」 に順次参加させ る様子を表している. インターネット VPN 自動設定方式の概要 筆者らは VPN ルータにおける VPN トンネルの自動設定機 能および DHCP サーバによる IP アドレス割当て機能をプロバイ ダから常時安定して提供する P2P 型レイヤ 2 インターネット VPN 自動設定方式[2]を提案している.本方式の概要を図 1 と ともに以下に示す.尚,ユーザは VPN 管理サーバに ID とパス ワードを予め登録する. (1) ユーザが VPN 管理サーバ上に VPN の識別子(VPN 名 称)と参加を許可するユーザ ID とを登録することで,登録ユー ザ(登録したユーザとされたユーザ)は当該 VPN に VPN ルータ を参加させることが可能となる.登録操作はある一台の VPN ル ータの管理用 web 画面からユーザ自身が行う(図 1 では省略). (2) 登録ユーザが VPN ルータの管理用 web 画面を開いてロ グインすると,VPN 管理サーバ上で認証され(図 1 (1)∼(3)), 所望の VPN 名称を入力(図 1 (4))することで,VPN 管理サーバ 上の当該 VPN のルータリストに,当該 VPN ルータ(およびその IP アドレス)が追加される(図 1 (5),(9),(12)).ルータリスト上に 2 台以上の VPN ルータがあれば,そのすべての VPN ルータの 間にフルメッシュで VPN トンネルが自動接続されるように, VPN 管理サーバから VPN ルータに対し,独自に定義したプロ トコルによって要求する(図 1 (10),(11),(13),(14)).このときルー Implementation and Evaluation of Automatic Configuration Method of P2P Layer2 Internet VPNs,Kenji HORI, Kiyohito YOSHIHARA and Hiroki HORIUCHI, KDDI R&D Laboratories Inc. (9)ルータ リスト更新 R2が参加 2. DHCP DHCP サーバ R1のみがVPN1に参加 はじめに 堀内 浩規 VPN1のルータリスト={R1,R2} ★ VPN管理サーバにVPN内 のルータリストを維持し, これ を基にVPNトンネルを接続する (3.節の(2)) (10)VPN トンネル接 UDPポートyyyにてVPNトンネルソフトウェアを待ち受けさせる 続処理 R1のUDPポートyyyにVPNトンネル接続させる (11)VPNトンネル接続 (12)ルータ リスト更新 VPN1のルータリスト={R1,R2,R3} (13)VPN トンネル接 続処理 R3が参加 1. 吉原 貴仁 ※R2,R3でもR1と同様にDHCP リレーエージェントを設定し, 配 下のホストにIPアドレスを取得さ せる. ※R3にもR2と同様に, VPN1内 の他のルータ(R2,R3)に対する VPNトンネル接続先を指定. (14)VPNトンネル接続 図 1 P2P 型レイヤ 2 インターネット VPN 自動設定方式の概要 タリスト上の IP アドレスが利用される. (3) VPN ルータ上に設ける DHCP リレーエージェントとプロバ イダの管理する DHCP サーバとにより VPN ルータおよびホスト の IP アドレス割当てを管理する(図 1 (6)∼(8)).DHCP サーバ は個々の VPN 内の IP アドレス割当てを管理する複数のサー バインスタンスを異なる UDP ポート上で同時実行する. 4. インターネット VPN 自動設定方式の実装 3 節の方式に従って P2P 型レイヤ 2 インターネット VPN 自動 設定ソフトウェアを,Linux 2.4 系 OS を搭載した x86 ベースの PC に実装した.ソフトウェアの構成を図 2 とともに以下に示す. VPN 管理サーバ (1) VPN ルータとの間で管理メッセージの送受を行い,VPN への参加や VPN トンネル接続処理などを行う VPN 管理サー バデーモンを C 言語にて新たに実装する. (2) VPN 名称,VPN へ参加を許可されたユーザ ID,VPN に 参加している VPN ルータの IP アドレスなどを管理するデータ ベースとして MySQL4.0.22 を用いる. DHCP サーバ (1) ISC dhcpd v3.0pl2(DHCP サーバデーモン)を利用し, VPN 管理サーバからの要求により DHCP サーバインスタンスを, 任意の UDP ポートを指定して複数同時に実行可能とする. VPN ルータ (1) VPN 管理サーバからの管理メッセージを受信し,VPN ト ンネルソフトウェア(以下(6)にて説明)や DHCP リレーエージェ ントを起動する VPN ルータ管理クライアントデーモンを C 言語 3−485 VPNおよびユーザ情報データベース VPN管理サーバデーモン DHCPサーバ ......... DHCPサーバデーモン#2 (UDPポート10002) DHCPサーバデーモン#1 (UDPポート10001) インターネット VPN管理サーバから VPNルータへの命令 (例:VPNトンネルソフトウェア起動) VPN ルータ2 (R2) ユーザからVPN管理 サーバへの操作入力 (例:VPN参加) VPNルータ管理 クライアントデーモン VPNトンネル ソフトウェア DHCPリレー エージェント Linuxカーネル br tap VPNトンネル ソフトウェア tap VPNトンネル (EthernetフレームをSSLにてカプセル化) Ethernetフレーム ※tap:仮想Ethernetデバイスドライバ ※br:Ethernetブリッジデバイスドライバ Ethernet ※本評価ではインターネットを介さず, Ethernetスイッチにより直接接続 VPNルータ1(R1) DHCP VPN VPN DHCP 管理 サーバ サーバ CPU:Pentium IV 2.4GHz RAM:512MBytes LAN:rtl8139c(100Base-TX) VPNログオン クライアント CGIスクリプト ユーザ向けVPN 管理用webサーバ ホスト (ユーザの操作するPC) 図 2 ソフトウェアおよびシステム構成 にて新たに実装する. (2) ISC dhcrelay v3.0pl2 に対し DHCP パケット転送先 UDP ポートを任意指定可能とする機能拡張を行った DHCP リレーエ ージェントを搭載する. (3) ユーザとの対話処理のために管理用 web サーバとして apache 2.0.43 を利用する.apache より cgi(perl)スクリプト経由に て VPN ログオンクライアントを起動する. (4) C 言語で実装した VPN ログオンクライアントを使い,ユー ザ認証処理や VPN 参加操作時の VPN 管理サーバへのデー タ送信を行う. (5) 物理 Ethernet デバイスで受信した Ethernet フレームは, Linux カーネルの Ethernet ブリッジデバイスドライバ(br)を経由 して,VPN トンネル接続先に対応する複数の仮想 Ethernet デ バイスドライバ(tap)に転送する. (6) ユーザランドプロセスとして実装した VPN トンネルソフトウ ェア(OpenVPN 1.6.0)により,tap に転送した Ethernet フレームを UDP/IP 上の SSL パケットとしてカプセル化し,下記(7)の通り決 定する VPN トンネルに転送する. (7) Ethernet ブリッジデバイスドライバ(br)において Spanning Tree Protocol(STP)を起動し,VPN ルータ間での Ethernet フレ ームのループ転送を防止するとともに,Ethernet フレームを転 送する VPN トンネルを決定する. 5. 評価 評価方法 提案方式の VPN トンネルの自動設定における有効性を評 価するため,4.節に示した実装および図 3 に示す評価構成を 用い,(n-1)台のルータが VPN に参加している状態から,さらに 1 台のルータに対し VPN 参加操作を行って合計 n 台が一つの VPN に参加完了となるまでの時間 T を評価した.ここで VPN 参加操作の時刻とは図 1 (4)の参加操作の後,VPN ルータがメ ッセージ(図 1(A))を VPN 管理サーバに送信した時刻 T1 を指 し,VPN に参加完了とはすべての VPN トンネルが接続完了し た時刻 T2 を指し,T=T2-T1 と定義する.ここでは T1,T2 を VPN ルータのログファイル出力によって確認する. 評価結果と考察 評価結果を図 4 に示す.図 4 において Nt とは,合計n台の VPN ルータをフルメッシュ接続する総 VPN トンネル数 n(n-1)/2 と , (n-1) 台 を フ ル メ ッ シ ュ 接 続 す る 総 VPN ト ン ネ ル 数 (n-1)(n-2)/2 との差(=n-1)であり,上記評価方法で VPN ルータ R1∼ R6: VPNルータ R1 .... PC R2 R6 CPU:Geode 266MHz RAM:128MBytes LAN:dp83815(10Base-T) VPN参加操作用と してR1∼ R6に各 一台接続 CPU: PentiumIII 700MHz OS:WindowsXP ブラウザ: IE6SP1 図 3 評価構成 VPNトンネル接続完了までの時間T[秒] VPN ルータ3 (R3) DHCP パケット VPN管理サーバ 16 15 14 13 12 11 10 9 8 7 6 5 実線:Tの実測値 破線:T = 2.6Nt + 3.2 1 2 3 4 5 接続するVPNトンネル数Nt[個] 図 4 VPN トンネル数に対する接続時間の評価結果 を 1 台新たに参加させたとき,新たに接続される VPN トンネル 数に等しい. 図 4 の実線が T の実測値であり,破線は T=2.6Nt+3.2 による 線形近似値を示している.まず実測値より Nt=5 でも T=16[秒] となっており,提案方式は[2]で主に想定する個人や小規模グ ループ向け用途としては実用上問題無い処理時間を達成でき ると考えられる. 次に実測値の傾向は良好に線形近似できていることから, VPN 接続完了までの時間は本評価の範囲において Nt(≒n) にほぼ比例していることが分かる.これは本実装が複数 VPN ト ンネルを順次接続する処理となっているためと考えられ,処理 を並行化する等によって処理時間を短縮可能と思われる.また 破線の傾きから VPN トンネル 1 個あたりの接続処理に約 2.6 秒を要していることが読み取れるが,この中には VPN トンネル ソフトウェア(OpenVPN)による処理時間が含まれており,使用 する VPN トンネルソフトウェアによって変動すると思われる. 尚,図 3 の構成では VPN 管理サーバと VPN ルータとの間 にインターネットを経由する伝送遅延が加わらない.このため 実際には数十から数百ミリ秒程度の時間が T に加わると考えら れるが,図 4 に示した T の実測値に比してその影響は小さい. 6. おわりに 本稿では P2P 型レイヤ 2 インターネット VPN 自動設定方式 に基づくシステムの実装概要を述べるとともに,小規模な VPN の構築においては実用上問題無い処理時間を達成できること を示した.日頃ご指導頂く(株)KDDI 研究所浅見所長,ならび に長谷川執行役員に感謝する.なお本研究の一部は,総務 省委託研究「ユビキタスネットワーク技術の研究開発」により実 施している. 参考文献 [1] SoftEther VPN System, http://www.softether.com/. [2] 堀他, パーソナル用途向けインターネット VPN の自動設 定方式, FIT2004 講演論文集 L-010, Sep.2004. 3−486