IP Marsqueradeしてみました



IP マスカレード(IP Marsquerade)を使えば1台のLinuxマシンがインターネットに接続されて いれば
そのマシンにLAN接続されている他のマシンも同時にインターネットを使 用することが可能になります。

例えばLinuxマシンとWindowsマシンが自宅にあれば、IP Marsqueradeする ことにより
Linuxでppp接続してインターネットに接続すればLANでつながれている Windowsマシンからも
同時にインターネットに接続することが出来ます。

今回私が試したのはKondara/MNU Linux 2000 とWindowsNT 4.0 WorkStation
です。
なお、IPアドレスは
Linux:192.168.20.1 (kenken)
WindowsNT:192.168.20.4 としています。



【サーバー側(Linuxマシン)の設定】


IP マスカレードするにはカーネルでサポートさせておく必要があるのです がKondara2000やVine2.0なんかでは始めから使用できる状態になっています。


設定は比較的簡単でした。まず以下のファイルを編集します。
/etc/sysconfig/network
NETWORKING=yes
FORWARD_IPV4=yes
HOSTNAME="kenken"
注意するのはFORWARD_IPV4=yesとすることで す。
確認は
/proc/sys/net/ipv4/ip_forwarding が 1 となっていればOKです。

但し他のサイトやJFの「Linux IP Masquerade mini HOWTO」等にもRedHat系の 場合は
この設定でよいとあったのですが、どうも私の場合うまくいっていなかっ たので以下のようにしました。

echo "1" > /proc/sys/net/ipv4/ip_forwarding


次に必要なモジュールを組み込みます。
必要なモジュールをひとつづつ組み込んでもいいのですが私の場合は
以下のようにして組み込んでいます。

for i in /lib/modules/2.2.16-5k/ipv4/*.o
do
/sbin/insmod $i
done


これでモジュールも組み込まれますのでlsmodで確認してください。


次に以下のコマンドを発行します
/sbin/ipchains -P forward DENY
/sbin/ipchains -A forward -s 192.168.20.0/24 -j MASQ

これで192.168.20.X である全てのマシンが外部へ出て行くことが出来ま す。
これらの設定を毎回行うのは手間なので /etc/init.d/rc.local に記述し ておきます。


# for IP masquereda
for i in /lib/modules/2.2.16-5k/ipv4/*.o
do
/sbin/insmod $i
done

echo "1" > /proc/sys/net/ipv4/ip_forward
/sbin/ipchains -P forward DENY
/sbin/ipchains -A forward -s 192.168.20.0/24 -j MASQ

これでサーバー側の設定は完了です。


(次ぎ) クライアント側(WindowsNT / Linuxマシン)の設定へ






       [へなちょこlinuxのコーナーへ]    [ホームへ]