２つ以上の無線LANルーターを同一SSIDでローミングさせてみた時の知見

# この記事の概要

ソフトバンク光BBユニットへの愚痴

# 結論

ソフトバンク光BBユニットことE-WMTA2.3のルーティング・スイッチング機能が致命的にアホ。

#言いたいこと

ソフトバンク光BBユニットはアホなので、スイッチングが下手くそ。他のルーターでもトラブル防止のためにローミング構成する時はルーター→AP→APとデイジーチェーンでつなごう。

# 事の発端

昨年の夏休み。数多のインターンに参加して、弟と共に実家に帰ってきた日。

ONUとルーターを設置しているキッチン横のスペースに見慣れない機械が置いてある。

ソフトバンク光BBユニット、E-WMTA2.3が設置されていた。

昨年春に、契約していたドコモの2年縛り期間が終わるのを機に家族皆でYmobileへと乗り換えたのだ。ついでにインターネットもドコモ光からソフトバンク光への乗り換え、Ymobile4回線でFTTH基本料金がまるまる割り引かれる大変オトクなプランへの乗り換えたのだ。

速度はそこまで伸びない。有線でも40Mbps程度。う～んしょっぱいな。まあアニメ見るには困らないからいいやと思い、布団の敷かれた自部屋に入り、寝ながらツイッターをしようとすると、我がNuandNeoReloded(今はGalaxyS8)に突然メッセージが表示された。

**「インターネット接続が不安定です(別のWifiにつないでください)」**

むむ？何故だ？前はネット繋がってたぞ？

ここから全ては始まった

# 前提条件

## 機器の言い換えについて

執筆している最中に表記ゆれが気になったので、

- ソフトバンク光BBユニット　E-WMTA2.3 →　ルーター
- WR8170NまたはWG1400HP等ローミングアクセスポイントとして設置する無線LANルーター　→　AP
- ソフトバンク光BBユニット内蔵無線LAN親機など、無線LAN親機としての機能を指す時　→　親機

とする。

## ハンドオーバーの確認や電波強度は何で調べてる？

Android開発者向けオプション内に｢Wi-Fi詳細ログ｣という設定項目があり、これをオンにするとWifi設定画面内に電波強度やAPの数やその周波数帯などが調べられる。

非常に便利なのでおすすめ。

ちなみに普通に電波強度やwifiのチャネル被りを可視化するなら、[Wifi Analyzer](https://play.google.com/store/apps/details?id=com.farproc.wifi.analyzer&hl=ja)がおすすめ。

## 自宅のネットワーク構成

我が家では、兄弟二人の寝ている子供部屋がルーターを設置しているLDKから対角線で最も離れた部屋にいるため、2.4Ghz帯のSSIDを辛うじて拾う程度の電波強度である(-70dBm程度)

これではストリーミングビデオを見るには少し厳しいものだ・・・そこで、余っていたNEC WR8170Nを子供部屋階下の部屋に引かれているLANケーブルへ接続し、

- 根本のルーターとSSIDを共通化し
- チャネル被りしないチャネルを手動で割当て
- 電波強度が２Fまで快適に届き、親機を邪魔しない程度に電波出力を下げ(出力50%)
- ハンドオーバーできる構成

にしていた。これがAPである。そのAPに繋がれているLANケーブルは宅内の空き配管を通ってLDKのキッチン横ONU等設置スペースまで伸びており、ルーターへ繋がっている。この構成は前プロバイダ時代もソフトバンク光時代もそれは変わらない。

この図の太い実線が有線LAN接続、点線がWifi接続、細い実線が電話線接続である
![実家旧ネットワーク図.png](https://qiita-image-store.s3.amazonaws.com/0/104876/1ec8ef4b-f8d1-b8f2-a9c8-efd21c97e8f4.png)

ちなみに家の構造の概要図である。
![家.png](https://qiita-image-store.s3.amazonaws.com/0/104876/c7b0332d-a7e6-7bf2-5933-fa3fc7e5ee28.png)

# 原因究明

## 原因切り分け

### APの不具合を疑う

APが年季入ってて壊れかけなんだ！別の機器に交換すればよくなるはず！そう思いそのへんに転がっていたNEC WG1400HPへ繋ぎ変え、前の機器と同設定を組み込んでAP設置&再起動。

その日の夜、寝室でハンドオーバーするのを確認した。

**「インターネット接続が不安定です(別のWifiにつないでください)」**

なんでや！元に戻した。

ちなみにこの段階で、<u>IPアドレスがちゃんと割り振られていたことは確認していたし、ルーターやAPへの設定ページアクセスができていた。<u>

### ルーターとAPの相性問題を疑う

E-WMTAの親機機能は正直そんなに性能は良くないらしい。ビームフォーミングやMIMOにも対応しているか微妙。

そこで、APの強そうな機能やそれっぽい機能を停止して、なるべくパケットがなるべくそのまま通過できるような状態に設定。

しかし状態は変わらず。

### ローミングが想定されていない機器の可能性

ローミング構成に関しては、現在函館のとある私の住む下宿で、今のバイト先の社員と共に何度も四苦八苦してようやく民生機の無線LANルーター3機とBuffaloの法人向けVPNルーターVR-S1000で13人の大学生ヘビーユーザーをWifiのみで捌くことに成功(ただし結局APが近い人はLANケーブルを買ってきて下宿大家の無許可で有線接続している)経験があるので、たかが家族4人(全員ヘビーユーザーだが)の家でローミング構成できないとはとても思えないのだが、残念ながら切り分けのため一旦諦めることにした。

APには別のSSIDを設定し、寝る前につなぎ替えることにした。最高に頭悪い。だが、恐ろしいことが起こった。

**「インターネット接続が不安定です(別のWifiにつないでください)」**

嘘だろ・・・流石にここまで来るとおかしい・・・

### ルーター再起動

もうここまで来たら容赦なくルーターを再起動してやる。

特に皆ゲームをやるわけでもないので、勝手にルーター設定ページにアクセスして再起動ボタンﾎﾟﾁｯとな。

APにつないでいる状態で、再起動して、APはそのままにしているので、再起動後にはそのままのAP経由でインターネット接続されるはず。この目論見は当たりだったようだ。

つまり、子供部屋に入り、ハンドオーバーしたらルーターの再起動コマンドを押せばいいわけだ！なーんだ！簡単じゃん！


・・・んなわけねえだろ！！！

## 原因は親機とAPの相性問題？

### 親機を分離

相性問題に原因がありそう。ちょうど、来年ソフトバンク光の2年縛りが切れるタイミングで光コラボ先を乗り換える予定(検討先のとこはルーター代が有料らしい)なのもあり、買っちゃえ☆と近所のコジマからIPoE対応のWG1200HP3を購入。ルーター上部に親機として設置。ちゃっかりv6対応の準備が整った。

新しい無線LANルーターはすごいもんで、自動で2.4Ghz帯と5Ghz帯を端末側ではなく親機側で適切なバンドへ繋ぎ変えてくれるんだとか。

まあ今回は問題がややこしくなったら嫌なのでその機能は無効化して、こんな感じで接続。赤枠線内が主な構成変更点

![実家試ネットワーク図.png](https://qiita-image-store.s3.amazonaws.com/0/104876/64577cdd-9a6f-e25b-3cde-c7b71c2edf46.png)

だが、いざ子供部屋に行ってみると、いつもの表示が出るのだ

**「インターネット接続が不安定です(別のWifiにつないでください)」**

## ルーターが通信負荷に耐えきれていない？

いよいよこのあたりから、ルーターがアホなんじゃないかと疑い始めてきた。

### 2F寝室テレビのスイッチを換装

ルーターの負荷を防止するために、流れるパケットの総量を減らそうと考えた。

そこで2F寝室のスイッチを手始めにギガビットスイッチをAmazonで購入して取り替えてみた。これ、初のTP-Link製品である。

何故ここなのかというと、この部屋のスイッチは俗に言うバカハブだったこと、そして、この時は寝室のスイッチ経由でAPにLAN配線されていたと思っていたからだ(後述するがこの予想していた構成は実際とは異なっていた)。

結論はもちろん症状変わらずだった。

### ルーターのスイッチング機能を分離する

いよいよルーター何も当てにされなくなってきた。

そもそも、さっき取り替えた部屋、DLNA機器接続用の配線だが、殆ど使われていないし、APの部屋に直接関わる配線は含まれていなかったので、スイッチングハブに取り替えたところで意味がなかったと気づいた。

そこで、そのせっかく買ったスイッチをルーター直下に置いて、根本のスイッチング機能を完全にハードスイッチに分離させようと考えた。

そんな感じでこんな構成にしたのだが、これ実は大正解で、後で大事なことに気づくことになりました。

![実家旧新ネットワーク図.png](https://qiita-image-store.s3.amazonaws.com/0/104876/8ef27214-304f-7e2f-7f7e-b3d2d459d104.png)

この構成にした時、ふと｢同じ無線LANで通信する機器同士は同じスイッチにつなごう｣と考えていたのだ。ナイス俺。

結果として正解例だったので大成功。ハンドオーバー後も多少不安定ながらもしっかり通信が確立したままになるようになった。

### 親機とAPをデイジーチェーンになるよう繋ぐ

さっきの構成で確証を得て、スイッチを取り外し、ルーターへ直接つないだ。

さてどうだろうか。この構成にした日の晩、子供部屋に戻ると、ハンドオーバーしたが、当たり前のようにインターネット接続が維持された。やったぜ！

最終ネットワーク図はこうなった。あまりにルーターのスイッチング性能がアテにできないが、機器を増やしたくもないので泣く泣くテレビ系の配線のみルーターに接続した。

![実家新ネットワーク図.png](https://qiita-image-store.s3.amazonaws.com/0/104876/c56b851f-dc9a-6fdc-c401-75d2bd508ebf.png)

# 考察

## E-WMTAのスイッチングがやはり馬鹿？

無線LANのAPや親機をデイジーチェーンで繋げば治り、ルーターのLANポートに並列につないでいた時はつながらなかった。

多分、このルーターは頭が悪く。ハンドオーバー先の機器のパケットが新しい経路から来ても、ルーティングテーブルを更新せず(表現あってる？)、あるいは更新するまでの間隔が非常に長い(2019年12月追記)為、元の経路にパケットを送ってしまうため、ハンドオーバーした端末のパケットは全て宛先不明で破棄されてしまい、アップロードはできるけどダウンロードはできない状態にされてしまっていたのだと思われる。

下はそのなんとなくを説明したつもりになってる図です。

![アホルーターの図.png](https://qiita-image-store.s3.amazonaws.com/0/104876/2756d77b-e39a-5245-0287-17d1876f569f.png)

![アホルーターの忖度の図.png](https://qiita-image-store.s3.amazonaws.com/0/104876/327d00b8-42ec-f1e9-1ee1-d3ae732fa4ce.png)


# 結論(あと欲)

- ソフトバンク光BBユニットはスイッチング機能が致命的にアホなので、IPアドレスが振られているのにネットが不通になった場合は素直にルーターを疑っていいと思う
- 同様に、APローミングのようにクライアントの位置が変わる運用をする時は気をつける必要がある
- プロバイダの内蔵wifiは当てにするな
- メッシュwifi欲しい！