11.18. REDIRECTターゲット

REDIRECT ターゲットは、パケットやストリームをそのマシン自体へリダイレクトするために使用する。これにより、例えば HTTP ポート宛のパケットをすべて、自機上の Squid などのプロキシへリダイレクトすることができる。ローカルで作られたパケットがアドレス 127.0.0.1 へマッピングされるわけだ。言い方を変えれば、フォワードされるパケットの宛先アドレスを自分へと書き換えるようなものだ。 REDIRECT ターゲットは、 LAN 上のホストにプロキシの存在を明示しない 透過プロキシ を行う場合などに打ってつけの選択といえるだろう。

REDIRECT ターゲットは nat テーブルの PREROUTINGOUTPUT チェーンおよび、それらのチェーンから呼ばれるユーザ定義チェーンでのみ有効である点に注意しなければならない。その他では機能しない。 REDIRECT ターゲットは、下記に示すひとつのオプションしか採らない。

Table 11-13. REDIRECTターゲットオプション

オプション--to-ports
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080
説明

--to-ports オプションは、使用すべき宛先ポートあるいは宛先ポートの範囲を指定する。 --to-ports オプションがない場合、宛先ポートは変化しない。指定は上記のようにし、単一ポートを指定したい時には --to-ports 8080 のようになる。ポートを範囲で指定したい場合には --to-ports 8080-8090 のようになり、これは REDIRECT ターゲットに対して、そのパケットを 8080 から 8090 までのポートへリダイレクトするよう指示する。このオプションは --protocol オプションで TCPUDP プロトコルを指定しているルールでのみ有効だという点に気を付けなくてはならない。さもなければこのターゲットにはまったく無意味だからだ。

Note

Linux カーネル 2.3, 2.4, 2.5, 2.6 で機能する。