Linux IP Bonding(网卡冗余)

回复 收藏
本帖最后由 王钦利 于 2014-11-24 12:11 编辑

1:什么是 bonding
Linux bonding 驱动提供了一个把多个网络接口设备捆绑为单个的网络接口设置来使用,用于网络负载均衡及网络冗余
2:bonding     网络负载均衡
对于bonding的网络负载均衡是我们在文件服务器中常用到的,比如把三块网卡,当做一块来用,解决一个IP地址,流量过大,服务器网络压力过大的问题。对于文件服务器来说,比如NFS或SAMBA文件服务器,没有任何一个管理员会把内部网的文件服务器的IP地址弄很多个来解决网络负载的问题。如果在内网中,文件服务器为了管理和应用上的方便,大多是用同一个IP地址。对于一个百M的本地网络来说,文件服务器在多 个用户同时使用的情况下,网络压力是极大的,特别是SAMABA和NFS服务器。为了解决同一个IP地址,突破流量的限制,毕竟网线和网卡对数据的吞吐量是有限制的。如果在有限的资源的情况下,实现网络负载均衡,最好的办法就是 bonding
2)      网络冗余
对于服务器来说,网络设备的稳定也是比较重要的,特别是网卡。在生产型的系统中,网卡的可靠性就更为重要了。在生产型的系统中,大多通过硬件设备的冗余来提供服务器的可靠性和安全性,比如电源。bonding 也能为网卡提供冗余的支持。把多块网卡绑定到一个IP地址,当一块网卡发生物理性损坏的情况下,另一块网卡自动启用,并提供正常的服务,即:默认情况下只有一块网卡工作,其它网卡做备份
3.      bonding实验环境及配置
1)      实验环境
Red Hat Enterprise Linux Server release 6.4
使用两块网卡(eth0,eth1èbond0)l来实现bonding技术;
网络设置:192.168.10.100/24
2)      配置方法

  • 相关配置文件

  • /etc/sysconfig/network-scripts/ifcfg-bond0

  • /etc/sysconfig/network-scripts/ifcfg-eth0

  • /etc/sysconfig/network-scripts/ifcfg-eth1

  • /etc/modprobe.conf

  • /etc/rc.local

  • /proc/net/bonding/bond0

  • 开始配置

  • 备份eth0 eth1 配置文件
# cd /etc/sysconfig/network-scripts
# cp ifcfg-eth0 bak.ifcfg-eth0
# cp ifcfg-eth1 bak.ifcfg-eth1
# cp ifcfg-eth0 ifcfg-bond0

  • 建立ifcfg-bond0
# vi ifcfg-bond0
DEVICE=bond0
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.10.100
PRSIX=24
GATEWAY=192.168.10.1
BONDING_OPS="mode=1 miimon=100

  • 编辑ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=static
MASTER=bond0
SLAVE=yes

  • 编辑ifcfg-eth0
DEVICE=eth1
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=static
MASTER=bond0
SLAVE=yes

  • 编辑modprobe.conf
#cd /etc/modprobe.d
# vi modprobe.conf
追加内容
alias bond0 bonding
说明:
miimon 表示链路检查间隔,单位为毫秒;mode 的值表示工作模式,他共有0 、1 、2 、3 、4 、5 、6 七种模式:

  • 0 模式:负载均衡模式,RR 方式,全负载均 衡,需要Switch 侧做Trunk ,可失效一网卡;
  • 1 模式:热备模式,不需要Switch 侧支持;
  • 2 模式: 负载均衡模式,XOR 方式,根据来源MAC
  • 3 模式: 广播模式,所有网卡一起收发数据包,可失效一网卡;
  • 4 模式: 802.3ad 模式,需要Switch 支持802.3ad Dynamic Link Aggregation
  • 5 模式: 负载均衡模式,TLB 方式,半负载均 衡,发送为负载均衡,接收为动态分配,不需要Switch 侧支持,可失效一网卡;
  • 6 模式: 负载均衡模式,ALB 方式,全负载均 衡,网卡需支持动态更改MAC ,不需要Switch 支持,可失效一网卡;常用的为0,1 两种。

  • 编辑rc.local
追加如下 内容:
ifenslave bond0 eth0 eth1 miimon=100 mode=1
4. 结果测试
重启服务器,在开机加载服务有如下提示 输出则说明模块成功加载。
Bringing up interface bond0                         [  OK   ]
Bringing up interface eth0                          [  OK   ]
Bringing up interface eth1                          [  OK   ]

  • IP 配置----- ifconfig -a
  • 关连通状态----- ping 192.168.1.1
  • bond0 状态---- cat /proc/net/bonding/bond0
[root@localhost ~]#  cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.6.0 (September 26, 2009)
Bonding Mode: load balancing (round-robin)
MII Status: up
MII Polling Interval (ms): 0
Up Delay (ms): 0
Down Delay (ms): 0
Slave Interface: eth0
MII Status: up
Speed: Unknown
Duplex: Unknown
Link Failure Count: 0
Permanent HW addr: 1a:11:af:2f:87:ce
Slave queue ID: 0
Slave Interface: eth1
MII Status: up
Speed: Unknown
Duplex: Unknown
Link Failure Count: 0
Permanent HW addr: da:db:a8:9f:32:cd
Slave queue ID: 0

  • Bond 迁移状态
在同一网段用一台机器持续ping Bonding 主机,然后拔掉eth0 的网 线,同时使用其他网络接入服务。
service network restart
重启主机的网络服务;
ifconfig eth0 up
ifconfig eth0 down

注:本文档纯属自己总结,如果有什么问题,请及时提出;QQ:1078956079

2014-11-24 12:07 举报
已邀请:
0

kismyl2014

赞同来自:

学习了

回复帖子,请先登录注册

退出全屏模式 全屏模式 回复
评分
可选评分理由: