Link aggregation

From Wikitech
(Difference between revisions)
Jump to: navigation, search
(Foundry)
m (Linux/Puppet)
Line 75: Line 75:
 
members => [ "eth0", "eth1", "eth2", "eth3" ],
 
members => [ "eth0", "eth1", "eth2", "eth3" ],
 
lacp_rate => "fast"
 
lacp_rate => "fast"
}
+
}
 
</pre>
 
</pre>
  

Revision as of 16:17, 8 November 2011

There are several ways to aggregate multiple links into one, bigger, more redundant link.

Contents

Server link aggregation

Before we did (sporadically) aggregate links using manual configuration on Linux servers, usually statically, without LACP. Now, we have a Puppet definition for it: interface_aggregate in generic-definitions.pp. This sets up an LACP aggregated link.

Use the following switch side configuration:

Juniper

[edit interfaces]
ge-4/0/22 {
    apply-groups-except access-port;
    description arsenic;
    ether-options {
        802.3ad {
            lacp {
                force-up;
            }
            ae3;
        }
    }
}
...
ge-4/0/30 {
    apply-groups-except access-port;
    description arsenic:eth1;
    ether-options {
        802.3ad ae3;
    }
}
ge-4/0/31 {
    apply-groups-except access-port;
    description arsenic:eth2;
    ether-options {
        802.3ad ae3;
    }
}
ge-4/0/32 {
    apply-groups-except access-port;
    description arsenic:eth3;
    ether-options {
        802.3ad ae3;
    }
}
...
ae3 {
    description arsenic:bond0;
    mtu 9192;
    aggregated-ether-options {
        lacp {
            periodic fast;
        }
    }
    unit 0 {
        family ethernet-switching {
            port-mode access;
            vlan {
                members public1-a-eqiad;
            }
        }
    }
}

Note that we define the interface connected to eth0 as force-up (always up). When Linux isn't running, for example during PXE boot or during an installation, LACP is not active, and then the switch accepts traffic from eth0 (only) as if there is no aggregated link.

Foundry

(to be written)

Linux/Puppet

In Puppet, the interface_aggregate definition can be used, like this:

interface_aggregate { "bond0":
	orig_interface => "eth0",
	members => [ "eth0", "eth1", "eth2", "eth3" ],
	lacp_rate => "fast"
}

orig_interface contains the original interface from which IP configuration should be taken. This interface is converted to the bonding interface (bond0 here). lacp_rate, default slow defines the LACP PDU transmission rate. Our Junipers support fast, our Foundry switches don't seem to.

Personal tools
Namespaces

Variants
Actions
Navigation
Ops documentation
Wiki
Toolbox