# modprobe --first-time bonding # lsmod | grep bonding bonding 129237 0
# nmcli con add type bond ifname bond0 con-name bond0 bond.options "mode=1 miimon=100 " # nmcli con mod bond0 autoconnect yes # nmcli con add type ethernet ifname eth0 con-name eth0 master bond0 # nmcli con add type ethernet ifname eth1 con-name eth1 master bond0
alias bond0 bonding
BONDING_OPTS is need.
DEVICE=bond0 BOOTPROTO=dhcp ONBOOT=yes BONDING_OPTS="mode=1 miimon=100"
DEVICE=eth0 MASTER=bond0 SLAVE=yes BOOTPROTO=none
DEVICE=eth1 MASTER=bond0 SLAVE=yes BOOTPROTO=none
formerly(/etc/modules.conf)
alias bond0 bonding options bond0 miimon=100 mode=1
DEVICE=bond0 IPADDR=192.168.0.10 NETMASK=255.255.255.0 ONBOOT=yes BOOTPROTO=static
DEVICE=eth0 MASTER=bond0 SLAVE=yes BOOTPROTO=none
DEVICE=eth1 MASTER=bond0 SLAVE=yes BOOTPROTO=none
network:
version: 2
renderer: networkd
ethernets:
em1:
dhcp4: no
dhcp6: no
em2:
dhcp4: no
dhcp6: no
bonds:
bond0:
dhcp4: no
dhcp6: no
interfaces:
- em1
- em2
macaddress: "xx:xx:xx:xx:2b:62"
parameters:
mode: 802.3ad
lacp-rate: fast
mii-monitor-interval: 100
transmit-hash-policy: layer2+3
network:
version: 2
renderer: networkd
ethernets:
em1:
dhcp4: no
dhcp6: no
em2:
dhcp4: no
dhcp6: no
bonds:
bond0:
dhcp4: no
dhcp6: no
interfaces:
- em1
- em2
macaddress: "xx:xx:xx:xx:2b:62"
parameters:
mode: 802.3ad
lacp-rate: fast
mii-monitor-interval: 100
transmit-hash-policy: layer2+3
bridges:
br0:
dhcp4: yes
dhcp6: yes
macaddress: "xx:xx:xx:xx:2b:62"
interfaces:
- bond0
# apt-get install ifenslave
... bonding ...
# This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). source /etc/network/interfaces.d/* # The loopback network interface auto lo iface lo inet loopback # The primary network interface auto eno1 iface eno1 inet manual bond-master bond0 auto eno2 iface eno2 inet manual pre-up sleep 5 bond-master bond0 auto bond0 iface bond0 inet dhcp bond-slaves eno1 eno2 bond-primary eno1 eno2 bond-mode active-backup bond-miimon 100
| value | mode | explanation | switch |
|---|---|---|---|
| 0 | balance-rr load balancing (round-robin) | Trunking | |
| 1 | active-backup fault-tolerance | Many system uses this mode. | VLAN |
| 2 | Balance-XOR load balancing (xor) | Trunking | |
| 3 | Broadcast fault-tolerance | VLAN | |
| 4 | 802.3ad IEEE 802.3ad Dynamic link aggregation | IEEE 802.3ad | |
| 5 | Balance-tlb transmit load balancing | VLAN | |
| 6 | Balance-alb adaptive load balancing | VLAN |
alias bond0 bonding options bond0 mode=1 options bond0 miimon=100
alias bond0 bonding options bond0 miimon=100 mode=1 primary=eth0
alias bond0 bonding options bond0 mode=1 arp_interval=1000 arp_ip_target=192.168.10.1,192.168.10.2
alias bond0 bonding options bond0 miimon=0 arp_interval=1000 arp_ip_target=192.168.0.1,192.168.0.2,192.168.0.3
# cat /proc/net/bonding/bond0 Ethernet Channel Bonding Driver: v3.4.0-1 (October 7, 2008) Bonding Mode: fault-tolerance (active-backup) Primary Slave: None Currently Active Slave: eth4 <- Active Interface : eth4 MII Status: up <- up MII Polling Interval (ms): 100 Up Delay (ms): 0 Down Delay (ms): 0 Slave Interface: eth0 MII Status: up <- up Speed: 100 Mbps Duplex: full Link Failure Count: 1 Permanent HW addr: 1c:c1:de:xx:xx:xx Slave Interface: eth4 MII Status: up Speed: 100 Mbps Duplex: full Link Failure Count: 0 Permanent HW addr: 00:26:55:xx:xx:xx
# snmpwalk -v 1 -c public 192.168.1.101 interfaces (abbr) interfaces.ifTable.ifEntry.ifDescr.1 = lo interfaces.ifTable.ifEntry.ifDescr.2 = bond1 interfaces.ifTable.ifEntry.ifDescr.3 = bond0 interfaces.ifTable.ifEntry.ifDescr.4 = eth0 interfaces.ifTable.ifEntry.ifDescr.5 = eth1 interfaces.ifTable.ifEntry.ifDescr.6 = eth2 interfaces.ifTable.ifEntry.ifDescr.7 = eth3 interfaces.ifTable.ifEntry.ifDescr.8 = eth4 interfaces.ifTable.ifEntry.ifDescr.9 = eth5 (abbr) # snmpwalk -v 1 -c public 192.168.1.101 ip (abbr) ip.ipAddrTable.ipAddrEntry.ipAdEntIfIndex.127.0.0.1 = 1 ip.ipAddrTable.ipAddrEntry.ipAdEntIfIndex.192.168.1.101 = 3 ip.ipAddrTable.ipAddrEntry.ipAdEntIfIndex.192.168.2.1 = 4 ip.ipAddrTable.ipAddrEntry.ipAdEntIfIndex.192.168.3.1 = 6 ip.ipAddrTable.ipAddrEntry.ipAdEntIfIndex.192.168.4.101 = 2 (abbr) #
from eth1 to eth0
# cat /proc/net/bonding/bond0 |grep Currently Currently Active Slave: eth1 # ifconfig eth1 down # cat /proc/net/bonding/bond0 |grep Currently Currently Active Slave: eth0 # ifconfig eth1 up # cat /proc/net/bonding/bond0 |grep Currently # cat /proc/net/bonding/bond0 |grep Currently Currently Active Slave: eth0
modprobe bonding service network restart
Linux Network Configuration and Command