linux查看双网卡绑定模式,Linux中双网卡绑定实现的各种模式

一、Linux中双网卡绑定实现的原理

Linux双网卡绑定实现就是使用两块网卡虚拟成为一块网卡;linux设置bond网卡绑定---有些用。

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.编辑虚拟网络接口配置文件,指定网卡IP

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

[root@rhas-13 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

TYPE=Ethernet

这里要主意,不要指定单个网卡的IP 地址、子网掩码或网卡 ID。将上述信息指定到虚拟适配器(bonding)中即可。

[root@rhas-13 network-scripts]# cat ifcfg-eth0

DEVICE=eth0

ONBOOT=yes

BOOTPROTO=dhcp

[root@rhas-13 network-scripts]# cat ifcfg-eth1

DEVICE=eth0

ONBOOT=yes

BOOTPROTO=dhcp

3 # vi /etc/modules.conf

编辑 /etc/modules.conf 文件,加入如下一行内容,以使系统在启动时加载bonding模块,对外虚拟网络接口设备为 bond0

加入下列两行

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会认为链路没有问题而继续使用

4 # vi /etc/rc.d/rc.local

加入两行

ifenslave bond0 eth0 eth1

route add -net 172.31.3.254 netmask 255.255.255.0 bond0

到这时已经配置完毕重新启动机器.

重启会看见以下信息就表示配置成功了

................

Bringing up interface bond0 OK

Bringing up interface eth0 OK

Bringing up interface eth1 OK

................

下面我们讨论以下mode分别为0,1时的情况

mode=1工作在主备模式下,这时eth1作为备份网卡是no arp的

[root@rhas-13 network-scripts]# ifconfig 验证网卡的配置信息

bond0 Link encap:Ethernet HWaddr 00:0E:7F:25

9:8B

inet addr:172.31.0.13 Bcast:172.31.3.255 Mask:255.255.252.0

UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1

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

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

collisions:0 txqueuelen:0

RX bytes:1587253 (1.5 Mb) TX bytes:89642 (87.5 Kb)

eth0 Link encap:Ethernet HWaddr 00:0E:7F:25

9:8B

inet addr:172.31.0.13 Bcast:172.31.3.255 Mask:255.255.252.0

UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1

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

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

collisions:0 txqueuelen:1000

RX bytes:833514 (813.9 Kb) TX bytes:89642 (87.5 Kb)

Interrupt:11

eth1 Link encap:Ethernet HWaddr 00:0E:7F:25

9:8B

inet addr:172.31.0.13 Bcast:172.31.3.255 Mask:255.255.252.0

UP BROADCAST RUNNING NOARP SLAVE MULTICAST MTU:1500 Metric:1

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

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

collisions:0 txqueuelen:1000

RX bytes:753739 (736.0 Kb) TX bytes:0 (0.0 b)

Interrupt:15

那也就是说在主备模式下,当一个网络接口失效时(例如主交换机掉电等),不回出现网络中断,

系统会按照cat /etc/rc.d/rc.local里指定网卡的顺序工作,机器仍能对外服务,起到了失效保护的功能.

在mode=0 负载均衡工作模式,他能提供两倍的带宽,下我们来看一下网卡的配置信息

[root@rhas-13 root]# ifconfig

bond0 Link encap:Ethernet HWaddr 00:0E:7F:25:D9:8B

inet addr:172.31.0.13 Bcast:172.31.3.255 Mask:255.255.252.0

UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1

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

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

collisions:0 txqueuelen:0

RX bytes:226957 (221.6 Kb) TX bytes:15266 (14.9 Kb)

eth0 Link encap:Ethernet HWaddr 00:0E:7F:25:D9:8B

inet addr:172.31.0.13 Bcast:172.31.3.255 Mask:255.255.252.0

UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1

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

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

collisions:0 txqueuelen:1000

RX bytes:113967 (111.2 Kb) TX bytes:7268 (7.0 Kb)

Interrupt:11

eth1 Link encap:Ethernet HWaddr 00:0E:7F:25:D9:8B

inet addr:172.31.0.13 Bcast:172.31.3.255 Mask:255.255.252.0

UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1

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

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

collisions:0 txqueuelen:1000

RX bytes:112990 (110.3 Kb) TX bytes:7998 (7.8 Kb)

Interrupt:15

在这种情况下出现一块网卡失效,仅仅会是服务器出口带宽下降,也不会影响网络使用.

通过查看bond0的工作状态查询能详细的掌握bonding的工作状态

[root@rhas-13 bonding]# cat /proc/net/bonding/bond0

bonding.c:v2.4.1 (September 15, 2003)

Bonding Mode: load balancing (round-robin)

MII Status: up

MII Polling Interval (ms): 0

Up Delay (ms): 0

Down Delay (ms): 0

Multicast Mode: all slaves

Slave Interface: eth1

MII Status: up

Link Failure Count: 0

Permanent HW addr: 00:0e:7f:25:d9:8a

Slave Interface: eth0

MII Status: up

Link Failure Count: 0

Permanent HW addr: 00:0e:7f:25:d9:8b

QuickLinux AS4 下网卡绑定实现负载均衡和失效保护

Linux下的的负载平衡(说白了就是n块网卡邦定在一起当一个用速度变成原来的n倍)在linux下叫做bonding,理论就不说了,网上一大堆.网 上也有好多这样的文章但是大多都和实际配置过程有些不同,下面说说在2.6内核的quicklinux AS4 上具体的实现方法。

第一步、编辑虚拟网络接口配置文件。

建立 /etc/sysconfig/network-scripts/ifcfg-bond0 文件

内容如下:

DEVICE=bond0

IPADDR=192.168.0.1

NETMASK=255.255.255.0

BROADCAST=192.168.0.255

NETWORK=192.168.0.1

ONBOOT=yes

ip地址根据自己的需要配置(一个简单的方法就是拷贝一个ifcfg-eht0修改DEVICE=bond0)

第二步、编辑真实网卡的配置文件(建议修改之前做好备份)

/etc/sysconfig/network-scripts/ifcfg-eth*

内容如下

BOOTPROTO=none

TYPE=Ethernet

DEVICE=eth* (*与那个配置文件名中的相同)

ONBOOT=yes

MASTER=bond0

slave=yes

注意:真实网卡不能再设置ip地址了,按需要把所要绑定的真实网卡都按这个设置,主要是MASTER=bond0 和 slave=yes 一定不要弄错(简单的方法就是修改一个然后拷贝再修改)

第三步、修改/etc/modprobe.conf 文件加入如下两行(建议做好备份)

alias bond0 bonding

options bond0 miimon=100 mode=0

注:1、miimon 是链路监测的时间间隔单位是毫秒,miimon=100的意思就是,每100毫秒检测网卡和交换机之间是否连通,如不通则使用另外的链路。

2、mode=0 表示负载均衡方式,两块网卡都工作。

mode=1 表示冗余方式,网卡只有一个工作,一个出问题启用另外的。

第四步、在/etc/rc.d/rc.local 加入如下一行(启动时执行此行命令)

ifenslave bond0 eth0 eth1 …… eht*

重新启动后负载平衡已经能正常工作。

但是还有需要注意的,就是shorewall防火墙的设置,这个设置最好在配置负载平衡前进行,因为 shorewall在webmin下配置最简单,

负载平衡启动后原来的设置的“网卡界面”里面的网卡就应该由eht* 改成了bond0 了 。不改设置全部通讯都会断掉。

用service shorewall stop 也不能停掉防火墙,因为shorewall关掉后它就会启动“关闭规则(routerstopped)”。“关闭规则”默认的是不允许任何通讯。

所以建议在配置负载平衡前建立防火墙规则。否则只能通过手工来改shorewall的配置文件了。

以上的实现方法已经在QuickLinux as4 2.6.11-8内核下实现,网卡为双intel pro1000 速度相

当令人满意,服务器双网卡和两台客户计算机所都连接到同一个普通交换机上,两台客户机网同时从

SMB上用totle copy拷贝大文件速度都能达到10000KB/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驱动程序处理。说了半天理论,其实配置很简单,一共四个步骤: 实验的操作系统是Redhat Linux Enterprise 3.0。绑定的前提条件:芯片组型号相同,而且网卡应该具备自己独立的BIOS芯片。

双网卡邦定的拓朴图

1.编辑虚拟网络接口配置文件,指定网卡IP:

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

[root@rhas-13 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

TYPE=Ethernet

这里要主意,不要指定单个网卡的IP 地址、子网掩码或网卡 ID。将上述信息指定到虚拟适配器(bonding)中即可。

[root@rhas-13 network-scripts]# cat ifcfg-eth0

DEVICE=eth0

ONBOOT=yes

BOOTPROTO=dhcp

[root@rhas-13 network-scripts]# cat ifcfg-eth1

DEVICE=eth0

ONBOOT=yes

BOOTPROTO=dhcp

3、# vi /etc/modules.conf

编辑 /etc/modules.conf 文件,加入如下一行内容,以使系统在启动时加载bonding模块,对外虚拟网络接口设备为 bond0.加入下列两行:

alias bond0 bonding

options bond0 miimon=100 mode=1

当前的二进制安装与升级机制

redhat/fedora   RPM   rpm rpmbuild   yum

debian          dpkg   dpkg      apt

rpm  的相关参数

--nodeps

--replacepkgs

--replacefiles

--force

--test

--nosignature

--prefix

--noscripts

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

1、编辑虚拟机 给虚拟机添加一个网卡

6b4fe0148ed5c1c4efae7bb6b6073c21.png

网卡添加后该虚拟机拥有双网卡

acd6998feb821a91cb144e7ac18d3767.png

2、查看各网卡的ip地址

01e832c0063a08865ebd1cd4e68df094.png

4、给eth0配置临时ip地址

53472c8583a3103fcf7e10edef366345.png

5、将双网卡均选择host-only方式连接

296223eb5a225f0ebac876247249d5b8.png

d9053dcaa9a037353fa2a1cda8969e1c.png

6、切换到该目录下编辑eth0

85f324faf2f507c12ebd025053697e85.png

编辑结果如下图所示

2d1cae7a20924d4524e46f72bed651e2.png

7、编辑eth1

662904ab50bdbe90390d9285a603691f.png

编辑结果如下图所示

2418030b24f8afd6f0226ad3d1bb939c.png

8、将ifcfg-eth0拷贝成ifcfg-bond0

acb8d9982d889929fb7b6715f09a974a.png

编辑ifcfg-bond0   结果如下图所示

97150b118c4389f3910c3ed7338dd1ee.png

9、编辑模块配置文件

50262e75ffe739f92f205a8be7f79afd.png

添加bond0和模块参数   结果如下图所示

f4ffbb1039aa3303436f70f3f8543bf7.png

10、编辑rc.local

d16252c424c3fe40a33c31d0a1d91543.png

将eth0和eth1绑定到bond0中

7f7c85fba4a49adea59277107c252b71.png

11、重启系统

dca3666c4d0f4007f009351e4d58b2c6.png

下图结果中bond0、eth0、eth1的mac地址相同

e23faed9dc8af6f5cf9e51189fc92493.png

12、查看网卡信息

a9f7a2df0d438f443f2ea8aff87c4d8a.png

59ca8f7a158c334a8d53f8a52d8beb46.png

测试

f3fa2a90e420fd38f4042bf9f8acd56d.png

断开eth0

ed47f48eeacc827a319e951c1e94ceaa.png

断开eth0后 中间超时一次立即恢复正常

连接eth0后断开eth1无影响 一直为ping通状态

eth0、eth1均断开 不能ping通

断开eth0后网卡信息

eaf22dc9d8a8d4467052d7a904f65af5.png

三、案例2  mode=0(注:mode=0表示load balancing (round-robin)为负载均衡方式,两块网卡都工作。)

mode=0模式的配置步骤与mode=1配置步骤完全相同,只需将mode的值改为0即可 结果如下图所示

2293554b1d74bc6471d8402428235c62.png

测试

748b889b15153ebc1ce0f37298d7fcf3.png

79ea69fd0c0ecf8df19d52a993f2114f.png

断开eth0和eth1中任何一个网卡均正常平通,不会出现超时

断开eth1的网卡信息

e2c2d0ee63931cbb899c26f364e9890e.png

断开eth0的网卡信息

d9466238997511ecff4f6fc0f6195abd.png

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值