260 likes | 422 Views
仮想計算機における ソケットアウトソーシングを用いた IPv4/IPv6 トランスレーションの実現. システム情報工学研究科 コンピュータサイエンス専攻 1 年 ソフトウェア研究室 大橋 宏樹 指導教員 : 新城 靖. IPv4 アドレスの在庫推移. http:// www.kokatsu.jp//blog/Ipv4/whats-exhaustion.html. 移行における問題と解決手段. IPv6 化における問題 IPv4 アプリケーションと IPv6 アプリケーションは直接通信できない 解決手段 IPv4 アプリケーションの IPv6 化
E N D
仮想計算機におけるソケットアウトソーシングを用いたIPv4/IPv6トランスレーションの実現仮想計算機におけるソケットアウトソーシングを用いたIPv4/IPv6トランスレーションの実現 システム情報工学研究科 コンピュータサイエンス専攻1年 ソフトウェア研究室 大橋 宏樹 指導教員: 新城 靖
IPv4アドレスの在庫推移 http://www.kokatsu.jp//blog/Ipv4/whats-exhaustion.html
移行における問題と解決手段 • IPv6化における問題 • IPv4アプリケーションとIPv6アプリケーションは直接通信できない • 解決手段 • IPv4アプリケーションのIPv6化 • 多数存在し、マイナーアプリケーションはIPv6化されないものが出てくる • IPv4/IPv6トランスレーション
通信の各レイヤにおける既存トランスレーション手法通信の各レイヤにおける既存トランスレーション手法 • アプリケーションレイヤ • TCPレイヤ • IPレイヤ
TCPレイヤのモデル J. Hagino, K. Yamamoto: “An IPv6-to-IPv4 Transport Relay Translator”, RFC3142, 2001.
IPレイヤのモデル G. Tsirtsis, BT, P. Srisuresh, Campio Communications: “Network Address Translation – Protocol Translation (NAT-PT)”, RFC2766, 2000.
既存手法の問題 • IPv4ネットワークを運用する必要がある
本研究の目的と手法 • 目的 • IPv6ホスト単体のIPv4/IPv6トランスレーションの実現 • 手法 • 仮想計算機モニタ(VMM)を用いる • ソケットアウトソーシングによる IPv4/IPv6トランスレータ機能の追加
本研究と既存手法の違い • 仮想計算機上のみにIPv4環境を構築すればよい • ソケットアウトソーシングを用いるため高速 • ホストOSのIPSec利用可
アウトソーシング • ホスト型VMMにおいて高水準の要求をホストOSに対して委譲する手法 • 重複機能の短絡により、従来手法より高速 • VMMに処理を追加することによる機能拡張性を持つ • 適用例 • ソケット [齊藤 2008, Eiraku 2009] • ファイルアクセス [豊岡 2009, 水野 2009] • 時間管理 [小沢 2009] • メモリ [戸祭 2009] • 本研究ではソケットアウトソーシングを用いる
ソケットアウトソーシングの流れ ソケットシステムコール発行 システムコール引数取得 ゲストクライアントからホストサーバへRPCを行う ホストサーバモジュールが システムコールを発行
IPv4/IPv6トランスレーション(サーバ動作) トランスレーションモジュールを 呼び出す socket ()の引数を変更 システムコール発行時にIPv6を指定
トランスレーションモジュール • Socketシステムコールのラッパ関数 • ホストサーバモジュールから呼び出される • ゲストOSから受け取った引数を変換する int socket_4to6(int domain, int type, int protocol){ return socket(AF_INET6, type, protocol); }
クライアント動作における問題 • ゲストOSはIPv4アドレスを得るために名前解決 • 外部のホストはIPv6アドレスのみ保持 • DNSプロキシで名前解決を行い、IPv6アドレスを取得する • IPv6アドレスとダミーのIPv4アドレスを対応付ける • ゲストOSにダミーのIPv4アドレスを通知する
IPv4/IPv6トランスレーション(クライアント動作)IPv4/IPv6トランスレーション(クライアント動作)
アドレスマッピングテーブル • IPv4アドレスとIPv6アドレスの対応を格納するテーブル • 操作 • IPv4アドレスをキーとして、対応するIPv6アドレスを返す
DNSプロクシサーバの動作 • DNSv4クエリの受信 • DNSv6クエリの送信 • DNSv6レスポンスの受信 • ダミーのIPv4アドレスを生成 • IPv6アドレスとIPv4アドレスをアドレスマッピングテーブルに格納する • DNSv4レスポンスの送信
トランスレーションモジュールの動作 • IPv4アドレスと対応するIPv6アドレスをアドレスマッピングテーブルに問い合わせる • 得られたIPv6アドレスを用いてconnect (), sendmsg ()を処理する。
実装 • Host OS: Linux • Guest OS: Linux • 仮想計算機モニタ: KVM • トランスレーションモジュール • 実装言語: C言語 • DNSプロクシ • 実装言語: Ruby(実装中)
性能実験 • 実験環境 • 測定ソフト:iperf • マシン1,2 • CPU: Core i7 3.07GHz • NIC: Intel 10Gigabit CX4 • マシン1とマシン2のNICはスイッチなしで直結 • 測定方式 • 実機でサーバを実行, 実機でクライアントを実行 • ゲストOS上でサーバを実行, 実機でクライアントを実行
トランスレーションモジュールの性能 • 本方式はソケットアウトソーシングにより、実機間の通信速度の98.2%を実現
まとめ • 仮想計算機におけるソケットアウトソーシングを用いたIPv4/IPv6トランスレーションの実現手法について述べた • ホストでIPv6のみを利用する(ホストでIPv4不要) • 仮想計算機モニタにトランスレーションモジュールを実装する • クライアントのためにDNSプロクシを用いる 今後の予定 • DNSプロクシの完成と性能評価 • サーバのログ内のIPv4アドレスとIPv6アドレスの対応 • IPv6拡張ヘッダの利用