NIC Bonding on CentOS 7 with nmcli
当系统管理员希望增加可用带宽,并提供冗余和负载平衡的数据传输,内核支持bonding允许以聚合的方式实现。简单地说,绑定意味着将两个或多个物理网络接口(称为奴隶)聚合成一个单独的逻辑节点(称为主网络)。如果一个特定的NIC(网络接口卡)的经验问题,通信不受影响只要其他保持活跃。
1.先决条件
默认情况下,bonding内核模块没有启用。因此,我们将需要加载它并确保它持久。使用modprobe--first-time加载bonding模块,如果加载模块失败,会发出警告。
# modprobe --first-time bonding
以上的命令仅加载bondiing模块为当前会话,服务器重启后模块不会自动加载。为了确保持续加载,创建/etc/modules-load.d/bonding.conf文件放置于文件夹/etc/modules-load.d目录中,确保每次服务器重启时加载bonding模块。
# echo "# Load thebonding kernel module at boot" > /etc/modules-load.d/bonding.conf
# echo "bonding">> /etc/modules-load.d/bonding.conf
服务器重启之后确保bonding模块自动加载
# lsmod|grep bonding
bonding 136705 0
#
2、nucli创建bond
查看现有连接及可用的网络设备
# nmcli connection show
NAME UUID TYPE DEVICE
# nmcli device status
DEVICE TYPE STATE CONNECTION
eno16777736 ethernet disconnected --
eno33554992 ethernet disconnected --
bond0 bond unmanaged --
lo loopback unmanaged --
#
创建bond
# nmcli con add type bond con-name bond0 ifname bond0 ip4 192.168.31.108/24 mode balance-rr
Connection 'bond0' (599582b0-346b-48d3-8f1d-f3bcee5deca7) successfully added.
# nmcli connection add type bond-slave con-name slave1 ifname eno16777736 master bond0
Connection 'slave1' (6a1dd331-bb90-4e92-9af6-654ed8b2d2ca) successfully added.
# nmcli connection add type bond-slave con-name slave2 ifname eno33554992 master bond0
Connection 'slave2' (e31f40c9-4a1c-45d5-9832-8a1705f0b1f7) successfully added.
#nmcli con mod bond0 ipv4.method manual
#nmcli con mod bond0 ipv4.gateway 192.168.31.1
#nmcli connection modify bond0 ipv4.dns 192.168.31.1
#nmcli connection modify bond0 bond.options mode=balance-rr,miimon=100,downdelay=0,updelay=0
创建后重启网络服务
#systemctl restart network
# nmcli device status
DEVICE TYPE STATE CONNECTION
bond0 bond connected bond0
eno16777736 ethernet connected slave1
eno33554992 ethernet connected slave2
lo loopback unmanaged --
再次查看网络链接与网络设备
# nmcli connection show
NAME UUID TYPE DEVICE
bond0 599582b0-346b-48d3-8f1d-f3bcee5deca7 bond bond0
slave1 6a1dd331-bb90-4e92-9af6-654ed8b2d2ca 802-3-ethernet eno16777736
slave2 e31f40c9-4a1c-45d5-9832-8a1705f0b1f7 802-3-ethernet eno33554992
# ip addr list
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
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: eno16777736: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master bond0 state UP qlen 1000
link/ether 00:0c:29:51:e8:75 brd ff:ff:ff:ff:ff:ff
3: eno33554992: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master bond0 state UP qlen 1000
link/ether 00:0c:29:51:e8:75 brd ff:ff:ff:ff:ff:ff
4: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP
link/ether 00:0c:29:51:e8:75 brd ff:ff:ff:ff:ff:ff
inet 192.168.31.108/24 brd 192.168.31.255 scope global bond0
valid_lft forever preferred_lft forever
inet6 fe80::233b:2da9:bddd:c8dc/64 scope link tentative dadfailed
valid_lft forever preferred_lft forever
inet6 fe80::875c:5f79:646d:8446/64 scope link tentative dadfailed
valid_lft forever preferred_lft forever
inet6 fe80::bf1c:1978:9c5:6ed7/64 scope link tentative dadfailed
valid_lft forever preferred_lft forever
#