linux双网卡绑定
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、L inux bonding研究及实现
Linux Bonding
本文介绍Linux(具体发行版本是CentOS5.6)下的双卡绑定的原理及实现。
Linux双网卡绑定实现是使用两块网卡虚拟成为一块网卡设备,这简单来说,就是两块网卡具有相同的IP地址而并行链接聚合成一个逻辑链路工作。这项技术在Sun和Cisco中分别被称为Trunking和Etherchannel技术,在Linux的2.4.x及其以后的内核则称为Bonding技术。
bonding的前提条件:网卡应该具备自己独立的BIOS芯片,并且各网卡芯片组型号相同。同一台服务器上的网卡毫无疑问是是符合这个条件的。
Bonding原理
bonding的原理:在正常情况下,网卡只接收目的硬件地址(MAC Address)是自身MAC的以太网帧,过滤别的数据帧,以减轻驱动程序的负担;但是网卡也支持另外一种被称为混杂promisc的模式,可以接收网络上所有的帧,bonding就运行在这种模式下,而且修改了驱动程序中的mac地址,将两块网卡的MAC地址改成相同,可以接收特定MAC的数据帧。然后把相应的数据帧传送给bond驱动程序处理。
为方便理解bonding的配置及实现,顺便阐述一下Linux的网络接口及其配置文件。在Linux 中,所有的网络通讯都发生在软件接口与物理网络设备之间。与网络接口配置相关的文件,以及控制网络接口状态的脚本文件,全都位于/etc/sysconfig/netwrok-scripts/ 目录下。网络
接口配置文件用于控制系统中的软件网络接口,并通过这些接口实现对网络设备的控制。当系统启动时,系统通过这些接口配置文件决定启动哪些接口,以及如何对这些接口进行配置。接口配置文件的名称通常类似于ifcfg-
测试环境
本次作业环境中,使用的是CentOS5.6,其系统信息如下:
[root@support ~]# cat /etc/issue
CentOS release 5.6 (Final)
Kernel \r on an \m
[root@support ~]# uname -a
Linux support 2.6.18-238.9.1.el5 #1 SMP Tue Apr 12 18:10:13 EDT 2011 x86_64 x86_64 x86_64 GNU/Linux
可以通过modinfo bonding命令查看Linux是否支持bonding,据资料介绍,RHEL4已默认支持了,RHEL5、CentOS5毫无疑问也是支持的。系统有类似下面的信息输出,就说明已支持了。
[root@support ~]# modinfo bonding
filename: /lib/modules/2.6.18-238.9.1.el5/kernel/drivers/net/bonding/bonding.ko
author: Thomas Davis, tadavis@ and many others
description: Ethernet Channel Bonding Driver, v3.4.0-1
version: 3.4.0-1
license: GPL
srcversion: 358EAAF5610876F44387AEF
depends: ipv6
vermagic: 2.6.18-238.9.1.el5 SMP mod_unload gcc-4.1
parm: max_bonds:Max number of bonded devices (int)
…………
parm: debug:Print debug messages; 0 for off (default), 1 for on (int)
module_sig: 883f3504da4d65c2ddc58dbbe9356811249c0a0993d9c1c5b9055a7e4f2b4d86e86e bb2c5fbdbf09e2c41b93ca13b6b809914bc6a201c3cf694855143
Bonding配置
通过在/etc/sysconfig/network-scripts/ 目录下创建ifcfg-bond
Bonding接口创建以后,被绑定的网卡必须在他们的设置文件里面添加MASTER和SLA VE 两个参数。每个bonding接口的设置基本相同,具体配置如下:
1、新建/etc/sysconfig/network-scripts/ifcfg-bond0文件,输入以下配置信息:
[root@support ~]# cat /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
BOOTPROTO=static
IPADDR=10.8.0.231
NETMASK=255.255.0.0
NETWORK=10.8.0.0
BROADCAST=10.8.255.255
ONBOOT=yes
USERCTL=NO
BONDING_OPTS="mode=0 miimon=100"
说明:这里使用了BONDING_OPTS选项,则不需要再使用/etc/modprobe.conf 配置文件对绑定设备进行配置。参数mode=0,指负载均衡模式,详见下文。miimon是用来进行链路监测的,其原理是检测网上的链路状态,一般将miimon值设为100,表示系统每100ms监测一次链路连接状态,如果有一条线路不通就转入另一条线路。
2、修改/etc/sysconfig/network-scripts/ifcfg-eth0网卡属性
[root@support ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=none
HWADDR=00:30:48:56:DA:72
ONBOOT=yes
MASTER=bond0
SLA VE=yes