パケット転送不可 [ソフトウェア/PC関係]
う~む。パケット転送ができない。
サーバー稼働中のThinkPad 600EにCardBusのネットワーク・カードを2枚挿して,ルータみたいにしようと思ってたのだけれど,うまくいかない。自宅には2種類のブロードバンド回線が来ていて,こいつらを相互に行き来できるようにしたかいのである。今は,ブロードバンド・ルータを使っているのだが,しばらく連続稼働していると気が狂ったり,どうも信頼性が低いので,この際TP600Eにまとめてしまおうと思っていた。
最初,何か設定がいるものだと思っていたのだが,いろいろ調べている内に,特別な設定は不要らしいことが分かってきた。でも,別のPCのルーティング・テーブルを書き換えて,TP600Eにパケットを転送するようにしても,別のネットワーク・カードからパケットが出て行かないっぽい。
「Linuxでファイアウォール」とか,そんなキーワードの記事を探していると,カーネルにはパケット転送の仕組みが組み込まれていて,それをiptablesで設定するのだ,という記述をみつけた。NATとかIP Filteringとかその辺の話らしい。そうか,デフォルトで転送が禁止されているのだ,と思って「iptables -L」で設定を見てみると,INPUTもOUTPUTもFORWARDもすべて許可されていることが分かった。あれ?
で,さらに調べていると,/proc/sys/net/ipv4/ip_forwardをcatしてみて,「0」だったらパケット転送が有効化されていないということが分かった。実際に調べてみると,確かに「0」である。この設定は,Debian sargeまでだと,/etc/network/optionsというファイルに「ip_forward=yes」とセットすることで「1」にできるらしい。早速設定して,念のためリブートをかけてみると,確かに/proc/sys/net/ipv4/ip_forwardは「1」になっている。因みに,etch以降では/etc/network/optionsは廃止され,/etc/sysctl.confに「net.ipv4.ip_forward=1」と設定するようだ。
これでそろそろ大丈夫か...と思ったら,やっぱりパケット転送できない。何故??? XPのマシンからtracertかけると,TP600Eまでは行くのだが,その先に行けない。TP600Eのルーティング・テーブルも,特に間違っているようには見えないのだが...。手詰まりである。まぁ,そう困っているわけでもないのだが。
コメント 0