Linux配置网卡绑定

在Linux中,可以使用以太网通道绑定将两个或多个物理网络接口(NIC)组合在一起以创建虚拟接口。

IP地址将在此虚拟接口上配置。如果基础物理适配器之一发生故障,则另一个物理适配器将用于处理通信流量。

以下是不同类型的以太通道绑定模式:

Mode 0-(balance-rr)轮询模式,所绑定的网卡会针对访问以轮询算法进行平分。
第一个请求来了发送给第一块网卡处理,第二个请求来了,就发往第二块网卡进行处理,以此提供负载均衡能力。
但此模式没有容错能力,即只要有一块网卡不能正常工作,则会出错。

Mode 1-(active-backup)高可用模式,运行时只使用一个网卡,其余网卡作为备份,
在负载不超过单块网卡带宽或压力时建议使用。只有当正在工作的网卡出故障时备用网卡才会被激活,
并及时替换坏了的网卡进行工作,可见这个模式并不能提升数据处理性能,但是有容错能力,
因此常运用在实际生产环境中。

Mode 3-广播模式,所有被绑定的网卡都将得到相同的数据,
一般用于十分特殊的网络需求,如需要对两个互相没有连接的交换机发送相同的数据。
Mode 4-802.3ab负载均衡模式,要求交换机也支持802.3ab模式,理论上服务器及交换机都支持此模式时,
网卡带宽最高可以翻倍(如从1Gbps翻到2Gbps)

Mode 5-适配器输出负载均衡模式,输出的数据会通过所有被绑定的网卡输出,接收数据时则只选定其中一块网卡。
如果正在用于接收数据的网卡发生故障,则由其他网卡接管,要求所用的网卡及网卡驱动可通过ethtool命令得到speed信息。

Mode 6-适配器输入/输出负载均衡模式,在”模式5″的基础上,在接收数据的同时实现负载均衡,
除要求ethtool命令可得到speed信息外,还要求支持对网卡MAC地址的动态修改功能。

1、在Redhat或CentOS中配置绑定

注意:The active-backup, balance-tlb and balance-alb 模式不需要任何特定的交换机配置。其他绑定模式需要配置交换机以聚合链接。
例如,对于模式0、2和3,Cisco交换机需要EtherChannel,但对于模式4,则需要LACP和EtherChannel。

所有网络配置脚本都位于RHEL中的/etc/sysconfig/network-scripts下。使用命令“ ethtool”验证接口的链接状态

创建一个具有以下值的文件ifcfg-bond0,并使用正确的IP,NETMASK和适当的绑定模式(模式0、1、2,…)替换,如下所示。

#cd /etc/sysconfig/network-scripts/ 进入网络配置路径
1.创建ifcfg-bond0文件/配置IP地址以及子网掩码

#touch ifcfg-bond0

#vi ifcfg-bond0

DEVICE=bond0
IPADDR=10.60.129.110
NETMASK=255.255.255.0
GATEWAY=10.60.129.254
ONBOOT=yes
BOOTPROTO=static 
USERCTL=no
TYPE=BOND
BONDING_OPTS="mode=1 miimon=100"

2.修改ifcfg-eth0和ifcfg-eth1文件
编辑eth0和eth1的网络接口文件,以反映类似于以下内容的条目。确保已定义了MASTER和SLAVE参数,如下所示。
# cat ifcfg-eth0

DEVICE=eth0
TYPE=Ethernet
MASTER=bond0 
SLAVE=yes
ONBOOT=yes
BOOTPROTO=none

# cat ifcfg-eth1

DEVICE=eth1
TYPE=Ethernet
MASTER=bond0
SLAVE=yes
ONBOOT=yes
BOOTPROTO=none

3.创建bonding.conf文件

创建具有以下内容的bonding.conf文件。编辑模块载入配置文件,让系统支持bonding。
#vi /etc/modprobe.d/bonding.conf
alias bond0 bonding
options bond0 miimon=100 mode=1

注意:如果您已经将选项包括在/etc/sysconfig/network/ifcfg-bond0文件中,则可以选择忽略这些选项。

4.重新启动网络服务并验证绑定
重新启动网络服务:
#service network restart

# cat /proc/net/bonding/bond0

Ethernet Channel Bonding Driver: v3.6.0 

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: 10000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 
Slave queue ID: 0

Slave Interface: eth1
MII Status: up
Speed: 10000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 
Slave queue ID: 0

您可以通过关闭一个接口来执行测试,查看另一个接口是否处于活动状态,反之亦然。

此外您可以配置别名接口以处理多个IP地址,如下所示。
创建“ ifcfg-bond0:1”和“ ifcfg-bond0:2”文件
#cd /etc/sysconfig/network-scripts/

#cat ifcfg-bond0:1

DEVICE=bond0:1
IPADDR=10.60.129.111
NETMASK=255.255.255.0
ONBOOT=yes
BOOTPROTO=none
USERCTL=no
BONDING_OPTS="mode=1 miimon=100"

#cat ifcfg-bond0:2

DEVICE=bond0:2
IPADDR=10.60.129.112
NETMASK=255.255.255.0
ONBOOT=yes
BOOTPROTO=none
USERCTL=no
BONDING_OPTS="mode=1 miimon=100"

2、在SuSE Linux上配置绑定

要在最新版本的SuSE上配置绑定,可以使用YaST,也可以如下所示修改系统文件:

使用以下命令验证活动接口:
ethtool eth0 | egrep "Speed|Duplex|Link"
如果“速度,双工和链接”状态未知,则接口可能处于关闭状态。
尝试使用“ ifconfig eth0 up”调出界面。如果仍然看不到链接,则说明该接口未连接到交换机。

1.创建ifcfg-bond0文件
使用控制台登录到计算机。在/etc/sysconfig/network下创建ifcfg-bond0并定义IP地址和可以使用的从属接口。
在下面的示例中,我使用了活动备份模式进行绑定,这意味着只有活动接口才能处理通信流量和备份接口开始工作的故障。
# cd /etc/sysconfig/network

# cat ifcfg-bond0

BONDING_MASTER=yes
BONDING_MODULE_OPTS='mode=active-backup miimon=100'
BONDING_SLAVE0='eth0'
BONDING_SLAVE1='eth1'
BOOTPROTO='static'
IPADDR='192.168.1.85/24'
BROADCAST=''
STARTMODE='auto'

在下面的示例中,我使用了活动备份模式进行绑定,这意味着只有活动接口才能处理通信流量和备份接口开始工作的故障。
2.修改ifcfg-eth0和ifcfg-eth1文件
修改从属接口,使其没有IP地址Netmask。输出应类似于以下内容:
# cat ifcfg-eth0

DEVICE='eth0'
BOOTPROTO='none'
STARTMODE='onboot'
NAME='82545EM Gigabit Ethernet Controller (Copper)'

# cat ifcfg-eth1

DEVICE='eth1'
BOOTPROTO='none'
STARTMODE='onboot'
NAME='82545EM Gigabit Ethernet Controller (Copper)'

3.编辑modprobe.conf文件
编辑文件/etc/modprobe.conf并添加以下两行,以将bonding driver和选项包括在内。

alias bond0 bonding
options bond0 miimon=100 mode=1

注意:如果您已经将选项包括在/etc/sysconfig/network/ifcfg-bond0文件中,则可以选择忽略这些选项。

4.重新启动网络服务并验证绑定
设置绑定后,重新启动网络服务:
rcnetwork restart

# ifconfig bond0

bond0 Link encap:Ethernet HWaddr 00:50:56:8E:00:26
inet addr:192.168.1.85 Bcast:192.168.1.1 Mask:255.255.255.0
UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1
RX packets:28420409 errors:0 dropped:0 overruns:0 frame:0
TX packets:151985 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:2362560309 (2253.1 Mb) TX bytes:17330542 (16.5 Mb)

要测试绑定接口是否正常工作,请登录控制台并使用“ ifconfig eth0 down”关闭活动接口。确认您仍然能够使用相同的IP或主机名登录计算机。
您可以在以下文件中验证活动接口的状态,如下所示,eth0处于关闭状态,但由于我们已设置绑定,因此与机器的网络连接仍未丢失,并且eth1接口仍然处于打开状态。
# cat /proc/net/bonding/bond0

Ethernet Channel Bonding Driver: v3.5.0 (November 4, 2008)

Bonding Mode: fault-tolerance (active-backup)
Primary Slave: None
Currently Active Slave: eth1
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0

Slave Interface: eth0
MII Status: down
Link Failure Count: 1
Permanent HW addr: 00:50:56:8e:00:26

Slave Interface: eth1
MII Status: up
Link Failure Count: 0
Permanent HW addr: 00:50:56:8e:7e:20

 

posted @ 2020-08-12 11:21  jiayou64  阅读(1348)  评论(0编辑  收藏  举报