IP Masqueradeがうまくいかなかった件(解決)
IP Masqueradeがうまくいかない - blob glob
困っていたのだが、神である悪友の手によって救われた。
原因は、/etc/sysctl.confにあった。
net.ipv4.ip_forward=1
がコメントアウトされているので、有効化する。その後、
# sysctl -p
で有効化。これだけだった。これだけでpingも通るしhttpも通る。すばらしい。
まず、ログを取ろうとして
$IPTABLES -A FORWARD -i $INTIF -o $EXTIF -s $INTNET -j LOG
などとやってもログが出ない。ということで、彼の助言に従い、
$IPTABLES -A FORWARD -j LOG $IPTABLES -t nat -A POSTROUTING -j LOG
を入れてみた。すると、ログが出るようになった。ちなみにUbuntuServer10.04LTSでは/var/log/{messages,syslog,kern.log}にログが出た。
ログを見ると、OUT=loだとか、ブロードキャスト用のIPに向けて発信されたかのようになっていた。
どう見てもおかしいのだが原因がわからない。そこで、
sysctl.confの問題とかじゃないよね
と一言。ぼくはこれについて全く知らなかったのだが、彼によれば、以前どこかのディストロでnet.ipv4.ip_forward=0がデフォルトになっていて問題になったケースがあったらしく、それを覚えていたのだとか。
結局それが正解であった。まったく、感謝しきりである。
しかしあーだこーだと試行錯誤するうちに夜が明けてしまった……w 寝よう。