日本語フォーラム

 View Only
last person joined: 14 days ago 

Arubaのソリューション、ネットワークマーケットに関する日本語ディスカッションフォーラム
Expand all | Collapse all

[WLAN] Mobility Controller のトラフィック処理の最適化

This thread has been viewed 28 times
  • 1.  [WLAN] Mobility Controller のトラフィック処理の最適化

    EMPLOYEE
    Posted Jun 28, 2022 02:03 AM
    GIGAスクール構想で1人1台の端末が、学校でも当たり前の日常がやってきました。
    それと重なり、After COVID-19 でオフィスや学校に戻ってきたことで、急激にオフィス、学内のネットワーク需要が増大してきています。
    接続端末のほとんどがWi-Fi端末なので、APやそれを管理するMobility Controller の設計・設定の最適化も重要です。

    以前、高密度環境の設定についてご案内しました。Central管理ですが、Mobility Controllerでもおおよそ同じです。
    今回は、Mobility Controller のトラフィック処理の最適化についていくつかご紹介します。

    Control Plane とDatapath 
    ArubaのControllerは、大きく2種類のCPUを持っていて、処理を分散しています。
    Control Plane は認証や管理機能、Datapath は主にパケット転送や暗号処理などのトラフィック処理を行なっています。
    Control Plane の負荷状況は"show cpuload", "show cpuload current" などで確認し、
    Datapath の負荷状況は"show datapath utilization" で確認できます。
    #show cpuload  
    
    user 0.7%, system 2.1%, idle 97.2%
    
    #show cpuload current 
    
    top2 - 20:01:47 up 37 days,  2:04,  0 users,  load average: 0.15, 0.17, 0.17
    Tasks: 491 total,   1 running, 489 sleeping,   0 stopped,   1 zombie
    Cpu(s):  1.1%us,  2.5%sy,  0.2%ni, 96.2%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
    Mem:   5167744k total,  3411200k used,  1756544k free,   355520k buffers
    Swap:  2621312k total,        0k used,  2621312k free,  1438912k cached
    
      PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND            
    29756 root      20   0  4800 3136 1856 R   12  0.1   0:00.15 top2               
     3473 root      20   0  5568 2496 1792 S    2  0.0  16:23.73 dbstart_pgsql      
     3594 root      20   0 40704  14m 8576 S    2  0.3  39:39.30 lagm               
     3609 root      20   0 88512  20m 8320 S    2  0.4  39:44.60 licensemgr         
     4270 root      20   0 53824  21m 9.9m S    2  0.4  34:15.50 central_agent      
     4617 root      20   0 68032  12m 7040 S    2  0.3 115:11.56 osapiTimer         
        1 root      20   0  5504 2368 1792 S    0  0.0   0:08.06 init               
        2 root      20   0     0    0    0 S    0  0.0   0:00.12 kthreadd     ​

    #show datapath utilization 
     
    Datapath Network Processor Utilization
    +---------+-----+---------+---------+----------+
    |       Cpu     |  Cpu utilization during past |
    |   Type  |  Id |  1 Sec     4 Secs    64 Secs |
    +---------+-----+---------+---------+----------+
         SPGW |   8 |      0% |      0% |       0% |
           SP |   9 |      2% |      1% |       1% |
           FP |  10 |      0% |      0% |       0% |
         FPGW |  11 |      0% |      0% |       0% |
           FP |  12 |      0% |      0% |       0% |
           FP |  13 |      0% |      0% |       0% |
           FP |  14 |      0% |      0% |       0% |
           FP |  15 |      0% |      0% |       0% |
    
    Datapath CPU Allocation Summary
      Slow Path (SP) : 1,  Slow Path Gateway (SPGW) : 1 
      Fast Path (FP) : 5,  Fast Path Gateway (FPGW) : 1 
      DPI : 0, Crypto (CRYP) : 0
      Slow Path Spare (SPSPARE) : 0​


    Datapath CPU の中で、主にFP (Fast Path) CPU がトラフィック処理に利用されています。
    トラフィックが非常に多い環境では、このFP CPUの負荷が高くなり、ユーザ通信に影響がでることがあるので、
    以下でご紹介するような設定で、負荷を下げるようにしましょう。


    1. ブロードキャストとマルチキャストの最適化
    一番効果的な対応が、ブロードキャストとマルチキャストの最適化です。(以下、Broadcast, MulticastをBC/MCと記載します)
    最適化というよりも、不要なVLANやSSIDで、BC/MCを使えなく(Drop)してしまいましょう。
    フレームをコピーするときにFPへの負荷がかかりますし、ネットワーク全体のパフォーマンスを考えても、
    不要なBC/MCはいいことがありません。(あくまで不要な場合です)
    ArubaのControllerは主に2つの方法でBC/MCを止めることができます。

    1-1 VLAN 単位で設定
    VLAN単位で指定したいときは、VLAN Interfaceで以下のコマンドを設定します。
    これだけで、対象VLANでのBC/MCの転送を止めることができます。

    (config) #interface vlan xxx
    (config-submode)#bcmc-optimization

    もちろん、ARPやDHCPなど、止めては困るフレームもあり、bcmc-optimizationではこれらの通信は対象外です。
    詳細は、マニュアルに記載されているのでこちらをご確認下さい。

    1-2 SSID 単位で設定
    SSID単位でBC/MCを止める場合は、Virtual AP Profile で、broadcast-filter all を設定します。

    (config) #wlan virtual-ap your-profile
    (Virtual AP profile "your-profile") #broadcast-filter all
    (Virtual AP profile "your-profile") #broadcast-filter arp

    この設定を使う場合は、必ずbroadcast-filter arpも設定するようにします。(broadcast-filter arp はデフォルトで有効です)
    broadcast-filter arpの設定は、ブロードキャスト ARP Requestをユニキャストに変換してくれます。DHCP Response も同様です。
    broadcast-filter はAP→端末向けに適用されるので、端末→APへのBC/MCをブロックするわけではありません。
    詳細はこちらのマニュアルをご参照下さい。


    2. Suppress ARP 
    この機能は、デフォルトで有効なので、特別設定していなければそのままで問題ありません。
    VLAN Interfaceで設定し、Unknown ARP を無線LANクライアントに転送しなくなります。
    有線には転送します。
    Unknownかどうかは、Controller のユーザエントリの有無で判断します。
    Suppress ARP の有無での動作の違いは以下のようになります。


    以下が設定例です。

    (config) #interface vlan xxx
    (config-submode)#suppress-arp

    こちらのマニュアルもご参照下さい。


    3.  Cluster Load Balancing の最適化
    こちらは、Mobility Conductor (MCR) を使ったクラスタ機能を使っている場合の対応方法になります。
    MCRは複数のMobility Controller (MC) を集中管理し、さらにクラスタ構成を取ることで、
    クラスタ内のController間で収容するAPやクライアントの動的な負荷分散をすることができます。


    ここでのクライアントの負荷分散は、トラフィック量には関係無く接続クライアント数に基づいて行われます。
    基本的には特に設定変更せずとも、ある程度MC毎の接続クライアント数が同程度になると思いますが、
    特定のMCへ接続クライアントが偏るようなケースがあれば、
    ロードバランスが実行される閾値を変更してみて下さい。
    以下がデフォルトの閾値と、大規模環境での推奨値です。


    クライアント負荷(client load)はMCに接続しているクライアント数➗MCのサポートしている最大クライアント数です。
    Active Client Rebalance Threshold と Unbalanced Threshold の両方が満たされたときにクライアントの移動が実行されます。
    以下の例はだいぶ極端な例ですが、クライアント負荷が53% (>20%)、Unbalanced Threshold が53-6.2 = 46.8 (>5%)なので、
    接続クライアントが7240から7210 に移動します。
    詳細はマニュアルをご参照下さい。


    4. ユーザ毎の帯域制御

    こちらの設定は要件次第になるとは思います。
    社内(学内)で、特定にユーザだけが、インターネットから大容量ファイルをダウンロードしていたり、動画をひたすら視聴し、
    他のユーザに影響が出ているような場合には検討してみる価値があると思います。
    ArubaはUser Roleで色々するのが得意です。一番の例はアクセス制御ですが、
    ユーザ毎の帯域制御もUser Roleの設定で簡単に行うことができます。

    aaa bandwidth-contract upstreamper-user mbits 300
    aaa bandwidth-contract downstreamper-user mbits 300
    user-role student
       bw-contract downstreamper-user per-user downstream
       bw-contract upstreamper-user per-user upstream

    上記は、user-role studentのユーザ毎の帯域を300Mbps(上り/下り)に制限する設定例です。
    詳細はマニュアルもご参照下さい。


    今回は主に設定の観点でいくつか紹介しました。
    また機会があれば、トラブルシューティングの観点での確認ポイントなども解説できたらなと思っています。
    サボっていつになるかわからない可能性もあるので、今すぐ知りたいってお声があれば、是非ここでコメント下さい!



    ------------------------------
    Keita Shimono,
    Aruba Japan SE Manager & Airheads Leader
    ------------------------------


  • 2.  RE: [WLAN] Mobility Controller のトラフィック処理の最適化

    Posted Jun 30, 2022 12:20 AM
    とても参考になりました!
    ところで、8.10.0.2でbcmc-optimizationを適用するとAOS-156537の影響を受けますか?
    (なお7010ControllerのActive-Standby-Standalone構成です)


  • 3.  RE: [WLAN] Mobility Controller のトラフィック処理の最適化

    EMPLOYEE
    Posted Jun 30, 2022 04:37 AM
    コメント、ご指摘ありがとうございます!
    AOS-156537の影響は受けます。
    こちらは、IGMPやAirGroupを設定しても、bcmc-optimizationの設定が優先され、設定したInterfaceでマルチキャストを受信できなくなります。
    マルチキャストを使う場合は設定せず、BC/MCを使わない場合は設定頂くのが良いかと思います。

    ------------------------------
    Keita Shimono,
    Aruba Japan SE Manager & Airheads Leader
    ------------------------------



  • 4.  RE: [WLAN] Mobility Controller のトラフィック処理の最適化

    Posted Jun 30, 2022 09:22 PM
    ご回答ありがとうございます。
    マルチキャストは使うので broadcast-filter を試してみようと思います。