FAQ : IPマスカレード機能を有効にしたのにiptables実行時「Couldn't find target `MASQUERADE'」と表示される

対象製品: Armadillo-500 FXArmadillo-500Armadillo-460Armadillo-440Armadillo-420Armadillo-300Armadillo-9Armadillo-240Armadillo-230Armadillo-220Armadillo-210

カーネルコンフィギュレーションでIPマスカレード機能を適切に設定したにも関わらず、iptables実行時にMASQUERADEターゲットが指定できない場合があります。このような場合は、カーネルをビルドした後にiptablesを再度ビルドしてください。

次のカーネルコンフィギュレーションはlinux-2.6.12.3-a9を使用している場合の例です。この設定を行なうと、MASQUERADEターゲットを指定可能になります。

Device Drivers  --->
  Networking support  --->
    [*] Networking support
          Networking options  --->
            [*] Network packet filtering (replaces ipchains)  --->
              IP: Netfilter Configuration  --->
                <*> Connection tracking (required for masq/NAT)
                  <*>   Full NAT
                  <*>     MASQUERADE target support

もし、カーネルよりも先にiptablesをビルドしていた場合は、以下のような実行時エラーとなります。

[armadillo ~]# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables v1.3.6: Couldn't find target `MASQUERADE'

Try `iptables -h' or 'iptables --help' for more information.

のようなエラーになる場合は、カーネルの設定がiptablesに反映されていない可能性があります。次のようにコマンドを実行して、iptablesをリビルドし、ユーザランドイメージファイルを作成してください。

[ATDE ~]$ cd atmark-dist-[version]
[ATDE ~/atmark-dist]$ make user_clean user_only
[ATDE ~/atmark-dist]$ make romfs image