SSIDとBSSIDの深層:クライアントローミング制御とレイヤー2ハンドシェイクの内部挙動
無線LANの設計において、我々は常に「見えない電波」という不確実な媒体と対峙している。リビングで動画をストリーミングしながら書斎へ移動した瞬間、あるいはオフィス内をスマートフォンを持って歩き回る時、デバイスはシームレスにアクセスポイント(AP)を切り替えているように見える。しかし、その背後では、レイヤー2(データリンク層)における緻密なシグナリングと、ドライバ層の冷徹な閾値判断が毎秒のように繰り広げられている。
今回は、ネットワークインフラの根幹をなす SSID(Service Set Identifier)と BSSID(Basic Service Set Identifier)の定義を再確認した上で、クライアントデバイスがどのようにして最適なAPを選択し、ローミングを遂行しているのか、そのパケットレベルの挙動とカーネルパラメータチューニングの観点から深く掘り下げていこう。
—
1. 識別子のレイヤー:SSIDとBSSIDの厳密な定義
まずは、Wi-Fiフレームワークにおける基本的な識別子の構造を整理する。多くの一般ユーザーにとって「Wi-Fiの名前」は SSID であるが、プロトコルの世界では、これらは完全に異なるレイヤーと役割を持っている。
SSID (Service Set Identifier)
- 役割: 論理的なネットワークの識別子(最大32オクテット)。
- 挙動: BeaconフレームやProbe Request/Responseフレームに載せてブロードキャスト、あるいはユニキャストでやり取りされる。人間がネットワークを認識するためのUI上のラベルに過ぎない。
BSSID (Basic Service Set Identifier)
- 役割: 物理的な無線インターフェース(APのラジオモジュール)のMACアドレス(48ビット)。
- 挙動: 802.11 MACヘッダーのAddresses(Address 1, 2, 3)に直接刻まれ、パケットの宛先・送信元として常にルーター間やクライアント間で飛び交う。ひとつのAPが複数のマルチSSID(VLAN分断など)を吹いている場合、物理的なハードウェアは1つであっても、論理的なBSSIDは仮想的に複数生成される。
クライアント(スマートフォンやPCのWi-Fiチップ)は、人間が見ている SSID ではなく、電波の送信源である BSSID ごとに電波強度(RSSI)やノイズフロアを監視し、接続・切断の判断を下している。
—
2. クライアント側ローミングのメカニズム:RSSI閾値と802.11k/r/v
クライアントがいつ、どのタイミングで別のAPへローミング(再関連付け)するかは、OSのカーネルやWi-Fiチップセットのファームウェアに深く依存している。一般的に、ローミングのトリガーとなるのは以下の要素だ。
1. RSSI(Received Signal Strength Indicator)の劣化: 現在接続している BSSID の受信電力が、あらかじめ設定された閾値(例: -70 dBm)を下回った場合。
2. フレームエラー率(FER)の悪化: 再送制御(Retry)の頻発により、リンクの品質が低下した場合。
3. 周辺APからのより強力なBeaconの検知: より高いRSSIを持つ同じ SSID の別 BSSID を発見した場合。
802.11プロトコル拡張による高速化
伝統的なローミングでは、クライアントが一度接続を切断し、新しい BSSID に対して再度Probe Requestを送り、4ウェイハンドシェイク(4-Way Handshake)を一からやり直していた。これには数百ミリ秒の遅延が発生し、リアルタイム音声通話やSSHセッションが瞬断する原因となる。これを解決するのが以下の規格だ。
- IEEE 802.11k (Radio Resource Measurement): クライアントが効率的に周囲の候補APを見つけられるよう、AP側が周辺の無線環境リポート(Neighbor Report)を提供する。
- IEEE 802.11r (Fast BSS Transition – FT): 初回接続時の4ウェイハンドシェイクを軽量化し、事前の鍵導出(PMK-R0/R1)によってローミング時の認証遅延を数ミリ秒単位にまで圧縮する。
- IEEE 802.11v (Wireless Network Management): AP側からクライアントに対して「あっちの負荷が低いAPに移行してくれ」と誘導(BSS Transition Management)を行う。
—
3. パケットキャプチャから見るプローブとアソシエーションの挙動
無線LANアナライザ(Wireshark等)で空中線を流れるパケットを覗くと、クライアントがローミングを決定するまでの泥臭いやり取りが手に取るようにわかる。
[Client] ---> Probe Request (Broadcast SSID, or Wildcard) ---> [AP A / AP B]
[AP A] <--- Probe Response (BSSID: 00:11:22:33:44:55, RSSI: -65 dBm) - [Client]
[AP B] <--- Probe Response (BSSID: 00:11:22:33:44:66, RSSI: -82 dBm) - [Client]
クライアントは、現在の接続が不安定になると、アクティブ・スキャンとして Probe Request を放つ。返ってきた Probe Response の BSSID ごとのRSSIを比較し、最も有利なターゲットを選定する。
—
4. 実務・インフラ構築におけるチューニング:Linuxクライアントのパラメータ制御
組み込みLinuxデバイスや、Linuxをベースとしたサーバー・エッジ端末において、Wi-Fiのローミング挙動やアグレッシブさを制御したい場合、wpa_supplicant や iwd の設定を追い込む必要がある。
以下に、Linux環境における wpa_supplicant.conf の実践的な設定例を示す。ここでは、アグレッシブなローミング(BSSの早期切り替え)と、特定のRSSI閾値に基づいた制御を行わせる。
# /etc/wpa_supplicant/wpa_supplicant.conf
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=JP
network={
ssid="Corporate-Secure-Network"
psk="your_super_secret_pre_shared_key_here"
# 漫然としたローミングを防ぎつつ、電波悪化時に迅速に別BSSIDへ乗り換える設定
# 接続を維持する最低限のRSSI閾値(単位: dBm)
bgscan="simple:30:-75:5"
# スキャン間隔(秒)とRSSI低下時の閾値、スキャン周期のバランス調整
# 30秒ごとにバックグラウンドスキャンを行い、RSSIが-75dBmを下回ったらスキャン頻度を上げる
}
> インフラエンジニアの現場メモ:
> bgscan パラメータのチューニングは慎重に行う必要がある。閾値を甘くしすぎると、わずかな電波変動で「フラッピング(APの行ったり来たり)」が発生し、かえってスループットが低下する。逆に厳しすぎると、ハンドシェイクが間に合わずにパケットロスが多発する。現場の減衰特性(遮蔽物の素材など)に合わせて実測値ベースで調整が必須だ。
—
5. 高度なセキュリティ:ローミング時の鍵キャッシュと脆弱性回避
ローミング時における最大のセキュリティ上の懸念は、認証プロセスを高速化する過程で、セッションキーが平文や脆弱なアルゴリズムで露出することだ。特にWPA3(SAE: Simultaneous Authentication of Equals)環境下では、PMK(Pairwise Master Key)のキャッシュメカニズムがセキュアに設計されている必要がある。
古い企業用Wi-Fi(WPA2-Enterprise)で問題となったKRACKs(Key Reinstallation Attacks)のような脆弱性は、4ウェイハンドシェイクの「メッセージ3」の再送を悪用し、暗号化nonceをリセットさせることでパケットを復号・インジェクションするものだった。現代のファームウェアおよびドライバでは、以下の対策が必須となる。
1. PMKSA(PMK Security Association)キャッシュの適切な有効期限(Timeout)の設定
2. MFP (Management Frame Protection / 802.11w) の強制適用:これによって、悪意ある第三者が切断フレーム(Deauth Attack)を偽装してクライアントを強制切断させ、トラフィックをダウングレードさせるといった攻撃を防ぐ。
—
6. まとめ:目に見えないレイヤー2の挙動を支配する
Wi-Fiの接続が切れる、遅くなるというトラブルの多くは、上位層(TCP/IP層やアプリケーション層)の問題ではなく、下位層である SSID と BSSID の選択ミス、あるいはローミングのアルゴリズムのミスマッチに起因している。
「ただ電波が強いところにつなぐ」のではなく、デバイスがどの BSSID をつかみ、どのようなRSSIでハンドシェイクを行っているのか。そのパケットの流れをレイヤー2の視点から常時イメージできるかどうかが、堅牢で安定した無線インフラを構築するための境界線となるのだ。
コメント