扫一扫
关注微信公众号

Debian下通过Bonding实现双网卡单IP
2011-02-22   51CTO

Linux双网卡绑定一个IP地址,实质工作就是使用两块网卡虚拟为一块,使用同一个IP地址,是我们能够得到更好的更快的服务。其实这项技术在Sun和Cisco中早已存在,被称为Trunking和Etherchannel技术,在Linux的2.4.x的内核中也采用这这种技术,被称为bonding。本文以Debian为例介绍这个技术的实现。

bonding的原理

在正常情况下,网卡只接收目的硬件地址(MAC Address)是自身Mac的以太网帧,对于别的数据帧都过滤掉,以减轻驱动程序的负担。但是网卡也支持另外一种被称为混杂的模式,可以接收网络上所有的帧,比如说很多用物抓包工具就需要让网卡运行在这个模式下。bonding也运行在这个模式下,而且修改了驱动程序中的MAC地址,将两块网卡的MAC地址改成相同,可以接收特定MAC的数据帧。然后把相应的数据帧传送给bond驱动程序处理。

bonding模块工作方式

bonding有0-6七种模式,常用的工作方式为0、1、6三种:

mode=0:表示load balancing(round-robin)为负载均衡模式(两块网卡都要工作),但需要交换机支持并需要在交换机上进行相应配置。

mode=1:表示fault-tolerance(active-backup)提供冗余功能,工作方式是主务的方式,也就是说默认情况下只有一块网卡工作,另一块做备份。

mode=6:表示load balancing(round-robin)为负载均衡模式(两块网卡都要工作),不需要交换机支持。

bonding配置

使用如下命令安装bonding。

srv10:~# apt-get install ifenslave

使用如下命令让系统开机自动加载模块bonding。其中miimon参数是用于进行链路监测的。比如:miimon=100,那么系统每100ms监测一次链路连接状态,如果有一条线路不通就转入另一条线路;mode的值表示bonding工作模式。

srv10:~# sh -c "echo bonding mode=6 miimon=100 >> /etc/modules"

修改/etc/network/interfaces文件为如下内容。

auto lo
iface lo inet loopback 
auto bond0
iface bond0 inet static#虚拟网卡的TCP/IP配置
address 192.168.159.100
netmask 255.255.255.0
gateway 192.168.159.1
dns-nameservers 192.168.159.1
post-up ifenslave bond0 eth0 eth1
pre-down ifenslave -d bond0 eth0 eth1

如果在安装ifenslave后没有重新启动计算机,必须手动加载bonding模块。

srv10:~#  modprobe bonding mode=6 miimon=100

使用如下命令重新启动网卡。

srv10:~#  /etc/init.d/networking restart

作者简介:张勤,MCSE、MCDBA、RHCE,从事软件开发(Delphi、Java)、项目管理、系统集成工作。曾参与多个基于Windows及Linux的大型系统集成项目,并在国内多个知名IT网站发表技术类文章。

原文链接:http://os.51cto.com/art/201102/245483.htm

热词搜索:

上一篇:Squid代理服务器高级应用两例
下一篇:Windows网络故障排除八项实用技巧

分享到: 收藏