境界なき通信の最適化:802.11k/v/rが実現する「真のシームレス」への深淵
インフラエンジニア諸君、今日もお疲れ様。現場でWi-Fiのハンドオーバー問題に頭を抱えたことはないか?「AP間を移動するたびにZoomが数秒フリーズする」「バックグラウンドのTLSセッションが切断される」。これらの問題は、単なる電波強度だけの話ではない。それはL2/L3層における「ハンドシェイクの重み」が引き起こす、避けられぬ摩擦だ。
今日は、Wi-Fi 6E/7時代の必須教養である「高速ローミング(802.11k/v/r)」の深淵に潜り込み、パケットレベルで何が起きているのかを紐解いていく。
—
高速ローミングの三位一体:k, v, rの役割を再定義する
多くの現場でこれらは「なんとなく設定する項目」として扱われがちだが、プロトコルスタックの観点では明確な役割分担がある。
- 802.11k (Radio Resource Measurement): クライアントに「近隣APの地図」を渡す。スキャン時間を劇的に短縮し、パッシブスキャンによるバッテリ消費とパケットロスを抑える。
- 802.11v (BSS Transition Management): AP側からクライアントに「あっちのAPの方が空いてるから移動しろ」と促す。ロードバランシングの要だ。
- 802.11r (Fast BSS Transition): これが本丸。本来数往復かかる
EAPや4-Way Handshakeを事前計算し、L2レベルで認証を完了させる。
なぜ「r」が重要なのか:TLSハンドシェイクの観点から
もし802.11rがない場合、APを切り替えるたびに802.1X認証が走り、RADIUSサーバとの往復が発生する。その間にTCPタイムアウトが発生すれば、TLSハンドシェイクは中断され、アプリケーション層での再接続が要求される。モバイル環境において、このミリ秒単位の遅延はUXを破壊する。
—
パケットレベルで見る「Fast Transition」の挙動
802.11rが有効な場合、クライアントはReassociation Requestフレーム内にFTIE (Fast Transition Information Element)を挿入する。これにより、ターゲットAPは認証サーバを介さず、キャッシュされたPMK (Pairwise Master Key) を用いてセッションを継続する。
ここで注意すべきは、FT (Fast Transition) が有効な環境下でのWPA3-Enterpriseの設計だ。GCMP-256のような強力な暗号化アルゴリズムを選択する場合、フレームのオーバーヘッドと復号処理のオーバーヘッドが、低スペックなIoTデバイスでボトルネックになるケースがある。
Linuxカーネルにおけるチューニングのヒント
hostapdを運用する諸君は、以下の設定が802.11rの挙動を左右することを忘れてはならない。
# /etc/hostapd/hostapd.conf の抜粋
# FT(Fast Transition)の有効化
ft_protocol=1
# 認証のキー生成アルゴリズム(SHA256固定が推奨)
ft_key_sha256=1
# 負荷分散(v)のサポート
bss_transition=1
# 近隣APレポート(k)のサポート
rrm_neighbor_report=1
—
現場で突き当たる「泥臭い」壁と回避策
理論上完璧な802.11k/v/rだが、現場ではレガシーデバイスとの衝突が絶えない。特に、802.11vのBSS Transition Management Requestを解釈できず、接続がハングアップする古いNICが存在する。
1. 接続拒否のデバッグ
もしクライアントが接続を拒否されるなら、wpa_supplicantで以下のログを追え。
# リアルタイムでハンドシェイクの失敗をキャプチャする
wpa_cli -i wlan0 log_level debug
# 失敗時にどのIE(Information Element)が弾かれているかを確認
2. TCPバッファとスループット
ローミング時の瞬断をアプリケーション層で吸収させるには、カーネルのTCPウィンドウサイズ調整が有効だ。特に不安定な移動体通信環境では、tcp_slow_start_after_idleをオフにして、再開時のスループットを維持する工夫も必要になる。
# sysctl.conf での推奨設定(状況に応じて調整せよ)
# ローミングによる一時的な切断後の回復を早める
net.ipv4.tcp_slow_start_after_idle = 0
# バッファを大きく取り、ハンドオーバーの遅延に耐える
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
—
最後に:ネットワークは「生き物」である
Wi-Fi 7 (802.11be) で導入されるMulti-Link Operation (MLO)は、これまで以上にローミングの複雑性を増す。複数の周波数帯を同時に使い、パケットを分散させるこの技術は、もはや「ハンドオーバー」という概念すら過去のものにしようとしている。
だが、どれだけ規格が進化したとしても、最終的に安定したネットワークを構築するのは、エンジニアの「現場の物理環境に対する想像力」だ。電波は遮蔽物に阻まれ、反射し、干渉する。その不確実性を、プロトコルの深い理解でいかに飼い慣らすか。
この記事が、あなたの次のアーキテクチャ設計における小さなヒントになれば幸いだ。何か深掘りしたい技術スタックがあれば、いつでもまた聞かせてくれ。現場からは以上だ。
コメント