2019年12月17日火曜日

iPhone の DHCP の限界? インターネット共有(テザリング)のバグ?

iOS 端末(iPhone,iPad)には、Wi-FiやBluetoothを通じ、セルラー回線を他の端末に共有する機能「インターネット共有」いわゆるテザリング機能が存在します。

事情によりiPhoneのインターネット共有機能でiPadを30台ほどアプリを更新する必要があり、以下のような事例に遭遇しましたので、情報共有したいと思います。


iOSのインターネット共有機能をオンにした端末に他の端末からアクセスすると、通常はiOSのDHCPによりIPv4のアドレスがリースされます。
その際通常は、以下のとおり割り当てられます。

IPアドレス 172.20.10.2~172.20.10.14
サブネットマスク 255.255.255.240
ルーター 172.20.10.1

サブネットマスクが、255.255.255.240ということはネットワークの範囲に、16個しかIPアドレスを持ちません。
ネットワークアドレス(172.20.10.0)とブロードキャストアドレス(172.20.10.15)とiOS端末自身(ルーター172.20.10.1)が使われるため、実質の接続数は13台が限界となります。
実際に、テザリング機能で使用する分には同時に13台も接続できれば十分でしょうが、問題はここからです。
iOSはDHCPのリースタイムが85536秒(約24時間)に設定されており、強制的に開放する手段も用意されていません。再起動等では開放されません。
そのため、一度13台繋いでしまうと、24時間後まで新たな機器を接続することができません。
13台目を上限に、以降の機器には、DHCPによる割り当てがされないため、リンクローカルアドレスである(169.254.0.0~169.254.255.255)が自動的に割り振られインターネットへ出ていくことができません。

調べたところ解消法は見つからなかったため、場当たり的ですが、接続機器のIPアドレスを手動で上記の設定内で被らないように(172.20.10.2~14)を割り当ててやることで通信ができるようになります。

これは、仕様というかバグというか…
日本語の記事が見つからなかったので、ご紹介しました。


以下、参考になりそうな英語記事(無理です的なことしか書いてないですが)

stack overflow
Is there a way to clear the DHCP leases for personal hotspot on iOS?
https://stackoverflow.com/questions/57086927/is-there-a-way-to-clear-the-dhcp-leases-for-personal-hotspot-on-ios

Apple iOS Personal Hotspot Annoyances
https://www.redelijkheid.com/blog/2015/7/30/apple-ios-personal-hotspot-annoyances

2019年9月1日日曜日

iPhoneSEが壊れました

三年ほど使っていた、iPhoneSEの電源ボタンが壊れました。
使っていたら、急にロックがかからなくなり、ボタンがついに死んだかなーと思って、とりあえずAssistiveTouchをオンにして、再起動

すると… 白地にリンゴマークの再起動画面が出ては消えての繰り返し、再起動の無限ループで起動してきません
とりあえず放置すると、画面は真っ黒に。ボタンが死んでるので起動もできません。
出先でケーブルもなかったので、一旦帰宅。

帰宅後、PCに接続してみると一応起動してきました。急いでバックアップ、半年は取ってなかったので、よかったです。
最近の環境だと、アドレス帳など大事なデータを失うことはないですが、細かい設定や最近入れたアプリとか戻すのが面倒なのでバックアップが取れたことは大きい。

起動はしましたが、やっぱり電源ボタンは効かない。
再起動してみると、同じ現象で再起動ループ
ボタンが壊れて、押しっぱなしみたいに認識されているのか?

これでは使い物にならないので、家に転がっていたiPhone6Sに先ほどのバックアップを復元し、SIMを入れ替えたので、スペックも含めほぼ元通り。
少し使ってみましたが、大きい。
サブ機で、iPhone8plusを使っているので、大きさの差があまりなく、謎の二台持ちの人になってしまいました。

とりあえずは、今月予定の新商品発表まで待ってどうするか考えます。