Linux上很容易可以將多塊網卡綁定,實現負載均衡和雙線熱備的功能。
負載均衡即將負載平均的分配到任意多塊網卡上面,實現帶寬的疊加
雙線熱備即多塊網卡互為備份,任何一塊能夠工作即可保證網絡正常運行。
各個綁定類型的分別
mode=0 Round-robin: sequential(輪詢負載均衡,最常用)
mode=1 Active-backup: only one
mode=2 XOR: same MAC same nic
mode=3 Broadcast: all
各大發行版略有不同,基本上分成3種,
Debian和Ubuntu,
SUSE,
Mandriva、Fedora和RH
-----------------------------------------------------------------------
Debian和Ubuntu上的多網卡綁定
實驗環境Ubuntu 6.06 Dadder,內核版本2.6.15-23 server
首先安裝ifenslave
#apt-get install ifenslave-2.6
編輯/etc/network/interfaces
auto lo bond0 eth0 eth1
iface bond0 inet static
address 10.31.1.5
netmask 255.255.255.0
network 10.31.1.0
gateway 10.31.1.254
up /sbin/ifenslave bond0 eth0
up /sbin/ifenslave bond0 eth1
iface lo loopback
iface eth0 inet static
address 10.1.1.101
netmask 255.255.255.0
iface eth1 inet static
address 10.1.1.102
netmask 255.255.255.0
再編輯 /etc/modprobe.d/arch/i386
加上兩行:
alias bond0 bonding
options bonding mode=0 miimon=100
最後重啟網絡即可
/etc/init.d/networking restart
-----------------------------------------------------------------------
SuSE,Mandriva、Fedora和RH
1、編輯 /etc/modules.conf 文件(SuSE的系統是/etc/modprobe.d/modprobe.cong.local),加入如下一行內容,以使系統在啟動時加載bonding模塊,對外虛擬網絡接口設備為 bond0
alias bond0 bonding
2、編輯虛擬網絡接口配置文件,指定網卡IP
vi /etc/sysconfig/network-scripts/ifcfg-bond0
(SuSE的系統是/etc/sysconfig/network/ifcfg-bond0)
Fedora的寫法
DEVICE=bond0
IPADDR=192.168.1.1
NETMASK=255.255.255.0
NETWORK=192.168.1.0
BROADCAST=192.168.1.255
ONBOOT=yes
BOOTPROTO=none
USERCTL=no
SuSE的寫法
BOOTPROTO='static'
BROADCAST='192.168.1.255'
ETHTOOL_OPTIONS=''
IPADDR='192.168.1.1'
MTU=''
NETMASK='255.255.255.0'
NETWORK='192.168.1.0'
STARTMODE='auto'
USERCONTROL='no'
3、編輯物理網絡接口配置文件,並指向虛擬網絡接口bond0
Fedora:
物理網絡接口配置文件位於/etc/sysconfig/network-scripts,
ifcfg-eth0對應第一個網卡,ifcfg-eth1對應第二個千兆網卡。
ifcfg-eth0 :
DEVICE=eth0
IPADDR=11.0.0.1
NETMASK=255.255.255.0
USERCTL=no
ONBOOT=yes
BOOTPROTO=none
ifcfg-eth1 :
DEVICE=eth1
IPADDR=11.0.0.2
NETMASK=255.255.255.0
USERCTL=no
ONBOOT=yes
BOOTPROTO=none
SuSE:
物理網絡接口配置文件位於/etc/sysconfig/network/,
以ifcfg-eth-(mac)為名字
BOOTPROTO='static'
IPADDR='10.0.0.1'
NETMASK='255.255.255.0'
STARTMODE='auto'
USERCONTROL='no'
最後編輯/etc/rc.local(SuSE是/etc/rc.d/rc)或是直接運行
ifenslave bond0 eth0 eth1 eth2(綁幾個網卡就寫幾個網卡的名字)
無論eth0 eth1 eth2的IP怎樣設置,綁定之後全都以bind0的設置為准。此時所有網卡的mac地址都是一樣的。