どんなときもWiFiの接続がよく切れるので、接続状態を監視してみた

自宅ではどんなときもWiFiを使っているのだが、接続がよく切れる。

どのような動作をしているのか統計を取るため、 自分のグローバルIPアドレスを監視するスクリプトを書いてデータを取ってみた。

スクリプト

作成したスクリプトは以下。

#!/bin/bash

IP_OLD=""

while true
do
  INETIP=`dig +timeout=3 +tries=1 +noall +answer inet-ip.info | rev | cut -f1 | rev`
  if [[ ${INETIP} =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]; then
    IP=`curl -m 3 --connect-timeout 3 -s -H "Host: inet-ip.info" http://${INETIP}`
  else
    IP=""
  fi

  if [[ ${IP} =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]; then
    if [[ "$IP" != "$IP_OLD" ]]; then
      IP_OLD="$IP"
      echo -n `date '+%Y/%m/%d %H:%M:%S'`
      printf " %-15s " "$IP"
      dig +timeout=3 +tries=1 -x $IP +noall +answer | grep PTR | rev | cut -f1 | rev
    fi
  else
   if [[ "$IP_OLD" != "" ]]; then
     IP_OLD=""
     echo `date '+%Y/%m/%d %H:%M:%S'`" Connection Error"
   fi
  fi

  sleep 5
done

http://inet-ip.info/にアクセスして自分のグローバルIPアドレスを得て、逆引きして現在どのキャリアに接続しているのかを監視。

curl http://inet-ip.infoとせずに、わざわざdigでアドレス解決をしてからIPアドレスでcurlしているのは、 curlのタイムアウトに関するオプション(-m 3 --connect-timeout 3 )が、DNS解決にかかる時間に効かず、 接続が切れたときcurlのDNS解決ができずに待ち続けてしまうことを防ぐため。

これによって接続が切れたときにほぼ確実に検知できるようになった。

結果

家の窓側に固定して1週間ほど動かし続けた結果は以下の通り(いくつか改行は付加)。

2020/06/07 14:07:49 36.11.225.113   UQ036011225113.au-net.ne.jp.
2020/06/07 22:30:40 Connection Error
2020/06/07 22:30:54 126.204.162.103 om126204162103.6.openmobile.ne.jp.
2020/06/08 00:27:17 Connection Error
2020/06/08 00:32:10 126.255.181.41  om126255181041.24.openmobile.ne.jp.
2020/06/08 02:05:31 Connection Error
2020/06/08 02:05:44 133.106.73.85   133-106-73-85.mvno.rakuten.jp.
2020/06/08 02:05:52 Connection Error
2020/06/08 02:05:59 133.106.73.85   133-106-73-85.mvno.rakuten.jp.
2020/06/08 05:33:01 Connection Error
2020/06/08 05:35:48 126.200.125.73  om126200125073.15.openmobile.ne.jp.
2020/06/08 06:17:51 Connection Error
2020/06/08 06:18:12 126.186.33.215  om126186033215.7.openmobile.ne.jp.
2020/06/08 14:57:33 Connection Error
2020/06/08 14:57:43 126.186.33.215  
2020/06/08 14:58:05 Connection Error
2020/06/08 14:58:16 126.186.33.215  om126186033215.7.openmobile.ne.jp.
2020/06/08 14:58:27 Connection Error
2020/06/08 14:58:33 126.186.33.215  om126186033215.7.openmobile.ne.jp.
2020/06/08 14:58:49 Connection Error
2020/06/08 14:58:55 126.186.33.215  om126186033215.7.openmobile.ne.jp.
2020/06/08 14:59:11 Connection Error
2020/06/08 14:59:22 126.186.33.215  om126186033215.7.openmobile.ne.jp.
2020/06/08 14:59:27 Connection Error
2020/06/08 14:59:33 126.186.33.215  om126186033215.7.openmobile.ne.jp.
2020/06/08 14:59:38 Connection Error
2020/06/08 14:59:49 126.186.33.215  om126186033215.7.openmobile.ne.jp.
2020/06/08 15:00:11 Connection Error
2020/06/08 15:00:38 126.186.33.215  om126186033215.7.openmobile.ne.jp.
2020/06/08 15:00:44 Connection Error
2020/06/08 15:00:49 126.186.33.215  om126186033215.7.openmobile.ne.jp.
2020/06/08 15:00:55 Connection Error
2020/06/08 15:01:16 126.186.33.215  om126186033215.7.openmobile.ne.jp.
2020/06/08 15:01:27 Connection Error
2020/06/08 15:01:47 126.186.33.215  om126186033215.7.openmobile.ne.jp.
2020/06/08 17:06:51 Connection Error
2020/06/08 17:07:12 126.255.107.112 om126255107112.24.openmobile.ne.jp.
2020/06/08 18:45:39 Connection Error
2020/06/08 18:46:16 126.255.129.23  om126255129023.24.openmobile.ne.jp.
2020/06/09 00:27:33 Connection Error
2020/06/09 00:32:21 126.208.146.99  om126208146099.22.openmobile.ne.jp.
2020/06/09 01:59:33 Connection Error
2020/06/09 01:59:46 133.106.67.16   133-106-67-16.mvno.rakuten.jp.
2020/06/09 05:32:57 Connection Error
2020/06/09 05:35:43 126.208.140.255 om126208140255.22.openmobile.ne.jp.
2020/06/09 06:16:30 Connection Error
2020/06/09 06:16:51 126.34.116.55   om126034116055.18.openmobile.ne.jp.
2020/06/09 06:56:03 Connection Error
2020/06/09 06:56:32 36.11.225.152   UQ036011225152.au-net.ne.jp.
2020/06/10 02:20:06 Connection Error
2020/06/10 08:03:26 126.234.125.4   om126234125004.16.openmobile.ne.jp.
2020/06/11 01:23:09 Connection Error
2020/06/11 01:23:14 126.234.125.4   
2020/06/11 01:23:35 Connection Error
2020/06/11 01:23:40 126.234.125.4   om126234125004.16.openmobile.ne.jp.
2020/06/11 01:24:16 Connection Error
2020/06/11 01:24:21 126.234.125.4   om126234125004.16.openmobile.ne.jp.
2020/06/11 01:24:57 Connection Error
2020/06/11 01:25:22 126.234.125.4   om126234125004.16.openmobile.ne.jp.
2020/06/11 01:25:38 Connection Error
2020/06/11 01:25:43 126.234.125.4   om126234125004.16.openmobile.ne.jp.
2020/06/11 01:25:53 Connection Error
2020/06/11 01:25:58 126.234.125.4   om126234125004.16.openmobile.ne.jp.
2020/06/11 01:26:08 Connection Error
2020/06/11 01:26:19 126.234.125.4   om126234125004.16.openmobile.ne.jp.
2020/06/11 02:24:24 Connection Error
2020/06/11 02:24:29 126.234.125.4   om126234125004.16.openmobile.ne.jp.
2020/06/11 02:24:55 Connection Error
2020/06/11 02:25:00 126.234.125.4   om126234125004.16.openmobile.ne.jp.
2020/06/11 02:25:16 Connection Error
2020/06/11 02:25:21 126.234.125.4   om126234125004.16.openmobile.ne.jp.
2020/06/11 02:25:31 Connection Error
2020/06/11 02:25:36 126.234.125.4   om126234125004.16.openmobile.ne.jp.
2020/06/12 00:05:39 Connection Error
2020/06/12 00:05:44 126.234.125.4   om126234125004.16.openmobile.ne.jp.
2020/06/12 21:39:51 Connection Error
2020/06/12 21:39:56 126.234.125.4   
2020/06/12 21:40:23 Connection Error
2020/06/12 21:40:28 126.234.125.4   
2020/06/12 21:41:11 Connection Error
2020/06/12 21:41:17 126.234.125.4   
2020/06/12 21:41:35 Connection Error
2020/06/12 21:41:46 126.234.125.4   
2020/06/12 21:41:52 Connection Error
2020/06/12 21:42:08 126.234.125.4   
2020/06/12 21:42:13 Connection Error
2020/06/12 21:42:18 126.234.125.4   om126234125004.16.openmobile.ne.jp.
2020/06/12 21:42:50 Connection Error
2020/06/12 21:43:15 126.234.125.4   om126234125004.16.openmobile.ne.jp.
2020/06/12 21:43:20 Connection Error
2020/06/12 21:43:30 126.234.125.4   om126234125004.16.openmobile.ne.jp.
2020/06/12 21:43:36 Connection Error
2020/06/12 21:43:41 126.234.125.4   om126234125004.16.openmobile.ne.jp.
2020/06/12 21:43:51 Connection Error
2020/06/12 21:44:06 126.234.125.4   om126234125004.16.openmobile.ne.jp.
2020/06/12 22:01:07 Connection Error
2020/06/12 22:01:29 126.234.125.4   
2020/06/12 22:01:41 Connection Error
2020/06/12 22:02:06 126.234.125.4   
2020/06/12 22:02:21 Connection Error
2020/06/12 22:02:26 126.234.125.4   om126234125004.16.openmobile.ne.jp.
2020/06/12 22:02:32 Connection Error
2020/06/12 22:02:37 126.234.125.4   om126234125004.16.openmobile.ne.jp.
2020/06/12 22:02:42 Connection Error
2020/06/12 22:02:58 126.234.125.4   om126234125004.16.openmobile.ne.jp.
2020/06/12 22:03:44 Connection Error
2020/06/12 22:04:14 126.234.125.4   om126234125004.16.openmobile.ne.jp.
2020/06/12 22:34:40 Connection Error
2020/06/12 22:34:45 126.234.125.4   om126234125004.16.openmobile.ne.jp.
2020/06/13 02:23:51 Connection Error
2020/06/13 02:24:38 36.11.225.111   UQ036011225111.au-net.ne.jp.
2020/06/13 12:18:20 Connection Error
2020/06/13 12:18:33 36.11.225.111   UQ036011225111.au-net.ne.jp.
2020/06/14 02:24:39 Connection Error
2020/06/14 02:24:53 36.11.224.201   UQ036011224201.au-net.ne.jp.
2020/06/14 06:56:08 Connection Error
2020/06/14 06:56:29 126.237.40.52   om126237040052.9.openmobile.ne.jp.
2020/06/14 14:31:53 Connection Error
2020/06/14 14:32:01 126.237.40.52   om126237040052.9.openmobile.ne.jp.

なお2020/06/10 08:01に端末再起動を実施した。

考察

接続先キャリアとしては、

  • KDDI(*.au-net.ne.jp)
  • 楽天MVNO(.mvno.rakuten.jp) ※たぶんドコモ回線
  • ソフトバンク(*.openmobile.ne.jp)

の3キャリアが使われている。これはどんなときもWiFiの説明通り。

接続時間の合計162時間のうち、ソフトバンクが99時間、auが56時間、楽天MVNOが7時間という内訳だった。

なお接続時間の合計は162時間に対して、切断時間の合計は6時間だったので、稼働率は96%程度。

接続の持続時間、切断時間、切断時間の内AP切替にかかった時間の分布は下表。

持続時間分布 切断時間分布 AP切替時間
5秒以内 5 16 0
10秒以内 9 10 0
30秒以内 15 25 9
1分以内 5 3 2
5分以内 0 4 4
10分以内 0 0 0
30分以内 1 0 0
1時間以内 5 0 0
2時間以内 4 0 0
5時間以内 5 0 0
10時間以内 5 1 1
20時間以内 3 0 0
20時間以上 2 0 0

接続の持続時間は、接続が安定せず同じAPに何度もつなぎ直す場合の1分以内と、安定する1時間以上に別れる結果となった。

最長の接続持続時間は約22時間だったが、接続が安定しているときでも1時間から10時間で切断される

この間隔で回線が一時的に切断され、このときにダウンロードやWeb会議をしていると中断される。

なお、20時間接続が持続した時の1回は、その後6時間近く接続できず、端末の再起動が必要になった。

AP切替を伴わない切断時はほぼ1分以内に回復する 一方、 AP切替時は再接続まで1〜5分間かかる

WiMAX 2+ではこのような事象はめったに発生せず数日間は同じ接続が維持されるので、 固定回線の代替としては厳しい 、というのが結論か。