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

0 件のコメント:

コメントを投稿