先月からいろいろおうちのネットワークトラブルに見舞われたので、ちょっと書き残しておきたいと思います。
我が家のネットワークは無線系を除きすべてZRouerでビルドされたFreeBSDを利用したモジュールで運用されています。
最近のThingSpeakの利用状況です。
まず12/11(この集計は日本時間ではないので、ちょっとずれます)にへっているのはsnmpの作り込みをしてEthernetSwitchを止めてしまったためでした。
そうしているうちに14日を境にデータ受信数が減りました。これはおそらくThingSpeakがサーバーメンテをして以前よりパフォーマンスが良くなったかサーバまでの距離が近くなったかで、以前はアクセスに8秒くらいかかっていたのが4秒になり、10秒のインターバールで処理していたのがThingSpeakのFree Accountのリミットの15秒間隔にひっかったため、アクセスは多くなっていたのですが、半分処理されない状態になったためでした。
3ヶ月くらい連続稼働していた蟹さんが、このサーバメンテのタイミングでハングアップしてしまっていました。理由は不明で再現も不可能です。WatchDogは入れてなかったので、入れていればハングアップはなかったかもしれません。
蟹さんのインターバルを20秒にして、湿度センサーも付けて22日くらいに再開しました。
おうちのWiFiが極端に遅かったので、ついでにAPもハードオフで買ってきたルーターをメーカーの最終ファームウエアにアップデートして入れ替えてみました。
なぜかこれ以降蟹さんが極端に不安定になりました。最初の現象は定期的にLEDは点滅していたので、処理はとまってなかったようなのですが、まったくネットワークアクセスができない状態でした。DHCPサーバのログを見るとリクエストが来てレスポンスを返しているのに受け取っていないような状態になっているようでした。これはEthernetドライバを書いていた時も似たような状態があり、蟹さんに入っているEthernetSwitchの問題のように思われました。また止まってはいないようなのでWatchDogで対応するような問題でもないと考えました。
mruby on YABMで使っているlwIPの問題の可能性もあるので、BCM/mipsでも20秒インターバルでThingSpeakにアクセスするようにしてみました。こちらは問題は起きません。
仕方がないので、蟹さんをネットワークアクセス連続3回失敗したらリブートするようワークアラウンドを入れてみました。
とりあえず止まらないようになったのですが、リブートを不定期に繰り返していました。またなぜかそれまで3ヶ月間問題なかったブリッジもハングアップしたり、ホスト間のsnmpアクセスが失敗したりして、蟹さんだけでなくネットワーク全体が不安定になりました。
実は蟹さんに入れたワークアラウンドは問題を増やしていて、通常時でも3回の失敗が発生することがありました。(これはいつか調べたほうがいいような気もします)このことはBCM/mipsの方で確認できました。最初の問題が起きるかもしれないので念のため10回失敗でリブートにしてみました。
一番怪しWiFiルーターを元に戻したところ問題が起きなくなり12月始めの状態に戻りました。WiFiルーターはメーカー製のファームウエアをつかっていますが、ちょっと特殊な設定にしているのが影響しているのかもしれません。
普通に使ってれば問題ないのかもしれませんし、調査も困難な気がするので、他のWiFiルーターを使うなどの方法を考えてみたいと思います。
2020/2/18 現象はSwitchが飛んでしまうことはわかったが、いろいろ試してみたがいまだもって原因不明。気温の可能性を考えているが、外れているかもしれない。このメモの通りThingSpeakのサーバ入れ替え以来発生しているので、TLSが変わったなどで流れるデータが微妙に変わり、それが影響している可能性もあるのかもしれない。
2020/4/5 蟹さんの問題が気温が上がってきているのに、一向に治まる気配がないので、ネットワークを疑って、新サブネットを作ってそちらに移したところ問題が再現しなくななりました。どうも12月中旬にSNMPを利用するようになって、それかそれに関係したパケットが影響してたのではないかと思われます。
考えられる可能性
- 特定のパケットに反応
- パケットのタイミング
- 複数のパケットの絡み
利用が少ないサブネットに移ってパケットが減って落ちにくくなってるだけかもしれません。:(