faithd(8) FreeBSD 一般コマンドマニュアル

faithd

前のページ 上に戻る 次のページ

faithd




解説

     faithd は IPv6 から IPv4 への TCP リレー機能を提供します。

     faithd は IPv4/v6 デュアルスタックルータ上で起動しなければなりません。

     TCPv6 トラフィックが見つかると、 faithd はその TCPv6 トラフィックを TCPv4
     にリレーします。リレーする TCPv4 コネクションの終点は、元の IPv6 終点の末
     尾 4 オクテットから決定されます。例えば、 faithd 用に
     3ffe:0501:4819:ffff:: が予約されていて、 TCPv6 終点アドレスが
     3ffe:0501:4819:ffff::0a01:0101 なら、このトラフィックは IPv4 の終点
     10.1.1.1 に向けてリレーされます。

     faithd による変換サービスを用いるには、 IPv4 アドレスをマップするための
     IPv6 アドレスプレフィクスを予約しておく必要があります。カーネルは、そこで
     予約した IPv6 アドレスプレフィックスへのすべての TCP コネクションを、
     route(8) を用いて疑似インターフェース faith(4) にルーティングするように、
     適切に構築されていなければなりません。また、 sysctl(8) を用いて
     net.inet6.ip6.keepfaith を 1 に設定しておくべきです。

     ルータは、予約された IPv6 アドレスプレフィックス行きのすべての TCP トラ
     フィックを捕まえるように設定しなければなりません。このためには route(8)sysctl(8) のコマンドを使用します。

     faithd は、名前からアドレスへの特別な変換機構を必要とし、ホスト名から特別
     な IPv6 アドレスプレフィックスへ解決します。小規模なインストールでは、
     hosts(5) を使用してください。大規模なインストールでは、特別なアドレス変換
     をサポートする DNS サーバが有用でしょう。 totd と呼ばれる実装が
     http://www.vermicelli.pasta.cs.uit.no/ipv6/software.html で入手可能です。
     変換された DNS レコードが一般の DNS 群に伝播されないよう、注意してくださ
     い。非常に有害です。

   B>デB>ーB>モB>ンB>モB>ーB>ド
     faithd がスタンドアロンプログラムとして起動されると、 faithd は自分自身を
     デーモン化します。 faithd は TCPv6 のポート service を listen します。ポ
     ート service への TCPv6 トラフィックを見付けると、コネクションをリレーし
     ます。

     faithd が TCP ポート service を listen するので、 inetd(8) や他の標準的な
     仕組みを用いて、そのルータ上で service ポートを使うローカルな TCP デーモ
     ンを動作させることはできません。 faithd に対して serverpath を指定するこ
     とで、ルータ上でローカルデーモンを走らせることができます。終点アドレスが
     ローカルのインターネットアドレスであれば、 faithdserverpath において
     ローカルデーモンを起動します。それ以外の場合、 faithd は IPv4 TCP への変
     換を行います。ローカルデーモンの引数は serverargs を用いて指定することが
     できます。

     次のオプションが使用可能です:

     -d      syslog(3) を用いてデバッグ情報を出力します。

     -f configfile
     rlogin(1) への逆方向コネクションもリレーします。

     アクティブでないセッションは 30 分で切断します。これは、使わなくなった
     セッションのせいでリソースが消費されるのを防ぐためです。サービスによって
     はこの機能は適切でないかもしれません。 (この機能をコンフィギュレーション
     可能にすべきでしょうか?)

   inetd B>モB>ーB>ド
     faithdinetd(8) から起動されると、 faithd は標準入力から渡されるコネク
     ションを扱います。コネクションの終点が、予約した IPv6 アドレスプレフィッ
     クスの範囲内の場合、 faithd はコネクションをリレーします。それ以外の場
     合、 faithd はサービスに対応する telnetd(8) のようなデーモンを起動し、
     inetd(8) から渡されるコマンド引数を使用します。

     faithd は、ローカルな TCP ポート番号を元に動作モードを決定し、必要な時/可
     能な時には特別なプロトコル処理を有効にします。例えば、 faithd が FTP ポー
     ト上で inetd(8) から起動されると、これは FTP リレーとして動作します。

     この動作モードでは、 inetd(8) 中に faithd 用の特別なサポートを必要としま
     す。

   B>アB>クB>セB>スB>制B>御
     悪意あるアクセスを防ぐため、 faithd は単純なアドレスベースのアクセス制御
     を実装しています。 /etc/faithd.conf (または -f で指定した configfile)
     で、 faithd は望まないトラフィックの中継を防ぎます。 faithd.conf は、次の
     書式のディレクティブを含みます:

     o   src/slen deny dst/dlen

         問い合わせの始点アドレスが src/slen に合致する場合で、変換後の終点ア
         ドレスが dst/dlen に合致する場合、接続を拒否します。

     o   src/slen permit dst/dlen

         問い合わせの始点アドレスが src/slen に合致する場合で、変換後の終点ア
         ドレスが dst/dlen に合致する場合、接続を許可します。

     これらのディレクティブは順番に評価され、最初に合致するエントリが効果を持
     ちます。

     inetd モードでは、 inetd(8) のアクセス制御機能でトラフィックをフィルタ可
     能です。


使用例

     faithd を起動する前に、 faith(4) インタフェースを適切に設定しておく必要が
     あります。

     # sysctl -w net.inet6.ip6.accept_rtadv=0
     # sysctl -w net.inet6.ip6.forwarding=1
     # sysctl -w net.inet6.ip6.keepfaith=1
     # ifconfig faith0 up
     # route add -inet6 3ffe:501:4819:ffff:: -prefixlen 96 ::1

     # faithd ftp /usr/local/v6/libexec/ftpd ftpd -l

     他の使用例です。 rsh/rlogin サービスを変換するには -p が必要かもしれませ
     ん。

     # faithd ssh
     # faithd login /usr/local/v6/libexec/rlogin rlogind
     # faithd shell /usr/local/v6/libexec/rshd rshd

     しかしながら、rlogin や rsh のコネクションを変換するときには注意が必要で
     す。更なる詳細については セキュリティの考察を参照してください。

   inetd B>モB>ーB>ドB>のB>サB>ンB>プB>ル
     inetd.conf(5) に次の行を追加します。構文はオペレーティングシステムによっ
     て様々でしょう。

     telnet  stream  tcp6/faith  nowait  root  /usr/sbin/faithd  telnetd
     ftp     stream  tcp6/faith  nowait  root  /usr/sbin/faithd  ftpd -l
     ssh     stream  tcp6/faith  nowait  root  /usr/sbin/faithd  /usr/sbin/sshd -i

     inetd(8) は、listen するソケットをオープンし、カーネルの TCP リレーサポー
     トを有効化します。コネクションが到着すると、 faithdinetd(8) から起動
     されます。コネクションの終点が、予約した IPv6 アドレスプレフィックスの範
     囲内の場合、 faithd はコネクションをリレーします。それ以外の場合、 faithd
     はサービスに対応する telnetd(8) のようなデーモンを起動します。

   B>アB>クB>セB>スB>制B>御B>のB>例
     以下に単純な faithd.conf 設定を示します。

     # 3ffe:501:ffff::/48 からのすべてに変換器の使用を許し、
     # 次の IPv4 の終点へ接続させます:
     # - 10.0.0.0/8 と 127.0.0.0/8 以外のすべて
     # 他の接続は許しません。
     #
     3ffe:501:ffff::/48 deny 10.0.0.0/8
     3ffe:501:ffff::/48 deny 127.0.0.0/8
     3ffe:501:ffff::/48 permit 0.0.0.0/0


戻り値

     成功すると faithd は EXIT_SUCCESS (0) で終了し、エラーがある場合は
     EXIT_FAILURE (1) で終了します。


関連項目

     faith(4), route(8), sysctl(8)

     Jun-ichiro itojun Hagino and Kazu Yamamoto, An IPv6-to-IPv4 transport
     relay translator, internet draft, draft-ietf-ngtrans-tcpudp-relay-04.txt,
     work in progress material.


歴史

     faithd コマンドは WIDE Hydrangea IPv6 プロトコルスタックキットで初めて登
     経路エントリを注意深く設定することで、制限可能です。 IPv6 の始点アドレス
     については、パケットフィルタでフィルタする必要があります。 関連項目に列挙
     した文書に、本件に関する更なる議論が記述されています。

FreeBSD 4.4                    January 27, 2000                    FreeBSD 4.4

ABELNET VPSサービス