DHCPトラブルを解消するのは難しいということ

トラブルの内容 

  • ルータにPC(Win10)を接続すると、インターネットに接続できる
  • ルータにwifiでPC(Win10)を接続すると、インターネットに接続できる
  • ルータにwifiスマホ(Android)を接続すると、接続不可
  • ルータにwifiスマホ(iPhone)を接続すると、接続不可 

ISP(インターネットサービスプロバイダ:JCOM)に調査・対応依頼した

JCOMの対処

別メーカのルータを持って来て貰った

本当はCISCOのルータを持って来て欲しいとお願いしたけど在庫が無いらしい

住友電工の BCW710J2 というルータになってしまった

即交換となり動作チェック。でも、症状は変わらず

「このまま様子を見て欲しい」との事

特殊なデバイスが接続出来ない訳じゃない

iPhoneAndroid が接続出来ないのだから、誠心誠意対応すべき

でもやらないのは無駄だと判っているからだと思う

  • ーーー[BCW710J2_wifiルータ]ーーー[スイッチ]┳ーー[PC]
  •                      ┣ーー[ゲーム機]
  •                      ┣ーー[LANHDD]
  •                      ┗ーー[TV]
  •               wifiiPhone はx
  •               wifiAndroid は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がiOSAndroidに限定される様子

更にAmazonのFireTVスティックの6世代はダメで7世代は問題なし 

推察

DHCPがダメと推論

DHCPはDynamicHostConfigrationProtocolの略

自動的にIPアドレスを割り当ててくれるルータで動いているサービスの事

DHCPサービスの概要はDiscover→Offer→Request→Ackを経てIPアドレス取得に至る

インターネットの仕様書RFC2131で定義されている

f:id:devmakot:20180425085552p:plain

Dynamic Host Configuration Protocol - Wikipedia

測定 

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を停止させ新しくwifiサービスを提供する

  2. ルータ機能を停止させ別wifiルータを導入する

  3. DHCPを諦める

1:ルータの実装が古いのだからwifiが危ないから使わないようにし、winPCをwifiAP(アクセスポイント)として機能させるかwifiルータをwifiAP替わりに使う。この方法は誤りで、DHCP機能はルータのそれを利用するから症状は変わらない

2:ルータの実装が古いのだからそもそもルータが危険と認識することは理に適っている。JCOMはケーブルだからケーブルモデムルータ自体交換する事を考えず、ルータ機能を殺すブリッジ接続に切り替えるのはアリ。そして別ルータを接続するこの方法がベストだと言える

3:これが一番簡単。AndroidiPhoneDHCPを固定IP設定に変えるだけで対処が完了する

結論

3番目の対応(固定IP対応)で事無きを得ているけど不安が残る

JCOMに連絡して CISCO ルータと入れ替えて貰いたい(けど叶わないだろうな)

CISCOというメーカならDHCP機能はまともだろうと考える

又はCISCOならDHCP機能の更新がある筈だと考える

CISCO使ってダメなら流石に諦めがつくというもの