↓ Skip to main content

Simple MCLAG, Part 1: Designing the Topology

·3 mins
Author
Tyler Kiziah
Open Networking Enthusiast
Simple MCLAG - This article is part of a series.
Part 1: This Article

Multi-Chassis Link Aggregation (MCLAG) lets a server bond two NICs to two different switches and still see a single LACP partner. You get switch-level redundancy without spanning tree blocking half your links.

This series builds the smallest MCLAG design that is still useful: two SONiC leaves and two dual-homed hosts. In this part we design it: the topology, the addressing, and the decisions behind them. Later parts build it by hand, automate it, and break it on purpose.

The moving parts
#

TermWhat it is in this lab
MCLAG domainThe pair of leaves acting as one LACP partner. We use domain 1.
Peer-linkPortChannel0001 between leaf1 and leaf2. It carries host traffic that must cross between peers, plus the ICCP session.
ICCPInter-Chassis Communication Protocol. In SONiC it runs in the iccpd container over TCP port 8888, syncing state (LACP, MAC, ARP) between the peers.
MCLAG memberA host-facing port channel that is configured on both leaves: PortChannel0002 (host1) and PortChannel0003 (host2).
Unique IPA VLAN interface that has a different IP on each peer. We use one for the ICCP VLAN.

Topology
#

Two SONiC leaves joined by a two-member peer-link, each connected to both host1 and host2

Both leaves use the same port numbering, which keeps the configuration symmetrical:

Leaf portConnects toPort channel
Ethernet0, Ethernet4the other leafPortChannel0001 (peer-link)
Ethernet8host1PortChannel0002 (MCLAG member)
Ethernet12host2PortChannel0003 (MCLAG member)

Addressing
#

Itemleaf1leaf2
ICCP VLANVlan4094Vlan4094
ICCP address (unique IP)192.168.255.1/30192.168.255.2/30
Host VLANVlan10 (L2 only)Vlan10 (L2 only)
HostAddress on bond0
host110.10.10.101/24
host210.10.10.102/24

Vlan10 has no IP on either leaf. Keeping the host VLAN pure layer 2 lets us focus on MCLAG itself. Adding a gateway is a follow-on post.

Design decisions
#

Run ICCP over a VLAN on the peer-link#

ICCP needs IP reachability between the peers. The simplest option that needs no extra cabling is a dedicated VLAN (4094) tagged on the peer-link, with a /30 between the two leaves.

That VLAN interface has a different address on each leaf, so it must be marked as a unique IP interface. By default, MCLAG assumes VLAN interfaces are mirrored on both peers.

Trade-off: with ICCP on the peer-link, losing the whole peer-link also drops the ICCP session. That’s why the peer-link is a two-member bundle. In production, consider running ICCP over a separate routed path (for example, loopbacks reachable via the spines) so that a peer-link failure and a peer failure look different.

Make the peer-link a port channel#

The peer-link carries ICCP and any traffic that lands on the “wrong” leaf, such as flooded frames or traffic to a host whose link to the other leaf is down. Size it for a realistic failure case, not the steady state. Even in a lab, two members show how the bundle behaves when one fails.

Keep member names identical on both leaves
#

Each host’s port channel has the same name on both leaves (PortChannel0002 for host1, PortChannel0003 for host2). Symmetrical configuration is easier to read and diff, and much easier to template in Part 3.

Hosts run plain LACP
#

The hosts need nothing MCLAG-specific: a Linux bond0 in 802.3ad mode. If MCLAG is working, both leaves present the same LACP partner, and the host puts both links in one aggregator. If MCLAG is broken, the host sees two different partners. That symptom is the first thing to check in Part 4.

What we’re not covering (yet)
#

  • A layer-3 gateway on Vlan10. That brings in the MAC/ARP sync and gateway behavior that deserves its own post.
  • EVPN multihoming. It’s the standards-based alternative to MCLAG in VXLAN fabrics.
  • Uplinks to spines. This lab is a single leaf pair.

Next up: Part 2: Building the lab and configuring MCLAG.

Simple MCLAG - This article is part of a series.
Part 1: This Article