長南です。 開通おめでとうございます。 寺西さんのメールより [vine-users:061791] > > 「疑問」 > > eth0とeth1の設定を入れ替えたら動作したのか疑問です。dmesgから判断すると > どちらのNICもも正しく認識されているようですが、eth1をLAN側にしたとき、 > eth1を通してローカル側との接続が出来ないのなら、これをWAN側に接続した > なら、WAN側との接続も出来ないような気がしますが。(netcfg、iptableの > 設定は何度も確認しましたし、間違えはなかったと思います) dmesg でわかるのは、カードが認識されているかどうかだけです。そのカードが 実際にどう設定されていて、ルーティングがどうなっているかを(言い換えれば、 netcfg の設定がきちんと反映しているかどうかを)調べるのが、/sbin/ifconfig や netstat -r。ですから、eth0/eth1 入れ換え前の両コマンドの結果があれば、 何かわかったかもしれません。それでもわからないかもしれませんけれど。 ともあれ、ルータが使えるようになったとのことなので、ちょっとお節介気味 ですが、最初のメールで気になったことを書いておきます。 まず、/sbin/chkconfig --list iptables を実行してみてください。 $ /sbin/chkconfig --list iptables iptables 0:off 1:off 2:on 3:on 4:on 5:on 6:off 上のように、2 3 4 5 あたりが on になっていたら、マシンの起動時に /etc/rc.d/init.d/iptables start が実行されるようになっています。 この場合、/etc/sysconfig/iptables が存在すれば、上記スクリプトの中で iptables-restore が実行され、その設定が読み込まれます。 寺西さんがお作りになった rc.ip-masq は、その中で /sbin/iptables-save > /etc/sysconfig/iptables をやっています(メールの 原文では iptable になっていますが、スクリプトのコメントは iptables。 iptables でしょうね)。そこで、再起動時からは /etc/rc.d/init.d/iptables が /etc/sysconfig/iptables に書き出された設定を自動的に再現することになります。 そんなわけで、rc.ip-masq のルール設定部分は一度実行するだけで充分です。 起動するたびに実行しなければならないのは、モジュールをロードしたり、 /proc/sys/net/ipv4/ip_forward に 1 を書き込んでいる部分だけです(後者は /etc/sysctl.conf で net.ipv4.ip_forward = 1 になっていれば、必要ないはず)。 言い換えれば、rc.ip-masq が今のままの形になっていると、起動ごとに iptables の設定が二度行われてしまうということです。別に害はないかも しれませんが。 # 細かいことですが、この場合、rc.ip-masq の「clear rules」部分で # /sbin/iptables -F -t nat もやっておかないと、マスカレードの設定が # 二重三重になってしまうのではないでしょうか。 起動時に /etc/rc.d/init.d/iptables を実行しないようになっている場合や、 /etc/sysconfig/iptable( s がない)に設定を保存している場合は、もちろん 別の話です。rc.ip-masq ですべてを設定してよいわけです。 # ただし、この場合は、/etc/rc.d/init.d/network でネットワークが # 起動してから、rc.local 経由で iptables の設定が有効になるまで、 # ネットワークが無防備状態になるそうです。/etc/rc.d/init.d/iptables が # 起動時に実行される場合、network よ先に実行されるようになっていることに # 注目。 最後に、政さんにならって、役に立った参考文献を上げておきます(私も iptables については修行中ですが)。 /usr/doc/JF/packet-filtering-HOWTO.txt.gz 「UNIX MAGAZINE」2002 年 10 月号、白崎博生「Linux 2.4 のnetfilter」。 /etc/rc.d/init.d/iptables(参考文献かな) -- 長南洋一 cyoichi@xxxxxxxxxxxxxxx