Update configuration files in /etc/sysconfig/network-scripts/ as follows

ifcfg-bond0

DEVICE=bond0
TYPE=Bond
NAME=bond0
BONDING_MASTER=yes
BOOTPROTO=none
ONBOOT=yes
IPADDR=x.x.x.x
NETMASK=x.x.x.x
GATEWAY=x.x.x.x
BONDING_OPTS="mode=6 miimon=100"
ZONE=work
  • ZONE: FirewallD zone that the bond will be assigned to
  • BONDING_OPTS
    • mode=6 : Active Load Balancing for fault tolerance and load balancing.
    • miimon=100 : Time in milliseconds that the links are tested

ifcfg-em1

TYPE=Ethernet
BOOTPROTO=none
DEVICE=em1
ONBOOT=yes
HWADDR="b8:ac:6f:82:1a:11"
MASTER=bond0
SLAVE=yes

ifcfg-em2

TYPE=Ethernet
BOOTPROTO=none
DEVICE=em2
ONBOOT=yes
HWADDR="b8:ac:6f:82:1a:13"
MASTER=bond0
SLAVE=yes

Confirm the configuration is good.

# Restart network services
$ sudo systemctl restart network.service

# Confirm Bond working
$ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: em1: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc mq master bond0 state UP group default qlen 1000
    link/ether b8:ac:6f:82:1a:11 brd ff:ff:ff:ff:ff:ff
3: em2: <NO-CARRIER,BROADCAST,MULTICAST,SLAVE,UP> mtu 1500 qdisc mq master bond0 state DOWN group default qlen 1000
    link/ether b8:ac:6f:82:1a:13 brd ff:ff:ff:ff:ff:ff
4: em3: <BROADCAST,MULTICAST> mtu 1500 qdisc mq state DOWN group default qlen 1000
    link/ether b8:ac:6f:82:1a:15 brd ff:ff:ff:ff:ff:ff
5: em4: <BROADCAST,MULTICAST> mtu 1500 qdisc mq state DOWN group default qlen 1000
    link/ether b8:ac:6f:82:1a:17 brd ff:ff:ff:ff:ff:ff
6: p1p1: <BROADCAST,MULTICAST> mtu 1500 qdisc mq state DOWN group default qlen 1000
    link/ether 00:10:18:70:c7:8c brd ff:ff:ff:ff:ff:ff
7: p1p2: <BROADCAST,MULTICAST> mtu 1500 qdisc mq state DOWN group default qlen 1000
    link/ether 00:10:18:70:c7:8e brd ff:ff:ff:ff:ff:ff
8: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether b8:ac:6f:82:1a:11 brd ff:ff:ff:ff:ff:ff
    inet 10.10.2.146/23 brd 10.10.3.255 scope global bond0
       valid_lft forever preferred_lft forever
    inet6 fe80::baac:6fff:fe82:1a11/64 scope link 
       valid_lft forever preferred_lft forever

# One more check
$ cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)

Bonding Mode: adaptive load balancing
Primary Slave: None
Currently Active Slave: em1
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0

Slave Interface: em1
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: b8:ac:6f:82:1a:11
Slave queue ID: 0

Slave Interface: em2
MII Status: down
Speed: Unknown
Duplex: Unknown
Link Failure Count: 0
Permanent HW addr: b8:ac:6f:82:1a:13
Slave queue ID: 0