雙網卡綁定,也稱作雙網卡捆綁。就是将伺服器的2個網卡綁定成一個虛拟網卡,使伺服器的2塊網卡連接配接到2台交換機上,并配置同一個IP位址,這樣可以有效防止某個交換機或者網卡、網線壞掉時,影響伺服器的正常工作。
現在主要介紹RedHat Enterprise Linux 7(或者Centos7)進行雙網卡綁定的方法,這裡先介紹常用的bond方式綁定。後續有使用HedHat 7推薦的team方式,再增加相關的操作方法。
詳情,附件還有
一、檢視網卡情況
伺服器上一般會配置有多塊網卡,可以通過插入網線的方式确定網卡的編号。檢視網線有沒有插上,可以使用ip l或者nmcli指令。注意nmcli需要啟動NetworkManager服務,使用Bond方式做網卡綁定會停用這個服務,nmcli指令無法使用。
ip l 指令,注意網線連接配接狀态會顯示LOWER_UP,網線斷開狀态會顯示<NO-CARRIER>。
nmcli指令較明顯的顯示連接配接和斷開狀态。
二、Bond方式綁定
雙網卡綁定的工作模式,共有七種模式,主要修改的是負載均衡方式和主備方式,需要和客戶的網絡工程師确認,常用主備方式。
确定了網卡編号,就可以用Bond方式進行雙網卡綁定了,以下以綁定eno1和eno2為例進行配置。
-
配置eno1網卡配置檔案注意:檔案名根據實際情況vi,DEVICE=eno1需要按實際命名。
[root@linux7 ~]# vi /etc/sysconfig/network-scripts/ifcfg-eno1
DEVICE=eno1
TYPE=Ethernet
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes
USERCTL=no
-
配置eno2網卡配置檔案注意:檔案名根據實際情況vi,DEVICE=eno2需要按實際命名。
[root@linux7 ~]# vi /etc/sysconfig/network-scripts/ifcfg-eno2
DEVICE=eno2
TYPE=Ethernet
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes
USERCTL=no
-
建立網卡bond0的配置檔案注意:IPADDR、NETMASK、GATEWAY需要根據實際情況配置,primary=eno1根據設計來配置使用哪個為主網卡。
[root@linux7~]# touch /etc/sysconfig/network-scripts/ifcfg-bond0
[root@ linux7~]# cat /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.122.27
NETMASK=255.255.255.0
GATEWAY=192.168.122.1
NAME=bond0
BONDING_OPTS="miimnotallow=100 mode=1 primary=eno1 fail_over_mac=1"
-
加載子產品,使系統支援bond模式miimon是用來進行鍊路監測的,比如miimnotallow=100,那麼系統每100ms監測一次鍊路連接配接狀态,如果線路不通就轉入另一條線路;mode表示雙網卡綁定的工作模式,共有七種模式,常用的為0,1兩種。mode=0表示load balancing (round-robin)為負載均衡方式,兩塊網卡都工作。mode=1表示fault-tolerance (active-backup)提供備援功能,工作方式是主備的工作方式,也就是說預設情況下隻有一塊網卡工作,另一塊做備份。
注意:如果檔案不存在,需要手動建立。盡量選擇mode=1主備方式。
[root@linux7~]# cat /etc/modprobe.conf
alias bond0 bonding
options bond0 miimnotallow=100 mode=1 fail_over_mac=1
-
在/etc/rc.d/rc.local 加入以下内容,重新開機時自動執行網卡綁定操作。注意:eno1和eno2根據實際情況配置。
ifenslave bond0 eno1 eno2
-
執行以下指令,加載bond module,激活bonding驅動。[root@linux7~]# modprobe bonding
可以使用lsmod | grep bonding指令,确認子產品是否加載成功。
-
禁用NetworkManager服務,并重新開機網絡服務。[root@linux7~]# systemctl stop NetworkManager
[root@linux7~]# systemctl disable NetworkManager
[root@linux7~]# systemctl restart network
- 檢查雙網卡綁定狀态使用ifconfig -a指令,或者ip a指令查詢網卡狀态。注意bond0顯示LOWER_UP狀态,顯示IP資訊。
- 測試雙網卡綁定是否完全成功
首先在另一台能連通此伺服器的伺服器,一直ping此IP,确認網絡已經通暢。
然後使用ifdown eno1或ifconfig down eno1,斷開網卡eno1,測試網卡eno2是否正常(恢複指令ifup eno1或ifconfig up eno1),觀察ping是否正常。并以同樣的方式,測試斷開網卡eno2,測試網卡eno1是否正常。