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:
- ICL cannot be brought up despite proper configuration
- MC-LAG role cannot be established after troubleshooting
- Member links cannot be aggregated despite LACP enabled
- All traffic drops during ICL failure
- Excessive MAC flapping during normal operation
- Dual-primary condition cannot be resolved
- Standby forwarding causing network loops
- 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
Feedback sent
We appreciate your effort and will try to fix the article