インターネット上の応用サービスの中継・変換・統合技術
Download
Report
Transcript インターネット上の応用サービスの中継・変換・統合技術
インターネット上の応用サービス
の中継・変換・統合技術
プロキシサーバ「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社
大阪弁変換フィルタ*
携帯端末用コンテンツ圧縮・分割フィルタ