ルータ交換、そして

IRCが切断されまくる件についての続編。 ルータ−モデム間のLANケーブルと電話線を全て交換したが解決しないので、次の一手としてルータを変更してみることにした。 ルータはFreeBSDで運用していたが、無線APとして使っているバッファローのWZR-HP-G300NHにルータ機能が付いているので、これを有効にして切り替える。 原因が他にあった場合は元に戻せるよう、ネットワークにはあまり手を加えたくない。 というわけで、DHCPやDNS(unboundで運用中)はそのままに、デフォルトゲートウェイのみをWZR-HP-G300NHに移行する。

まず、WZR以下略のルータ機能を復活させる。切り替えスイッチ一つで有効・無効にできる(WANポートの信号の有無を見て自動的に切り替えるAUTOもあり)が、有効にしたところLAN側のIPアドレスが自動的にデフォルトの192.168.1.1になってしまった。我が家のネットワークとはセグメントが違うので、いきなりここでつまずく。ちなみにルータ機能を有効にするとLAN側IPアドレスをDHCPで取得することはできない。何なのこの仕様。 PCのIPアドレスを一時的に変更して対処し、とりあえず外には出れるようにした。 次にFreeBSD側の設定変更。rc.confの以下の項目を全部NOに書き換える。

# ゲートウェイ
gateway_enable="NO"
# mpd(pppドライバ)
mpd_enable="NO"
# ipfilter
ipfilter_enable="NO"
# NAT
ipnat_enable="NO"
# linux igd(uPnPデーモン)
linuxigd_enable="NO"

さらにdefaultrouterをWZR略のアドレスに変更して、面倒なので再起動…すると応答がなくなった。あれぇ。 起動はしているようだったので、普段繋げてないキーボードを繋いで確認。 ifconfigしてみると、UPになってはいるもののLAN内のどこにも到達できない。 自分自身のアドレスにも到達不可。なんとlocalhostにすら到達しない! 小一時間ほどパニクったが、答えは簡単だった。ipfilterをkernelに組み込んでしまっていたので、ipfilter_enable=”NO”だとスタンドアロンになってしまうのであった。kernel moduleにしとけって話ですよね。 後で戻す可能性もあるし、いちいちkernelの再構築をすることもないのでipfilterを有効にして再起動。以後は特に問題なし。

さて、さっそくwiresharkでパケットを確認。TCPの再送は続いている… 夜半にはめでたくIRCが切断。おめでとうルータ君、君の疑いは晴れた。 これで外に繋がっているルートはモデムを除いて全て交換したので、NTTに電話するしかなくなった。 以下次号。