カーネルコンフィギュレーションで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