IT运维管理,创造商业价值!
中国IT运维网首页 | 资讯中心 | 运维管理 | 信息安全 | CIO视界 | 云计算 | 最佳案例 | 运维资源 | 专题策划 | 知识库 | 论坛

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

发表评论请到:http://bbs.cnitom.com

相关阅读

图文热点

以不变应万变 网络虚拟化应对园区网新挑战
以不变应万变 网络虚拟化应对园区网新挑战Forrester Research的分析师Robert Whiteley认为: “十年以来,虚拟化技术与网络...
OpenShift加入更多新元素 友好面对开发者
OpenShift加入更多新元素 友好面对开发者通过网络进行程序提供的服务称之为SaaS(Software as a Service),而将服务器平台...

本类热点