【微知】Mellanox网卡如何将网卡的两个port bond到一起?(echo +bond0 > /sys/class/net/bonding_masters )

背景

将两个portbond到一起,可以实现带宽倍增的效果。本文主要介绍了两种将两个网络端口绑定(bonding)以实现带宽倍增的方法。第一种方法通过sysfs文件配置,包括关闭网卡、启动bonding模块、创建bonding口并设置模式,最后将网卡加入bonding口并启动。第二种方法使用NetworkManager服务配置文件,通过创建bonding配置文件和从属网卡配置文件,重启网络服务并验证bonding接口状态。此外,还简要提及了使用nmicli配置bonding的步骤。注意这些操作均需root权限或sudo执行。

m 方法1:使用sysfs文件配置

假设网卡1有2个port分别是eth0和eth1

m.1 关闭2个网卡

如果是远程登录的卡注意会断网,要么带外操作要么其他网卡访问
如果不关闭,可能无法将网卡加入bond口

ifconfig eth0 down
ifconfig eth1 down

ifdown eth0 #如果是NetworkManager服务启动了
ifdown eth1

m.2 启动bonding模块

bonding模块是一个内核模块

modprobe bonding

在这里插入图片描述

m.3 创建一个bonding口

echo +bond0 > /sys/class/net/bonding_masters #创建
ifconfig bond0
cat /proc/net/bonding/bond0
echo 4 > /sys/class/net/bond0/bonding/mode #设置LACP bonding模式

可以看到已经创建了bond0
在这里插入图片描述

查看bond0的配置:可以看到现在模式还是rond-robin
在这里插入图片描述
如果要和交换机连接使用LACP动态协商:(直连模式下可能无法连接)
在这里插入图片描述

m.4 将slave口加入bonding master并启动bonding

echo +eth0 > /sys/class/net/bond0/bonding/slaves #如果添加失败,可能是由于eth口并未成功down掉
echo +eth1 > /sys/class/net/bond0/bonding/slaves
ifconfig bond0 192.168.1.101 #手动配置
dhclient bond0 #动态获取
ifconfig bond0 up #启动bonging口

配置后 如果有2台设备,都按照该方式配置,然后可以进行ping测试,如果只有单台,可以ping网关测试。

n 方法2:使用NetworkManager服务配置文件配置

n.1 确保NetworkManager 已安装:

yum install NetworkManager
systemctl status NetworkManager

n.2 创建 bonding

通过配置文件/etc/sysconfig/network-scripts/ifcfg-bond0

DEVICE=bond0
TYPE=Bond
NAME=bond0
ONBOOT=yes
BOOTPROTO=dhcp
BONDING_MASTER=yes
BONDING_OPTS="mode=4 miimon=100 lacp_rate=1"

参数说明:

基础配置:
DEVICE=bond0:设定逻辑 bonding 接口的名称为 bond0。
TYPE=Bond:表明这个接口的类型是 bonding 接口。
NAME=bond0:为这个连接赋予一个名称,这里是 bond0。
ONBOOT=yes:系统启动时会自动激活这个 bonding 接口。
BOOTPROTO=dhcp:配置该接口通过 DHCP 动态获取 IP 地址。
bonding配置:
BONDING_MASTER=yes:此接口是 bonding 的主接口
BONDING_OPTS=“mode=4 miimon=100 lacp_rate=1”:这里面包含了一系列 bonding 的参数:
mode=4:使用 LACP(链路聚合控制协议)模式(802.3ad模式)。需要配置交换机端,实现链路冗余以及负载均衡。
miimon=100:设置 MII 监测频率为 100 毫秒,检测网络链路是否正常。如果在这个时间内没有收到响应,则认为链路出现了故障。
lacp_rate=1:将 LACP 报文发送速率设为快速模式,每秒钟发送一次 LACP 报文。还有一种慢速模式是每 30 秒发送一次。

n.3 配置从属网卡

从属网卡的配置文件需要包含类似MASTER=bond0和SLAVE=yes这样的设置
创建文件:/etc/sysconfig/network-scripts/ifcfg-eth0

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

注意指定slave是yes以及对应的master是bond0,类型是eth口,不是bond口

创建文件:/etc/sysconfig/network-scripts/ifcfg-eth0

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

n.4 重启网络服务并查看

systemctl restart NetworkManager #重启网络服务,如果是centos用的NetworkManager服务,有些時候需要重载systemctl reload NetworkManager
cat /proc/net/bonding/bond0 #验证 bonding 接口状态
ip addr show bond0 #如果是dhcp或获取到地址

o 使用nmicli配置

(该方式并未完全实操仅供参考)
该方式会创建配置文件

# 创建bond0接口并设置参数
nmcli connection add type bond con-name bond1 ifname bond0 mode 4 miimon 100 ipv4.method auto autoconnect yes

# 添加eth0作为bond0的从属设备
sudo nmcli connection add type ethernet slave-type bond \
    con-name bond0-port1 ifname eth0 master bond0
    
# 添加eth1作为bond0的从属设备
sudo nmcli connection add type ethernet slave-type bond \
    con-name bond0-port2 ifname eth1 master bond0

# 激活bond0连接
sudo nmcli connection up bond0

# 查看bond0接口信息
nmcli connection show bond0

# 查看网络接口状态
ip addr show bond0

# 查看bonding详细信息
cat /proc/net/bonding/bond0

比如创建bond1:
在这里插入图片描述

综述

本文主要介绍了两种将两个网络端口绑定(bonding)以实现带宽倍增的方法。第一种方法通过sysfs文件配置,包括关闭网卡、启动bonding模块、创建bonding口并设置模式,最后将网卡加入bonding口并启动。第二种方法使用NetworkManager服务配置文件,通过创建bonding配置文件和从属网卡配置文件,重启网络服务并验证bonding接口状态。此外,还简要提及了使用nmicli配置bonding的步骤。注意这些操作均需root权限或sudo执行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值