Aruba Wireless, Part 6: Controller Clustering, Redundancy, Roaming and Live Upgrade

A controller that terminates 2,000 APs and 30,000 users is a large failure domain. Before AOS 8, Aruba networks protected it with VRRP and backup controllers, and a failover meant APs rebooting onto another controller and users re-authenticating — tens of seconds to minutes of disruption. AOS 8 clustering changed that: controllers share the load and keep standby copies of each other’s AP and user state, so a controller failure is a sub-second event that users do not notice. This post explains the older mechanisms briefly, then clustering in depth, followed by roaming and Live Upgrade, which both build on the cluster.

Before Clustering: VRRP, LMS and HA Groups

These mechanisms still matter on standalone controllers and on networks being migrated:

  • VRRP — two controllers share a virtual IP. APs discover the VIP; if the primary fails, the backup assumes the VIP and APs re-establish their tunnels to it. APs reboot or re-bootstrap and clients re-authenticate.
  • LMS / backup LMS — the AP system profile names the controller the AP should terminate on (lms-ip) and a fallback (bkup-lms-ip), with optional preemption back to the primary. Simple, but every failover is a re-bootstrap.
  • HA groups (AP fast failover) — controllers are paired as active and standby (or dual-active); APs pre-build a standby tunnel to the standby controller, so AP failover is fast. User state is not synchronized, so clients still re-authenticate. HA groups and clustering cannot be used together.

Clustering Concepts

A cluster is a group of managed devices of the same family, running the same AOS version, that act as a single pool of capacity. Up to twelve 7200-series or virtual controllers can form a cluster (fewer for 7000-series branch controllers — four), and a cluster requires a Mobility Conductor.

Term Meaning
Cluster leader Elected member (highest configured priority, then platform capacity, then MAC) that computes AP and user assignments and drives load balancing
AAC — AP Anchor Controller The member that terminates an AP’s control channel and manages it
S-AAC — Standby AAC A different member holding a pre-built standby tunnel for the AP
UAC — User Anchor Controller The member that holds a client’s state — keys, role, firewall sessions — and through which all its traffic flows
S-UAC — Standby UAC A different member holding a synchronized standby copy of that client’s state
Bucket map A table of 256 buckets, each mapped to a UAC and S-UAC; a client’s MAC address is hashed into a bucket

AP Anchoring

Cluster HQ-CLUSTER (L2-connected, redundancy on)MC1leaderMC2memberMC3memberheartbeats+ state syncAP-1AP-2AP-3AP-4active tunnelto AACstandby tunnelto S-AACThe leader assigns each AP an AAC and an S-AAC on a different controller, balancing APs across the cluster.
Figure 1 — AP anchor controllers. Every AP keeps a pre-built standby tunnel, so losing its AAC costs a tunnel switch, not a reboot and rejoin.

When an AP comes up it contacts any cluster member (whatever DHCP option 43 or DNS points to), learns the full member list, and is assigned an AAC and an S-AAC by the leader. The AP keeps an active tunnel to the AAC and a standby tunnel to the S-AAC at all times. The leader spreads APs evenly across members, accounting for each platform’s capacity.

User Anchoring and the Bucket Map

Client3c:22:fb:11:22:33hash(MAC)→ bucket 0–255bucket 141Bucket map (computed by the leader)BucketsUACS-UAC0 – 85MC1MC286 – 170MC2MC3171 – 255MC3MC1Roaming inside the clusterAP-1AAC = MC1AP-2AAC = MC3roamsMC2 = UAC for this clientrole, sessions, keys, IP stay herebefore: AP-1 tunnels the client's traffic to MC2after: AP-2 → MC2
Figure 2 — User anchor controllers. A client’s UAC depends only on its MAC address, so it stays the same wherever the client roams in the cluster: no re-authentication, no new IP, no lost firewall state.

The UAC is chosen independently of the AP: the client’s MAC address is hashed into one of 256 buckets, and the bucket map says which member is the UAC (and S-UAC) for that bucket. The AP builds tunnels to the other members as needed and forwards each client’s traffic directly to that client’s UAC.

This separation is the clever part of the design. The UAC is a function of the client’s MAC address only, so when the client roams from an AP anchored on MC1 to one anchored on MC3, its UAC does not change: the new AP simply sends that client’s traffic to the same UAC. The client keeps its IP address, VLAN, role, firewall sessions and encryption keys. From the network’s point of view, the roam never happened.

L2-Connected vs L3-Connected

When a cluster forms, members probe each other to check that every user VLAN exists on every member (the VLAN probe):

  • L2-connected — all members share all user VLANs. Users can be placed on any member, and with redundancy enabled the cluster maintains S-UACs for hitless user failover. This is the design to aim for.
  • L3-connected — members do not share all VLANs (for example, controllers in two buildings with different user subnets). AP load balancing and AP failover still work, but stateful user failover does not.

Configuring a Cluster

(MCR-1) [mynode] #cd /md/USA/HQ
(MCR-1) [HQ] #configure terminal

lc-cluster group-profile HQ-CLUSTER
    controller 10.1.10.21 priority 200 mcast-vlan 0 vrrp-ip 10.1.10.31 vrrp-vlan 10 group 0
    controller 10.1.10.22 priority 150 mcast-vlan 0 vrrp-ip 10.1.10.32 vrrp-vlan 10 group 0
    controller 10.1.10.23 priority 128 mcast-vlan 0 vrrp-ip 10.1.10.33 vrrp-vlan 10 group 0
    redundancy
!
lc-cluster group-membership HQ-CLUSTER
!
write memory
  • Each controller line identifies a member by its controller-ip (Part 2).
  • priority influences leader election.
  • vrrp-ip/vrrp-vlan give each member an extra VRRP address that its standby can take over. These addresses are used as the NAS address for RADIUS, so that CoA messages from ClearPass always reach whichever member currently holds the user — even after a failover (see Part 5).
  • redundancy enables standby UACs and S-AACs with full state synchronization.
  • group-membership at the HQ node makes every controller beneath it a member. Membership can also be set on individual device nodes.

Verification

(HQ-MC1) #show lc-cluster group-membership

Cluster Enabled, Profile Name = "HQ-CLUSTER"
Redundancy Mode On
Active Client Rebalance Threshold = 50%
Standby Client Rebalance Threshold = 75%
Unbalance Threshold = 5%
AP Load Balancing: Enabled
...
Cluster Info Table
------------------
Type IPv4 Address    Priority Connection-Type STATUS
---- --------------- -------- --------------- ------
self      10.1.10.21      200             N/A CONNECTED (Leader)
peer      10.1.10.22      150    L2-Connected CONNECTED (Member, last HBT_RSP 10ms ago, RTD = 0.4 ms)
peer      10.1.10.23      128    L2-Connected CONNECTED (Member, last HBT_RSP 12ms ago, RTD = 0.5 ms)

(HQ-MC1) #show lc-cluster vlan-probe status         ! which VLANs failed the probe, if any
(HQ-MC1) #show lc-cluster load distribution ap      ! APs per member
(HQ-MC1) #show lc-cluster load distribution client  ! clients per member
(HQ-MC1) #show ap database long                     ! "Switch IP" = AAC, "Standby IP" = S-AAC

A member that shows L3-Connected when L2 was intended almost always has a user VLAN missing from its uplink trunk or from its VLAN configuration — the VLAN probe output names it.

Hitless Failover

Before: all members upMC1MC2MC3AP-2: AAC = MC2, S-AAC = MC3Client X: UAC = MC2, S-UAC = MC3MC3 already holds X's state as standbyRequires: L2-connected clusterand redundancy enabled(capacity planned for N-1)After: MC2 failsMC1MC2 ✕MC3AP-2 switches to its standby tunnel → MC3Client X promoted on MC3 (S-UAC → UAC)Leader rebuilds bucket map; new standbys chosenNo AP reboot · no client re-authenticationkeys, role and sessions already on MC3→ voice calls and VPNs survive
Figure 3 — Hitless failover. Because APs and users already have standby state on another member, losing a controller is a sub-second event for clients.

When a member fails, the members that were S-AAC for its APs promote their standby tunnels, and the members that were S-UAC for its users promote their standby user entries. Because keys, roles and firewall sessions were already synchronized, clients keep their associations and sessions; long-lived flows such as voice calls and VPNs typically survive. The leader then recomputes the bucket map and assigns new standbys so the cluster is redundant again.

Capacity Planning: N-1

Redundancy means every AP and user is held twice, so usable capacity is roughly half of the raw total — or, put differently, the cluster must be able to carry the full load with one member down. A three-node cluster of 7220s (1,024 APs each) comfortably carries about 2,000 APs with redundancy; planning for 3,000 leaves nowhere to fail over to. Size clusters for N-1 at peak, and for maintenance windows with one member upgrading.

Load Balancing

The leader rebalances both APs and clients. AP load balancing redistributes AAC assignments when members join or leave. Client load balancing moves UAC assignments (by editing the bucket map) when a member’s active or standby client load crosses configurable thresholds relative to the others — the rebalance and unbalance thresholds shown in the output above. Rebalancing is designed to be hitless for clients, since it uses the same state-transfer machinery as failover.

Design Notes for Clusters

  • All members must run the same AOS version and be the same family (do not mix 7000- and 7200-series).
  • Members should be L2-connected: trunk every user VLAN to every member.
  • Keep latency between members low; clustering is designed for controllers in the same data centre or campus core, not across a WAN.
  • Point AP discovery (DHCP option 43 or DNS) at more than one member, or at a VIP, so APs can always find the cluster.
  • Use the per-member VRRP addresses and define them as RADIUS clients on ClearPass, so authentication and CoA survive failover.
  • Separate clusters for separate failure domains: a campus cluster and a separate cluster for Remote APs is common.

Roaming

Inside a Cluster

Thanks to the UAC, a roam between any two APs of the same cluster is a Layer 2 roam: no new DHCP, no new role, no firewall state lost. The remaining delay is the 802.11 reassociation and key exchange, which fast-roaming protocols minimize.

Fast Roaming: OKC and 802.11r

A full 802.1X authentication takes hundreds of milliseconds to several seconds — far too long for a voice call. Two mechanisms avoid repeating it on every roam:

  • Opportunistic Key Caching (OKC) — the PMK from the first authentication is cached and reused on any AP of the same WLAN; the client only performs the 4-way handshake. Widely supported by Windows, less so elsewhere. Controlled by opp-key-caching in the 802.1X profile.
  • 802.11r Fast BSS Transition (FT) — the standard method, supported by iOS, Android, macOS and Windows. Key derivation is folded into the authentication/reassociation frames, cutting roam time to tens of milliseconds.
wlan dot11r-profile CORP-11R
    dot11r
!
wlan ssid-profile CORP-SSID
    dot11r-profile CORP-11R

Some older clients misbehave when they see FT information in beacons. Test with the actual device fleet; where problems appear, newer releases offer an adaptive/mixed mode, or 802.11r can be enabled only on the voice WLAN.

802.11k and 802.11v

  • 802.11k (radio resource management) — the AP gives clients a neighbour report, a list of nearby APs and channels, so clients scan fewer channels when they need to roam. Configured with a wlan dot11k-profile referenced by the VAP.
  • 802.11v (BSS Transition Management) — the network can suggest that a client move to a better AP. ClientMatch (Part 7) uses 802.11v as its preferred steering method for clients that support it.

Between Clusters

A client moving between clusters (for example between two campuses) changes UAC. It re-authenticates (fast-roaming caches are per cluster) and, if the user VLANs differ, obtains a new IP address. Applications that cannot tolerate an IP change need the two areas served by the same cluster, or a common VLAN design. Older releases offered Layer 3 mobility (mobile IP between controllers) for this case; modern designs avoid needing it.

Live Upgrade

1Conductor firstalways first; MDs stayon the old version(MultiVersion)2Pre-load imagesnew image to everycluster member and APwhile still running3Partition APsAirMatch neighbour dataputs adjacent APs indifferent partitions4Rolling upgrademembers upgrade one at atime; one partition ofAPs at a time moves andreboots5Convergedall members and APs onthe new version; loadrebalancedAt every moment, a client has a neighbouring AP still in service — coverage holes are avoided.Requires a cluster and a Mobility Conductor; standalone controllers are upgraded with a traditional reload.
Figure 4 — Live Upgrade. The Conductor orchestrates a rolling upgrade so that neighbouring APs never reboot at the same time.

Upgrading a controller traditionally meant a maintenance window: the controller reloads, every AP downloads the new image and reboots, and the whole site is down for 10–20 minutes. AOS 8 Live Upgrade, orchestrated by the Conductor, upgrades a cluster with no coverage outage:

  1. The Conductor is upgraded first (it may manage MDs on older versions, never newer).
  2. The new image is copied to each cluster member, and APs pre-load the new AP image while still serving clients.
  3. Using AirMatch’s RF neighbour data, APs are split into partitions such that neighbouring APs are in different partitions.
  4. Cluster members are upgraded one at a time. APs move — partition by partition — to upgraded members and reboot onto the new image, while their neighbours in other partitions keep serving clients.
  5. When all members and APs run the new version, the cluster rebalances.

Live Upgrade is started from the Conductor (WebUI under maintenance/software management, or the equivalent upgrade-profile CLI), pointing at an image server. Its prerequisites are a cluster with redundancy, AirMatch data and enough spare capacity to carry the load with one member out.

Loadable Service Modules

Some Conductor services — AirMatch, AppRF signatures, UCC (Unified Communications and Collaboration) and others — are packaged as Loadable Service Modules that can be upgraded independently of the main AOS image, without reloading the Conductor. Bug fixes and new application signatures can thus be deployed without a platform upgrade.

Exercises

1. A four-node cluster of 7210s (512 APs each) currently serves 1,500 APs with redundancy enabled. Is the design sound? What happens if one member fails?

Show answer

Raw capacity is 2,048 APs, but with one member down only 1,536 APs can be anchored, and redundancy wants standby capacity on top. At 1,500 APs the cluster is effectively full: after a failure, the three survivors carry about 500 APs each with almost no room for standby tunnels, so redundancy is lost until the member returns, and any growth would leave APs unanchored. A sound design would add a member or keep the load under roughly half of raw capacity.

2. show lc-cluster group-membership shows one peer as L3-Connected. Users on that member are not protected by hitless failover. What is the likely cause and how is it found?

Show answer

One or more user VLANs do not exist on that member or are not allowed on its uplink trunk, so the VLAN probe fails. show lc-cluster vlan-probe status lists the failing VLANs; add them to the member’s VLAN configuration and trunk.

3. A client’s MAC hashes to bucket 200. With the bucket map in Figure 2, which member is its UAC? It roams from an AP anchored on MC1 to one anchored on MC2 — what changes?

Show answer

Bucket 200 falls in 171–255, so MC3 is the UAC (MC1 the S-UAC). When the client roams, its AP changes, and therefore which member terminates the AP, but its UAC stays MC3. The new AP forwards the client’s traffic to MC3; IP, VLAN, role and sessions are unchanged.

4. After a controller failure in a cluster, ClearPass CoA messages for some users time out. Users are otherwise fine. What was probably not configured?

Show answer

The per-member VRRP addresses in the cluster profile (or their use as RADIUS NAS addresses, or their registration as network devices on ClearPass). Without them, ClearPass sends CoA to the failed member’s own IP, which nobody answers. With them, the standby member takes over the failed member’s VRRP address and receives the CoA.

5. A hospital’s voice handsets drop calls when roaming, although they stay in the same cluster. Authentication is EAP-PEAP. What should be checked and enabled?

Show answer

Each roam is probably triggering a full 802.1X authentication. Enable 802.11r on the voice WLAN (an dot11r-profile referenced by the SSID profile) if the handsets support it, or OKC if they support that instead; add 802.11k neighbour reports to speed up scanning; confirm with the handset vendor’s recommended Aruba settings, and verify roams with show auth-tracebuf (a fast roam shows no EAP exchange).

Summary

AOS 8 clusters pool up to twelve controllers. The leader assigns each AP an anchor (AAC) and a standby (S-AAC) with pre-built tunnels, and assigns each client a user anchor (UAC) and standby (S-UAC) via a 256-bucket map keyed on the client’s MAC address. Because the UAC never changes as a client roams within the cluster, roams are seamless; because standby state is synchronized in an L2-connected cluster with redundancy, controller failures are hitless. Redundancy halves usable capacity, so clusters are sized for N-1. Per-member VRRP addresses keep RADIUS and CoA working through failover. 802.11r or OKC removes re-authentication from roams, 802.11k and 802.11v help clients pick the right AP, and Live Upgrade uses the cluster and AirMatch partitions to upgrade without a coverage outage.

Next: Part 7 closes the series with RF — ARM, AirMatch, ClientMatch, radio and regulatory profiles, spectrum and WIDS — and a structured troubleshooting toolkit, plus a look at how AOS 10 changes the picture.

Leave a Reply