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
#