DHCPトラブルを解消するのは難しいということ
トラブルの内容
- ルータにPC(Win10)を接続すると、インターネットに接続できる
- ルータにwifiでPC(Win10)を接続すると、インターネットに接続できる
- ルータにwifiでスマホ(Android)を接続すると、接続不可
- ルータにwifiでスマホ(iPhone)を接続すると、接続不可
ISP(インターネットサービスプロバイダ:JCOM)に調査・対応依頼した
JCOMの対処
別メーカのルータを持って来て貰った
本当はCISCOのルータを持って来て欲しいとお願いしたけど在庫が無いらしい
住友電工の BCW710J2 というルータになってしまった
即交換となり動作チェック。でも、症状は変わらず
「このまま様子を見て欲しい」との事
特殊なデバイスが接続出来ない訳じゃない
iPhone と Android が接続出来ないのだから、誠心誠意対応すべき
でもやらないのは無駄だと判っているからだと思う
- ーーー[BCW710J2_wifiルータ]ーーー[スイッチ]┳ーー[PC]
- ┣ーー[ゲーム機]
- ┣ーー[LANHDD]
- ┗ーー[TV]
- wifi:iPhone はx
- wifi:Android はx
- wifi:PC(a/n) はO
- wifi:FireTV 6Gen はx
- wifi:FireTV 7Gen はO
(a/n)はIEEE802.11a/IEEE802.11n
b/g/a/n/acと色々
bは2.4GHz帯11Mbps(bit/秒)
gは2.4GHz帯54Mbps
aは5GHz帯54Mbps
nは2.4/5GHz帯600Mbps
acは5GHz帯600Mbps
自分で調査
JCOMが諦めてしまったので、自分で調査。
ネットに接続できるのは判っている事だから、問題はwifiのみ
でも、wifi接続のPCは問題なし。だからOSがiOSかAndroidに限定される様子
更にAmazonのFireTVスティックの6世代はダメで7世代は問題なし
推察
DHCPがダメと推論
DHCPはDynamicHostConfigrationProtocolの略
自動的にIPアドレスを割り当ててくれるルータで動いているサービスの事
DHCPサービスの概要はDiscover→Offer→Request→Ackを経てIPアドレス取得に至る
インターネットの仕様書RFC2131で定義されている
測定
wifi接続のPCでwifiパケットをキャプチャする為にPCにWiresharkをインストール
測定を開始して暫く放置、停止してパケット保存
先のRFC2131を見ると、ポート番号が67/68を使うことが解る
キャプチャしたパケット一覧を流し見てProtocol の所に DHCP と表示されているパケットをクリック、パケットViewを見ると、
>User Datagram Protocol,Src Port:68,Dst Port:67
とあるのでUDPを使うことも判るから、WireSharkのフィルタに
>udp.port == 67 || udp.port == 68
と入力して Enter、これでDHCPだけのパケット一覧に早変わり
この状態で確認すると、
>iPhone(クライアント)→DISCOVER→BCW710J2(ルータ)
>iPhone(クライアント)→REQUEST →BCW710J2(ルータ)
のパケットしか見えない。最低でもある筈の OFFER パケットが見えない
見えないのはOFFERパケットがブロードキャストではなく、ユニキャストと想定
ブロードキャストは館内放送だとするとユニキャストは内線通知(個別通知)
そのユニキャストが拾えないからと想定。これで判るのが、
- OFFERはユニキャストで見えないけど、REQUESTがあるから絶対出ている
- ACKもユニキャストで見えない若しくはACKは出ていないかもしれない
ACKが出ている場合
iPhoneがACKを受け付けない、必要な情報が欠落している為に完了しない
ACKが出ていない場合
ルータがREQUESTを受け付けない、必要な情報が欠落しているので応答しない
ここで考えられる事は、
iPhoneとルータの挙動のどちらが不適切なのかを考える
どう考えてもiPhoneの方が正しく、ルータの方が間違っていると推察
だって、ルータのファームウェアは更新されていないだろうから。
iPhoneのOSは常々更新が掛かっているから、だからルータサイドの挙動がおかしい→実装が古いと言い切れる
暫定対応
1:ルータの実装が古いのだからwifiが危ないから使わないようにし、winPCをwifiAP(アクセスポイント)として機能させるかwifiルータをwifiAP替わりに使う。この方法は誤りで、DHCP機能はルータのそれを利用するから症状は変わらない
2:ルータの実装が古いのだからそもそもルータが危険と認識することは理に適っている。JCOMはケーブルだからケーブルモデムルータ自体交換する事を考えず、ルータ機能を殺すブリッジ接続に切り替えるのはアリ。そして別ルータを接続するこの方法がベストだと言える
3:これが一番簡単。AndroidとiPhoneのDHCPを固定IP設定に変えるだけで対処が完了する
結論
3番目の対応(固定IP対応)で事無きを得ているけど不安が残る
JCOMに連絡して CISCO ルータと入れ替えて貰いたい(けど叶わないだろうな)
CISCOというメーカならDHCP機能はまともだろうと考える
CISCO使ってダメなら流石に諦めがつくというもの