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