総合手引 | セクション 8 | オプション |
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 群に伝播されないよう、注意してください。 非常に有害です。
faithd が TCP ポート service を listen するので、 inetd(8) や他の標準的な仕組みを用いて、そのルータ上で service ポートを使うローカルな TCP デーモンを動作させることはできません。 faithd に対して serverpath を指定することで、 ルータ上でローカルデーモンを走らせることができます。 終点アドレスがローカルのインターネットアドレスであれば、 faithd ユーティリティは serverpath においてローカルデーモンを起動します。 それ以外の場合、 faithd は IPv4 TCP への変換を行います。 ローカルデーモンの引数は serverargs を用いて指定することができます。
次のオプションが使用可能です:
| |
syslog(3) を用いてデバッグ情報を出力します。 | |
| |
アクセス制御用の設定ファイルを指定します。 後述を参照してください。 | |
| |
IPv4 TCP コネクションを最終の終点向けにリレーする際、 faithd はソースポートとして特権 TCP ポートを使用します。 ftp(1) をリレーする際は 本オプションは不要です。 そのための特別なプログラムコードが含まれています。 | |
faithd ユーティリティは通常の TCP データも帯域外 TCP データもリレーします。 TCP half close をエミュレートすることも可能です。 faithd ユーティリティは ftp(1) で用いられるプロトコルに対して、特別なサポートを行います。 FTP プロトコルを転送する際は、 faithd は、 PORT/LPRT/EPRT コマンドおよび PASV/LPSV/EPSV コマンドにおけるネットワークレベルアドレスも変換します。
アクティブでないセッションは 30 分で切断します。 これは、使わなくなったセッションのせいでリソースが消費されるのを 防ぐためです。 サービスによってはこの機能は適切でないかもしれません。 (この機能をコンフィギュレーション可能にすべきでしょうか?)
faithd は、ローカルな TCP ポート番号を元に動作モードを決定し、 必要な時/可能な時には特別なプロトコル処理を有効にします。 例えば、 faithd が FTP ポート上で inetd(8) から起動されると、これは FTP リレーとして動作します。
この動作モードでは、 inetd(8) 中に faithd 用の特別なサポートを必要とします。
問い合わせの始点アドレスが src/slen に合致する場合で、変換後の終点アドレスが dst/dlen に合致する場合、接続を拒否します。
問い合わせの始点アドレスが src/slen に合致する場合で、変換後の終点アドレスが dst/dlen に合致する場合、接続を許可します。
これらのディレクティブは順番に評価され、 最初に合致するエントリが効果を持ちます。 合致しないと (これがルールセットの最後である場合) トラフィックは拒否されます。
inetd モードでは、 inetd(8) のアクセス制御機能でトラフィックをフィルタ可能です。
# sysctl net.inet6.ip6.accept_rtadv=0 # sysctl net.inet6.ip6.forwarding=1 # sysctl net.inet6.ip6.keepfaith=1 # ifconfig faith0 up # route add -inet6 3ffe:501:4819:ffff:: -prefixlen 96 ::1 # route change -inet6 3ffe:501:4819:ffff:: -prefixlen 96 -ifp faith0
# faithd telnet
もし /usr/libexec/telnetd にある telnetd(8) によるローカル telnet サービスを提供したい場合は、 次のコマンドラインを使用します:
# faithd telnet /usr/libexec/telnetd telnetd
ローカルデーモンに追加の引数を渡したい場合は:
# faithd ftp /usr/libexec/ftpd ftpd -l
他の使用例です。
サービスが始点ポート範囲をチェックする場合には
# faithd ssh # faithd telnet /usr/libexec/telnetd telnetd
telnet stream tcp6/faith nowait root faithd telnetd ftp stream tcp6/faith nowait root faithd ftpd -l ssh stream tcp6/faith nowait root faithd /usr/sbin/sshd -i
inetd(8) は、listen するソケットをオープンし、 カーネルの TCP リレーサポートを有効化します。 コネクションが到着すると、 faithd が inetd(8) から起動されます。 コネクションの終点が、予約した IPv6 アドレスプレフィックスの範囲内の場合、 faithd はコネクションをリレーします。 それ以外の場合、 faithd ユーティリティはサービスに対応する telnetd(8) のようなデーモンを起動します。
# 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
RFC3142, ftp://ftp.isi.edu/in-notes/rfc3142.txt, An IPv6-to-IPv4 transport relay translator, June 2001.
, ,KAME プロジェクト (http://www.kame.net/) スタックに 基づく IPv6, IPsec サポートは、 FreeBSD 4.0 で初めて統合されました。
faithd.conf もしくは IPv6 パケットフィルタを使用し、 faithd へのアクセス制限を行うことを、管理者へお勧めします。 これは faithd を悪意ある者達から防御することであり、 サービス/バンド幅を盗まれないようにすることを意味します。 IPv6 の終点アドレスについては、 route(8) を用いて、 faith(4) を指す経路エントリを注意深く設定することで、制限可能です。 IPv6 の始点アドレスについては、 パケットフィルタでフィルタする必要があります。 関連項目 に列挙した文書に、本件に関する更なる議論が記述されています。
FAITHD (8) | May 17, 1998 |
総合手引 | セクション 8 | オプション |
このマニュアルページサービスについてのご意見は Ben Bullock にお知らせください。 Privacy policy.
“ | UNIX is a four-letter word! | ” |