インターネット上の応用サービス の中継・変換・統合技術 プロキシサーバ「DeleGate」 産業技術総合研究所 情報処理研究部門 佐藤豊 http://www.delegate.org/ DeleGateの概要 1994年生まれ・現在も成長中 多用途プロキシサーバ HTTP,FTP,SMTP,POP,NNTP,Telnet,DNS,SOCKS,SSL,… マルチプラットフォーム対応 アクセス制御、キャッシュ、経路制御、トンネリング、プロトコル変換、 サーバ統合、コンテンツフィルタ、コンテンツ変換、… マルチプロトコル対応 小規模Gopher専用プロキシ(SunOS版)からの持続的な成長 Unix,Windows,OS/2,MacOS-X 配布形態・配布状況 オープンソース・フリーソフト、148カ国・24,000サイト DeleGateの多用途化の経緯 必要性 ファイアウォール越え 日本語非対応のブラウザ 低速な広域ネットワーク 不安定なネットワーク接続 IP的に不連続なネットワーク 内部サーバ群を外部へ提供 翻訳中継・画像圧縮中継 プライバシー保護 ⇒ ⇒ ⇒ ⇒ ⇒ ⇒ ⇒ ⇒ ⇒ 機能 アクセス制御付き中継 コード変換 キャッシュ 経路制御・迂回 トンネリング中継 サーバ統合 外部フィルタ呼び出し 暗号化通信 DeleGateの対応プロトコル 応用プロトコル 応用サービス HTTP,ICP ウェブ、キャッシュ SMTP,POP,IMAP 電子メール NNTP 電子ニュース FTP ファイル転送 SOCKS,VSAP プロキシ中継 SSL 暗号化通信 DNS ドメイン名検索 Telnet,X 遠隔端末 Tcprelay,Udprelay 単純中継 LDAP ディレクトリサービス Lpr 遠隔プリンタ Gopher,Wais,CU-SeeMe,Ident 絶滅? DeleGateのプログラム規模の推移 8年間に500回の改訂版リリース 140000 100000 97年1月 Windows 対応 80000 60000 40000 20000 02 年 3月 20 01 年 3月 20 00 年 3月 20 99 年 3月 19 98 年 3月 19 97 年 3月 19 96 年 3月 19 19 95 年 3月 0 94 年 3月 94年3月 開発開始 94年6月 配布開始 19 プログラムサイズ(行数) 120000 6月 20 02 年 6月 20 01 年 6月 20 00 年 6月 19 99 年 15000 6月 配布先サイト数 20000 19 98 年 6月 19 97 年 6月 19 96 年 6月 19 95 年 6月 19 94 年 DeleGateの配布状況(1) +7サイト/日 25000 海外 国内 全体 10000 5000 0 DeleGateの配布状況(2) 140000 (配布元サーバからのダウンロードホスト数) 120000 100000 80000 60000 40000 20000 02 年 6月 20 01 年 6月 20 00 年 6月 20 99 年 6月 19 98 年 6月 19 97 年 6月 19 96 年 6月 19 95 年 6月 19 19 94 年 6月 0 クライアント/サーバモデル インターネット上の応用サービスの実現モデル サーバは情報や機能を提供し、クライアントは通信を実行しながら それを利用する 応用プロトコル サーバ/クライアント間の要求・応答の手順とデータの形式 各々の応用サービスごとに規定される HTTP,SMTP,FTP,… プロキシサーバ クライアントとサーバの間の通信を中継するサーバ サーキットレベルプロキシ 単なるバイト列として要求と応答を中継 (SOCKS) アプリケーションレベルプロキシ 応用プロトコルに固有な、要求と応答の手順とデータの形式を解釈 しながら中継 プロキシサーバの種類別得失 サーキットレベルプロキシ(SOCKS等) 単なるバイト列として要求と応答を中継 実装が容易、全ての応用プロトコルに共通に適用可 中継以外の用途への発展性は乏しい アプリケーションレベルプロキシ 応用プロトコルに固有な要求と応答の手順とデータの形式を理解して中継 実装が複雑(クライアントとサーバのサブセット機能×各プロトコル) 理解している内容にしたがってきめ細かな制御が可能 ただ中継するだけでなく、手順やデータの変換、フィルタ、統合ができる ⇒ 多様な付加価値サービスの実現可能性 DeleGateは両者を実現。後者の可能性を追及 ファイアウォール用プロキシ プロキシの一般的な用途 クライアントサイト側での利用 アクセス制御付き中継 コンテンツキャッシュ 有害コンテンツ除去 サーバ統合プロキシ 複数のサーバを一つのサーバのように見せて提供する サーバサイト側でのサーバ運用維持支援 各部門では独自にローカルにサーバを運用 • 内容の更新やログの管理が容易 各サーバを組織の代表サーバに統合し提供 要求の書き換え・転送 (プロトコル変換) (応答のキャッシュ) 応答の書き換え・転送 コンテンツ変換プロキシ プロキシが中継するコンテンツの変換 翻訳、通訳、圧縮、等、様々な応用 変換機能を外付けするインターフェイスが必要 Hi, どーも 翻訳 通訳 CFI:Common Filter Interface プロキシに機能を外付けするインターフェイス プロキシサーバ用CGI、のようなもの コンテンツ変換、コンテンツフィルタ、プロトコル変換 外付けフィルタプログラム+CFIスクリプト 開発の背景・動機 DeleGateに付加価値を付けて商用利用する申し込み 組み込みだとライセンス上の問題が生じる(国有財産 …) 独立なプログラム同士として連携するだけなら無問題 CGI的な機能をプロキシに導入するとどうなるかに興味 CGI:Common Gateway Interface 動的コンテンツの提供 外部プログラムによる、 HTTPサーバの機能拡張 インターフェイス仕様 入力 • 環境変数 • プログラム引数 • 標準入力 出力 • 標準出力 プログラム記述言語 任意の言語 適用プロトコル HTTP CFI-CGIとの対比 付加価値サービスの提供 外部プログラムによる、プロ キシサーバの機能拡張 インターフェイス仕様 入力 • 環境変数 • プログラム引数 • 標準入力 出力 • 標準出力、標準エラー出力 プログラム記述言語 任意の言語 適用プロトコル 任意のプロトコル CFIの使用法 CFIスクリプト 適用フィルタの選択 ヘッダの加工 ボディの加工 #!cfi Content-Type: text/ Filter: en2ja -Content-Type:image/gif Filter: gif2jpeg フィルタの挿入位置 -- 要求フィルタ・応答フィルタ・双方向フィルタ CFIによる暗号化プロキシの実現 任意のSSL非対応プロトコル、SSL非対応クライ アント/サーバを、SSL対応に SSL用フィルタは、CFIにより接続(OpenSSL使用) CFIの利点 単純・普遍的なインターフェイス仕様 任意の記述言語でフィルタを実装できる 既存ソフトをフィルタとして再利用が容易 DeleGateを改変せず利用可・独立な頒布 栄枯盛衰する基盤技術からの独立 応用プロトコル 記述言語 コンテンツ変換の応用実例 日本語コード変換 JIS,Shift_JIS,EUC-JP,UTF-8 SSL暗号化中継 英日翻訳中継 画像圧縮変換中継 O社、S社、 農水省農業生物資源研究所* H社 大阪弁変換フィルタ* 携帯端末用コンテンツ圧縮・分割フィルタ
© Copyright 2024 ExpyDoc