Host Settings
This page contains settings for Linux servers, these instructions are agnostic of the Linux
distribution used by the servers. The commands use the ip utility from the iproute2 package.
These settings do not persist across reboots. Consult the documentation from
the Linux distribution for guides on how to persist the settings used on the
server. For example, Netplan or Network Manager. For
additional details on options and behavior, consult the kernel bonding driver documentation.
MCLAG / ESLAG
The multi-chassis LAG architecture is a way to provide device redundancy in a network architecture. At the physical layer, an MCLAG topology is a single server connected to two different switches and, those switches are directly connected to each other in addition to being connected to the rest of the fabric.
ESLAG is a similar technology to MCLAG, with the beneficial difference that the switches do not need to be directly connected to each other. There can be up to 4 switches in an ESLAG group, whereas MCLAG is always two switches.
Regardless of whether MCLAG or ESLAG is chosen, the host must configure its two (or more) ports using LACP (IEEE 802.3ad).
Server Settings
The supported server-side setting for bonding is 802.3ad, with hashing policy
layer2 or layer2+3. layer2+3 transmit hashing is the recommended
setting for the overwhelming majority of scenarios.
To configure this in Linux:
sudo ip link add $bond_name type bond miimon 50 mode 802.3ad layer2+3
sudo ip link set $slave1_name master $bond_name
sudo ip link set $slave2_name master $bond_name
The miimon 100 indicates that the bonding driver will use miimon to
determine if the link is up, and it will poll every 50 milliseconds.
layer2 or layer2+3 is the hashing mode, which controls the input into the
hash function. See the kernel bonding driver documentation for
additional details.
After the bond has been created, it can receive a DHCP address or be statically assigned, for example:
To check the status of this bond:
VLANs
A Linux host is capable of receiving tagged and untagged traffic. Tagged traffic is traffic that has the VLAN (802.1q) header intact, untagged traffic has the VLAN header removed as it exits the switch.
The Open Network Fabric is capable of emitting tagged and untagged traffic. The
setting to change whether traffic is tagged or untagged is on the
VPCAttahcment, specifically the nativeVLAN field.
The default value of this field is false, meaning the fabric will emit tagged
traffic. If a port emits tagged traffic, it means that the Linux host must handle
the tag. This is accomplished by creating a link layer interface on the host for the tag:
enp2s1.1001 is by convention; it can be customized. The vlan in
this example is 1001 and was created when the subnet was created inside the
VPC.
When the nativeVLAN field is true, the switch will remove the 802.1q tag
from the packet as it exits the switch. When a Linux server is attached to this
port, there is no need to create an additional link layer device.
Multiple VLANs on a port
At times, it is desirable to configure a single port that emits more than one VLAN tag, which is called VLAN trunking. To create a trunk port, attach the VPC subnet to the desired port, multiple VPC subnets can be connected to a single connection object: