交換したルーター(WSR-300HP)はほぼ問題なく動いている。換えた後から、ちょっとした問題が起こるようになったこと以外は。PCを休止して復帰させた後、ネットの調子が悪いのだ。
僕はDropbox Paperに日記を書いていて、毎朝、起きたら、とりあえず起床時刻や室温・気温などを書くので(初めにそう決めた訳ではないのだが、最初の頃、その日の最初に書くことがなくて、とりあえず書いていたら、習慣になった)、そこで繋がらないと、その日の出鼻をくじかれた気がするので、なんとしても直したかった。
交換した次の日は、復帰後、ネットに繋がらなかった。もう壊れたかと思ったが、しばらく待ったら使えるようになったと思う。ただ、その日はキーボードも効かず(抜き差ししたら直った)、PCを休止する時にハングしたので、Linux自体の調子も悪かったのかも知れない。
その次の日は、復帰後、VivaldiからPaperに繋がらなかった。が、5分くらい待ったら使えるようになった。
その次の日(昨日)は、復帰後、10分以上待っても繋がらなかったが、Paperのサーバにpingしたら使えるようになった。それで、ルータで、PCのIPアドレスをDHCPの固定割り当てにしてみた。
しかし、昼寝の後の復帰後はやっぱり駄目だった。不思議なことに、他のサイトは問題なく、ChromeからならPaperに繋がった。また、Wi-FiのiPhoneも問題ない。そして、PCのEthernetを落として再開させたら繋がるようになった。ルーターのログには、Ethernetの再開時に、PCからDHCPの要求が来ていた。それでDHCPの相性問題だと考え、PCのIPアドレスをDHCPでなく、手動割り当てにしてみた。
そして今朝。無事、復帰直後からPaperが使えた。しばらく様子を見ないと確定しないが、PC(Linux)とルーターのDHCPの相性が悪いようだ。Linux(ルーターのサポートOS一覧にないw)だし、休止が絡んでいるし、問題が起こるのが特定サイトなので、メーカーのサポートに連絡しても、まず直らない気がする。
あ、今気付いたのだが、ルーターの動作モード(ルーター/ブリッジ)の切り替えスイッチを「自動」にしているのが関係しているのかも知れない。他に有線の機器がないので、PCの復帰後はルーターになるかどうかの判定が不安定になったり、判定している間のパケットを落とすために問題が起こるのかも知れない。そういえば、別の理由だったと思うが、前のルーターもルーターに固定していた。もう関係ないと思うけど、とりあえず、「ルーター」に固定した。(← iPhoneではずっとWi-Fiが使えているので、「自動」でもルーターモードから変わっていないと思う。: 8:20)
↓
残念ながら、IPアドレスを手動設定にしても効果がなかった(復帰後にネットに繋がらなくなった)ので、ルーターとLinuxの相性(復帰時の動作?)問題のようだ。それで、休止からの復帰時に、ネットワークインタフェースを一旦落としてから上げるスクリプトを/etc/pm/sleep.dに追加した。この時、DHCPでないと、ルーティングやDNSの設定もしなくてはならないので、DHCPにするように/etc/network/interfacesに記載した(デフォルトだとGUIの設定が使われるのだが、それはこのファイルとは別のようだ。統一した方がいいと以前から思っていたが、何か理由があるのか。)
↓
その前に、以前効果があったので、復帰時に単にpingをしてみるようにした。
さて、効果はあるだろうか? (12/19 5:13)
↓
pingは今一つだった。Thunderbirdはすぐに繋がったのだが、VivaldiからのPaperは、タブによって数分待てば繋がったりそうでなかったりだった。何が原因なのか分からないが、今度は、復帰時にdhclientを実行してみる。これは、DHCPでの初期化処理を行うもので、ネットワークインタフェースを一旦落としてから上げる処理の代わりだ。これなら確実な気がする。(12/19 19:39)
↓
dhclientは効果があったようだが、まだ安心はできない。何となく寒いと(10℃前後?)駄目な気がするが、さすがにそれはないだろう。そして、今朝は別の問題が起こった。復帰後しばらくしてからネットが切れた。今度は、ルーターからプロバイダまでのPPPoE接続が切れた感じだった。それで、「インターネット@スタート」なる意味不明なモードを止めて、普通のPPPoEモードに変えた。また、切れた頃にNTPでの時刻更新が行われていて、その影響も考えられたので、NTPも止めた。時刻なんて飾りですからw
まったく、WSR-300HPはバグだらけの製品の気がして来た。良くあれでベストセラーになっているものだ。壊れたWHR-G301が復活するといいのだが、何度やっても駄目なので、今度問題が起こったら別のを探そうと思う。(12/20 19:37)
↓
dhclientはバッグラウンドで動くプロセスなのを知らず(何となく気になっていたが、問題が起こらなかったので、そのままにしていた)、復帰のたびに起動していたら、頻繁に再要求するようになって、使用中にネットが切れたりするようになってしまった。それで、休止の時に、取得したアドレスなどを解放して停める(dhclient -r)ようにした。(12/22 5:31)
↓
その後、GUI(NetworkManager)の関連コマンド(nmcli)でネットワークインタフェースの停止と起動ができることが分かり、なるべくOSは標準状態で使いたいので、それを使って、復帰時に一旦Ethernetを停止し、再度起動するようにした。これだと、ネットワークインタフェースの停止だけでなく、DHCPの初期化処理も行われるので確実だ。数日間、問題が起こっていない。(12/26 4:01)
PS. これとは関係ないが、ルーターがらみなので書く。Wi-Fiの出力についてである。僕はルーターの近く(半径3m未満)でしかiPhoneを使わないので、フルパワーの必要がなく、出力を落とせば外部からルーター(AP)が見える確率が減って、不正アクセスの可能性も減ると思ったので、下げた。今は25%にしているが、電波強度は問題ないようだ(Wi-Fiミレルというアプリで見たら、大体80%を超えていた)。10%の出力でも試したいが、ルーターの選択肢にないのでできない。
PS2. 更に別件だが、稿を改めるのも面倒なので書く。Wi-FiミレルのキャプチャをiPhoneから取ろうとして、失敗した。iPhoneへのアクセスにはgphoto2を使っているのだが、ファイル一覧が取れないことが多いのだ。何度か繰り返すと成功するので、gphoto2とiPhoneの相性だろう。それで、急遽、画像取り込みプログラムにリトライ処理を追加した。
この問題はiOSを10.2に上げるまでは起こっていなかったので、またしてもAppleにしてやられた感じだ。いい加減、まともなソフトを出して欲しい! ちゃんと高いお金払ってるんだからさ!! そういうお金が、下らない「革新」のために使われているのかと思うと、頭に来る。
ファイル一覧取得のエラーの件、ファイル一覧を取る前に250msの待ちを入れたら、エラーが起こらなくなって、リトライは不要な感じだ。その前にはカメラ情報を取得しているだけで、他の機器では待ちなしで問題ないのだが、iOS 10.2は反応が遅くなったようだ。(12/18 18:23 追記)
(7:46, 8:20 題を変更、若干修正・追記, 12/18 18:23 iPhoneの問題に追記)
naoki: 2016年12月18日 07:06
>もう壊れたかと思った
これ,すっごいショックですよね。私も経験ありますが,うまく動くまで壊れた感が続きますよね。DHCP手動も,もし私が家で使うなら,メーカーに納得行きません。動きゃいいじゃんという考えもありますが。あ,メーカーじゃないのか。
ルータの省電力モードは,関係ないんですよね。PCだけに問題起きてるんですもんね。
スマフォも,しっかり動く,枯れた端末が欲しいですw
PiuLento: 2016年12月18日 07:24
●そう、換えた次の朝の嫌な気分といったら・・・どうしても、「違う、故障じゃないんだ」と思うようにしてましたw
やっぱり、ちゃんと動かないと納得行きませんね。そう、ルーターの省電力モードかとも思ったのですが、そもそも、設定がなかったですw
まさに、枯れた端末、普通に動いてくれるだけでいいです。あとはなーーんにもしないからww
wataru@example.com: 2016年12月18日 13:23
この際、dhcpサーバをlinux-boxで作った方が、幸せになれるかも、でしょうか・・・
参考まで、ですが、我が家は、無線ルータのdhcp機能を止めて、dhcpサーバは、玄箱(isc-dhcp)にやらせています。家にある30台くらいの機器(Win/iOS/Android/Ubuntu/3DS)のMACとIPの関係を固定にするためです。
端末として、ubuntu-server 12.04 on Thinkpad X60s、Thinkpad R500(いづれもwifiインタフェース)で、ハイバネーション復帰後も含めて、普通にアドレスが取れて稼働しております。(wataru本人ではなく、家族が利用)
PiuLento: 2016年12月18日 14:11
●30台とはすごいです。まさに大世帯ですね。それだと、普通の家庭用ルーターでは面倒ですね。
DHCPをLinuxでやるには、LinuxにPPPoEを入れて、常時起動しておく必要がありますので、余りやりたくないです。うちは2+1台しかないので、全部固定アドレスの方がいいです。
wataru@example.com: 2016年12月19日 07:29
台数が少なければ、端末で固定ipを振るのが現実解かも、ですね。
端末が増えてきたら、もしかすると、ブロードバンドルーターにいじれるlinuxを入れるdd-wrtあたりが、ありかも、です。
ブロードバンドルーターをタダで機能アップ? DD-WRT化に挑戦:週間リスキー - 週刊アスキー
http://weekly.ascii.jp/elem/000/000/347/347324/
我が家の場合は、ルータは、linuxベースではない旧いatermを使っているので、後ろの玄箱でlinuxしてます。
PiuLento: 2016年12月19日 19:42
●なるほど。いろいろあるんですね。
wataru@example.com: 2016年12月20日 20:37
特定のsiteとなると、dnsがらみですかね?
我が家の例ですが、ブロードバンドルータのdns代理応答機能(※)を設定して、使っていると、ブラウザがうまく使えなくなって、設定を変更してグローバルIPなdnsで名前解決させるとOKってなandroid端末があったりします。
※たいていのブロードバンドルータはこの機能があり、ブロードバンドルータをdhcpサーバとすると、dnsサーバとしてブロードバンドルータ自身のIPを返す。
android機に入ってnslookupすると、現象が起きているときは、ブロードバンドルータのdnsで引くとNGで、グローバルIPなdnsを使うとOKってな感じでした。
wataru@example.com: 2016年12月20日 20:38
補足です。
ブロードバンドルータのdnsで引くとNGな場合、応答が返ってこなくなります。
wataru@example.com: 2016年12月20日 20:59
ブロードバンドルータのdns代理応答機能(DNSリレー機能)と端末の相性(?)問題、それなりにあるようです。
アクトビラのFAQに載ってました。
http://av.jpn.support.panasonic.com/support/actvila/faq/actvila.html#q030128
PiuLento: 2016年12月21日 00:26
●wataruさん、お教えありがとうございます。
確かに、その可能性があります。もし、次に問題が起こりましたら、DNSの設定を変えてみます。