ぐるぐるnest hub その1 インターネット未接続となる問題  徹底調査で解決 

「WiFiに繋がらない」、「インターネット未接続となる」などで検索すると多数の記事が見つかり、そこには「使用デバイスの不具合」、「無線LANルーターに不具合」などの記載があり、その対処は「スマートフォンの機内モードのONとOFFを切り替える」とか「スマートフォンのネットワーク設定をリセット・再設定」とか書いている。その対処で動くようになることがあるかもしれないが、原因が特定できておらず、再発する可能性が高い。つまり解決したことにはならないことが多々あるに違いない。

  ここでは、ほかのサイトに書かれていない(稀な?)パターンの調査&解析とその解決までの記録である。 タイトルを「ぐるぐるnest 」としたが”その1”ではnestの話を書こうとしていたところ発生した別パターンのトラブルについて書く。

症状:

AndroidスマホをWiFiにつないで使用していた。ある時点までは問題なくWiFiを利用できていたが、部屋を移動して別の無線LANを使用して元の部屋に戻ってきWiFi接続を切り替えるとWiFi(無線LAN)には接続できているが「インターネット接続なし」となりネット利用できなくなる。
 同じ無線LANに接続してほかのIoT機器(Google home、SiwtchBotHubやNature Remo)はインターネットに接続できている。

 この状態で、他のサイトの記事を参考に対処するなら、Androidスマホの再起動や、WiFiオンオフの設定や無線LANの再起動だろう。 いずれの対処も効果なく症状に変化はなかった。過去には似たような症状のときに、無線LAN再起動することで復旧したことはあったが、今回はそのパターンではなさそう。
「原因特定なくして解決なし」ということで原因調査を開始した。

解析編:

まず大まかな切り分けから。
 よくあるサイトの対処手順を参考に切り分けてみる。
1. まずスマートフォンそのものが壊れていないかを確認
  他の無線LANにつないで使う分には問題なく使える
→ 「 スマートフォン そのものの故障」ではない
2.「スマートフォンの機内モードのONとOFFを切り替える
  OFFにするとつながらない。ONに戻しても「インターネット接続なし」の状態に変化はない。 →「機内モード」の問題ではない
3.「スマートフォンのwi-fiのONとOFFを切り替える
OFFにするとつながらない。ONに戻しても「インターネット接続なし」 の状態に 変化はない。 →「WiFi ON/OFF」の問題ではない
4. 「スマートフォンのネットワーク設定をリセット・再設定
 無線LANに接続できているので、スマートフォン側の設定の可能性は極めて低い。もし、設定の問題だとしてもいきなり再設定ではなく設定が妥当か確認する作業が必要だろう。 ということで、後で確認する。
5.「スマートフォンを再起動
スマートフォンが異常な状態になっているなら、これで復旧するかもしれない。
 再起動しても 「インターネット接続なし」 の状態に 変化はない。 →  一時的な異常な状態という問題ではない。

 ということで、よくあるWiFi接続問題を取り扱うサイトには書かれていない何らかの問題が発生していると推測された。

戻って、スマートフォンのネットワーク設定を詳細確認してみた。 設定詳細を開くと、スマートフォンに払いだされたIPとゲートウェイIPは目を疑うものだった。いや、これではインターネットにつながるはずがない。これで、無線LANに接続できているのにインターネットに接続できない直接的な原因は理解できた。
 なぜそうなったかの調査と根本対策は。ここから始まる。
とりあえず復旧させてみよう。”プライバシー….” という項目を長押しするとMACアドレスをランダムにするかデバイス固有のものにするか切り替えることができる。これを使ってIPアドレスをDHCPに再払い出しを要求してみる。 とりあえずIPアドレスは想定通りのものに変わりインターネット接続は復旧した。
 →これで、 「インターネット接続なし」 の直接の原因は”割り振られたIPアドレスにある”ことが確認できた。

 問題の「目を疑ったIPアドレスとゲートウェイIP」は、遠く離れた場所に最近追加した無線LANの無線LAN側のDHCP設定で指定したものだった。
 ここまでの状況を図で整理すると次のようになる。


この挙動は、かなりありえないことが起きていそうなことが理解できるだろう。ただ、事実起きているのだから、この事象発生には何か原因があるのは間違いない。こういう問題は、”ありえない”と最初から起こりそうにないことを除外してしまうと永遠に解決できなくなる。切り分け調査を一歩一歩進めるのが解決への近道である。

 さて切り分けをどうするかを考えようとしていた矢先、「インターネット接続なし」問題が再発した。 今度は、  ”プライバシー….”を使ってIP再払い出しを試みるも復旧しなかった。なおかつ、IP再払い出し要求をするたびに確かにIPが変わっている。そのIPは無線LAN③用のものだ。無線LAN③からIPが払い出されているのは間違いなさそうだ。では、どのような経路で払い出されているのだろう。WiFi接続の認証後、IP払い出し要求するときに無線LAN③からの電波を受け取っているのだとしたら、… 
 無線LAN③の電源を切ることで解決できそうだ。しかし、必要だから無線LAN3を用意したわけで、いつも電源を切っておくわけにはいかない。そこで、まず電源は切らずに無線LAN③のWAN側のケーブルを抜線してみる。

暫定対処

無線LAN③のWAN側のケーブルを抜線して 、スマホで「 IP再払い出し要求 」をすると正しいIPが払い出されて、インターネット接続に成功した。
 これで、このトラブルのメカニズムを理解できた。
ここまでの文面で分かる人は理解できたかもしれない。少し難解なところもあるので、再度整理しておこう。

トラブル原因と仕組み

仕組みは上の図の通りである。 問題は、無線LAN③のDHCP動作である。DHCPはLAN側設定であって、WAN側に流れるものではない。 無線LAN①に接続した機器は通常ブロードバンドルータが払い出したIPを利用する。これにより、IPは192.168.1.xxx、ゲートウェイIPは192.168.1.254となる。しかし問題発生時はIPが192.168.80.xxx、ゲートウェイIPが192.168.80.1となっていた。
 192.168.1.xxとなるか、192.168.80.xxとなるかは、どちらのDHCPからの応答が早いかなど運しだいという状況だったわけだ。スマホ以外のIoT機器に問題がなかったのはたまたまといってよいだろう。いつかは同じ状態に陥っていたかもしれない。また、IoT機器は設計上リトライ回数を増やすなどが我慢強い復旧策を実装しているのが効いているかもしれない。
 いずれにしても、根本原因は判明した。

根本対策

問題原因は分かり、無線LAN③のWANケーブルを抜くことで解決したが、192.168.80.x系のIoT機器が使えない状態なので、いつまでもこの状態にしとくわけにもいかない。
 
 無線LAN③の設定を見直してみる。 そもそも192.168.80.x系の通信がWAN側に漏れるのを防ぐべきで、基本的にはガードできているようだ。 だが、実際にDHCPのUDPパケットはWAN側から無線LAN③に到達して、それに対する応答をしている。 無線LAN③のWAN側パケットフィルタを見るとデフォルトで多数の設定が組み込まれているがDHCPパケットの破棄設定はなかった。

  そこで、DHCPパケットをフィルタリングすることとした。根本対策は、「ネットワーク構成変更jする際は、境界を越えてDHCPパケットが流れないように設定を確認する、また設定を行う」とする。
 ※ネットワーク機器メーカは妥当になるように製品開発を行う際は十分に検討・検証してほしい。

最後に

トラブルの対処法は、小手先の対処では再発する。根本原因を調査して根本対策しましょう。
  ちょっと、長くなりました。 タイトルの「ぐるぐるnest」は次の機会に書きます。このネタも今回と同じくらい長くなる予感がします。。。

ネットワーク障害発生、色々調べたが原因特定できないまま解消。

昨日、原因不明のネットワーク障害が発生し原因調査と対処をしていましたが、原因不明のまま解消しています。NTT側の障害の可能性もありリアルタイム障害情報などを確認し、「障害があるかも」の情報があり注視しながら進めていましたが実質的に何もしないまま解消しています。以下状況と対処内容、今後の障害に対するメモです。

1. 2019/9/19 15:00ころネットワークが使えなくなる障害が発生。
復旧のため、PC再起動、ルータの再起動を行ったが復旧せず。
 状況を確認したところ、LAN内で同一セグメントの別マシンにPingも通らない。
 → 自マシンのIPが想定外のアドレスに変わっている。→ DHCPが機能していないとおもわれた。
2. 自マシンを固定IPに変更した。
 → これでもLAN内で同一セグメントの別マシンにPingも通らない。ルータにもPingが通らない。
#なんか変だ、発想を変えて、使えるものを確認してみる。
3. 別のWiFi回線を使ってインターネット上の情報を見てみる。特に情報がないためNTTの回線の問題ではないかもしれない。事象発生から10分くらいしかたっていないのでまだ情報が出ていないだけかもしれない。携帯電話から光電話に電話をかけてみると問題なく電話がかかってきた。
#ますますオカシイ、外部回線の問題ではなさそうなので自前で対処するしかなさそうだ。
4. よくあるインターネット接続できない場合のPCやルータの再起動では回復しなかった。
#これは自分で地道に原因調査して、回復させるしかなさそうだ。
5. まず最小限の範囲から回復させていくことにする。
 自マシンと同一セグメントの別マシンの通信を復旧させることにした。この隣のマシンにPINGが通らないは異常な事態だ。単純に手元のHUBが故障したのかと仮説を立てて確認をしようとしていたところで、別系統の無線LANで接続している機器から次々とインターネットに接続できない旨のメッセージが報告された。
#おや、これは単一障害ならやはりルータの問題か?と問題原因の仮説を見直すことにした。
6.いったん、電源を切ってみる。
 →これでも、 自マシンと同一セグメントの別マシンの通信ができない。固定IPなのにPingも通らない。
#これは、かなり異常な状態である。使える機器を狭い範囲で確認して順番にひろげていくことにした。
7. 一度、HUBにつながったケーブルをすべて外して、 自マシンと別マシンだけにして、Pingしてみる。問題なくPingが通った。
#当たり前だが久しぶりにようやく動いた。
8. 1本ずつ、ケーブルをつないで動作確認してみる。ある1本のケーブルをつないだところで、そこまで通っていた 自マシンから別マシン へのPingが通らなくなった。ネーブルを外すと、Pingが通るようになる。このケーブルの先に問題がありそうなことが判明した。ただ、このケーブルの先にルータがあり、このケーブルを接続しないと、インターネットには接続できない。
#このパターンの場合、ループしている可能性が一番高い。しかし、その後の調査でもループは見つかっていない。長引きそうだが、インターネットの接続を早く復旧したいので、メインルートから復旧を試みることにする。
9.問題のケーブルの先のHUBに接続されたケーブルをすべて外してルータのみ接続した。→ これによりインターネットへの接続が復旧した。
10. 先に外したケーブルを接続しなおし、動作確認を行った。→ 障害発生前の状態に復旧した。
#結局、障害の原因は不明であり、ケーブルの挿抜だけで復旧したことになる。今度同様の事象が発生したときは、パケットキャプチャも行うことにする。