网卡bond配置方法

背景知识

bong可以将多个网卡绑定到一起,可以让两个或多个接口作为一个接口,同时提高带宽,并提供网络链路的冗余,当有其中一块网卡故障的时候,不会中断服务器的业务。
常用的bond模式主要为以下两种:
mode=1(active-backup):此模式使用主被策略(热备)。在所有做bond1的物理网卡中,同一时刻只有一张网卡被激活,当且仅当活动网卡失效时才会激活其他的网卡。这种模式下做bond的两张或多张网卡的MAC地址和Bond虚拟网卡的MAC地址相同,而Bond的MAC地址是Bond创建启动后活动网卡(Active Slave)的MAC地址。这种模式要求主被网卡能快速的切换,即当主网卡出现故障后能迅速地切换至备用网卡。切换过程中,上层的应用几乎不受影响,因为Bond的驱动程序会临时接管上层应用的数据包,存放至数据缓冲区,等待备用网卡启动后再发送出去。但是如果切换时间过长,则会引起缓冲区的溢出,导致丢包。

mode=4(802.3ad):使用动态链接聚合策略,启动时会创建一个聚合组,所有Slave网卡共享同样的速率和双工设定(需要交换机支持IEEE 802.3ad 动态链路聚合(Dynamic link aggregation)模式)
按照当前业务情况,我们的业务和IB网络均使用mode1的方式进行绑定

1、备份原网卡配置
进入/etc/sysconfig/network-scripts/目录,将所有的ifcfg-开头的文件备份

2、配置业务bond
查看当前业务使用的网口

这里使用的是ens6f0和ens6f1 两个口(不同的硬件网卡的名称会不一样)
配置业务bond,名称为:bond1

[root@sever-2 network-scripts]# cat ifcfg-bond1
DEVICE=bond1
TYPE=Bond
NAME=bond1
BONDING_MASTER=yes
BOOTPROTO=none
ONBOOT=yes
IPADDR=10.18.159.45
NETMASK=255.255.255.0
GATEWAY=10.18.159.1
BONDING_OPTS="mode=1 miimon=100"
[root@sever0-2 network-scripts]# cat ifcfg-ens6f0
TYPE=Ethernet
BOOTPROTO=none
DEVICE=ens6f0
ONBOOT=yes
MASTER=bond1
SLAVE=yes
[root@sever-2 network-scripts]# cat ifcfg-ens6f1
TYPE=Ethernet
BOOTPROTO=none
DEVICE=ens6f1
ONBOOT=yes
MASTER=bond1
SLAVE=yes
[root@sever-2 network-scripts]#

3、配置IB网络bond
这里的IB1口为down的状态是因为没接线
(此处要注意,IB网络是内部通讯用的,千万不要配置网关,否则网络会有问题,操作系统上多个网络,只能有一个网卡可以配置网关,如果有其他特殊需求,可以通过配置路由的方式来实现)

[root@sever-2 network-scripts]# cat ifcfg-bond0
DEVICE=bond0
TYPE=Bond
NAME=bond0
BONDING_MASTER=yes
BOOTPROTO=none
ONBOOT=yes
BONDING_OPTS="mode=1 miimon=100"
IPADDR=192.168.11.45
NETMASK=255.255.255.0
[root@sever-2 network-scripts]# cat ifcfg-ib0
TYPE=InfiniBand
DEVICE=ib0
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes
[root@sever-2 network-scripts]# cat ifcfg-ib1
TYPE=InfiniBand
DEVICE=ib1
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes

4、重启服务激活bond配置
systemctl restart network

5、验证bond
使用ifdown、ifup 关闭开启端口来验证

[root@sever-2 ~]# cat /proc/net/bonding/bond1
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)

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

Slave Interface: ens6f0
MII Status: up
Speed: 10000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: b4:05:5d:ff:22:0c
Slave queue ID: 0

Slave Interface: ens6f1
MII Status: up
Speed: 10000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: b4:05:5d:ff:22:0d
Slave queue ID: 0

[root@sever-2 ~]# ifdown ens6f0
Device 'ens6f0' successfully disconnected.
[root@server-2 ~]# cat /proc/net/bonding/bond1
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)

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

Slave Interface: ens6f1
MII Status: up
Speed: 10000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: b4:05:5d:ff:22:0d
Slave queue ID: 0
[root@server-2 ~]# ifup ens6f0
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/7)
[root@server-2 ~]# cat /proc/net/bonding/bond1
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)

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

Slave Interface: ens6f0
MII Status: up
Speed: 10000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: b4:05:5d:ff:22:0c
Slave queue ID: 0

Slave Interface: ens6f1
MII Status: up
Speed: 10000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: b4:05:5d:ff:22:0d
Slave queue ID: 0



在 BC-Linux 系统中配置网络接口绑定(Bonding)可以提高网络连接的可靠性和带宽。以下步骤详细说明了如何配置 Bonding。 ### 配置网络接口绑定 #### 1. 安装必要的工具 确保系统中安装了 ` bonding ` 模块和 ` ifenslave ` 工具。大多数情况下,这些工具在系统默认安装中已经存在。如果没有,请通过以下命令安装: ```bash yum install -y bonding ``` #### 2. 创建 Bonding 配置文件 在 `/etc/sysconfig/network-scripts/` 目录下创建或修改网卡配置文件。 首先,创建 ` bond0 ` 接口的配置文件: ```bash vi /etc/sysconfig/network-scripts/ifcfg-bond0 ``` 配置文件内容如下: ```ini DEVICE=bond0 BOOTPROTO=static ONBOOT=yes IPADDR=192.168.1.100 NETMASK=255.255.255.0 GATEWAY=192.168.1.1 BONDING_OPTS="mode=active-backup miimon=100" ``` - ` DEVICE `: Bond 接口的名称。 - ` BOOTPROTO `: 设置为 ` static ` 表示静态 IP 地址。 - ` ONBOOT `: 是否在系统启动时启用该接口。 - ` IPADDR `: Bond 接口的 IP 地址。 - ` NETMASK `: 子网掩码。 - ` GATEWAY `: 默认网关。 - ` BONDING_OPTS `: 指定 Bonding 的模式和参数。` mode=active-backup ` 表示主备模式,` miimon=100 ` 表示每 100ms 检测一次链路状态。 接下来,配置两个物理网卡(例如 ` eth0 ` 和 ` eth1 `)绑定到 ` bond0 `: ```bash vi /etc/sysconfig/network-scripts/ifcfg-eth0 ``` ```ini DEVICE=eth0 BOOTPROTO=none ONBOOT=yes MASTER=bond0 SLAVE=yes ``` ```bash vi /etc/sysconfig/network-scripts/ifcfg-eth1 ``` ```ini DEVICE=eth1 BOOTPROTO=none ONBOOT=yes MASTER=bond0 SLAVE=yes ``` - ` MASTER `: 指定该网卡属于哪个 Bond 接口。 - ` SLAVE `: 表示该网卡Bond 接口的从属设备。 #### 3. 重启网络服务 完成配置后,重启网络服务以应用更改: ```bash systemctl restart network ``` #### 4. 验证 Bonding 状态 使用以下命令查看 Bonding 状态: ```bash cat /proc/net/bonding/bond0 ``` 该命令将显示 Bonding 的详细信息,包括当前使用的模式、链路状态等。 ### 配置 Bonding 模式 Bonding 支持多种模式,常见的模式包括: - **mode=0 (balance-rr)**: 轮询模式,提供负载均衡和容错能力。 - **mode=1 (active-backup)**: 主备模式,提供冗余,只有一个接口处于活动状态。 - **mode=4 (802.3ad)**: 动态链路聚合,需要交换机支持 IEEE 802.3ad 协议。 根据网络环境和需求选择合适的模式,并在 ` BONDING_OPTS ` 中进行配置。 ### 示例代码 以下是一个完整的配置示例,展示了如何配置 Bonding: ```bash # 创建 bond0 配置文件 cat <<EOF > /etc/sysconfig/network-scripts/ifcfg-bond0 DEVICE=bond0 BOOTPROTO=static ONBOOT=yes IPADDR=192.168.1.100 NETMASK=255.255.255.0 GATEWAY=192.168.1.1 BONDING_OPTS="mode=active-backup miimon=100" EOF # 创建 eth0 配置文件 cat <<EOF > /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 BOOTPROTO=none ONBOOT=yes MASTER=bond0 SLAVE=yes EOF # 创建 eth1 配置文件 cat <<EOF > /etc/sysconfig/network-scripts/ifcfg-eth1 DEVICE=eth1 BOOTPROTO=none ONBOOT=yes MASTER=bond0 SLAVE=yes EOF # 重启网络服务 systemctl restart network ``` ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值