将Linux多网卡绑定为一个逻辑网卡,可实现本地网卡冗余、带宽扩容提升网络I/O和负载均衡。
原理:使用的是Linux内核中的bonding模块,目前各发行版已包含该模块,无需重新编译内核。bonding提供绑定/集成多个网卡为一个虚拟逻辑网口的功能。
网卡绑定有7中模式,这里用的mode1,用于热备、冗余网口。自动备援模式,其中一条线若断线,其他线路将会自动备援。
不重启、手工配置
1 modprobe bonding miimon=100
2 ifconfig bond0 192.168.0.1 netmask 255.255.255.0
3 ifenslave bond0 em1 em2
配置后,需重启
#!/bin/bash
#for centos 6.5
cd /etc/sysconfig/network-scripts/ && touch ifcfg-bond0
FILE_PATH=/etc/sysconfig/network-scripts/ifcfg-bond0
cat > $FILE_PATH <
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 <
DEVICE=em1
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=static
MASTER=bond0
SLAVE=yes
EOF
cat > $NET_PATH/ifcfg-em2 <
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