MLAG not working

I’m using 2 CRS518-16XS-2XQ’s with RouterOS 7.22beta6 and want to use MLAG. Both switches are connected to each other with 2x 100 Gbit and the physical server is connected with 1x 25 Gbit to each switch (port 7: sfp28-7).

I followed the following documentation: Multi-chassis Link Aggregation Group - RouterOS - MikroTik Documentation

But can’t get MLAG to work. Even in step 2 it’s already problematic:

/interface bonding
add mode=802.3ad name=bond1 slaves=qsfp28-1-1,sfp28-7 lacp-rate=1sec

Peer1

/interface bonding
add mlag-id=10 mode=802.3ad name=client-bond slaves=sfp28-7 lacp-rate=1sec

failure: sfp28-7 already in bond1

Peer2

/interface bonding
add mlag-id=10 mode=802.3ad name=client-bond slaves=sfp28-7 lacp-rate=1sec

failure: sfp28-7 already in bond1

Any ideas? Documentation seems to be not correct.

Why are you specifying the bond twice?

This chunk of code is for a downstream switch acting as client to the MLAG switches, not for the MLAG switches. Since your downstream device is a server, you don’t need this anywhere.

Just followed the documentation at Multi-chassis Link Aggregation Group - RouterOS - MikroTik Documentation

I changed that config to how I think it should be, based on the same documentation. But still no luck. Here is my config:

Okay I setup a bond0 from switch1 to switch2 and that seems to work okay:

[ SWITCH 1]

/interface bonding add mode=802.3ad slaves=qsfp28-1-1,qsfp28-1-2,qsfp28-1-3,qsfp28-1-4,qsfp28-2-1,qsfp28-2-2,qsfp28-2-3,qsfp28-2-4 name=bond0
/ip address add address=172.16.2.1/30 interface=bond0
/interface bonding set [find name=bond0] link-monitoring=mii
/interface bonding monitor [find]
/interface ethernet set [find default-name~"sfp28-"] l2mtu=10218
/interface ethernet set [find default-name~"sfp28-"] mtu=9000
(and change bond0 to mtu 9000)

[ SWITCH 2]

/interface bonding add mode=802.3ad slaves=qsfp28-1-1,qsfp28-1-2,qsfp28-1-3,qsfp28-1-4,qsfp28-2-1,qsfp28-2-2,qsfp28-2-3,qsfp28-2-4 name=bond0
/ip address add address=172.16.2.2/30 interface=bond0
/interface bonding set [find name=bond0] link-monitoring=mii
/interface bonding monitor [find]
/interface ethernet set [find default-name~"sfp28-"] l2mtu=10218
/interface ethernet set [find default-name~"sfp28-"] mtu=9000
(and change bond0 to mtu 9000)

Then I try to setup mlag for the client (host at port 7), only tagged vlan 1907 for now.

[ SWITCH 1]

/interface/ethernet/switch/port set [find] l3-hw-offloading=no
/interface bonding add mlag-id=7 mode=802.3ad name=bond7 slaves=sfp28-7 lacp-rate=1sec
/interface bridge add name=bridge7 vlan-filtering=yes mtu=9000 mlag-peer-port=bond0 mlag-priority=50 priority=0x1000 frame-types=admit-only-vlan-tagged
/interface bridge port add bridge=bridge7 interface=sfp28-7 frame-types=admit-only-vlan-tagged
/interface bridge port add bridge=bridge7 interface=bond7 frame-types=admit-only-vlan-tagged
/interface bridge vlan add bridge=bridge7 tagged=sfp28-7,bond7,bond0 vlan-ids=1907

[ SWITCH 2]

/interface/ethernet/switch/port set [find] l3-hw-offloading=no
/interface bonding add mlag-id=7 mode=802.3ad name=bond7 slaves=sfp28-7 lacp-rate=1sec
/interface bridge add name=bridge7 vlan-filtering=yes mtu=9000 mlag-peer-port=bond0 priority=0x1000 frame-types=admit-only-vlan-tagged
/interface bridge port add bridge=bridge7 interface=sfp28-7 frame-types=admit-only-vlan-tagged
/interface bridge port add bridge=bridge7 interface=bond7 frame-types=admit-only-vlan-tagged
/interface bridge vlan add bridge=bridge7 tagged=sfp28-7,bond7,bond0 vlan-ids=1907

Now when I run:

/interface/bridge/monitor [find name=bridge7]

[ SWITCH 1]

              state: enabled                 
current-mac-address: 04:F4:1C:C7:64:ED       
          bridge-id: 0x1000.04:F4:1C:C7:64:ED
        root-bridge: yes                     
     root-bridge-id: 0x1000.04:F4:1C:C7:64:ED
     root-path-cost: 0                       
          root-port: none                    
         port-count: 2                       

designated-port-count: 1
fast-forward: no
mlag-state: peer port not bridged

[ SWITCH 2]

              state: enabled                 
current-mac-address: 04:F4:1C:C7:67:65       
          bridge-id: 0x1000.04:F4:1C:C7:67:65
        root-bridge: yes                     
     root-bridge-id: 0x1000.04:F4:1C:C7:67:65
     root-path-cost: 0                       
          root-port: none                    
         port-count: 2                       

designated-port-count: 1
fast-forward: no
mlag-state: peer port not bridged

What am I missing here / do I not understand correctly? Thank you!

How are these switches cabled together? If you’re using two 100G DACs or 100G modules + fiber, then you only need to add the qsfp28-1-1 and qsfp28-2-1 ports to the bond. You can leave the sub-ports (2-4) alone.

Setting the MTU on the ports and the bridge is not needed on L2-only configurations like MLAG. Only L2MTU is important.

Do not add sfp28-7 to the bridge and do not tag it. sfp28-7 is a slave of bond7. Only add bond7 to the bridge.

I don’t know why you’re naming it bridge 7, but there should only be one bridge. The peer port should be a member of that bridge and should be configured in the MLAG settings as the peer port for the bridge. All other bond ports should be a member of that same, solitary bridge, and tagged accordingly.

Thanks, but we've decided to go with an active/standby configuration instead of MLAG. So no longer necessary.