Linux雙網卡綁定配置
環境介紹
Linux Redhat 6.5、4張網卡
需求
4張網卡兩兩綁定,4張網卡分別是eth0/eth1/eth2/eth3
其中eth0/eth2綁定(bond0)、eth1/eth3綁定(bond1)
原理介紹
什么是bind?
將多塊網卡虛擬成為一塊網卡的技術,通過bond技術讓多塊網卡看起來是一個單獨的以太網接口設備並具有相同的ip地址。
雙網卡工作原理
網卡工作在混雜(promisc)模式,接收到達網卡的所有數據包,tcpdump工作用的也是混雜模式(promisc),將兩塊網卡的 MAC地址修改為相同接收特定MAC的數據幀,然后把相應的數據幀傳送給bond驅動程序進行處理。
mode=1:在主備模式下,只有主網卡eth0工作,eth1作為備份網卡是不工作的,只有當一個網絡接口失效時(例如交換機掉電等),為了不會出現網絡中斷,系統會按照配置指定的網卡順序啟動工作,保證機器仍能對外服務,起到了失效保護功能。
mode=0:在負載均衡模式下,兩塊網卡都工作,提供兩倍帶寬。
配置步驟
1、首先查看所有的網口
[root@rac-node1 ~]# ifconfig -a
2、編輯網口配置文件
[root@rac-node1 ~]# cd /etc/sysconfig/network-scripts/
[root@rac-node1 network-scripts]# ls
[root@rac-node1 network-scripts]# vim ifcfg-eth0
[root@rac-node1 network-scripts]# cat ifcfg-eth0
DEVICE=eth0
HWADDR=00:0C:29:84:D2:EB
TYPE=Ethernet
UUID=b93ebcc4-90bc-4357-85d8-6ccb417fcc57
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=none
none表示不使用任何協議
static表示設置靜態IP
dhcp表示動態獲取IP
MASTER=bond0 #指定虛擬網口的名字(主人)
SLAVE=yes #備用(從設備)
[root@rac-node1 network-scripts]# vim ifcfg-eth2
[root@rac-node1 network-scripts]# cat ifcfg-eth2
DEVICE=eth2
HWADDR=00:0C:29:84:D2:FF
TYPE=Ethernet
UUID=57cce5b3-23c6-47e7-aca5-86c2358f314f
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=none
none表示不使用任何協議
static表示設置靜態IP
dhcp表示動態獲取IP
MASTER=bond0 #指定虛擬網口的名字(主人)
SLAVE=yes#備用(從設備)
[root@rac-node1 network-scripts]# touch ifcfg-bond0
[root@rac-node1 network-scripts]# vim ifcfg-bond0
[root@rac-node1 network-scripts]# cat ifcfg-bond0
DEVICE=bond0
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.16.131
NETMASK=255.255.255.0
#GATEWAY=192.168.16.1
3、配置bonding
[root@rac-node1 network-scripts]# vim /etc/modprobe.d/dist.conf
末尾增加以下兩行
alias bond0 bonding
options bond0 miimon=100 mode=1
#miimon是用來進行鏈路監測的:miimon=100表示系統每100ms監測一次鏈路連接狀態,如果有一條線路不通就轉入另一條線路。
#mode=1表示屬於主備模式。
4、設置開機自啟動
在/etc/rc.d/rc.local文件中加入如下語句
[root@rac-node1 network-scripts]# vim /etc/rc.d/rc.local
ifenslave bond0 eth0 eth2 ---系統啟動自動運行
#route add -net 192.168.xxx.0 netmask 255.255.255.0 bond0---如果有需要添加該路由
5、重啟
不能重啟服務(重啟網絡服務不能使雙網卡綁定生效),只能重啟主機。
6、查詢當前哪個網口是主用網口
[root@rac-node1 ~]# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.6.0 (September 26, 2009)
Bonding Mode: fault-tolerance (active-backup)
Primary Slave: None
Currently Active Slave: eth0 #主用網口
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
Slave Interface: eth0
MII Status: up
Speed: 10000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:84:d2:eb
Slave queue ID: 0
Slave Interface: eth2
MII Status: up
Speed: 10000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:84:d2:ff
Slave queue ID: 0
… … … … …
剩余兩個網口配置方法一致
7、測試主備能否切換
[root@rac-node1 ~]# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.6.0 (September 26, 2009)
Bonding Mode: fault-tolerance (active-backup)
Primary Slave: None
Currently Active Slave: eth0
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
Slave Interface: eth0
MII Status: up
Speed: 10000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:84:d2:eb
Slave queue ID: 0
Slave Interface: eth2
MII Status: up
Speed: 10000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:84:d2:ff
Slave queue ID: 0
[root@rac-node1 ~]# ifdown ifcfg-eth0
[root@rac-node1 ~]# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.6.0 (September 26, 2009)
Bonding Mode: fault-tolerance (active-backup)
Primary Slave: None
Currently Active Slave: eth2
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
Slave Interface: eth2
MII Status: up
Speed: 10000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:84:d2:ff
Slave queue ID: 0
注意:
①UUID是唯一的編號,每個網口唯一
②兩個配置文件中HWADDR不能一樣,可以不要,因為會自動讀取
③網口切換后 ifconfig bond0查看到的MAC地址還是切換前的MAC地址-->為了防止IP對應MAC地址混亂