IFCFG-BONDING(5)

πŸ“¦ version 0.6.80, in opensuse-leap 16.0

πŸ’… ifcfg-bonding(5) β€” Wicked User Manual, section 5 πŸŽ€

okay so bestie, this is the ifcfg-bonding page from the Wicked User Manual (section 5). It’s giving β€œlet’s bond interfaces and make it everyone’s problem” energy, but in a iconic way. πŸ’–

✨ NAME ✨

ifcfg-bonding β€” bonding interface configuration πŸ’…

πŸ¦‹ SYNOPSIS πŸ¦‹

/etc/sysconfig/network/ifcfg-*

πŸ‘‘ Bonding Interfaces πŸ‘‘

To set up a bonding interface you need an ifcfg- configuration file with these bond-specific variables, bestie:

πŸ’– BONDING_MASTER πŸ’–

Must be set to yes to identify the configuration as being for a bonding interface. Periodt.

πŸŽ€ BONDING_SLAVE_<X> πŸŽ€

Here you specify the interface name that represents the port network interfaces. Supported are Ethernet or Infiniband(-Child) interfaces.

The Bonding master takes over the control of these port interfaces, which are not usable for another purposes, especially not for an L3 (IP) setup. It propagates several settings to the ports, e.g. it sets the MAC address (not on Infiniband) and MTU. Also if there is a vlan on top of the bond, it offloads the vlan setup to the ports.

Without a dedicated ifcfg-<port> configuration file, the auto generated port configuration is:

STARTMODE=hotplug
BOOTPROTO=none

The use of STARTMODE=hotplug for the ports ensures that wicked does not wait for the ports while setup, but only for the bonding master, which calculates its own carrier state from the carrier on the ports using own (configurable) logic and signals its carrier when a sufficient number of ports is available (default: min_links=1).

⚠️ Note: It’s strongly recommended to change the udev rule to match the ports by Bus-ID (KERNELS=="...") in order to assign a persistent name via /etc/udev/rules.d/70-persistent-net.rules (can be done in YaST2) as the bonding master usually sets the same MAC address on all its ports.

The use of BOOTPROTO=none disables IPv6 on the port interfaces via sysctl (and IPv4 in wicked) to ensure that no L3 / IP setup (from ifcfg-<port> config) is applied to the ports.

🌈 BONDING_MODULE_OPTS 🌈

Contains bonding options to configure the aggregation mode, port link monitoring and another options.

Note that these options are not passed as parameters to the bonding kernel module any more, but configured by wicked via the rtnetlink interface.

Bonding of Infiniband(-Child) port interfaces requires mode=active-backup mode along with the fail_over_mac=active option.

The following options are currently implemented in wicked:

  • Link aggregation operation mode:
    • mode=[balance-rr(0) | active-backup(1) | balance-xor(2) | broadcast(3) | 802.3ad(4) | balance-tlb(5) | balance-alb(6)] β€” picks the aggregation mode.

The active-backup, balance-tlb and balance-alb modes do not require any special switch support. The 802.3ad mode requires dynamic (lacp) and the balance-xor, balance-rr, broadcast a static link aggregation group/LAG switch configuration.

  • Port monitoring:

It is critical to configure link monitoring by specifying either the miimon or the arp_interval and arp_ip_target options. ARP monitoring should not be used in conjunction with miimon. Otherwise serious network degradation will occur during link failures and wicked rejects such configuration as insufficient and unsupported.

  • Netif Carrier/MII link monitoring (all modes):
    • miimon=[msec] β€” enables the monitoring using specified interval
    • use_carrier=[1|0] β€” 0 reverts from netif-carrier to MII/ethtool
    • updelay=[msec] β€” link-up detection delay
    • downdelay=[msec] β€” link-down detection delay
  • ARP link monitoring (active-backup, balance-rr, balance-xor, broadcast):
    • arp_interval=[msec] β€” enables the monitoring using specified interval
    • arp_ip_target=[x.x.x.x[,...]] β€” comma-separated IPv4 address to monitor
    • arp_validate=[none | active | backup | all | filter | filter_active | filter_backup] β€” reply validation and filtering (active-backup)
    • arp_all_targets=[any | all] β€” link-up consideration (active-backup)
  • Primary port configuration (active-backup, balance-alb, balance-tlb):
    • primary=[ifname] β€” interface name of the primary/preferred port
    • primary_reselect=[always|better|failure] β€” primary reselection policy
    • active_slave=[ifname] β€” volatile runtime option enforcing active port change
  • active-backup mode specific settings:
    • fail_over_mac=[none | active | follow] β€” MAC address on failover
    • num_grat_arp,num_unsol_na=[0..255] β€” peer notification count
  • Transmit balancing settings:
    • xmit_hash_policy=[layer2 | layer2+3 | layer3+4 | encap2+3 | encap3+4] β€” XOR hash type (802.3ad, balance-xor, balance-tlb, balance-alb)
    • tlb_dynamic_lb=[0|1] β€” enable flow shuffling in favor of hash distribution
    • lp_interval=[sec] β€” learning packets to port peer switch sending interval
  • 802.3ad mode specific settings:
    • lacp_rate=[slow|fast] β€” LACPDU packet transmission rate
    • ad_select=[stable | bandwidth | count] β€” aggregation selection logic
    • ad_user_port_key=[1..1023] β€” custom port-key
    • ad_actor_sys_prio=[1..65535] β€” custom system priority
    • ad_actor_system=[hwaddr] β€” actor mac address for LACPDU exchanges.
    • min_links=[uint] β€” number of required port links
  • Other options:
    • resend_igmp=[0..255] β€” membership reports after failover, default 1 (balance-rr, active-backup, balance-tlb and balance-alb)
    • packets_per_slave=[0..65535] β€” packets to transmit before move (balance-rr)
    • all_slaves_active=[0|1] β€” deliver duplicate frames on inactive ports (all modes)

🌸 Additional Information 🌸

For additional and more general information take a look into the kernel documentation at https://www.kernel.org/doc/Documentation/networking/bonding.rst.

πŸ’œ EXAMPLE πŸ’œ

Example for a bonding configuration on eth0 and eth1 ports using the active-backup mode:

πŸŽ€ ifcfg-bond0 πŸŽ€

STARTMODE='auto'
BOOTPROTO='static'
IPADDR='192.168.0.1/24'
BONDING_MASTER='yes'
BONDING_SLAVE_0='eth0'
BONDING_SLAVE_1='eth1'
BONDING_MODULE_OPTS='mode=active-backup miimon=100'
#MTU='9000'
#LLADDR='7a:b9:14:00:d6:ed'

The optional port configurations may set e.g. ethtool options:

πŸŽ€ ifcfg-eth0 πŸŽ€

STARTMODE='hotplug'
BOOTPROTO='none'
ETHTOOL_OPTIONS='wol g'

πŸŽ€ ifcfg-eth1 πŸŽ€

STARTMODE='hotplug'
BOOTPROTO='none'
ETHTOOL_OPTIONS='wol g'

Copyright (C) 2014-2024 SUSE LLC

πŸ› BUGS πŸ›

Please report bugs at https://bugs.opensuse.org.

πŸ¦‹ SEE ALSO πŸ¦‹

routes (5), ifcfg (5), wicked (8) β€” all the related besties.

πŸ‘‘ AUTHORS πŸ‘‘

Wilken Gottwalt (original bonding man page); Pawel Wieczorkiewicz; Marius Tomaschewski; Clemens Famulla-Conrad.


okay bye bestie! This page is from wicked, dated May 30, 2024, and it’s the IFCFG-BONDING(5) manual page. stay bonded, stay iconic. πŸ’œβœ¨

πŸ“¦ where this page comes from