AOS-CX Switch Simulator

 View Only
  • 1.  Containerlab - AOS-CX VSX Lab

    Posted May 11, 2026 06:12 AM
    Edited by NC-5020f5 May 14, 2026 11:48 AM

    This lab demonstrates how to use Containerlab to simulate a pair of HPE Aruba AOS-CX switches in a VSX (Virtual Switching Extension) configuration - Aruba's multi-chassis aggregation technology. The goal is to provide a reproducible environment for discovering Containerlab with Aruba equipment, without physical hardware.

    Prerequisites

    • Linux (tested on Fedora 43 and Ubuntu 24.04)
    • Containerlab ≥ 0.74
    • Docker
    • vrnetlab AOS-CX image: vrnetlab/vr-aoscx:10.16.1020
    • (Optional) VS Code extension Containerlab by srl-labs

    Getting the AOS-CX Image

    The AOS-CX Switch Simulator image is available for free on the HPE Networking portal (account required).

    Once logged in at networking.hpe.com:

    1. Software → AOS-CX Switch Simulator
    2. Download AOS-CX_10_16_1020.ova
    3. Extract the .vmdk from the OVA: tar xf AOS-CX_10_16_1020.ova
    4. Build the Docker image via vrnetlab:
    git clone https://github.com/srl-labs/vrnetlab
    cp AOS-CX_10_16_1020.vmdk vrnetlab/aruba/
    cd vrnetlab/aruba
    make
    # Result: vrnetlab/vr-aoscx:10.16.1020

    Lab Architecture

    ┌─────────────────────────────────────────────┐
    │                 aoscx-vsx                   │
    │                                             │
    │  ┌──────────┐  eth1/eth2   ┌──────────┐    │
    │  │   sw1    │◄────ISL─────►│   sw2    │    │
    │  │ primary  │  (LAG LACP)  │secondary │    │
    │  │          │◄──keepalive─►│          │    │
    │  └──────────┘    eth3      └──────────┘    │
    └─────────────────────────────────────────────┘
    
    Link Interfaces Role
    ISL-1 sw1:eth1 ↔ sw2:eth1 Inter-Switch Link (LAG)
    ISL-2 sw1:eth2 ↔ sw2:eth2 Inter-Switch Link (LAG)
    Keepalive sw1:eth3 ↔ sw2:eth3 VSX Keepalive

    Deployment

    git clone https://github.com/Luconik/netdevops.git
    cd netdevops/containerlab/aoscx-vsx
    
    sudo containerlab deploy -t topology.yml
    sudo containerlab inspect --all

    Switches are accessible via SSH once in healthy state (~2-3 minutes):

    ssh admin@172.20.20.3   # sw1
    ssh admin@172.20.20.2   # sw2
    # Credentials: admin/admin

    VS Code Containerlab Extension

    The Containerlab extension (srl-labs) for VS Code provides a GUI to manage labs directly from the editor:

    • Real-time topology visualization
    • Deploy / Destroy / Inspect without leaving VS Code
    • Direct SSH access via right-click on a node
    • topology.yml editing with autocompletion
    • Compatible with VS Code Remote SSH (access from Mac/Windows to Linux)

    Install: Extensions → search Containerlab → publisher srl-labs

     

    image

    Deployed lab - 2 healthy switches with IPs

    image

     Direct SSH access from the VS Code plugin

    VSX Configuration

    SW1 (Primary)

    configure terminal
    
    interface lag 1
      no shutdown
      no routing
      vlan trunk allowed all
      lacp mode active
    
    interface 1/1/1
      no shutdown
      lag 1
    
    interface 1/1/2
      no shutdown
      lag 1
    
    interface 1/1/3
      no shutdown
      ip address 192.168.255.0/31
    
    vsx
      system-mac 02:01:00:00:00:01
      inter-switch-link lag 1
      role primary
      keepalive peer 192.168.255.1 source 192.168.255.0
    

    SW2 (Secondary)

    configure terminal
    
    interface lag 1
      no shutdown
      no routing
      vlan trunk allowed all
      lacp mode active
    
    interface 1/1/1
      no shutdown
      lag 1
    
    interface 1/1/2
      no shutdown
      lag 1
    
    interface 1/1/3
      no shutdown
      ip address 192.168.255.1/31
    
    vsx
      system-mac 02:01:00:00:00:01
      inter-switch-link lag 1
      role secondary
      keepalive peer 192.168.255.0 source 192.168.255.1
    

    ⚠️ Important: The LAG interface must have no routing before being configured as inter-switch-link.

    Validation

    # On both sw1 and sw2
    show vsx status
    show lacp interfaces
    show interface lag 1

    Expected output on show vsx status:

    ISL channel          : In-Sync
    ISL mgmt channel     : operational
    Config Sync Status   : In-Sync
    NAE                  : peer_reachable
    
    image

     SW1 - VSX established, primary role

    image

     SW2 - VSX established, secondary role

    image

     LACP - interfaces 1/1/1 and 1/1/2 in ALFNCD state (Active, Forwarding, Collecting, Distributing)

    image

     LAG 1 - Aggregate up, 2000 Mb/s (2x1G LACP)

    Lab Teardown

    sudo containerlab destroy -t topology.yml --cleanup

    Known Issues / Tips

    • AOS-CX vrnetlab images take ~2-3 minutes to boot - wait for healthy state before SSH
    • The ISL LAG interface must have no routing before being configured as inter-switch-link
    • Default credentials: admin/admin
    • Tested with Containerlab 0.74.3 and AOS-CX 10.16.1020

    Sources

    netdevops/containerlab/aoscx-vsx at main · Luconik/netdevops

    GitHub remove preview
    netdevops/containerlab/aoscx-vsx at main · Luconik/netdevops
    NetDevOps lab - HPE Aruba AOS-CX automation with Ansible & Terraform - netdevops/containerlab/aoscx-vsx at main · Luconik/netdevops
    View this on GitHub >

     

    ------------------------------
    Nicolas Culetto
    Channel SE HPE Aruba Networking
    France
    ------------------------------



  • 2.  RE: Containerlab - AOS-CX VSX Lab

    Posted May 14, 2026 11:42 AM

    Mise en page corrigée 😁



    ------------------------------
    Nicolas Culetto
    Channel SE HPE Aruba Networking
    France
    https://github.com/Luconik
    ------------------------------



  • 3.  RE: Containerlab - AOS-CX VSX Lab

    Posted 12 days ago

    Hi, Nicolas

    It looks like some files are missing in your repo, like the topology.yml 



    ------------------------------
    Arne Opdal
    ------------------------------



  • 4.  RE: Containerlab - AOS-CX VSX Lab

    Posted 12 days ago

    Hi Arne,

    It's fixed ! Thank you for the feedback.



    ------------------------------
    Nicolas Culetto
    Channel SE HPE Aruba Networking
    France
    https://github.com/Luconik
    ------------------------------