コメント:
翻訳の正確さは保証しません。
必ず、原文と共に、使用してください。
____________________________________________________________________________ IPv6NOTE.txt IPv6-DeleGate 実装メモ 現行バージョン: DeleGate/9.0.0 ftp://ftp.delegate.org/pub/DeleGate/alpha/ 佐藤 豊 2005/4/22 ____________________________________________________________________________ DeleGate バージョン9 で、最初の一歩として、IPv6 の対応を始めました。 ですが、必要にも迫られていないので、実際の IPv6 環境を持っていません (インターネットへの IPv6 接続無しに。MacOS X で開発しています)。 私はこれが、実環境での使用に適用できるかわかりません。 ですから、実際に使っているユーザーからのコメントはありがたいです。 コメントは、オープンなフィードバックボード http://www.delegate.org/feedback/ (feedback@delegate.org 経由の) に気軽に送ってください。 このメモは、DeleGate に詳しいユーザーのために書いています。もし、そうでないなら、 リファレンスマニュアル <URL:http://www.delegate.org/delegate/Manual.htm> を 見てください。以下の 1.1 と 1.2 を読めば HTTP などの TCP/IP (v4/v6) 上の 一般的なアプリケーションプロトコル用のプロキシーサーバーとして、DeleGate を使っている ほとんどのユーザーには十分だと思います。 1. 一般的問題 1.1 DeleGate でのIPv6 の表記 ":" の代わりに "_" を使います。スコープ ID の "%" は、ほとんどの場合そのまま使えます。 例) "::" は "__" "fe80::12:34:56" は "fe80__12_34_56" "fe80::12:34:56%en0" は "fe80__12_34_56%en0" (スコープ ID 付き) "fe80::12:34:56%5" は "fe80__12_34_56%5" (番号表記のスコープ ID 付き) 1.2 IPv6/IPv4 ポートで受ける -Phost:port オプションで IPv6 ホスト名かアドレスを指定する。 例) -P9999 ... IPv4 だけで受ける (-P0.0.0.0:9999 と同じ) -P__:9999 ... IPv6 だけで受ける -P__0:9999 ... IPv4 と IPv6 の両方で受ける -P9999,__:9999 ... IPv4 と IPv6 を個別に受ける -Pfe80__12_34%en0:9999 ... IPv6 リンクローカルアドレスで受ける -Pme:9999 HOSTS=me/fe80__12_34%en0 ... ホスト名で "__0" は、ホストで利用可能なら、IPv6 マップされた IPv6 アドレスを使います。 1.3 IPv6/IPv4 アドレスへの名前解決 デフォルトで、IPv6 アドレスが最初に検索します。できなければ、次に IPv6 を使います。 この順番は、RES_AF パラメーターで制御できます。 例) RES_AF=46 ... IPv4 アドレスを最初に検索します(デフォルト) RES_AF=64 ... IPv6 アドレスを最初に検索します RES_AF=4 ... IPv4 アドレスだけ検索します RES_AF=6 ... IPv6 アドレスだけ検索します また、各ホスト名に特別な前置子を付けることでも制御できます。 例) hostname ... RES_TYPES の設定に従います _46.hostname ... IPv4 アドレスを最初に検索します _64.hostname ... IPv6 アドレスを最初に検索します _4.hostname ... IPv4 アドレスだけ検索します _6.hostname ... IPv6 アドレスだけ検索します 1.4 デフォルトのアクセス制御 "私と同じネットワーク上" には、64ビットマスクを使います。 これは、"./ffff_ffff_ffff_ffff__" を含む ".localnet" です。 1.5 IPv6 ポートへの接続 ほとんどの場合、自動的に行われます。"%scopeid" が URL に使えない場合、 それを回避するのに HOSTS パラメーターが必要です。 例) HOSTS=v6host/fe80__12_34_56_78%ifn SERVER=ftp://v6host 1.6 対象ホストのアドレスファミリーによるルーティング HostList 内の各ホストへの "_6." と "_4." の前置子を導入しました。 例) PROXY="v6gw:8080:_6.*" ... サーバーが IPv6 なら、プロキシーに転送する SOCKS="v6gw:1080:_6.*" ... サーバーが IPv6 なら、SOCKS に転送する 2. アプリケーションプロトコル固有の問題 2.1 DNS (RFC1886) 以下の RR(ラウンドロビン) は、代理レゾルバー(SERVER=dns での) DNS-DeleGate によって、転送されます。 AAAA x.x.x...x.x.x.IP6.INT 2.2 FTP (RFC2428) 以下のコマンドは IPv6 アドレスを表現するためにサポートされました。 EPSV EPRT 2.3 SOCKS (RFC1928) 以下のメソッド(TCP 用の) 受付アドレスは IPv6 で表現されます。 CONNECT BIND 2.4 HTTP xxxx::yy:zz は、http://xxxx--yy-zz.ipv6 3. 未サポート (今のところ) subin/dgbind スーパーユーザーによって所有される setuid ビットがセットされた 実行ファイル "subin/dgbind" は、DeleGate の実行無しに、スーパーユーザの下、 特権ポートにソケットを接続するのに使われます。 ですが、最新の MacOSX で、-P__:80 のように、IPv6 アドレスとともに使うと、 EACCESS で失敗します。 [要サポート] HOSTS="v46host/{192.168.1.1,ABCD__12_34_56_78} IPv4 と IPv6 アドレス混在のホスト定義。 [サポートしません] UDP/IPv6 over SOCKS [誰かが必要としたらサポートします] DNS over UDP over IPv6 [誰かが必要としたらサポートします] http://[x:x:x:x:x:x:x:x] [サポートしません] ____________________________________________________________________________