-
Linux
下的双网卡绑定
bond0
em1 em2
一、什么是
bonding
Linux bonding
驱动提供了一个把多个网络接
口设备捆绑为单个的网络接口设置来使用,
用
于网络负载均衡及
网络冗余
二、
bonding
应用方向
1
、网络负载均衡
对于
bonding
的网络负载均衡是我们在文件服务器中常用到的,比如把三块网卡,当做一
块来
用,
解决一个
IP
地址,
流量过大,
服务器网络压力过大的问题。
对于文件服
务器来说,
比如
NFS
或
SAMBA
文件服务器,没有任何一个管理员会把内部网的文件服务器的
p>
IP
地址
弄很多个来解决网络负载的问题。
如果在内网中,
文件服务器为了管理和应用上的方便,
大
多是用同一个
IP
地
址。对于一个百
M
的本地网络来说,文件服务器在多
个用户同时使用
的情况下,网络压力是极大的,
特别是
SAMABA
和
NFS
服务器。为了解决同一个
IP
地址,
突破流量的限制,
毕竟网线和网卡对数据的吞吐量是有限制的。
如果在有限的资源的情况下,
实现网络负载均衡,最好的办法就是
bonding
2
、网络冗余
对于服务器来说,网络设备的稳定也是比较重要的,特别是网卡。在生产型的系统中,网
卡的可靠性就更为重要了。
在生产型的系统中,
大多通过硬
件设备的冗余来提供服务器的可
靠性和安全性,比如电源。
bo
nding
也能为网卡提供冗余的支持。把多块网卡绑定到一个
IP
地址,
当一块网卡发生物理性损坏的情况下,
另一块网卡自动启用,
并提供正常的服务,
即:默
认情况下只有一块网卡工作,其它网卡做备份
三、
bonding
实验环境及配置
1
、实验环境
系统为:
CentOS
,使用
2
块网卡
(em1<
/p>
、
em2
==>
bond0)
来实现
bonding
< br>技术
2
、
bonding
配置
第一步:先查看一下内核是否已经支持
bonding
1)
如果内核已经把
bonding
编译进内核,那么要做的就是加载该模块到当前内核;其次查
看
ifenslave
该工具是否也已经编译
modprobe
-l
bond*
或者
modinfo
bonding
modprobe
bonding
lsmod | grep 'bonding'
echo
'modprobe bonding &> /dev/null'
>>
/etc/(
开机自动加载<
/p>
bonding
模块到
内核
)
which
ifenslave
注意:默认内核安装完后就已经支持
bonding
模块了,无需要自己手动编译
2)
如果
bonding
还没有编译进内核,那么要做的就是编译
该模块到内核
(1)
编译
bonding
tar -jxvf
cd
kernel-XXX
make
menuconfig
选择
->
make bzImage
make modules
&&
make
modules_install
make install
(2)
编译
ifenslave
p>
工具
gcc -Wall -O -I
kernel-XXX/include ifenslave.c -o
ifenslave
第二步:主要有两种可选择
(
第
1
种:实现网络负载均衡,第
< br>2
种:实现网络冗余
)
例
p>
1
:实现网络冗余
(
即:
mod=1
方式,使用
em1<
/p>
与
em2)
(1)
< br>编辑虚拟网络接口配置文件
(bond0)
,并指定网卡
IP
vi
/etc/sysconfig/network-scripts/ifcfg-
bond0
DEVICE=bond0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.0.254
BROADCAST=192.168.0.255
NETMASK=255.255.255.0
NETWORK=192.168.0.0
GATEWAY=192.168.0.1
USERCTL=no
TYPE=Ethernet
注意:建议不要指定
MAC
地址
vi
/etc/sysconfig/network-scripts/ifcfg-
em1
DEVICE=em1
BOOTPROTO=none
ONBOOT=yes
USERCTL=no
MASTER=bond0
SLAVE=yes
注意:建议不要指定
MAC
地址
vi
/etc/sysconfig/network-scripts/ifcfg-
em2
DEVICE=em2
BOOTPROTO=none
ONBOOT=yes
USERCTL=no
MASTER=bond0
SLAVE=yes
注意:建议不要指定
MAC
地址
(2)
编辑模块载入
配置文件
(/etc/)
,开机自动加载
bonding
模块到内核
vi
/etc/
alias
bond0
bonding
options
bond0
miimon=100
mode=1
alias
net-pf-10
off
#
关闭
ipv6
支持
< br>
说明:
miimon
是用来进行链路监测的。
比如
:miimon=100
,那么系统每
100ms<
/p>
监测一次
链路连接状态,如果有一条线路不通就转入另一条线路;
mode
的值表示工作模式,他共有
0
,
1
,
2
p>
,
3
,
4
,
5
,
6
六种模式,常用为
0
,
6<
/p>
,
1
三种,具体后面会介绍
mode=0
,表示
load
balancing (round-robin)
为负载均衡方式,两块网卡都工作,
但是与网
卡相连的交换必须做特殊配置
(
这两个端口应该采取聚合方式
)
,因为做
< br>bonding
的这两块
网卡是使用同一个
MAC
地址
mode=6
,表示
load
balancing (round-robin)
为负载均衡方式,两块网卡都工作,
但是该模
式下无需配置交换机,因为做
bonding
的这两块网卡是使用不同的
MAC
地址
mode=1
,
表示
fault-tolerance (active-backup)
< br>提供冗余功能,
工作方式是主备的工作方式,
也就是说默
认情况下只有一块网卡工作
,
另一块做备份
注意:
bonding
只能提供
链路监测,即从主机到交换机的链路是否接通。如果只是交换机对
外的链路
down
掉了,
而交换机本身并没有故障,
那么
bonding
会认为链路没有问题而继续
使用。
最后,为了验证你的绑定是否正确,重启操作系统吧。(完)
网卡绑定就是多张网卡逻辑上作为一张网卡用。可分为,负
载均衡绑定和冗余绑定两种。
1.
编辑虚拟网络接口配置文件
[root@test~]# more
/etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
IPADDR=172.16.4.100
NETMASK=255.255.255.0
BROADCAST=172.16.4.255
NETWORK=172.168.4.100
ONBOOT=yes
2.
编辑各网
卡的配置文件,注意编辑之前做好备
份工作
[root@test~]# more
/etc/sysconfig/network-scripts/ifcfg-eth0
BOOTPROTO=none
TYPE=Ethernet
DEVICE=eth0
ONBOOT=yes
MASTER=bond0
slave=yes
[root@test ~]#
more /etc/sysconfig/network-scripts/ifcfg-eth1
BOOTPROTO=none
-
-
-
-
-
-
-
-
-
上一篇:band模式
下一篇:COF的结构及其特性