将多块网卡虚拟成为一块网卡,使其具有相同的ip地址,来实现提升主机的网络吞吐量或者是提高可用性等作用,这种技术被称作Bonding
Linux下支持七种模式的网卡绑定,这里列出常用的两种:
- 模式0:平衡轮训 使用这种模式来进行多网卡绑定时我们可以提高网络的带宽,其流量是从绑定的多块网卡上平均分配的
- 模式1:主动备份 使用这种模式来进行多网卡绑定时我们可以提高网络的稳定性,这种模式不会提高网络的带宽,每次只有一块网卡在走流量,只有当这块网卡发生故障时,绑定在一起的其它物理网卡才会工作
网卡绑定以后我们需要给我们的逻辑网卡取一个名字,通常格式为 bondn,n代表的是编号,如 /dev/bond0, /dev/bond1
然后我们需要在 /etc/sysconfig/network-scripts 这个目录下创建该逻辑网卡的配置文件,如/etc/sysconfig/network-scripts/ifc-bond0:
[root@xiaoluo network-scripts]# vi ifcfg-bond0
DEVICE=bond0 // 设备名字
IPADDR=172.25.215.200 // 网卡ip地址
PREFIX=24 // 子网掩码24位
ONBOOT=yes // 开机启动yes
BOOTPROTO=none // 启动协议,因为我们是手动配置IP,所以设置成none,如果是通过DHCP动态分配,则设置成dhcp
USERCTL=no // 关闭掉用户控制
BONDING_OPTS="mode=1 miimon=5" // 这个是bond网卡最主要的配置,我们的bond网卡其实是根据一个叫做bonding的驱动来配置的,后面跟配置参数,这里我们使用的是模式1(主动备份)
因为要使用多网卡绑定,所以需要再添加一块网卡,这里添加一块网卡eth1,使用ifconfig查看一下:
[root@xiaoluo network-scripts]# ifconfig
bond0 Link encap:Ethernet HWaddr 00:00:00:00:00:00
inet addr:172.25.215.200 Bcast:172.25.215.255 Mask:255.255.255.0
UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
eth0 Link encap:Ethernet HWaddr 08:00:27:D7:F8:84
inet6 addr: fe80::a00:27ff:fed7:f884/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1285 errors:0 dropped:0 overruns:0 frame:0
TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:221706 (216.5 KiB) TX bytes:468 (468.0 b)
eth1 Link encap:Ethernet HWaddr 08:00:27:F4:7D:CC
inet6 addr: fe80::a00:27ff:fef4:7dcc/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1196 errors:0 dropped:0 overruns:0 frame:0
TX packets:95 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:216126 (211.0 KiB) TX bytes:4806 (4.6 KiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:73 errors:0 dropped:0 overruns:0 frame:0
TX packets:73 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:6330 (6.1 KiB) TX bytes:6330 (6.1 KiB)
此时我们计算机里面就有两块网卡了,因为我们需要将这两块网卡绑定到bond0这个逻辑网卡中,所以我们要在两块网卡的配置文件里面添加两条语句:
MASTER=bond0 // 将这两块网卡绑定到bond0这块逻辑网卡上
SLAVE=yes // SLAVE=yes表示这两块网卡附属于bond0这块网卡
注意这两块网卡不需要配置IP地址了:
[root@xiaoluo network-scripts]# vi ifcfg-eth0
DEVICE=eth0
HWADDR=08:00:27:D7:F8:84
TYPE=Ethernet
UUID=2877e96e-6ddd-443b-a337-bafa7c77c6e5
ONBOOT=no
NM_CONTROLLED=yes
BOOTPROTO=none
IPV6INIT=no
USERCTL=no
MASTER=bond0
SLAVE=yes
[root@xiaoluo network-scripts]# vi ifcfg-eth1
DEVICE=eth1
BOOTPROTO=none
TYPE=Ethernet
PEERDNS=yes
IPV6INIT=no
ONBOOT=no
USERCTL=no
HWADDR=08:00:27:f4:7d:cc
MASTER=bond0
SLAVE=yes
bond0这块网卡其实是通过一个叫做 bonding 的驱动来配置的,所以我们还需要为bond0这块网卡添加驱动支持,将这个驱动添加到 /etc/modprobe.d/ 这个目录下
[root@xiaoluo network-scripts]# cd /etc/modprobe.d/
[root@xiaoluo modprobe.d]# ls
anaconda.conf blacklist-visor.conf dist.conf openfwwf.conf
blacklist.conf dist-alsa.conf dist-oss.conf
这个文件夹下放的都是我们系统所需驱动的配置文件,我们这时需要给我们的bonding添加一个名字为 bonding.conf 的配置文件
[root@xiaoluo modprobe.d]# vi bonding.conf
alias bond0 bonding
此时配置好以后,我们就可以通过 ifup bond0 来启动我们的bond0网卡
[root@xiaoluo network-scripts]# ifup bond0
Active connection state: activated
Active connection path: /org/freedesktop/NetworkManager/ActiveConnection/2
此时我们可以通过ifconfig命令来查看一下当前网卡信息:
[root@xiaoluo network-scripts]# ifconfig
bond0 Link encap:Ethernet HWaddr 08:00:27:D7:F8:84
inet addr:172.25.215.200 Bcast:172.25.215.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fed7:f884/64 Scope:Link
UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1
RX packets:8175 errors:0 dropped:0 overruns:0 frame:0
TX packets:117 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:1417884 (1.3 MiB) TX bytes:6230 (6.0 KiB)
eth0 Link encap:Ethernet HWaddr 08:00:27:D7:F8:84
UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1
RX packets:4131 errors:0 dropped:0 overruns:0 frame:0
TX packets:22 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:711693 (695.0 KiB) TX bytes:1424 (1.3 KiB)
eth1 Link encap:Ethernet HWaddr 08:00:27:D7:F8:84
UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1
RX packets:4044 errors:0 dropped:0 overruns:0 frame:0
TX packets:95 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:706191 (689.6 KiB) TX bytes:4806 (4.6 KiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:81 errors:0 dropped:0 overruns:0 frame:0
TX packets:81 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:7226 (7.0 KiB) TX bytes:7226 (7.0 KiB)
参考文献:
[1]. http://www.cnblogs.com/xiaoluo501395377/archive/2013/05/26/3100065.html