MC-LAG (multi-chassis aggregation)

Modified on Fri, 12 Jun at 3:57 PM

MC-LAG (MULTI-CHASSIS LINK AGGREGATION) TROUBLESHOOTING - STANDARD OPERATING PROCEDURE

Knowledge Base Article

Document ID: KB-MCLAG-001
Version: 1.0
Last Updated: June 12, 2026
Platform: Juniper Networks (EX Series, QFX Series, MX Series with Virtual Chassis)
Status: Production

1. OVERVIEW

MC-LAG (Multi-Chassis Link Aggregation) extends LACP capabilities across multiple devices, enabling a downstream device to bond links to two separate switches as if they were a single device. This SOP provides detailed troubleshooting procedures for MC-LAG configuration, ICL issues, and member link failures.

1.1 Objective

  • Diagnose MC-LAG membership issues
  • Resolve inter-chassis communication failures
  • Troubleshoot unbalanced link distribution
  • Fix standby forwarding issues
  • Provide escalation path for complex scenarios

1.2 Scope

This document covers: - MC-LAG formation and membership - ICL (inter-chassis link) for LACP signaling - Primary/secondary role management - Link distribution and load balancing - Standby forwarding and convergence - All-active mode and active-standby mode - EX, QFX, and MX platforms

2. UNDERSTANDING MC-LAG

2.1 MC-LAG Architecture

Key Components: - Logical System (VLAN/Bridge Domain): Contains MC-LAG configuration - MC-LAG ID: Unique identifier within logical system (1-64) - Primary Node: One chassis acts as primary for MC-LAG (election-based) - Secondary Node: Other chassis acts as secondary (backup) - ICL (Inter-Chassis Link): Carries MC-LAG signaling and keepalive traffic - Member Interfaces: Aggregated links from downstream device - Standby Forwarding: Traffic forwarding during ICL failure

MC-LAG Modes: - Active-Standby: Primary forwards all traffic, secondary discards - All-Active: Both chassis forward traffic (requires no loops downstream)

2.2 Common MC-LAG Issues

Issue

Symptoms

Root Cause

MC-LAG Not Forming

No MC-LAG status visible

Logical system not created, ICL down, configuration missing

ICL Down

MC-LAG shows degraded

Cable issue, port misconfiguration, link failure

Unbalanced Links

Some members down

Link failure, LACP not converged, configuration issue

Wrong Primary/Secondary

Non-preferred node primary

Priority misconfigured, election failure

Standby Not Active

All traffic on primary during ICL failure

Standby forwarding disabled, role issue

Dual Primary

Both nodes forward as primary

Role conflict, election failure

All Members Down

MC-LAG completely unavailable

All member links failed, configuration issue

Slow Convergence

Delayed traffic restoration

LACP timing issues, ICL convergence delay

MAC Flap

Frequent MAC address learning changes

Standby forwarding loops, traffic pattern oscillation

3. PREREQUISITES FOR TROUBLESHOOTING

Before starting troubleshooting:

  • Access to both MC-LAG chassis (primary and secondary)
  • Understanding of MC-LAG topology (which links form LAG)
  • Downstream device information (model, LACP configuration)
  • ICL port documentation (which ports carry MC-LAG signaling)
  • Baseline MC-LAG state from working configuration
  • Knowledge of primary/secondary assignment method
  • Minimum 1 ICL link (2+ for redundancy)
  • Access to logs on both chassis

4. INITIAL MC-LAG DIAGNOSTICS

Procedure 4.1: Verify MC-LAG Cluster Status

Command:

show interfaces mc-lag
show mc-lag consistency-group brief
show mc-lag consistency-group detail

Expected Output:

MC-LAG ID   Name             Status   Role       Primary Node
1           LAG-To-Switch-A  Up       Primary    Local
2           LAG-To-Switch-B  Up       Secondary Remote

Consistency Group Status:
  Group 1:
    Local Role:   Primary
    Remote Role:  Secondary
    Status:       Established

Interpret Output:

  • ✓ MC-LAG “Up” status
  • ✓ Clear Primary/Secondary assignment
  • ✓ Status shows “Established”
  • ✗ MC-LAG not shown = Configuration missing
  • ✗ Status shows “Down” = ICL issue or config problem
  • ✗ Two Primary or two Secondary = Election failure

Procedure 4.2: Check Member Link Status

Command:

show interfaces ae1 detail
show lacp interfaces ae1
show mc-lag interfaces ae1 detail

Expected Output:

Physical interface: ae1
  Link-level type: Ethernet, MTU: 1514, Speed: 10G
  Device flags   : Present Running
  Interface flags: SNMP-Traps Internal: 0x4000
  Link type      : Full-Duplex
  BPDU Error     : None, MAC-MGMT Error: None
  Loopback       : Disabled
  Encapsulation : ENET2

ae1.0:
  Flags: SNMP-Traps Up BROADCAST RUNNING MULTICAST
  
Member Links:
  ge-0/0/0:        Up     (lag member, active)
  ge-0/0/1:        Up     (lag member, active)
  ge-1/0/0:        Down   (lag member)
  ge-1/0/1:        Down   (lag member)

Interpret Results:

  • ✓ Expected member links showing “active”
  • ✓ All healthy links in “Up” state
  • ✗ Links showing “Down” when should be “Up”
  • ✗ Asymmetric link states between chassis

Procedure 4.3: Check ICL Status for MC-LAG

Command:

show interfaces ge-0/0/48 terse
show interfaces ge-0/0/48 detail
show mc-lag icl-mode
show mc-lag icl-interface

Expected Output:

Interface       Mtu       Speed    Mac Address        Address
ge-0/0/48        1500     10G      00:01:02:03:04:05  up
ge-0/0/49        1500     10G      00:01:02:03:04:06  up

MC-LAG ICL Status:
  ICL Interface:  ge-0/0/48
  ICL Status:     Up
  Remote MAC:     00:06:07:08:09:0a

Verify ICL Configuration:

show configuration logical-systems | grep -i "icl\|mc-lag"
show configuration interfaces ge-0/0/48 | grep -i "mc-lag\|icl"

Interpret Results:

  • ✓ ICL interface(s) showing “Up”
  • ✓ ICL configured in logical system
  • ✓ Remote MAC reachable
  • ✗ ICL showing “Down” = Link failure, see Scenario 1
  • ✗ No ICL interface defined = Configuration missing

Procedure 4.4: Verify Primary/Secondary Role

Command:

show mc-lag status
show mc-lag consistency-group detail

Expected Output:

Consistency Group Summary:
  Group ID: 1
  Local Node:   node0 (Primary)
  Remote Node:  node1 (Secondary)
  Election Mode: Chassis-ID Based
  Priority: 100 (Local), 200 (Remote)

Check Role Configuration:

show configuration chassis | grep -i "primary\|secondary\|mc-lag"
show configuration logical-systems | grep -i "mc-lag"

Interpret Results:

  • ✓ Correct role assignment (preferred node = Primary)
  • ✓ Priority values show clear winner
  • ✗ Role mismatch = Configuration issue
  • ✗ Same priority on both = Election failed

Procedure 4.5: Verify LACP Convergence with Downstream

Command:

show lacp interfaces ae1
show lacp neighbors

Expected Output:

Aggregated interface: ae1
  LACP state: Role Adhoc (Primary), Operational Key 1, Partners Sys-id 00:11:22:33:44:55

Member interfaces:
  ge-0/0/0 LACP state: up
  ge-0/0/1 LACP state: up

On Downstream Device (if accessible):

# Verify it sees both MC-LAG nodes
show interfaces lag 1 detail
show lacp neighbors

# Should show LACP partner MAC addresses from both chassis

5. STEP-BY-STEP TROUBLESHOOTING WORKFLOWS

SCENARIO 1: MC-LAG ICL Down / Not Established

Step 1.1: Verify ICL Physical Connection

# Identify ICL ports
show configuration logical-systems | grep "icl-interface"

# Typical output:
set logical-systems LAG1 interfaces ge-0/0/48 disable-hold-down
set logical-systems LAG1 chassis mc-lag icl-mode primary
set logical-systems LAG1 chassis mc-lag icl-interface ge-0/0/48

# Check ICL status
show interfaces ge-0/0/48 terse (on both chassis)

Step 1.2: Check for ICL Disable/Configuration Issues

# Verify no disable statement
show configuration logical-systems | grep -i "disable\|ge-0/0/48"

# If disabled:
show logical-systems LAG1 configuration interfaces ge-0/0/48

# Delete disable if present:
edit logical-systems LAG1
delete interfaces ge-0/0/48 disable
commit

Step 1.3: Verify ICL Speed and Duplex

# Check configured speed
show logical-systems LAG1 configuration interfaces ge-0/0/48

# Verify both chassis have matching speed
# Should be at least 1G, preferably 10G or higher

Step 1.4: Check ICL Link Status

# Monitor ICL in real-time
show interfaces ge-0/0/48 detail

# Look for:
# Admin: up/down
# Link: up/down
# CRC errors: should be 0

# If physical link down:
show log messages | grep "ge-0/0/48" | tail -20

# Physical troubleshooting (see Interface Flap SOP):
show interfaces ge-0/0/48 diagnostics optics

Step 1.5: Establish MC-LAG Over Alternative Path

If Primary ICL Fails:

# If second ICL available, enable it:
show logical-systems LAG1 interfaces | grep -i "ge-0/0"

# Configure redundant ICL:
edit logical-systems LAG1
set interfaces ge-0/0/49 family inet address 192.168.1.1/30
set chassis mc-lag icl-interface ge-0/0/49
commit

# Verify:
show mc-lag status

SCENARIO 2: MC-LAG Member Links Down/Unbalanced

Step 2.1: Identify Down Member Links

show interfaces ae1 detail | grep -i "member\|down\|up"

# Look for links in "Down" state when should be "Up"

Step 2.2: Check Member Link Configuration

# Verify links are configured as AE members
show configuration interfaces ae1 | grep "members"

# Expected:
set interfaces ae1 aggregated-ether-options lacp active
set interfaces ae1 unit 0 family inet address 10.0.0.1/24

# Check member interface configuration
show configuration interfaces ge-0/0/0
show configuration interfaces ge-0/0/1

Step 2.3: Verify Member Link Physical Status

# Check if physical link is up
show interfaces ge-0/0/0 terse
show interfaces ge-0/0/1 terse

# If physical link down:
# Troubleshoot physical link (see Interface Flap SOP)
show interfaces ge-0/0/0 diagnostics optics
show interfaces ge-0/0/0 detail | grep -i "error\|crc"

Step 2.4: Check LACP Convergence

show lacp interfaces ae1
show lacp statistics ae1

# Verify:
# - LACP state shows "up"
# - All member links show "active"
# - LACP packets exchanged successfully

Step 2.5: Verify Load Balancing

# Check traffic distribution
show interfaces ae1 detail | grep -i "transmit\|receive"

# Should show traffic on multiple member links
# If all traffic on one link:
# - Check for hash policy: show configuration | grep "hash-policy"
# - May be normal if only single flow

# View actual member link statistics:
show interfaces ge-0/0/0 statistics | grep "input\|output"
show interfaces ge-0/0/1 statistics | grep "input\|output"

SCENARIO 3: Wrong Primary/Secondary Assignment

Step 3.1: Check Current Role Assignment

show mc-lag status
show mc-lag consistency-group detail

Step 3.2: Verify Role Configuration

show configuration chassis | grep -i "primary\|secondary"
show configuration logical-systems LAG1 | grep -i "primary\|secondary"

# Expected output:
set chassis mc-lag consistency-group 1 local-priority 100
set chassis mc-lag consistency-group 1 remote-priority 200

Step 3.3: Correct Role Assignment

# Lower priority value = Primary node
# Adjust priorities to preferred node:

# On intended Primary:
edit chassis
set mc-lag consistency-group 1 local-priority 100
delete mc-lag consistency-group 1 local-preference
commit

# On intended Secondary:
edit chassis
set mc-lag consistency-group 1 local-priority 200
commit

# Wait 10-30 seconds for re-election
show mc-lag status

Step 3.4: Verify Election After Change

show mc-lag consistency-group detail

# Wait for "Status: Established" on both nodes
# Verify correct role assignment achieved

SCENARIO 4: Standby Forwarding Not Working

Step 4.1: Verify Standby Forwarding is Enabled

show configuration logical-systems | grep -i "standby\|forwarding"

# Look for:
set logical-systems LAG1 interfaces ae1 mc-lag-options standby-forwarding-mode enabled

If Not Configured:

edit logical-systems LAG1
set interfaces ae1 mc-lag-options standby-forwarding-mode enabled
commit

# Verify:
show mc-lag interfaces ae1 detail

Step 4.2: Test Standby Forwarding

# Simulate Primary ICL failure:
# Disable primary ICL temporarily:
show logical-systems LAG1 interfaces ge-0/0/48
edit logical-systems LAG1
set interfaces ge-0/0/48 disable
commit

# Verify traffic continues on secondary:
ping <downstream-device> (from upstream)
# Should continue working despite ICL down

# Re-enable ICL:
delete interfaces ge-0/0/48 disable
commit

# Verify both chassis forwarding:
show mc-lag status (should show "Established" again)

Step 4.3: Check for MAC Flapping During Failover

# Monitor MAC learning during ICL failure:
show ethernet-switching mac-table
show ethernet-switching mac-table aging-time

# Excessive MAC flapping indicates issue with standby forwarding
# May need to disable standby forwarding if causing issues:
edit logical-systems LAG1
set interfaces ae1 mc-lag-options standby-forwarding-mode disabled
commit

SCENARIO 5: All Member Links Down

Step 5.1: Check Logical System Status

# MC-LAG requires logical system to be active
show logical-systems
show logical-systems LAG1 interfaces

# If logical system not showing:
show configuration logical-systems | head

Step 5.2: Verify AE Interface Configuration

show configuration logical-systems LAG1 interfaces ae1

# Should contain:
set interfaces ae1 aggregated-ether-options lacp active
set interfaces ae1 unit 0 family inet address 10.0.0.1/24

Step 5.3: Check Member Interface Configuration

show configuration logical-systems LAG1 interfaces | grep "ge-0/0"

# Each member should be in the logical system:
set interfaces ge-0/0/0 ether-options 802.3ad ae1
set interfaces ge-0/0/1 ether-options 802.3ad ae1

Step 5.4: Verify Physical Connections

# Check all member links physically connected
show interfaces ge-0/0/0 terse
show interfaces ge-0/0/1 terse

# If all down, issue may be:
# - Configuration not applied
# - Logical system not active
# - All physical links failed (unlikely)

# Try restarting LACP:
clear lacp interfaces ae1

# Or restart entire interface:
delete logical-systems LAG1 interfaces ae1
set logical-systems LAG1 interfaces ae1 aggregated-ether-options lacp active
commit

6. LOG COLLECTION PROCEDURES

6.1 MC-LAG Status Logs

Execute on BOTH primary and secondary:

# MC-LAG cluster status
show mc-lag status > mclag_status.txt
show mc-lag consistency-group brief >> mclag_status.txt
show mc-lag consistency-group detail >> mclag_status.txt

# ICL status
show interfaces ge-0/0/48 terse > mclag_icl_status.txt
show interfaces ge-0/0/48 detail >> mclag_icl_status.txt
show mc-lag icl-interface >> mclag_icl_status.txt

# Member link status
show interfaces ae1 detail > mclag_member_status.txt
show interfaces ae1 statistics >> mclag_member_status.txt

# LACP information
show lacp interfaces ae1 > mclag_lacp.txt
show lacp neighbors >> mclag_lacp.txt
show lacp statistics ae1 >> mclag_lacp.txt

# Configuration
show configuration logical-systems LAG1 > mclag_config.txt
show configuration interfaces ae1 >> mclag_config.txt
show configuration interfaces ge-0/0/0 >> mclag_config.txt

6.2 MC-LAG System Logs

Command:

show log messages | grep -i "mc-lag\|consistency\|LACP" | last 200 > mclag_messages.log

show log messages | grep -i "ge-0/0/48" | last 100 >> mclag_messages.log

show log messages | last 500 > mclag_full_log.txt

6.3 Advanced Diagnostics

For Complex Issues:

# MC-LAG detailed statistics
show mc-lag interfaces ae1 detail > mclag_detailed.txt
show mc-lag interfaces ae1 statistics >> mclag_detailed.txt

# Interface errors
show interfaces ge-0/0/0 extensive | grep -i "error\|drop" > mclag_errors.txt
show interfaces ae1 extensive | grep -i "error\|drop" >> mclag_errors.txt

# Logical system status
show logical-systems > mclag_ls_status.txt
show logical-systems LAG1 interfaces >> mclag_ls_status.txt

7. DIAGNOSTIC COMMANDS REFERENCE

MC-LAG Status

show mc-lag status
show mc-lag consistency-group brief
show mc-lag consistency-group detail
show mc-lag interfaces ae1

ICL Status

show interfaces ge-0/0/48 terse
show interfaces ge-0/0/48 detail
show mc-lag icl-interface
show mc-lag icl-mode

Member Links

show interfaces ae1 detail
show interfaces ae1 statistics
show interfaces ge-0/0/0 detail

LACP Information

show lacp interfaces ae1
show lacp neighbors
show lacp statistics ae1

Configuration

show configuration logical-systems LAG1
show configuration interfaces ae1
show configuration interfaces ge-0/0/0

Monitoring

monitor mc-lag
monitor interfaces ae1
monitor lacp interfaces ae1

8. COMMON ROOT CAUSES & SOLUTIONS

Problem

Root Cause

Solution

ICL Down

Cable disconnected

Verify physical cable connections

ICL Down

Port disabled

Delete disable: delete interfaces ge-0/0/48 disable

ICL Down

Logical system not enabled

Enable: set logical-systems LAG1 root-password

No MC-LAG

Configuration missing

Create MC-LAG: set logical-systems LAG1 chassis mc-lag

Wrong Primary

Priority misconfigured

Set lower priority on intended primary

Both Primary

Election failure

Verify ICL up, check priority values, restart LACP

Members Down

Not configured in logical system

Add to AE: set interfaces ge-0/0/0 ether-options 802.3ad ae1

LACP Not Converged

Downstream not LACP configured

Verify downstream has LACP enabled

Unbalanced Traffic

Hash policy issue

Check: show configuration | grep "hash-policy"

Standby Not Active

Standby forwarding disabled

Enable: set interfaces ae1 mc-lag-options standby-forwarding-mode enabled

MAC Flap

Incorrect forwarding mode

Verify standby forwarding mode appropriate for topology

9. RECOVERY PROCEDURES

Procedure 9.1: Re-establish MC-LAG After Failure

# Step 1: Verify both nodes are operational
show mc-lag status

# Step 2: If one node failed:
# - Repair or replace failed node
# - Ensure same software version

# Step 3: Bring up ICL
show interfaces ge-0/0/48 terse
# If down, troubleshoot (see Scenario 1)

# Step 4: Restore MC-LAG election
request system restart routing (forces re-election)

# Step 5: Verify consistency
show mc-lag consistency-group detail
# Status should show "Established"

# Step 6: Verify all member links up
show interfaces ae1 detail | grep "member\|active"

Procedure 9.2: Graceful Switchover for Maintenance

# To move traffic to secondary for primary maintenance:

# Step 1: Ensure secondary healthy
show mc-lag consistency-group detail

# Step 2: Disable primary:
edit chassis
set mc-lag consistency-group 1 local-preference disable-switching
commit

# Wait 30 seconds for traffic to move to secondary

# Step 3: Perform maintenance on primary

# Step 4: Re-enable primary:
delete mc-lag consistency-group 1 local-preference
commit

# Step 5: Traffic will gradually move back to primary
# Or stay on secondary if preferred

10. ESCALATION CRITERIA

Escalate to JTAC if:

  1. ICL cannot be brought up despite proper configuration
  2. MC-LAG role cannot be established after troubleshooting
  3. Member links cannot be aggregated despite LACP enabled
  4. All traffic drops during ICL failure
  5. Excessive MAC flapping during normal operation
  6. Dual-primary condition cannot be resolved
  7. Standby forwarding causing network loops
  8. Software version incompatibility prevents MC-LAG operation

Provide JTAC with: - All logs from Section 6 - Complete MC-LAG configuration - Downstream device configuration (if available) - Detailed timeline of failures - Output of all diagnostic commands - Topology diagram showing MC-LAG setup

11. OPERATIONAL BEST PRACTICES

Configuration Template

# Create logical system for MC-LAG
set logical-systems LAG1 root-password "$9$encrypted"

# Configure ICL
set logical-systems LAG1 interfaces ge-0/0/48 unit 0 family inet address 192.168.1.1/30
set logical-systems LAG1 chassis mc-lag consistency-group 1
set logical-systems LAG1 chassis mc-lag consistency-group 1 local-priority 100
set logical-systems LAG1 chassis mc-lag icl-mode primary
set logical-systems LAG1 chassis mc-lag icl-interface ge-0/0/48

# Configure AE interface
set logical-systems LAG1 interfaces ae1 aggregated-ether-options lacp active
set logical-systems LAG1 interfaces ae1 unit 0 family inet address 10.0.0.1/24
set logical-systems LAG1 interfaces ae1 mc-lag-options standby-forwarding-mode enabled

# Configure member interfaces
set logical-systems LAG1 interfaces ge-0/0/0 ether-options 802.3ad ae1
set logical-systems LAG1 interfaces ge-0/0/1 ether-options 802.3ad ae1

commit

Monitoring Recommendations

# Regular checks
show mc-lag status
show mc-lag consistency-group detail
show interfaces ae1 detail | grep "member\|active"
show lacp statistics ae1

# Monitor ICL
show interfaces ge-0/0/48 statistics | grep -i "error\|drop"

# Check configuration sync
show system commit history

12. DOCUMENT HISTORY

Version

Date

Author

Changes

1.0

2026-06-12

Network Engineering

Initial creation

For Support: Contact Network Operations Center or JTAC
Document Owner: Network Engineering Team
Last Reviewed: June 12, 2026

Was this article helpful?

That’s Great!

Thank you for your feedback

Sorry! We couldn't be helpful

Thank you for your feedback

Let us know how can we improve this article!

Select at least one of the reasons
CAPTCHA verification is required.

Feedback sent

We appreciate your effort and will try to fix the article