NAT の設定もパケットフィルタリングのコマンド書式と大きな違いはありません。ただし、NAT のチェインを利用するには必ず、-t nat オプションを指定する必要があることに注意してください。また、NAT で利用するターゲットは以下の 3 種類です。
表 21-10. NAT のターゲット
| SNAT | 送信元 IP アドレスとポート番号の変換を行います。 |
| DNAT | 送信先 IP アドレスとポート番号の変換を行います。 |
| MASQUERADE | 送信元 NAT の特殊な形式で、固定 IP アドレスを指定できない場合に使用します。例えば、DHCP でインターネットサービスプロバイダから IP アドレスが割り当てられる場合など、変換後の IP アドレスが変動する可能性のあるときに使用できます。 |
送信元アドレス変換は、主にプライベートネットワークのコンピュータをインターネットへアクセス可能にするために使用されます。書式は以下の通りです。
iptables -t nat -A POSTROUTING [パケットの指定] -j SNAT --to-source ipaddr[:port] |
[パケットの指定] の部分にはパケットを特定するための条件として、フィルタリングのときと同じオプションを指定できます。不要なアドレス変換を防ぐために -o オプションでアドレス変換の対象とするネットワークインターフェースを指定すべきでしょう。--to-source の後には、ipaddr に変換後の IP アドレスと必要であれば : で区切り port にポート番号を指定できます。IP アドレスは、192.168.0.1-192.168.0.10 のように範囲を指定することもできます。また、ポート番号も 30000-31000 のように範囲を指定することができます。
以下に送信元アドレス変換の設定例を示します。このルールでは、POSTROUTING チェインで eth0 から出ていくパケットの送信元 IP アドレスを 192.168.0.3 に変換しています。
# iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 192.168.0.3 |
設定内容を確認するには、以下のように実行します。
# iptables -t nat -L |
![]() | IP マスカレードの設定(項21.7を参照)もあわせて参照してください。 |
DNAT は、主に内部ネットワークに存在するサーバを外部に公開したいときに使用されます。

着信したパケットの 送信先 IP アドレスを内部ネットワークのサーバーの IP アドレスに変換することにより、パケットを内部サーバーへリダイレクトします。書式は以下の通りです。
iptables -t nat -A PREROUTING [パケットの指定] -j DNAT --to-destination ipaddr[:port] |
[パケットの指定] の部分には、パケットを特定するための条件として、フィルタリングのときと同じオプションを指定できます。--to-destination の後には、ipaddr に変換後の IP アドレスと必要であれば : で区切り port にポート番号を指定できます。IP アドレスは、192.168.0.1-192.168.0.10 のように範囲を指定することもできます。また、ポート番号も 30000-31000 のように範囲を指定することができます。
以下のルールでは、Turbolinux 10 Server のインターネット側インターフェース(eth0)12.34.56.78 の TCP 80 番ポート宛の TCP パケットを内部ネットワークのサーバーへリダイレクトするために、パケットの宛先 IP アドレスを 192.168.0.3 に変換しています。
# iptables -t nat -A PREROUTING -i eth0 -p tcp -d 12.34.56.78 --dport 80 -j DNAT --to-destination 192.168.0.3:80 |