MC-LAG

MC-LAG

If you look for a comprehensive explanation of MC-LAG technology – Juniper MX Series book is the best choice.

For all configuration details refer to MC-LAG Feature Guide.

MC-LAG configuration can be broken up into four important pieces: Inter Chassis Control Protocol (ICCP), Inter Chassis Link (ICL), MC-LAG interface and IRB interface.

So let’s start with ICCP:

user@switch2 > show configuration protocols iccp
local-ip-addr 10.2.2.2;
peer 10.1.1.1 {
    session-establishment-hold-time 50;
    redundancy-group-id-list 1;
    backup-liveness-detection {   ### FXP0
        backup-peer-ip 10.8.2.33;
    }
    liveness-detection {
        minimum-interval 500;
        multiplier 3;
        single-hop;
    }
}

Main things to note here is redundancy-group-id-list (must match with redundancy-group of MC-LAG interface), liveness-detection (BFD over IP connectivity) and backup-liveness-detection (BFD over management network).

Next is the ICL configuration:
QFX style:

ae0 {
    description vQFX2;
    aggregated-ether-options {
        lacp {
            active;
        }
    }                  
    unit 0 {
        family ethernet-switching {
            interface-mode trunk;
            vlan {
                members all;
            }
        }
    }
}


and MX style:

ae0 {
    vlan-tagging;
    aggregated-ether-options {
        lacp {
            active;
        }
    }
    unit 0 {
        family bridge {
            interface-mode trunk;
            vlan-id-list 1-999;
        }
    }
}


Make sure that you allow all MC-LAG VLANS on the ICL.
IP connectivity between boxes (for ICCP) can be external to ICL (via IP network) or through the same ICL. In latter case for QFX you just need to configure IRB interface for dedicated IP connectivity VLAN and allow this VLAN on the ICL (or just use vlan members all). For MX you can just add another logical interface to ICL link:

ae0 {
    unit 1 {
        vlan-id 1000;
        family inet {
            address 10.8.0.0/31;
        }
        family iso;
    }
}



Next topic – MC-LAG interface configuration.
MX MC-LAG Active-Standby (QFX doesn’t support Active-Standby mode):

ae1 {
    flexible-vlan-tagging;
    aggregated-ether-options {
        lacp {
            active;
            system-id 00:00:00:00:00:01;
            admin-key 1;
        }
        mc-ae {
            mc-ae-id 1;
            redundancy-group 1;
            chassis-id 0;
            mode active-standby;
            status-control active;
        }
    }
    unit 0 {
        family bridge {
            interface-mode trunk;
            vlan-id-list 100;
        }
    }
}

This is config for active chassis, for standby is almost completely the same, except for two lines – chassis-id 1 and status-control standby.

MC-LAG Active-Active MX-style:

ae1 {
    flexible-vlan-tagging;
    encapsulation flexible-ethernet-services;
    aggregated-ether-options {
        lacp {
            system-id 00:00:00:00:00:01;
            admin-key 1;
        }
        mc-ae {
            mc-ae-id 1;
            redundancy-group 1;   ### QFX doesn’t have this option
            chassis-id 0;
            mode active-active;
            status-control active;
        }
    }
    unit 0 {
        family bridge {
            interface-mode trunk;
            vlan-id-list [ 100 200 ];
        }
    }
}

This is config for first chassis, for second is almost completely the same, except for two lines – chassis-id 1 and status-control standby. Config for QFX is almost identical, but there is no redundancy-group option and unit 0 should use family ethernet-switching.
Also there is one important thing missing in this config – multi-chassis-protection interface. It can be configured on MX in two different places:
one ICL for the whole MC-LAG interface:

ae1 {
    multi-chassis-protection 10.8.0.0 {
        interface ae0;
    }
}


or dedicated ICL for every unit on MC-LAG interface:

ae1 {
    unit 99 {
        multi-chassis-protection 10.8.0.0 {
            interface ae0.0;
        }
    }
}

Note that in first case there is physical interface ae0 configured as ICL, but in the second one is the logical ae0.0.

For QFX you just need to configure one ICL for the whole chassis:

set multi-chassis multi-chassis-protection 10.0.0.1 interface ae0


And finally last topic – IRB interfaces configuration.
IRB MAC Sync
For simplified Layer 3 gateway services, where Layer 3 routing protocols are not run on the MC-LAG peers, you simply configure the same Layer 3 gateway IP address on both MC-LAG peers and enable IRB MAC address synchronization.
MAC address synchronization requires you to configure the same IP address on the IRB interface in the VLAN on both MC-LAG peers. To enable the MAC address synchronization feature using the standard CLI, issue the

set vlan vlan-name mcae-mac-synchronize

command on each MC-LAG peer.
If you are using the Enhanced Layer 2 CLI, issue the

set bridge-domains name mcae-mac-synchronize

command on each MC-LAG peer. Configure the same IP address on both MC-LAG peers. This IP address is used as the default gateway for the MC-LAG servers or hosts.

VRRP
For more advanced Layer 3 gateway services, where Layer 3 routing protocols and Layer 3 multicast operations are required on the MC-LAG peers, you configure unique IRB interfaces on each MC-LAG peer and then configure the Virtual Router Redundancy Protocol (VRRP) between the peers in an active/standby role.
To help with some forwarding operations, the IRB MAC address of each peer is replicated on the other peer and is installed as a MAC address with the forwarding next hop of the ICL-PL. This is achieved by configuring a static ARP entry for the remote peer IRB’s IP/MAC as shown in the following output:

{master:0}[edit interfaces]
user@qfx1# show irb unit 15
family inet {
    address 172.25.15.101/24 {
        arp 172.25.15.102 l2-interface ae0.0 mac dc:38:e1:5d:1c:00;
        vrrp-group 15 {
            virtual-address 172.25.15.1;
            priority 200;
        }
    }
}


Also there is a couple of small but important topics:
You need to configure Service-id in the switch-options:

switch-options {
    service-id 1;
}

Service-id serves as a unique identifier for ICCP. This ID need to be the same across all chassis, participating in MC-LAG. If this is not configured, then a bunch of weird issues happens. Easy to forget about this little thing.
For MX it can also be configured for a specific bridge-domain:

bridge-domains {
    bd100 {
        vlan-id 100;
        service-id 2;
        mcae-mac-synchronize;
        routing-interface irb.100;
    }
}


And also there is a LACP Force-up feature, useful if device on other end of a link doesn’t support LACP:

QFX: set interfaces xe-0/0/0 ether-options 802.3ad lacp force-up
MX:  set interfaces ae0 aggregated-ether-options lacp force-up


And finally some show commands that can be useful:

show iccp
show interfaces mc-ae
show lacp interfaces
show bridge mac-table
show l2-learning redundancy-groups remote-macs
show ethernet-switching table
show ethernet-switching redundancy-groups remote-macs

Leave a Reply

Your email address will not be published. Required fields are marked *