admin管理员组

文章数量:1530517

Bonding配置

通过在 /etc/sysconfig/network-scripts/ 目录下创建 ifcfg-bond

配置文件,就能够创建绑定接口。文件名称中的 为接口的编号,如第一个通道绑定接口的名称一般为

ifcfg-bond0。ifcfg-bond 文件的内容与以太网接口的配置文件(如 ifcfg-eth0)基本相同,只是 DEVICE

选项的值,应该为 bond。

Bonding接口创建以后,被绑定的网卡必须在他们的设置文件里面添加MASTER和SLAVE两个参数。每个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

SLAVE=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

SLAVE=yes

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

MASTER=: 的值是以太网卡连接到的通道绑定接口的名称,这个指令与 SLAVE 指令配合使用。SLAVE=: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.confalias

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 SLAVE 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 SLAVE 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/bond0Ethernet

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/bond0Ethernet

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)功能。

本文标签: 双网卡技术Linuxbonding