22.7. IP マスカレードの設定

IP マスカレードとは、1つのグローバルアドレスに複数のプライベートアドレスを対応させることでグローバルアドレスを持っていないコンピュータをインターネットへ接続させる機能のことを言います。コンピュータ台数分のグローバルアドレスが用意できなかったとしても、1つのグローバルアドレスを使用して複数台のプライベートネットワークコンピュータがグローバルネットワークに接続することができるようになります。これは、パケットの送信元 IP アドレスをグローバルアドレスに変換することで実現しています。したがって、IP マスカレードの設定を行うには、POSTROUTING チェインを使用します。一般的に NAT というと 1 対 1 の変換を指しますが、IP マスカレードはこの送信元 NAT を特化させた特殊なケースと言えます。また、たとえグローバルアドレスが足りていたとしても、IP マスカレードを利用することによって、外部から個々のクライアントの特定が難しくなるため、クライアントへの不正アクセスを防ぐというセキュリティ的な効果もあります。

Turbolinux 11 Server をデフォルトゲートウェイとした上図のようなネットワーク環境で、プライベートアドレスを持つクライアントがインターネットに接続できるように IP マスカレード機能を有効にするには、以下のルールを設定します。

# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

-t nat は NAT のルールを指定するために必要なオプションです。チェインには POSTROUTING を指定し、-o eth0 でパケットの出ていくインターフェイスを指定しています。ターゲットには -j MASQURADE を指定します。IP マスカレードは、パケットが出ていくインターフェイスの IP アドレスを使用しますので送信元の IP アドレスを指定する必要はありません。しかし、外部インターフェイスに固定 IP アドレスが割り振られている場合は、送信元 NAT を使用して以下のように指定してもよいでしょう。

# iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 192.168.0.3

ターゲットの -j SNAT は送信元 NAT の指定です。--to-source オプションでインターフェイスカードに割り振られている IP アドレスを指定しています。

IP マスカレードを機能させるには、パケット転送が有効でなければなりません。ネットワークインターフェース間のパケット転送を有効にするには、 以下のコマンドを実行し、/proc/sys/net/ipv4/ip_forward の値を 1 (有効)にします。あるいは、ネットワーク設定ツールの turbonetcfg で有効にすることも可能です。turbonetcfg で有効にすれば、システム再起動後でも有効にした値は保持されます。

# echo 1 > /proc/sys/net/ipv4/ip_forward