文档库 最新最全的文档下载
当前位置:文档库 › linux双网卡绑定

linux双网卡绑定

linux双网卡绑定
linux双网卡绑定

一、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-,其中 与配置文件所控制的设备的名称相关。在所有的网络接口中,最常用的就是以太网接口ifcfg-eth0,它是系统中第一块网卡的配置文件。虽然在不同的系统之间,文件的类型和数量并不一定相同,但各种的网络设备都需要用到这些文件保证设备的正常运作。bonding技术,就是通过配置文件建立绑定接口,从而实现多个物理网卡绑定到一个虚拟网卡。

测试环境

本次作业环境中,使用的是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@https://www.wendangku.net/doc/4013011823.html, 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 配置文件,就能够创建绑定接口。文件名称中的 为接口的编号,如第一个通道绑定接口的名称一般为ifcfg-bond0。ifcfg-bond 文件的内容与以太网接口的配置文件(如ifcfg-eth0)基本相同,只是DEVICE 选项的值,应该为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

3、修改/etc/sysconfig/network-scripts/ifcfg-eth1网卡属性

[root@support ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth1

DEVICE=eth1

BOOTPROTO=none

HWADDR=00:30:48:56:DA:73

ONBOOT=yes

HOTPLUG=no

DHCP_HOSTNAME=support

MASTER=bond0

SLA VE=yes

说明:修改单个网卡配置,主要是去掉IP 地址、子网掩码等信息。同时添加MASTER及SLA VE两项参数。

MASTER= 的值是以太网卡连接到的通道绑定接口的名称,这个指令与SLA VE 指令配合使用。

SLA VE=:yes - 表示此设备可以由MASTER 指令中配置的通道绑定接口进行控制。no - 表示此设备不能由MASTER 指令中配置的通道绑定接口进行控制。

4、编辑/etc/modules.conf 文件,添加:alias bond0 bonding,以使系统在启动时加载bonding 模块,对外虚拟网络接口设备为bond0

[root@support ~]# cat /etc/modprobe.conf

alias bond0 bonding

alias eth0 e1000

alias eth1 e1000

alias scsi_hostadapter ata_piix

alias scsi_hostadapter1 usb-storage

注:在linux6下测试时,发现没有modprobe.conf这个文件,需要进入modprobe.d文件夹创建bond0.conf,再将“alias bond0 bonding”添加到里面

[root@ara ~]# cat /etc/modprobe.d/bond0.conf

alias bond0 bonding

5、重启网络服务,以使用bond生效

[root@support ~]# service network restart

在网络设置可以看到bond0与eth0、eth1之间的主从关系

[root@support ~]# ifconfig

bond0 Link encap:Ethernet HWaddr 00:30:48:56:DA:72

inet addr:10.8.0.231 Bcast:10.8.255.255 Mask:255.255.0.0

inet6 addr: fe80::230:48ff:fe56:da72/64 Scope:Link

UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1

RX packets:19015 errors:0 dropped:0 overruns:0 frame:0

TX packets:4714 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:0

RX bytes:2557139 (2.4 MiB) TX bytes:469585 (458.5 KiB)

eth0 Link encap:Ethernet HWaddr 00:30:48:56:DA:72

UP BROADCAST RUNNING SLA VE MULTICAST MTU:1500 Metric:1

RX packets:10592 errors:0 dropped:0 overruns:0 frame:0

TX packets:2011 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:100

RX bytes:1295667 (1.2 MiB) TX bytes:209014 (204.1 KiB)

eth1 Link encap:Ethernet HWaddr 00:30:48:56:DA:72

UP BROADCAST RUNNING SLA VE MULTICAST MTU:1500 Metric:1

RX packets:8423 errors:0 dropped:0 overruns:0 frame:0

TX packets:2705 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:100

RX bytes:1261472 (1.2 MiB) TX bytes:260887 (254.7 KiB)

lo Link encap:Local Loopback

inet addr:127.0.0.1 Mask:255.0.0.0

inet6 addr: ::1/128 Scope:Host

UP LOOPBACK RUNNING MTU:16436 Metric:1

RX packets:1178 errors:0 dropped:0 overruns:0 frame:0

TX packets:1178 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:0

RX bytes:2054820 (1.9 MiB) TX bytes:2054820 (1.9 MiB)

至此,完成了bonding配置,系统已经在网卡的负载均衡模式下运行,随意拔掉一个网卡口的网线,网线依然正常。

Bonding工作模式

bonding的模式一共有7种,常用的为0、1两种:

round-robin(balance-rr) 0 网卡的负载均衡模式

active-backup 1 网卡的容错模式

balance-xor 2 需要交换机支持

broadcast 3 广播模式

ieee802.3ad 4 动态链路聚合模式,需要交换机支持

mode-tlb 5 自适应模式

mode-alb 6 网卡虚拟化方式

mode=0表示load balancing(round-robin)为负载均衡方式,两块网卡都工作。在这种模式下,能在提供带宽的负载均衡的同时提供失效保护。B

mode=1表示fault-tolerance(active-backup)提供冗余功能,工作方式是主备的工作方式,也就是说默认情况下只有一块网卡工作,另一块做备份。bonding定义了网卡的4个链路状态:正常状态(BOND_LINK_UP)、网卡出现故障(BOND_LINK_FAIL)、失效状态(BOND_LINK_DOWN)及网上恢复状态(BOND_LINK_BACK)。mii的作用就是依次检查网卡链路状态是否处于这些状态,然后通过标记某个变量来说明当前是否需要切换slave网卡。在这种模式下,两块网卡有一块是不工作的,同时,bond虚设备的MAC地址均一致,所以这张备用网卡不会被外界察觉,交换机也不存在向该端口发包的情况。当bond的mii检测到当前的active设备失效了以后,bonding会迅速将另外一块网卡设置为首选slave设备。在以上模式中,虚拟网卡的MAC地址始终是第一个slave网卡的MAC。由于外界学习到的

服务器MAC地址始终是不变的,在网络上确定了IP和MAC的唯一对应关系,保证了上层业务传输的逻辑一致性,所以链路的状态不会受很大的影响。

Bonding工作情况

1、工作在模式0时

通过查看bond0的工作状态查询能详细的掌握bonding的工作情况,正常状态下的/proc/net/bonding/bond0文件:

[root@support ~]# cat /proc/net/bonding/bond0

Ethernet Channel Bonding Driver: v3.4.0-1 (October 7, 2008)

Bonding Mode: load balancing (round-robin)

MII Status: up

MII Polling Interval (ms): 100

Up Delay (ms): 0

Down Delay (ms): 0

Slave Interface: eth0

MII Status: up

Speed: 100 Mbps

Duplex: full

Link Failure Count: 1

Permanent HW addr: 00:30:48:56:da:72

Slave Interface: eth1

MII Status: up

Speed: 100 Mbps

Duplex: full

Link Failure Count: 2

Permanent HW addr: 00:30:48:56:da:73

从win7 ping,通过拔插网线查看结果,不存在丢包

通过日志查看网卡工作情况

[root@support ~]# tail -f /var/log/messages

May 29 08:01:41 support kernel: e1000: eth0 NIC Link is Up 100 Mbps Full Duplex, Flow Control: RX/TX

May 29 08:01:41 support kernel: bonding: bond0: link status definitely up for interface eth0.

May 29 08:01:48 support kernel: e1000: eth1 NIC Link is Down

May 29 08:01:48 support kernel: bonding: bond0: link status definitely down for interface eth1, disabling it

May 29 08:02:18 support kernel: e1000: eth1 NIC Link is Up 100 Mbps Full Duplex, Flow Control: RX/TX

May 29 08:02:18 support kernel: bonding: bond0: link status definitely up for interface eth1.

May 29 08:08:49 support kernel: e1000: eth0 NIC Link is Down

May 29 08:08:49 support kernel: bonding: bond0: link status definitely down for interface eth0, disabling it

May 29 08:08:56 support kernel: e1000: eth0 NIC Link is Up 100 Mbps Full Duplex, Flow Control: RX/TX

May 29 08:08:56 support kernel: bonding: bond0: link status definitely up for interface eth0.

2、工作在模式1时

正常状态下的/proc/net/bonding/bond0文件:

[root@support ~]# cat /proc/net/bonding/bond0

Ethernet Channel Bonding Driver: v3.4.0-1 (October 7, 2008)

Bonding Mode: fault-tolerance (active-backup)

Primary Slave: None

Currently Active Slave: eth0

MII Status: up

MII Polling Interval (ms): 100

Up Delay (ms): 0

Down Delay (ms): 0

Slave Interface: eth0

MII Status: up

Speed: 100 Mbps

Duplex: full

Link Failure Count: 0

Permanent HW addr: 00:30:48:56:da:72

Slave Interface: eth1

MII Status: up

Speed: 100 Mbps

Duplex: full

Link Failure Count: 0

Permanent HW addr: 00:30:48:56:da:73

从win7 ping,通过拔插网线查看结果,发现在拔网线时,偶尔会存在丢掉一个包的情况。通过日志查看网卡工作情况

[root@support ~]# tail -f /var/log/messages

May 29 08:25:24 support kernel: e1000: eth0 NIC Link is Down

May 29 08:25:24 support kernel: bonding: bond0: link status definitely down for interface eth0, disabling it

May 29 08:25:24 support kernel: bonding: bond0: making interface eth1 the new active one.

May 29 08:25:32 support kernel: e1000: eth0 NIC Link is Up 100 Mbps Full Duplex, Flow Control: RX/TX

May 29 08:25:32 support kernel: bonding: bond0: link status definitely up for interface eth0.

May 29 08:27:02 support kernel: e1000: eth1 NIC Link is Down

May 29 08:27:02 support kernel: bonding: bond0: link status definitely down for interface eth1, disabling it

May 29 08:27:02 support kernel: bonding: bond0: making interface eth0 the new active one.

May 29 08:27:48 support kernel: e1000: eth1 NIC Link is Up 100 Mbps Full Duplex, Flow

Control: RX/TX

May 29 08:27:48 support kernel: bonding: bond0: link status definitely up for interface eth1.

小结

在测试过程中,发现丢包情况与设备有关,老式的网新易得服务器上做测试时,两个网卡无论是接到同一个二层交换机,还是分别接到两个二层交换机,在拔插网线,偶尔会出现丢掉一个包的情况。但是在戴尔R710上,当使用模式1时,丢包比较多,甚至在被其他计算机ping时,会出现ping不同的情况。

另外,模式0只是实现了简单的负载均衡及冗余备份。如果要实现高效的负载均衡,提高网络流量,需设置成模式4,而这需要交换机的支持,牵涉到交换机的链路聚合(LACP)功能。有待日后再研究。

二、L inux bonging (双网卡绑定)

一、引言现今几乎各行各业内部都建立了自己的服务器,由于服务器的特殊地位,它的可靠性、可用性及其 I/O 速度就显得非常的重要,保持服务器的高可用性和安全性是企业级IT 环境的重要指标,其中最重要的一点是服务器网络连接的高可用性,

为实现这些要求,现在服务器大都采用多网卡配置,系统大都采用现在非常流行的 linux 作为服务器工作的环境。现在带宽已经不是服务质量提高的瓶颈了,相对的网络设备和服务器的处理能力就渐渐成为新的瓶颈。为提高服务器的网络连接的可用性和可靠性,目前Sun公司的Trunking技术、3Com 公司的DynamicAccess 技术、Cisco 公司的Etherchannel技术等等都在研究将服务器的多个网卡接口绑定在一起的链路聚集技术,链路聚集技术将多个链路虚拟成一个逻辑链路进而提供了一种廉价、有效的方法扩展网络设备和服务器的带宽,提高网络的灵活性与可用性。

本文介绍 linux 下的 bonding 技术,linux 2.4.x 的内核中采用了这种技术,利用 bonding 技术可以将多块网卡接口通过绑定虚拟成为一块网卡,在用户看来这个聚合起来的设备好像是一个单独的以太网接口设备,通俗点讲就是多

块网卡具有相同的 IP 地址而并行连接聚合成一个逻辑链路工作。现在在关于linux bonding 技术中,有几种算法来实现负载均衡的要求,此文针对这些算法,在此进行简单分析与研究,讨论其不足,并提出另外一种在此基础上改进的一种基于传输协议的负载均衡实现方法。讨论如何实现多个网络接口的分在均衡及其故障接管。

二、负载均衡技术和高可用技术介绍

2.1 负载均衡技术负载均衡技术的主要思想就是如何根据某种算法将网络的业务流量平均分配到不同的服务器和网络设备上去,以减轻单台服务器和网络设备的负担,从而提高整个系统的效率。负载均衡既可以由有负载均衡功能的硬件实现,也可以通过一些专用的软件来实现,负载均衡是一种策略,它能让多台服务器或多条链路共同承担一些繁重的计算或者 I/O 任务,从而以较低的成本消除网络瓶颈,提高网络的灵活性和可靠性。

2.2 高可用技术实现负载均衡首先是基于网络的高可用性提出来的,高可用技术是容错技术的一个分支。实现系统的高可用性最简单的一个办法就是冗余。完整的网络负载均衡和高可用性网络技术有两个方面构成,一是多服务器的绑定和负载均衡,二是一个服务器内部的多网卡绑定的负载均衡,这里主要讨论一个服务器内部的多网卡绑定时的负载均衡。

三、Linux 的 bonding 技术中负载均衡的简单实现

3.1 Linux的bonding技术Linux的bonding技术是网卡驱动程序之上、数据链路层之下实现的一个虚拟层,通过这种技术,服务器接在交换机上的多块网卡不仅被绑定为一个 IP,MAC 地址也被设定为同一个,进而构成一个虚拟的网卡,工作站向服务器请求数据,服务器上的网卡接到请求后,网卡根据某种算法智能决定由谁来处理数据的传输。 Bonding技术可以提高主机的网络吞吐量和可用性。

3.2 Linux的几种发送均衡算法目前 Linux 的发送算法最主要的有三种:轮转算法(Round-Robin)、备份算法(Active-Backup)、MAC 地址异或算法(MAC-XOR) .下面对目前这三种主要算法进行简单分析。

3.2.1 轮转算法该算法是基于公平原则进行的,它为每个将要被发送的数据包选择发送接口,算法的主要思想是首先第一个数据包由一个接口发送,另一个数据包则由另外一个接口发送,下面依次进行循环选择。通过分析我们可以看出这种算法比较比较简单,在发送数据方面也比较公平,能保证网卡发送数据时候的负载均衡,资源利用率很高。但是我们知道如果一个连接或者会话的数据包从不同的接口发出的话,中途再经过不同的链路,在客户端很有可能会出现数据包无序到达的问题,而无序到达的数据包需要重新要求被发送,这样网络的吞吐量就会下降。

3.2.2 备份算法该算法将多个网卡接口中的一个接口设定为活动状态,其他的接口处于备用状态。当活动接口或者活动链路出现故障时,启动备用链路,由此可见此算法的优点是可以提供高网络连接的可用性,但是它的资源利用率较低,只有一个接口处于工作状态,在有 N 个网络接口的情况下,资源利用率为1/N.

3.2.3 MAC地址异或算法该算法的主要思想是:由服务器的 MAC 地址和客户端的MAC 地址共同决定每个数据包的发送端口号,由源 MAC 地址和目的 MAC 地址进行异或计算,并将异或结果对接口数求余计算。由于发送到同一个客户端的数据流经过同一个链路,因此数据包能够有序到达客户端。此算法在只有一个

客户机访问服务器或者服务器和客户机不在同一子网的情况下,由算法思想得知这种情况下负载不会均衡,在只有一个客户机访问服务器的时候,资源的利用率也是 1/N(N为接口数)。

首先是你要内核支持,如果不支持,请你自己重新编译,在编译的时候把网络设备选项中的Bonding driver support选中就可以了。

简介

=============================

Linux bonding驱动提供了一种方法,用以把多个网络接口(network interface)组合成一个逻辑的"bonded"接口。Bonded接口的工作方式取决于驱动的模式:不同的模式提供了热备份或负载均衡等不同的服务。此外,驱动还会监控链路的可用性。

Bonding驱动最早来自Donald Becker针对Linux 2.0内核的beowulf补丁。现在已经有了很多的变化,最早的来自beowulf网站的工具已经不能和现在的驱动一起使用。

如果你希望得到最新的版本,或者最新的用户工具,或者寻求相关的帮助,请留意本文末尾的链接。

目录

============================

1. Bonding驱动简介

2. Bonding驱动选项

3. 配置Bonding驱动

3.1 通过Sysconfig配置Bonding

3.1.1 通过Sysconfig使用DHCP

3.1.2 通过Sysconfig配置多个Bond

3.2 通过Initscripts配置Bonding

3.2.1 通过Initscripts使用DHCP

3.2.2 通过Initscripts配置多个Bond

3.3 通过Ifenslave手工配置Bonding

3.3.1 手工配置多个Bond

3.4 通过Sysfs手工配置Bonding

4. 查询Bonding配置

4.1 Bonding配置

4.2 网络配置

5. Switch(交换机)配置

6. 802.1q VLAN

7.链路监控

7.1 ARP监控

7.2 配置多个ARP监控目标

7.3 MII监控

8. 可能的问题

8.1 Routing(路由)

8.2 Ethernet设备重命名

8.3 网速变慢或Mii监控无法发现出错的链接

9. SNMP代理

10. Promiscuous(混杂)模式

11. 配置Bonding用于高可靠性

11.1 单一Switch下的高可靠性

11.2 多Switch下的高可靠性

11.2.1 多Switch下的Bonding模式选择

11.2.1 多Switch下的链路监控

12. 配置Bonding用于大吞吐量

12.1 单一Switch下的大吞吐量网络配置

12.1.1 单一Switch下的Bonding模式选择

12.1.2 单一Switch下的链路监控

12.2 多Switch下的大吞吐量网络配置

12.2.1 多Switch下的Bonding模式选择

12.2.1 多Switch下的链路监控

13. Switch的问题

13.1 链路建立和Failover延时

13.2 Incoming包重复

14. 硬件相关

14.1 IBM刀片服务器

15. FAQ

16. 相关资源和链接

1. Bonding驱动简介

=================================

大多数目前发布的Linux内核都以模块(module)方式带了bonding驱动,ifenslave工具也都已经安装好。如果你的Linux没有,或者你确实需要自己来编译bonding(比如要配置或安装自己的Linux内核),请参考如下步骤:

1.1 配置并编译支持bonding的内核

---------------------------------

当前版本的bonding驱动位于Linux内核源码(从https://www.wendangku.net/doc/4013011823.html,下载)的drivers/net/bonding子目录中。你可以在https://www.wendangku.net/doc/4013011823.html,下载到最新版本的内核源码。

通过"make menuconfig"(或"make xconfig" "make config")配置内核,在“Network device support”下选择“Bonding driver support”。建议你将bonding驱动配置为模块(module)方式,因为如果你要给驱动传递参数或者希望配置多个bonding驱动,只有通过模块方式。

编译并安装新的内核和编译出的模块,然后参照下面的步骤安装ifenslave。

1.2 安装ifenslave控制工具

--------------------------------

ifenslave控制工具也在内核源码中:Documentation/networking/ifenslave.c。一般建议最好使用和内核匹配的ifenslave(同一份源码中或同一个发布中),然而较老的内核中的ifenslave 也应该能够正常工作(较新的一些功能将不能使用),不过更新的内核中的ifenslave将可能不能工作。

参照如下步骤以安装ifenslave:

# gcc -Wall -O -I/usr/src/linux/include ifenslave.c -o ifenslave

# cp ifenslave /sbin/ifenslave

如果你的内核源码不在“/usr/src/linux”下,请将上面的“/usr/src/linux/include”替换成相应的正确目录。

如果希望备份现有的/sbin/ifenslave,或者只是试用一下,你可以把ifenslave 文件名加上内核版本信息(比如,/sbin/ifenslave-2.6.10)

重要提示:

如果你忽略了"-I"参数或者指定了一个不正确的目录,你可能会得到一个和内核不兼容的ifenslave。有些发布(比如Red Hat 7.1之前的版本)没有/usr/include/linux符号链接指向当前内核的include目录。

另一个重要提示:

如果你打算使用sysfs来配置bonding,你不需要使用ifenslave。

2. Bonding驱动选项

=================================

Bonding驱动的选项是通过在加载时指定参数来设定的。可以通过insmod或modprobe命令的命令行参数来指定,但通常在/etc /modules.conf或/etc/modprobe.conf配置文件中指定,或其他的配置文件中(下一节将会提及几个具体的细节)

下面列出可用的bonding驱动参数。如果参数没有指定,驱动会使用缺省参数。刚开始配置bond的时候,建议在一个终端窗口中运行"tail -f /var/log/messages"来观察bonding驱动的错误信息【译注:/var/log/messages 一般会打印内核中的调试信息】。

有些参数必须要正确的设定,比如miimon、arp_interval和arp_ip_target,否则在链接故障时会导致严重的网络性能退化。很少的设备不支持miimon,因此没有任何理由不使用它们。

有些选项不仅支持文本值的设定,出于兼容性的考虑,也支持数值的设定,比如,"mode=802.3ad"和"mode=4"效果是一样的。

具体的参数列表:

arp_interval

指定ARP链路监控频率,单位是毫秒(ms)。如果APR监控工作于以太兼容模式(模式0和模式2)下,需要把switch(交换机)配置为在所有链路上均匀的分发网络包。如果switch(交换机)被配置为以XOR方式分发网络包,所有来自ARP目标的应答将会被同一个链路上的其他设备收到,这将会导致其他设备的失败。ARP 监控不应该和miimon同时使用。设定为0将禁止ARP监控。缺省值为0。

arp_ip_target

指定一组IP地址用于ARP监控的目标,它只在arp_interval > 0时有效。这些IP地址是ARP请求发送的目标,用于判定到目标地址的链路是否工作正常。该设定值为ddd.ddd.ddd.ddd格式。多个IP地址通过逗号分隔。至少指定一个IP 地址。最多可以指定16个IP地址。缺省值是没有IP地址。

downdelay

指定一个时间,用于在发现链路故障后,等待一段时间然后禁止一个slave,单位是毫秒(ms)。该选项只对miimon监控有效。downdelay值应该是miimon值的整数倍,否则它将会被取整到最接近的整数倍。缺省值为0。

lacp_rate

指定在802.3ad模式下,我们希望的链接对端传输LACPDU包的速率。可能的选项:

slow 或者 0

请求对端每30s传输LACPDU

fast 或者 1

请求对端每1s传输LACPDU

缺省值是slow

max_bonds

为bonding驱动指定创建bonding设备的数量。比如,如果max_bonds为3,而且bonding驱动还没有加载,那么bond0,bond1,bond2将会被创建。缺省值为1。

miimon

指定MII链路监控频率,单位是毫秒(ms)。这将决定驱动检查每个slave链路状态频率。0表示禁止MII链路监控。100可以作为一个很好的初始参考值。下面的use_carrier选项将会影响如果检测链路状态。更多的信息可以参考“高可靠性”章节。缺省值为0。

mode

指定bonding的策略。缺省是balance-rr (round robin,循环赛)。可选的mode包括:

balance-rr 或者 0

Round-robin(循环赛)策略:按顺序传输数据包,从第一个可用的slave 到最后一个可用的slave。该模式提供了负载均衡和容错机制。

active-backup 或者 1

Active-backup(激活-备份)策略:只有一个slave是激活的(active)。其他的slave只有在当前激活的slave故障后才会变为激活的(active)。从外面看来,bond的MAC地址是唯一的,以避免switch(交换机)发生混乱。

在bonding 2.6.2和以后的版本中,如果在active-backup模式下出现failover【译注:指一个slave发生故障,另一个slave变为激活的设备】,bonding 将会在新的slave上发出一个或多个ARP请求,其中一个ARP请求针对bonding master接口及它上面配置的每个VLAN接口,从而保证该接口至少配置了一个IP 地址。针对VLAN接口的ARP请求将会被打上相应的VLAN id。

----------------------------------------------------------------------------------------

In bonding version 2.6.2 or later, when a failover

occurs in active-backup mode, bonding will issue one

or more gratuitous ARPs on the newly active slave.

One gratuitous ARP is issued for the bonding master

interface and each VLAN interfaces configured above

it, provided that the interface has at least one IP

address configured. Gratuitous ARPs issued for VLAN

interfaces are tagged with the appropriate VLAN id.

----------------------------------------------------------------------------------------

该模式提供了容错机制。下面的primary选项将会影响该工作模式的行为。

balance-xor 或者 2

XOR策略:基于指定的传输HASH策略传输数据包。缺省的策略是:(源MAC 地址XOR 目标MAC地址) % slave数量。其他的传输策略可以通过xmit_hash_policy选项指定,下文将会对之介绍。

该模式提供了负载均衡和容错机制。

broadcast 或者 3

Broadcase(广播)策略:在每个slave接口上传输每个数据包。该模式提供了容错机制。

802.3ad 或者 4

IEEE 802.3ad Dynamic link aggregation(动态链接聚合)。创建一个聚合组,它们共享同样的速率和双工设定。根据802.3ad规范将多个slave工作在同一个激活的聚合体下。

外出流量的slave选举是基于传输hash策略,该策略可以通过xmit_hash_policy选项从缺省的XOR策略改变到其他策略。需要注意的是,并不是所有的传输策略都是802.3ad适应的,尤其考虑到在802.3ad标准43.2.4章节提及的包乱序问题。不同的实现可能会有不同的适应性。

必要条件:

1. ethtool支持获取每个slave的速率和双工设定;

2. switch(交换机)支持IEEE 802.3ad Dynamic link aggregation。

大多数switch(交换机)需要经过特定配置才能支持802.3ad模式。

balance-tlb 或者 5

Windows 双网卡绑定

Windows 双网卡绑定 第一步:硬件连接与安装 首先进入BIOS设置将主板上集成的网卡打开,同时将独立网卡插入空闲的PCI插槽,用直通双绞线将两块网卡和宽带路由器的LAN口相连。重新启动Windows XP系统,自动为两块网卡安装好驱动程序。打开“网络连接”,会看到“本地连接”和“本地连接2”两个连接,而且这两个连接已经启用,硬件的连接与安装就算完成了。 第二步:绑定双网卡 下载并安装绑定双网卡的软件“NIC Express”(下载地址 https://www.wendangku.net/doc/4013011823.html,/soft/36156.htm)。在安装软件的过程中保持默认值,一路点击“Next”后,最后点击“Demo”就可以完成安装。在将两块网卡绑定而虚拟出新设备的时候,会提示“未通过微软认证”,连续点击几次“仍然继续”按钮就可以继续安装。 弹出“绑定”窗口后(见图),在中间文本框中输入绑定后的连接名称(如“网卡绑定”),点击“Add”按钮将两块网卡加入到下面的“Assigned Adpaters”即可。接着进入NIC Express的配置界面,保持默认值就可完成安装。

网卡绑定 第三步:配置连接 进入“网络连接”窗口,会看到多出了一个“网卡绑定NIC Express Virtual Adapter”的连接,并且已启用。现在,这两块网卡已经成功绑定,可以右键点击“网卡绑定”,进行IP地址、子网、网关等参数的配置。将IP地址设置为与路由器默认IP在同一网段,网关设置为路由器默认IP地址。 测速 现在就可以进行BT下载的测试了。以用BitComet下载一个350MB的热门电影为例。打开数据流量窗口,可以从流量曲线监控图以及BitComet的“任务摘要”中看到两块网卡都在进行数据传输。双网卡绑定组的传输速率从80KB/s起步,最高达到123KB/s,两块网卡的平均传输速率比较稳定,下载350MB的电影耗时23分钟,平均下载速度为110KB/s。利用单网卡执行相同的下载任务,发

Linux双网卡绑定实现就是使用两块网卡虚拟成为一块网卡

Linux双网卡绑定实现就是使用两块网卡虚拟成为一块网卡,这个聚合起来的设备看起来是一个单独的以太网接口设备,通俗点讲就是两块网卡具有相同的IP 地址而并行链接聚合成一个逻辑链路工作。其实这项技术在Sun和Cisco中早已存在,被称为Trunking和Etherchannel技术,在Linux的2.4.x的内核中也采用这这种技术,被称为bonding。bonding技术的最早应用是在集群——beowulf上,为了提高集群节点间的数据传输而设计的。下面我们讨论一下bonding 的原理,什么是bonding需要从网卡的混杂(promisc)模式说起。我们知道,在正常情况下,网卡只接收目的硬件地址(MAC Address)是自身Mac的以太网帧,对于别的数据帧都滤掉,以减轻驱动程序的负担。但是网卡也支持另外一种被称为混杂promisc的模式,可以接收网络上所有的帧,比如说tcpdump,就是运行在这个模式下。bonding也运行在这个模式下,而且修改了驱动程序中的mac地址,将两块网卡的Mac地址改成相同,可以接收特定mac的数据帧。然后把相应的数据帧传送给bond驱动程序处理。 绑定的前提条件:芯片组型号相同,而且网卡应该具备自己独立的BIOS芯片1.创建虚拟网卡 编辑虚拟网络接口配置文件,指定网卡IP vi /etc/sysconfig/ network-scripts/ ifcfg-bond0 [root@rhas5 root]# cp /etc/sysconfig/network-scripts/ifcfg-eth0 ifcfg-bond0 2.编辑虚拟网卡和物理网卡 #vi ifcfg-bond0 将第一行改成DEVICE=bond0 # cat ifcfg-bond0 DEVICE=bond0 BOOTPROTO=static IPADDR=172.31.0.13 NETMASK=255.255.252.0 BROADCAST=172.31.3.254 ONBOOT=yes USERCTL=no TYPE=Ethernet 这里要注意,不要指定单个网卡的IP 地址、子网掩码或网卡ID。将上述信息指定到虚拟适配器(bonding)中即可。 编辑物理网卡eth0,删除多余的内容,只留下如下内容。包括空格和注释。[root@rhas5 network-scripts]# cat ifcfg-eth0 DEVICE=eth0 ONBOOT=yes BOOTPROTO=static SLAVE=yes MASTER=bond0

用双网卡,提高网速

用双网卡,提高网速! 大家好,我前几天在去联想玩的时候,看到他们工程师一台机装好几个网卡,速度还不错,我看一下,回到公司也到网上找了一些资料,双(多)网卡用一个IP的技术,对于各种内网服务器,和电脑、、、、很有用处,我把我在网上找到的资料整理了一下,大家看一看,也许对大家有好处! 所谓双网卡,就是通过软件将双网卡绑定为一个IP地址,这个技术对于许多朋友来说并不陌生,许多高档服务器网卡(例如intel8255x系列、3COM服务器网卡等)都具有多网卡绑定功能,可以通过软硬件设置将两块或者多块网卡绑定在同一个IP地址上,使用起来就好象在使用一块网卡,多网卡绑定的优点不少,首先,可以增大带宽,假如一个网卡的带宽是100M,理论上两块网卡就是200M,三块就是300M,当然实际上的效果是不会是这样简单的增加的,不过经实际测试使用多个网卡对于增加带宽,保持带宽的稳定性肯定是有裨益的,如果交换机等相关条件不错的话,这个效果还是很能令人满意;其次,可以形成网卡冗余阵列、分担负载,双网卡被绑定成“一块网卡”之后,同步一起工作,对服务器的访问流量被均衡分担到两块网卡上,这样每块网卡的负载压力就小多了,抗并发访问的能力提高,保证了服务器访问的稳定和畅快,当其中一块发生故障的时候,另一块立刻接管全部负载,过程是无缝的,服务不会中断,直到维修人员到来。先下载一个软件NIC Express 下载完软件,先不忙安装,咱们还是先准备好硬件。 第一部分:硬件安装 虽然,理论上讲绑定越多网卡在一起,最终效果提升就越明显,但是考虑到复杂程度,这里就以绑定双网卡为例进行说明,如果读者觉得好玩,兴致很高的话,按照下面方法愿意绑定多少就绑定多少个网卡,其实一般同一台服务器,绑定2-3块网卡也就够了,太多了,据说因为链路聚合的先天缺点,会过多占用服务器资源,反过来会影响服务器速度(关于这个我没实验,不过我觉得凡事都离不开物极必反的道理,适度最好)。 打开服务器机箱,把两块网卡拧在主板PCI插槽上!:》 硬件的安装很简单,我也不在这里说了。省的大家骂我:》 第二部分:设置调试 下面要进行设置及调试了,也就是要将这两块8139D廉价网卡,如同高档服务器网卡那样绑

linux双网卡做成bond0

双网卡做成b o n d0的方法 说明 所谓bond,就是把多个物理网卡绑定成一个逻辑上的网卡 好处:增加带宽接入,还可以实现主备功能,当其中一个网卡挂掉,不会影响网络连接。并且节约IP。 实施案例讲解 我们的测试服务器 双网卡 E 我们需要将这2个网卡做成一个bond0网卡 1.编辑eth1. vi/etc/sysconfig/network-scripts/ifcfg-eth1 修改为 我们去掉了IP,MAC,掩码网关,bootproto设置为none 2.编辑eth2 同样这样更改eth2,如下图所示 3.创建并且编辑bond0网卡 vi/etc/sysconfig/network-scripts/ifcfg-bond0 增加如下参数 可以看到,和我们平时用的eth1网卡配置差不多,只是少了MAC地址。。。 编辑vi/etc/modprobe.conf文件 添加如下参数 编辑好了之后重启网卡,会发现eth1eth2无IP,依然通了外网 至此,我们的bond0已经创建成功 接下来我们需要去编辑启动文件添加一行 vi/etc/rc.local 添加ifenslavebond0eth1eth2 重启服务器,测试是否能成功 多个bond 如果是创建多个bond的时候,我们修改vi/etc/modprobe.conf配置文件的时候依照下图添加,依次增加 Eth2eth3….等修改方式同上。 如果bond的模式(请查看参数讲解)不同,那么修改为 这种情况遇到较少,我们了解就好 参数讲解 Bond有7种模式,我们常用的是 mode=0:平衡负载模式,有自动备援,但需要”Switch”支援及设定。 mode=1:自动备援模式,其中一条线若断线,其他线路将会自动备援。 mode=6:平衡负载模式,有自动备援,不必”Switch”支援及设定。

详解双网卡绑定

Linux下的双网卡绑定bond0 em1 em2 一、什么是bonding Linux bonding 驱动提供了一个把多个网络接口设备捆绑为单个的网络接口设置来使用,用于网络负载均衡及网络冗余 二、bonding应用方向 1、网络负载均衡 对于bonding的网络负载均衡是我们在文件服务器中常用到的,比如把三块网卡,当做一块来用,解决一个IP地址,流量过大,服务器网络压力过大的问题。对于文件服务器来说,比如NFS或SAMBA文件服务器,没有任何一个管理员会把内部网的文件服务器的IP地址弄很多个来解决网络负载的问题。如果在内网中,文件服务器为了管理和应用上的方便,大多是用同一个IP地址。对于一个百M的本地网络来说,文件服务器在多个用户同时使用的情况下,网络压力是极大的,特别是SAMABA和NFS服务器。为了解决同一个IP地址,突破流量的限制,毕竟网线和网卡对数据的吞吐量是有限制的。如果在有限的资源的情况下,实现网络负载均衡,最好的办法就是bonding 2、网络冗余 对于服务器来说,网络设备的稳定也是比较重要的,特别是网卡。在生产型的系统中,网卡的可靠性就更为重要了。在生产型的系统中,大多通过硬件设备的冗余来提供服务器的可靠性和安全性,比如电源。bonding 也能为网卡提供冗余的支持。把多块网卡绑定到一个IP地址,当一块网卡发生物理性损坏的情况下,另一块网卡自动启用,并提供正常的服务,即:默认情况下只有一块网卡工作,其它网卡做备份 三、bonding实验环境及配置 1、实验环境 系统为:CentOS,使用2块网卡(em1、em2 ==> bond0)来实现bonding技术 2、bonding配置 第一步:先查看一下内核是否已经支持bonding 1)如果内核已经把bonding编译进内核,那么要做的就是加载该模块到当前内核;其次查看ifenslave该工具是否也已经编译 modprobe -l bond* 或者modinfo bonding modprobe bonding lsmod | grep 'bonding' echo 'modprobe bonding &> /dev/null' >> /etc/rc.local(开机自动加载bonding模块到内核) which ifenslave 注意:默认内核安装完后就已经支持bonding模块了,无需要自己手动编译 2)如果bonding还没有编译进内核,那么要做的就是编译该模块到内核 (1)编译bonding tar -jxvf kernel-XXX.tar.gz cd kernel-XXX

linux双网卡做成bond

l i n u x双网卡做成b o n d 集团企业公司编码:(LL3698-KKI1269-TM2483-LUI12689-ITT289-

双网卡做成b o n d0的方法说明 所谓bond,就是把多个物理网卡绑定成一个逻辑上的网卡 好处:增加带宽接入,还可以实现主备功能,当其中一个网卡挂掉,不会影响网络连接。并且节约IP。 实施案例讲解 我们的测试服务器 双网卡 E 我们需要将这2个网卡做成一个bond0网卡 1.编辑eth1. vi/etc/sysconfig/network-scripts/ifcfg-eth1 修改为 我们去掉了IP,MAC,掩码网关,bootproto设置为none 2.编辑eth2 同样这样更改eth2,如下图所示 3.创建并且编辑bond0网卡 vi/etc/sysconfig/network-scripts/ifcfg-bond0 增加如下参数

可以看到,和我们平时用的eth1网卡配置差不多,只是少了MAC地址。。。 编辑vi/etc/modprobe.conf文件 添加如下参数 编辑好了之后重启网卡,会发现eth1eth2无IP,依然通了外网 至此,我们的bond0已经创建成功 接下来我们需要去编辑启动文件添加一行 vi/etc/rc.local 添加ifenslavebond0eth1eth2 重启服务器,测试是否能成功 多个bond 如果是创建多个bond的时候,我们修改vi/etc/modprobe.conf配置文件的时候依照下图添加,依次增加 Eth2eth3….等修改方式同上。 如果bond的模式(请查看参数讲解)不同,那么修改为 这种情况遇到较少,我们了解就好 参数讲解 Bond有7种模式,我们常用的是 mode=0:平衡负载模式,有自动备援,但需要”Switch”支援及设定。mode=1:自动备援模式,其中一条线若断线,其他线路将会自动备援。mode=6:平衡负载模式,有自动备援,不必”Switch”支援及设定。七种bond模式说明:

服务器双网卡绑定知识讲解

双网卡绑定实践 Windows平台下常用的双网卡绑定软件有Intel PROSet、NICExpress。本文主要介绍用Intel PROset实现双网卡绑定的方法。 英特尔PROSet 是一个高级的配置实用程序,可用来测试英特尔网络适配器并配置标准和高级功能。通常Intel网卡的驱动包中就包含这个程序,在安装驱动的时候PROSet默认是被安装的。 测试环境: 测试机:R525 G3,Intel双千兆网卡 OS:windows 2003 server 企业版32位 终端:联想笔记本(用于测试服务器双网卡绑定效果) 步骤: 1、打开设备管理器,双击任意一块Intel 82576; 注意R525 G3默认有3块网卡,82574L是管理网口 2、在弹出的配置对话框中,选择分组页面。此时由于系统中的网卡没有进行绑定,因此此

时组下拉列表框是灰色不可选的,单击“新组”; 3、在弹出的“新组向导”对话框中,填写组的名称,下一步; 4、钩选需要绑定的两个网卡,下一步;

5、这里列出了可选择的网卡绑定的模式,常用的是容错和负载平衡。这里我们选择容错,单击下一步; 6、完成向导;

7、此时我们可以看到刚才的分组页面中组的下拉列表中已经有team1; 8、同时弹出的还有team1的属性对话框,单击设置页面,可以看到其中一块网卡状态为“活动”,另一块网卡装状态为“待命”。在此界面中还可进行删除组和修改组的操作,单击“修改组”;

9、在弹出的对话框中,可以设置双网卡的主从关系,如不进行设定,此关系是不固定的。即:当断掉当前活动状态的主网口时,待命的网口将接替主网口的位置,对外提供服务,并成为主网口。当之前断开的网口恢复后,主从关系不会改变,该网口变为待命状态。 10、固定主从关系,设置当前活动的网口为主适配器,待命网口为次适配器;

LINUX下双网卡绑定技术实现负载均衡和失效保护

保持服务器的高可用性是企业级 IT 环境的重要因素。其中最重要的一点是服务器网络连接的高可用性。网卡(NIC)绑定技术有助于保证高可用性特性并提供其它优势以提高网络性能。 我们在这介绍的Linux双网卡绑定实现就是使用两块网卡虚拟成为一块网卡,这个聚合起来的设备看起来是一个单独的以太网接口设备,通俗点讲就是两块网卡具有相同的IP地址而并行链接聚合成一个逻辑链路工作。其实这项技术在Sun和Cisco中早已存在,被称为Trunking和Etherchannel 技术,在Linux的2.4.x的内核中也采用这这种技术,被称为bonding。bonding技术的最早应用是在集群——beowulf上,为了提高集群节点间的数据传输而设计的。下面我们讨论一下bonding 的原理,什么是bonding需要从网卡的混杂(promisc)模式说起。我们知道,在正常情况下,网卡只接收目的硬件地址(MAC Address)是自身Mac的以太网帧,对于别的数据帧都滤掉,以减轻驱动程序的负担。但是网卡也支持另外一种被称为混杂promisc的模式,可以接收网络上所有的帧,比如说tcpdump,就是运行在这个模式下。bonding也运行在这个模式下,而且修改了驱动程序中的mac地址,将两块网卡的Mac地址改成相同,可以接收特定mac的数据帧。然后把相应的数据帧传送给bond驱动程序处理。 说了半天理论,其实配置很简单,一共四个步骤: 实验的操作系统是Redhat Linux Enterprise 3.0 绑定的前提条件:芯片组型号相同,而且网卡应该具备自己独立的BIOS芯片 双网卡邦定的拓朴图(见下图) 1. 1.编辑虚拟网络接口配置文件,指定网卡IP 2.vi /etc/sysconfig/ network-scripts/ ifcfg-bond0 3.[root@rhas-13 root]# cp /etc/sysconfig/network-scripts/ifcfg-eth0 ifcfg-bond0 4. 2 #vi ifcfg-bond0 5.将第一行改成 DEVICE=bond0 6.# cat ifcfg-bond0 7.DEVICE=bond0 8.BOOTPROTO=static 9.IPADDR=172.31.0.13 https://www.wendangku.net/doc/4013011823.html,MASK=255.255.252.0 11.BROADCAST=172.31.3.254 12.ONBOOT=yes 13.TYPE=Ethernet 14.这里要主意,不要指定单个网卡的IP 地址、子网掩码或网卡 ID。将上述信息指定到虚拟适配器(bonding)中即可。 15.[root@rhas-13 network-scripts]# cat ifcfg-eth0 16.DEVICE=eth0 17.ONBOOT=yes 18.BOOTPROTO=dhcp 19.[root@rhas-13 network-scripts]# cat ifcfg-eth1 20.DEVICE=eth0 21.ONBOOT=yes 22.BOOTPROTO=dhcp 复制代码 3 # vi /etc/modules.conf “自己实验结果:centos文件为:/etc/modprobe.conf“ 1.编辑 /etc/modules.conf 文件,加入如下一行内容,以使系统在启动时加载bonding模块,对外虚拟网络接口设备为 bond0 2.

常用操作系统双网卡绑定方法

常用操作系统双网卡绑定方法 目录 一、RHEL 5.7 LINUX 下网卡绑定设置 (1) 二、RHEL6 LINUX 下网卡绑定设置 (3) 三、SUSE 10 下网卡绑定设置 (11) 四、SUSE 11 下网卡绑定设置 (16) 五、Windows 下网卡绑定设置 (22) 一、RHEL 5.7 LINUX 下网卡绑定设置 [root@Linux5 ~]# more /etc/sysconfig/network-scripts/ifcfg-bond0 # Broadcom Corporation NetXtreme II BCM5709S Gigabit Ethernet DEVICE=bond0 BOOTPROTO=static ONBOOT=yes IPADDR=10.96.19.207 NETMASK=255.255.255.0 GATEWAY=10.96.19.1 TYPE=Ethernet [root@Linux5 ~]# more /etc/sysconfig/network-scripts/ifcfg-eth0 # Broadcom Corporation NetXtreme II BCM5709S Gigabit Ethernet DEVICE=eth0 BOOTPROTO=none HWADDR=34:40:B5:BD:24:18 ONBOOT=yes MASTER=bond0 SLAVE=yes TYPE=Ethernet [root@Linux5 ~]# more /etc/sysconfig/network-scripts/ifcfg-eth1 # Broadcom Corporation NetXtreme II BCM5709S Gigabit Ethernet DEVICE=eth1 BOOTPROTO=none HWADDR=34:40:B5:BD:24:1A ONBOOT=yes MASTER=bond0

linux网卡绑定(多组)和解绑实现步骤

linux网卡绑定(多组)和解绑实现步骤 2013年5月20日 15:14 绑定 1.修改配置文件: a.在/etc/modprobe.conf中加入一行:alias bondN bonding,其中bondN 是绑定后公用网口的名称,依实际情况而定,一般第一个绑定用bond0,第二 个用bond1… ,如果已经有,不用添加,使用后也不用删除该行 b.在所有待绑定网口的配置文件(/etc/sysconfig/network-scripts/)中加入 以下两行: 其中: ifcfg-ehtN中的N是待绑定的网口号,如eth0,eth1… bondN是绑 定后的共用网口名称,可以是bond1,bond2…但是要与ifcfg-ethN和 /etc/modprobe.conf这两个配置文件中的配置项对应起来。 c.添加绑定网口bondN的配置文件,在与ifcfg-ehtN平级的目录下添加 ifcfg-bondN文件,键入以下内容: 2.安装bonding内核模块:modprobe bondN 3.重启网卡service network restart 解绑 1.卸载bonding内核模块:modprobe -r bondN 2.删除ifcfg-bondN配置文件,删除ifcfg-ehtN配置文件中绑定时添加的两行。 3.重启网卡service network restart 注意 1.多组绑定需要将ifcfg-ethN文件中指定不同代理绑定网口,即bond0,1, 2..。 2.ifcfg-bondN中将设备名、IP做响应修改。 3./etc/modprobe.conf文件中添加alias bondN bonding。每隔bond端口用一行。 4.以上均为centos 5.5中的配置,如果在 6.0中,没有/etc/modprobe.conf,需要在 /etc/modprobe.d目录中添加文件bonding.conf,将alias bondN bonding写入该 文件中。 5.如果需要负载均衡,在alias bondN bonding行下写options bondN miimon=100 mode=0 问题 1.bond0在解绑之后虽然用ifconfig看不到了,使用ifconfig bond0 up也不能启用, 但是在X中network配置窗口中任然有bond0这一项。不过这个不影响使用,再下 次绑定时仍按照以上步骤操作即可。

dell服务器双网卡绑定与端口聚合

Broadcom Gigabit Ethernet Adapter Teaming 任何可用的千兆BRODCOM网卡都可以配置为TEAM的一部分.TEAMING是一种将多块千兆BRODCOM网卡绑定作为一个虚拟网卡.好处就是负载均衡. 通过选择每一个可用的千兆BRODCOM网卡并添加它们到负载均衡成员栏来创建TEAM.对于用户和应用程序,只看到一个虚的网卡. 负载均衡组中的成员共享绑定的数据流. 在一个基本的成员区域中,任一个千兆BRODCOM网卡都可以被指定为主成员负责数据流的控制,而指定为备用成员的网卡只有在所有的主 成员网卡都失败时,才开始接管数据流.一旦任一个主成员网卡恢复,数据马上由该主成员控制. 创建teaming包含下列几个步骤: * 打开BASP属性窗口 * 创建teams * 添加网卡到teams * 分配一个IP地址给teamss * 重启机器 BASP是适用于windows2003,windows2000,windowsNT,Redhat Liunx,NetWare的一个broadcom的中介型驱动程 序,需要先安装对应的broadcom网卡驱动程序. 目前它提供了负载均衡;错误冗余;VLAN高级功能,都通过创建teaming来实现. 注意: 一个team可以包含1到8个网卡,每个网卡都可以指定为主成员或备用成员. BASP的负载均衡;错误冗余功能支持与第三方厂商网卡在同一个team中协同工作. BASP FOR Windows 2000 & 20003 & NT提供以下选项: - 支持下列网卡作为故障应急(failover) Alteon AceNic,3COM 10/100 Server adapters;intel 10/1000 server

dell服务器双网卡绑定与端口聚合

端口聚合(IEEE802.3ad Port Trunking) 可将2至8个10/100Base-TX端口聚合成一条干路,在全双工工作模式下达到400Mbps-1.6Gbps的带宽。端口聚合技术能充分利用现有设备实现高速数据传递,也可以通过千兆端口聚合技术实现千兆位链路的聚合,最多可以聚合4Gbps的链路带宽。 Broadcom Gigabit Ethernet Adapter Teaming 任何可用的千兆BRODCOM网卡都可以配置为TEAM的一部分.TEAMING是一种将多块千兆BRODCOM 网卡绑定作为一个虚拟网卡.好处就是负载均衡. 通过选择每一个可用的千兆BRODCOM网卡并添加它们到负载均衡成员栏来创建TEAM.对于用户和应用程序,只看到一个虚的网卡. 负载均衡组中的成员共享绑定的数据流. 在一个基本的成员区域中,任一个千兆BRODCOM网卡都可以被指定为主成员负责数据流的控制,而指定为备用成员的网卡只有在所有的主 成员网卡都失败时,才开始接管数据流.一旦任一个主成员网卡恢复,数据马上由该主成员控制. 创建teaming包含下列几个步骤: * 打开BASP属性窗口 * 创建teams * 添加网卡到teams * 分配一个IP地址给teamss * 重启机器 BASP是适用于windows2003,windows2000,windowsNT,Redhat Liunx,NetWare的一个broadcom的中介型驱动程 序,需要先安装对应的broadcom网卡驱动程序. 目前它提供了负载均衡;错误冗余;VLAN高级功能,都通过创建teaming来实现. 注意: 一个team可以包含1到8个网卡,每个网卡都可以指定为主成员或备用成员. BASP的负载均衡;错误冗余功能支持与第三方厂商网卡在同一个team中协同工作. BASP FOR Windows 2000 & 20003 & NT提供以下选项: - 支持下列网卡作为故障应急(failover) Alteon AceNic,3COM 10/100 Server adapters;intel 10/1000 server adapters;intel 1000baseSX server adapter; intel 82559 板载网卡 - 智能负载均衡,交换机不需设置. - 普通链路聚合(GEC/FEC,Open Trunk),需要在交换机上启用trunking - IEEE802.3ad链路聚合(静态配置),需要交换机支持802.3ad - 通过IEEE802.1Q-1988tagging,每个网卡最多支持64个VLANS,只支持braodcom或Alteon网卡

linux下网卡做绑定

linux 下网卡做绑定 1.用root 用户登录 2 、用ifconfig 命令看一下ip 地址,看一下eth0 和eth1 是否获取到IP 地址(因为linux 这 台服务器是连接在一台DHCP 的服务器) 查看到IP 地址为eth0 eth1 broadcast :mask :(eth0 和eth1 都是这个broadcast 和mask ) 3 、编辑虚拟网络接口配置文件, 指定网卡IP vi /etc/sysconfig/ network-scripts/ ifcfg-bond0 创建一个虚拟网络接口配置文件 4 、[root@rhas-13 root]# cp /etc/sysconfig/network-scripts/ifcfg-eth0 ifcfg-bond0 把 ifcfg-eth0 里面的配置文件复制到ifcfg-bond0 里面去 然后用vi ifcfg-bond0 命令修改虚拟配置端口。

5 、修改第一行DEVICE=bond0 ,然后把配置改成eth0 的配置(配置完成为下边的图) 6 、用cat 命令查看一下eth0 和eth1 的配置

7 、# vi /etc/modprobe.conf 编辑/etc/modprobe.conf 文件,加入如下一行内容,以使系统在启动时加载bonding 模块 8 、加入下列两行 alias bond0 bonding options bond0 miimon=100 mode=1

说明:miimon 是用来进行链路监测的。比如:miimon=100 ,那么系统每100ms 监测一次链路连接状态,如果有一条线路不通就转入另一条线路;mode 的值表示工作模式,他共有0 ,1,2,3 四种模式,常用的为0,1 两种。 mode=0 表示load balancing (round-robin) 为负载均衡方式,两块网卡都工作。 mode=1 表示fault-tolerance (active-backup) 提供冗余功能,工作方式是主备的工作方式, 也就是说默认情况下只有一块网卡工作, 另一块做备份 . bonding 只能提供链路监测,即从主机到交换机的链路是否接通。如果只是交换机对外的链路down 掉了,而交换机本身并没有故障,那么bonding 会认为链路没有问题而继续使用 9 、# vi /etc/rc.d/rc.local

INTERNET双网卡绑定一个IP

INTERNET双网卡绑定一个IP 第一步:安装好所有网卡驱动程序,可以在网络-->适配器里看到如图一(当然可能你没有这么多的网卡,只看到两张或三张),其中有两张INTERNET 的网卡,因我这么服务器是HP的,网卡已经是OEM产品了,所以显示的是HP 10/100TX PCI FAST ETHERNET ADAPTER,如果你买的是原装INTERNET网卡,显示的应是INTETNET 10/100TX PCI FAST ETHERNET ADAPTER(以下不再另加说明)。 此主题相关图片如下: 第二步:选中[1] HP 10/100TX PCI ETHERNET ADAPTER BUS 0 ...点击属性(P)...出现另一对话框,如图二:

第三步:在Show all 8255x-based adapters前面的小方框点上小勾,如图三: 第四步:经过第三步,可以看到所有的INTERNET网卡都显示出来了,点击Adapter Teaming,出现图四:

第五步:从图四中可以看出,出现一个二块小网卡的标志,那就是网卡组,不过现在还没有加入网卡,图四的下部分是网卡组的功能,第一个是AFT ONLY 即容错功能,第二个是load balancing即网络平衡功能,第三个是fast etherchannel即加快网络速度功能,一般来说做无盘是为了加快速度,所以要选第三个。 第六步:选中图四网卡组下面的网卡,点击Move Up,得到如图五所示的配置:

第七步:图五中点OK确定,在网络-->适配器里可以看到多了一个适配器,如图六:

第八步:在图六中点协议,再选中TCP/IP通讯协议,如图七:

如何让双网卡同时工作

如何让双网卡同时工作 NIC Express是一款功能非常独特的网络加速程序(点击下载NIC Express),可以绑定多块网卡以组成一块虚拟网卡,这样可以增加网络的带宽,当然前提是网卡的传输速率必须相同,这样才能在网络高负荷状态时实现负载均衡,否则是没有任何意义的。 程序的安装 接下来,就可以开始安装和配置NIC Express,这里需要注意的主要有3个方面: 1. 启用网络负载均衡 安装过程中会弹出一个提示对话框,这里是询问是否启用“Load Balancing function ali ty”,即网络负载均衡,这个功能可以在数据流量比较大时自动分配到各个网卡产上,以减轻单块网卡的压力,从而达到流畅的访问效果,因此这里当然是选择“Enabled”啦。 2. 虚拟网卡驱动程序的安装 安装过程的最后会报告说NIC Express的虚拟网卡驱动程序未曾通过Windows徽标测试,无法验证同Windows XP的相容性,询问是否继续,请单击“仍然继续”按钮继续安装。 3. 设置绑定的网卡 接下来,我们需要对绑定的网卡进行设置。计算机中安装的所有网卡将在主窗口的“A vailab le”列表框中出现,选中后单击“Add”按钮将其添加到下面的“Assigned Adapter s”列表框中即可完成添加操作。 默认设置下,绑定网卡组会使用“New Array”作为名称,当然也可以重新输入一个名称,然后会进入配置对话框,我们并不需要进行修改,直接使用默认设置即可。 网卡组的设置

进入“网络连接”窗口,可以看到本地连接图标已增加为3个,增加的那个“NIC Exp ress Virtual Miniport”就是绑定后的网卡组,它的使用与单一网卡完全相同,相当于一个单一的虚拟网卡,按照单一网卡的设置参数进行设置即可,可以为这块虚拟网卡设置IP 地址、子网掩码、网关等参数。 1. 设置监控内容 从开始菜单的程序组中找到“NIC Express Enterprise Edition”选项,这是NIC Exp ress软件自带的一个监控程序,在“setting”标签页中可以设置网卡流量的计量单位,这里提供了Packets/Sec、 Mbits/Sec、Kbits/Sec三种单位,默认使用Mbits/Sec(兆/每秒),我们只需要在“Graph Detail”中将默认的“By Protocol”重置为“By Incoming/Outgoi ng”即可。 如果你希望观察网卡组中每块网卡的流量或者整个组的流量,只要在“Select Device”中选择相应的设备即可。 2. 设置网卡绑定模式 切换到“Advanced”标签页,你可以在这里设置网卡绑定的工作模式,双网卡组默认工作在“NIC Express ELB”模式;如果需要关闭网络负载均衡功能,可以在这里选择“Load Balancing Disa ble”,其他的选项就不用设置了。 NIC Express可以通过绑定多块网卡以增加网络的带宽.需要注意的一点,在绑定网卡时,网卡的传输速率必须相同NIC Express才可以在网络高负荷状态做到负载均衡,否则是没有任何意义的。 我照着以上提示安装并设置,但是发现该软件不支持winXP,只能发现一个网卡。 不知哪位高手能提供一个新的软件解决绑定双网卡。

Linux双网卡绑定和解除绑定的实现

Linux双网卡绑定和解除绑定的实现 双网卡绑定实现就是使用两块网卡虚拟成为一块网卡,这个聚合起来的设备看起来是一个单独的以太网接口设备,通俗点讲就是两块网卡具有相同的IP地址而并行链接聚合成一个逻辑链路工作。根据交换机可支持的功能不通,最常见的是设定为主备方式的双网卡绑定。 一、操作步骤 这里以绑定两个网卡为示例描述。配置文件都在/etc/sysconfig/network-scripts/目录下。 1、编辑新的ifcfg-bond0文件 增加如下内容: 引用 # cat /etc/sysconfig/network-scripts/ifcfg-bond0 DEVICE=bond0 IPADDR=192.168.1.155 NETMASK=255.255.255.0 ONBOOT=yes BOOTPROTO=none USERCTL=no 这是最后bond0设备的实际IP设置。 2、分别编辑ifcfg-eth0和ifcfg-eth1文件 引用 # cat /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 USERCTL=no ONBOOT=yes MASTER=bond0 SLAVE=yes BOOTPROTO=none # cat /etc/sysconfig/network-scripts/ifcfg-eth1

DEVICE=eth1 USERCTL=no ONBOOT=yes MASTER=bond0 SLAVE=yes BOOTPROTO=none 3、修改/etc/modules.conf文件 # vi /etc/modules.conf 添加如下内容: 引用 alias bond0 bonding options bond0 miimon=100 mode=1 说明: 引用 miimon是用来进行链路监测的。比如:miimon=100,那么系统每100ms监测一次链路连接状态,如果有一条线路不通就转入另一条线路; mode的值表示工作模式,他共有0,1,2,3四种模式,常用的为0,1两种。需根据交换机可提供的工作模式选择。 mode=0表示load balancing (round-robin)为负载均衡方式,两块网卡都工作。 mode=1表示fault-tolerance (active-backup)提供冗余功能,工作方式是主备的工作方式,也就是说默认情况下只有一块网卡工作,另一块做备份。 ※注意: 引用 a、bonding只能提供链路监测,即从主机到交换机的链路是否接通。如果只是交换机对外的链路down掉了,而交换机本身并没有故障,那么bonding会认为链路没有问题而继续使用。 b、设置的模式要与交换机设置的模式一致。

SUSE Linux双网卡绑定设置详解

suse linux双网卡绑定设置详解 双网卡的绑定可以实现冗余和高可用性,在suse linux 10中和redhat linux 5中设置双网卡绑定是不太一样的,下面详解一下suse linux 下的双网卡绑定: 步骤1:进入到网络配置目录 # cd /etc/sysconfig/network 步骤2:创建ifcfg-bond0配置文件 Vi ifcfg-bond0 输入如下内容保存 BOOTPROTO='static' BROADCAST='' IPADDR='172.27.120.21 #要绑定的ip地址 NETMASK='255.255.255.0 '#网段的掩码 NETWORK='' STARTMODE='onboot' BONDING_MASTER='yes' BONDING_MODULE_OPTS='mode=1 miimon=100 ' # mode=1是主备模式(active-backup) mode=0是平衡模式(balance_rr) BONDING_SLAVE0='eth0' #第一块网卡的mac地址 BONDING_SLAVE1='eth1' #第二块网卡的mac地址 ETHTOOL_OPTIONS='' MTU='' NAME='' REMOTE_IPADDR='' USERCONTROL='no' 步骤3:使用yast进入网卡的配置界面,把原有的两块网卡设置为没有ip,网卡模式改为自动获取地址模式,删除/etc/sysconfig/network下的已经绑定的网卡的配置文件 步骤4:注意默认网关的配置,使用yast管理工具进入路由设置界面,或者通过修改配置文件的方式并运行命令进行配置 配置默认网关。 # vi routes 插入如下内容 default 172.27.120.254 - - # route add default gw 172.27.120.254 步骤5:重启网络服务,使配置生效 # rcnetwork restart 步骤6:验证 (1) 输入ifconfig可以看到bond0已经运行了,bond0、eth1、eth0的MAC地址都是一样 JSBC-SIHUA-DB02:/etc/sysconfig/network # ifconfig bond0 Link encap:Ethernet HWaddr 78:2B:CB:4B:54:D5

linux双网卡绑定

一、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-,其中 与配置文件所控制的设备的名称相关。在所有的网络接口中,最常用的就是以太网接口ifcfg-eth0,它是系统中第一块网卡的配置文件。虽然在不同的系统之间,文件的类型和数量并不一定相同,但各种的网络设备都需要用到这些文件保证设备的正常运作。bonding技术,就是通过配置文件建立绑定接口,从而实现多个物理网卡绑定到一个虚拟网卡。 测试环境 本次作业环境中,使用的是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@https://www.wendangku.net/doc/4013011823.html, and many others

相关文档
相关文档 最新文档