介紹
bonding(綁定)是一種linux系統下的網卡綁定技術,可以把服務器上n個物理網卡在系統內部抽象(綁定)成一個邏輯上的網卡,能夠提升網絡吞吐量、實現網絡冗余、負載等功能,有很多優勢。
bonding技術是linux系統內核層面實現的,它是一個內核模塊(驅動)。使用它需要系統有這個模塊, 我們可以modinfo命令查看下這個模塊的信息, 一般來說都支持.
在服務器上執行modinfo bonding
查看模塊信息
**bonding的七種工作模式: **
bonding技術提供了七種工作模式,在使用的時候需要指定一種,每種有各自的優缺點.
balance-rr (mode=0) 默認, 有高可用 (容錯) 和負載均衡的功能, 需要交換機的配置,每塊網卡輪詢發包 (流量分發比較均衡).
active-backup (mode=1) 只有高可用 (容錯) 功能, 不需要交換機配置, 這種模式只有一塊網卡工作, 對外只有一個mac地址。缺點是端口利用率比較低
balance-xor (mode=2) 不常用
broadcast (mode=3) 不常用
802.3ad (mode=4) IEEE 802.3ad 動態鏈路聚合,需要交換機配置
balance-tlb (mode=5) 不常用
balance-alb (mode=6) 有高可用 ( 容錯 )和負載均衡的功能,不需要交換機配置 (流量分發到每個接口不是特別均衡)。
Centos7配置bonding
我使用的系統是centos7.6
1、登錄系統加載bonding模塊
systemctl stop NetworkManager.service # 停止NetworkManager服務
systemctl disable NetworkManager.service # 禁止開機啟動NetworkManager服務
modprobe bonding
沒有提示說明加載成功, 如果出現modprobe: ERROR: could not insert 'bonding': Module already in kernel說明你已經加載了這個模塊,
就不用管了你也可以使用lsmod | grep bonding查看模塊是否被加載。
lsmod | grep bonding
bonding 136705 0
2、創建基於bond0接口的配置文件
vim /etc/sysconfig/network-scripts/ifcfg-bond0
TYPE=Ethernet
BOOTPROTO=static
NAME=bond0
DEVICE=bond0
ONBOOT=yes
NM_CONTROLLED=no
BONDING_OPTS="miimon=100 mode=4"
IPADDR=10.xxx.xx.x
NETMASK=255.255.255.0
GATEWAY=10.xxx.xx.x
上面的BONDING_OPTS="mode=4 miimon=100" 表示這里配置的工作模式是802.3ad 動態鏈路聚合, miimon表示監視網絡鏈接的頻度 (毫秒), 我們設置的是100毫秒, 根據你的需求也可以指定mode成其它的負載模式。
vim /etc/sysconfig/network-scripts/ifcfg-eno1
TYPE=Ethernet
BOOTPROTO=none
NAME=eno1
DEVICE=eno1
ONBOOT=yes
MASTER=bond0
SLAVE=yes
USERCTL=no
NM_CONTROLLED=no
vim /etc/sysconfig/network-scripts/ifcfg-eno2
TYPE=Ethernet
BOOTPROTO=none
NAME=eno2
DEVICE=eno2
ONBOOT=yes
MASTER=bond0
SLAVE=yes
USERCTL=no
NM_CONTROLLED=no
3、保存配置重啟網絡
systemctl restart network
4、驗證bonding配置成功
cat /proc/net/bonding/bond0
ifconfig