みなさん、こんにちは。
今回は無線LANのローミングについてお話させていただきます。
▪️ローミングとは何か
ローミングと聞くと一般的には携帯電話のデータローミングを想像されるかことが多いかと思いますが、
今回は無線LANでのローミングのお話です。
無線LANでのローミングはクライアントが複数のアクセスポイント間を移動する現象を指します。
図1:ローミング
▪️なぜローミングが必要なのか
無線LANではアクセスポイントが送信する電波をクライアントが受信することにより通信が成立しますが、アクセスポイントとクライアントの距離が離れるほどクライアントが受信する電波の強度が弱くなることは感覚的にもわかりやすいかと思います。
データレート(通信速度)はクライアントの電波の受信強度(RSSI:Received Signal Strength Indicator)によって決まります。
詳細な閾値はアクセスポイントメーカーにより異なりますが、RSSIが低くなるにつれてデータレートは低くなります。
(この部分は今回の主題からはそれますので、別の機会にお話させていただきます。)
つまりアクセスポイントとクライアントの距離が離れるほど通信速度は遅くなります。
狭いエリアでアクセスポイント1台で運用しているような環境(例えば自宅など)ではローミングを意識する必要はありません。
(意識する必要がないというよりは1台しかないのでローミングしようが無い)
ですがオフィスなどの環境では広いエリアをカバーするために複数のアクセスポイントを導入して運用していることがほとんどなので、最適なアクセスポイントに接続することが高速通信を行う鍵となります。
▪️ローミングはどのタイミングで発生するのか
ある場所で複数あるアクセスポイントの中から最適なアクセスポイントを判断し接続するのはクライアント側です。
クライアントは信号強度や品質などから総合的に最適と判断されたアクセスポイントに接続しますが、その判断基準はクライアントのハードウェアやソフトウェアに依存します。
つまりローミングとはクライアントが起こす現象となります。
・スティッキークライアント
スティッキークライアントとは近くにより最適なアクセスポイントが存在するのに、最適ではない現在のアクセスポイントとの接続を引きずってしまうクライアントとなります。
つまりローミングが最適に行われていない状況となります。
スティッキークライアントの対策として有効な手法をいくつかご紹介致します。
①ローミングの積極性
intelの無線LANチップを搭載しているクライアントですとローミングの積極性という設定項目があります。
図2:ローミングの積極性
図2の例ですと値を「5.最高」に設定することでよりローミングが行われやすくなります。
ただこの設定を行うことにより頻繁にローミングが発生することで通信断が頻発し、結果的には最適な無線LAN環境とはならないといった状況も考えられますので、チューニングは慎重に行う必要があります。
②アクセスポイント側での機能実装
アクセスポイント側でスティッキークライアント対策に有効な機能を提供しているものがあります。
具体的にはHPE aruba社の「ClientMatch」、Cisco Systems社の「Optimized Roaming」などがあります。
アクセスポイントや無線LANコントローラ側でクライアントの受信強度を監視し、設定した閾値を下回った時点でアクセスポイント側からクライアントを切断するといった動作は各社同様となります。
HPE aruba社の「ClientMatch」では上記の条件に追加して、ローミング先のアクセスポイントの信号強度の閾値も設けており、現在のアクセスポイントが閾値以下であっても、最適なローミング先がない場合は切断を行いません。
またローミング先のアクセスポイントも無線LANコントローラで管理しており、切断後に最適なアクセスポイントに接続されるよう、無線LANコントローラ側で誘導しています。
アクセスポイント側から切断する手法もClienMatchでは「De-authentication」、Optimized Roamingでは「Dis-association」を投げるといった違いがあります。
ただ本来「De-authentication」や「Dis-association」はクライアント側からアクセスポイント側へ送るフレームであり、それをアクセスポイント側から受け取ったクライアントが想定通りの動作をしない(ここでは別のアクセスポイントへローミングしない)といった事象が発生するケースもあり、この辺りを注意しながら導入する必要があります。
▪️ローミング発生時の通信断
次にローミング次の通信断についてお話させていただきます。
ローミングが起こった場合、クライアントは現在接続されているアクセスポイントから別のアクセスポイントへの切り替わりが発生するため一時的な通信断が発生してしまいます。
通常では新しいアクセスポイントに接続する際にはAssociationから認証まで全ての手順を踏む必要があります。
無線LANへの接続手順については以下を参照ください。
この場合多くの手順を踏むことで断時間が長くなってしまい、音声通信など利用しているアプリケーションによっては許容ができない場合もあります。
ここからはローミングの断時間短縮のためいくつかの機能がありますので、そちらの紹介をさせていただきます。
以降の内容は上記の無線LAN接続手順に関する内容を読んでいただいた上で読んでいただくと、より理解が深まるかと思います。
この記事では上述の以前の記事同様に無線LANへの接続を下記の図3の通り3つのステップに分類し、それぞれの手法でどのステップを省略や簡略化できるのかについてお話させていただきます。
図3:接続Step図
①事前認証
こちらは読んで字の如くですが、新しいアクセスポイントにローミングする前に事前に認証を行っておき、ローミングした際の断時間を短縮するといった方法となり、802.11iにて規定されています。
ここでいう認証は図3:接続Step図の「Step2. 認証①(PMK生成)」の部分となります。
この方法のデメリットとしてはクライアントが事前認証で保持できるPMKの数が有限であることです。
これはつまり事前認証可能なアクセスポイントの台数に限りがあることになります。
またほとんどのワイヤレスクライアントでは事前認証をサポートしておらず、後述の方法がより一般的となります。
②PMKキャッシュ
こちらも読んで字の如くとなりますが、クライアントが一度アクセスポイントに接続した際に、クライアント/アクセスポイントの双方でPMKをキャッシュする方法となり、こちらも802.11iに規定されています。
再度同じアクセスポイントに接続する際にはキャッシュからPMKを参照することで図3:接続Step図の「Step2. 認証①(PMK生成)」の手順をスキップすることができます。
メリットとしてはアクセスポイント単体の機能となるため、自律型のアクセスポイントでも導入可能な点が挙げられます。
デメリットとしては、あくまで一度接続済のアクセスポイントに対する再接続の際にのみ有効で、新規に接続するアクセスポイントに対しては利用できないといった点があります。
③OKC
OKCはOpportunistic Key Cachingの略となりPMKキャッシュを拡張した方法となりますが、規格化されていないため、対応しているクライアントは限られます。
(主にWindowsでは対応していることが多いです)
PMKをキャッシュして認証をスキップするのはPMKキャッシュと同様となりますが、OKCではキャッシュしたPMKを同一ネットワーク内の他のアクセスポイントにも共有するため、新規に接続するアクセスポイントであっても高速にローミングが可能となります。
ここでいう同一ネットワーク内のアクセスポイントとは主に無線LANコントローラ(仮想コントローラやクラウド管理コンソールの場合もあり)によって管理されるアクセスポイントを指します。
そのため自律型のアクセスポイントでは実現が難しくなっています。
④802.11r
802.11rはFast BSS Transitionや単純にFT(Fast Transition)と呼ばれたりします。
802.11rではローミング前にローミング先のAPとクライアント間でのPTKの生成までを行います。
また前述の①事前認証/②PMKキャッシュ/③OKCよりもより少ないStepでローミングが可能なため、より断時間の短縮が可能です。
802.11rでは既存の接続Stepの手順を省略するのではなく、独自の認証Stepで鍵交換を行います。
具体的には図3:接続Step図のStep1〜Step3を以下の4つのフレームに置き換え、その中でPTKの生成までをローミング前に行います。
また鍵の交換方法には無線経由で行う方法(Over-the-Air)と有線経由で行う方法(Over-the-DS)の2種類が存在します。
図4:802.11r Over-the-Air
図5:802.11r Over-the-DS
⑤番外編(シングルチャネル)
今までは認証を省略/簡略する方法で断時間の短縮を行う手法をご紹介させていただきましたが、最後に別の観点で断時間を短縮する手法をご紹介します。
それはシングルチャネル構成となります。
一般的な無線LAN環境では隣り合うアクセスポイントは別のチャネルで構成するマルチチャネル構成となりますが、シングルチャネル構成では全て同じチャネル(シングルチャネル)で構成します。
図6:マルチチャネルとシングルチャネル
シングルチャネル構成ではチャネルと共にBSSIDも全てのアクセスポイントで共通とすることで、クライアントから見ると複数のアクセスポイントが一つの巨大なアクセスポイントであるかのように見えます。
アクセスポイント間の移動もクライアント側でのローミング処理は行われため、高速に移動が可能となります。
この手法でのデメリットは同じチャネルでの運用となるため、チャネル使用率が高くなりスループットが伸びづらくなります。
またシングルチャネル構成を採用しているアクセスポイントメーカーは少数となります。
長くなりましたが、今回はここまでとなります。
次回もお楽しみに。
他のおすすめ記事はこちら
著者紹介
SB C&S株式会社
技術本部 技術統括部 第2技術部 1課
藤ノ木 俊