メッシュWi-Fiの真実:802.11kが切り拓く「ゼロ・ハンドオフ」の深淵
ネットワークエンジニア諸君、日々増え続けるIoTデバイスと、コンシューマー層の「どこでも動画が途切れない」という無茶な要求の板挟みになっていないだろうか。
家庭用メッシュWi-Fiにおいて、多くのベンダーが「シームレスなローミング」を謳うが、その実態はL2/L3の論理的なハンドオーバーというよりも、プロトコルによる「お膳立て」の精度に依存している。特に、IEEE 802.11k(Radio Resource Measurement)は、クライアントが次に接続すべきAPを「勘」ではなく「データ」で選択させるための、メッシュネットワークの心臓部だ。
今回は、この802.11kがいかにしてパケットの遅延を抑え、クライアントのローミング時間を物理限界まで縮めるのか、その内部挙動を深掘りする。
—
802.11k:近隣レポートがもたらす「予測可能なハンドオーバー」
一般的なデバイスは、接続先の信号強度が閾値を下回った際にスキャンを開始する。しかし、周囲の全チャネルをスキャンする時間は、リアルタイム通信においては致命的なRTT(Round Trip Time)のスパイクを引き起こす。
802.11kの真価は、AP側が保持する近隣APのリスト(Neighbor Report)をクライアントに送出することにある。これにより、クライアントは「どのチャネルにどのAPが存在するか」を事前に把握でき、スキャン時間を数ミリ秒単位まで短縮可能だ。
パケットレベルの挙動
クライアントが Neighbor Report Request を投げると、APは Neighbor Report Response を返す。このフレーム内には、近隣APのBSSID、動作チャネル、信号品質の指標が含まれる。この情報をもとに、クライアントの supplicant(wpa_supplicant等)は、次の接続先を最適化する。
—
インフラ層でのチューニング:RTT削減とバッファ管理
我々インフラ屋が意識すべきは、クライアントがローミングした瞬間の「TCPセッションの再開」だ。ローミングそのものはL2で完結するが、その直後に発生するTCPの輻輳制御ウィンドウ(cwnd)の破綻や、TLSハンドシェイクの遅延は、ユーザー体験を直撃する。
1. TCPバッファの最適化(Linuxカーネルレベル)
ローミングによる一時的なパケットロスが発生した際、TCPが「輻輳」と誤認して cwnd を極端に絞るのを防ぐ必要がある。
# sysctl.conf でのTCP最適化例
# 高速移動/ローミング環境下での再送待ちを緩和
net.ipv4.tcp_congestion_control = bbr # BBRはパケットロスに強いため推奨
net.ipv4.tcp_slow_start_after_idle = 0 # アイドル後のスロースタートを無効化
net.ipv4.tcp_max_syn_backlog = 2048 # 高負荷時のハンドシェイク待機列を確保
2. TLSハンドシェイクの短縮
ローミング直後の再接続でTLSのフルハンドシェイクを繰り返すのは愚策だ。TLS 1.3 の 0-RTT (Zero Round-Trip Time Resumption) を活用することで、セッション再開時のレイテンシを劇的に削減できる。
—
脆弱性回避とセキュリティの定石
メッシュ環境において、管理フレームが暗号化されていない状態は、Deauthentication 攻撃の格好の的となる。これを防ぐには、802.11w(Protected Management Frames: PMF)の強制が必須だ。
# wpa_supplicant.conf の設定例
# PMFを強制し、管理フレームの改ざんを防ぐ
network={
ssid="MyMeshNetwork"
key_mgmt=WPA-PSK-SHA256
ieee80211w=2 # 0:無効, 1:推奨, 2:必須 (PMFを強制)
proto=RSN
}
802.11k を有効化する際、攻撃者が偽の Neighbor Report を流し込む「APスプーフィング」のリスクも考慮すべきだ。インフラ側では、接続するAPのBSSIDを信頼できるソースからのみ配信するよう、コントローラーのACLを厳格に管理する必要がある。
—
結論:ネットワークを「科学」する
メッシュWi-Fiのローミングは、魔法ではない。802.11kによる情報提供、802.11vによるステアリング、そして802.11rによる高速認証の三位一体によって支えられている。
我々エンジニアがやるべきは、単に機器を設置することではない。パケットキャプチャでローミング時の Reassociation Request を解析し、スキャン時間が最適化されているかを検証し、TLS再開がスムーズに行われているかを確認する。この泥臭い積み重ねこそが、最高品質のユーザー体験を生む唯一の道だ。
コードを書き、カーネルを叩き、パケットを愛でる。その先にこそ、真に安定した家庭内ネットワークの構築がある。
コメント