将Linux多网卡绑定为一个逻辑网卡,可实现本地网卡冗余、带宽扩容提高网络I/O和负载均衡。centos
原理:使用的是Linux内核中的bonding模块,目前各发行版已包含该模块,无需从新编译内核。bonding提供绑定/集成多个网卡为一个虚拟逻辑网口的功能。bash
网卡绑定有7中模式,这里用的mode1,用于热备、冗余网口。自动备援模式,其中一条线若断线,其余线路将会自动备援。网络
不重启、手工配置负载均衡
1 modprobe bonding miimon=100rest
2 ifconfig bond0 192.168.0.1 netmask 255.255.255.0server
3 ifenslave bond0 em1 em2ip
配置后,需重启get
#!/bin/bashit
#for centos 6.5编译
cd /etc/sysconfig/network-scripts/ && touch ifcfg-bond0
FILE_PATH=/etc/sysconfig/network-scripts/ifcfg-bond0
cat > $FILE_PATH <<EOF
DEVICE=bond0
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=static
BONDING_OPTS="miimon=80 mode=1"
EOF
read -p "IP:" ipmodi
read -p "MASK:" mask
read -p "gateway:" getw
read -p "hostname:" host
echo "IPADDR=$ipmodi" >> $FILE_PATH
echo "NETMASK=$mask" >> $FILE_PATH
echo "GATEWAY=$getw" >> $FILE_PATH
#sed -i 's/HOSTNAME=.*$/HOSTNAME='$HOST'/g' /etc/sysconfig/network
sed -i '/HOSTNAME/cHOSTNAME='$host'' /etc/sysconfig/network
cat $FILE_PATH
echo "alias netdev-bond0 bonding" > /etc/modprobe.d/bonding.conf
echo "nameserver 172.16.65.10" >> /etc/resolv.conf
NET_PATH=/etc/sysconfig/network-scripts
cp $NET_PATH/ifcfg-em1 $NET_PATH/ifcfg-em1.bak
cp $NET_PATH/ifcfg-em2 $NET_PATH/ifcfg-em2.bak
cat > $NET_PATH/ifcfg-em1 <<EOF
DEVICE=em1
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=static
MASTER=bond0
SLAVE=yes
EOF
cat > $NET_PATH/ifcfg-em2 <<EOF
DEVICE=em2
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=static
MASTER=bond0
SLAVE=yes
EOF
echo -e "\nifenslave em1 em2" >> /etc/rc.local
/etc/init.d/network restart