linux环境下创建网口聚合实例

2024-04-19 06:12

本文主要是介绍linux环境下创建网口聚合实例,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Linux的网口聚合(网口绑定、bonding)技术是一种通过多个网络接口聚合来提供网络冗余和/或增加网络带宽的方法,为提供网络稳定性、带宽、性能非常有利工具,常见的网口聚合可以支持不同工作模式

  • mode=0 (balance-rr):轮询模式,负载均衡。
  • mode=1 (active-backup):热备份模式,一个接口处于活动状态,另一个处于备份状态。
  • mode=2(balance-xor) 异或均衡模式。
  • mode=3(broadcast) 广播模式,给所有端口都传输数据。
  • mode=4(802.3ad) LACP模式。
  • mode=5(balance-tlb) 发送均衡模式。
  • mode=6 (balance-tlb):适配器传输负载均衡模式,需要交换机支持。

这里以 active-backup模式为例,创建网口聚合通常需要如下步骤:

1.驱动安装

需要支持bonding驱动,linux内核自带。

insmod bonding.ko

2. 绑定eth0和eth1网口实例

网卡绑定使用核心工具是nmcli (NetworkManager Command-Line)nmcli是一个功能强大的命令行工具,用于配置和管理和获取网络连接等。通过使用它提供的各种命令和选项,可以满足各种网络设置需求,其中网卡绑定是该工具支持能力之一。

这里以eth0和eth1网口绑定为bond0 ( active-backup模式)为实例:

  1. NetworkManager 服务启动
    systemctl stop NetworkManager
    systemctl restart NetworkManager

  2. 节点信息查看和删除
    nmcli connection show 查看所有网卡节点
    nmcli connection delete eth0 配置前删掉相关节点和ip
    nmcli connection delete eth1
    nmcli connection delete bond0

  3. 创建bond0绑定接口
    nmcli connection add con-name bond0 ifname bond0 type bond mode active-backup ip4 192.168.1.112/24

  4. 添加被绑定的网卡节点(eth0 和eth1)
    nmcli connection add type bond-slave ifname eth1 master bond0
    nmcli connection add type bond-slave ifname eth0 master bond0

  5. 启动网卡
    nmcli con up bond0
    nmcli con up bond-slave-eth1
    nmcli con up bond-slave-eth0

  6. 查看状态
    nmcli connection show
    cat /proc/net/bonding/bond0
    要看到链接到DEVICE项 有对应名称,才说明connection上,绑定后mac地址将一样:

bond0 7c8a196a-2f96-4096-8d32-dbf8ebb99593 bond
bond0 bond-slave-eth0 0a553cc8-4612-4232-942a-0cc105e82758
ethernet eth0 bond-slave-eth1
df79a75c-8b0d-4ea7-89d4-717288c465b6 ethernet eth1

  1. 断开绑定、连接绑定
    nmcli dev disconnect eth0 断开eth0的绑定
    nmcli dev connect eth0 连接eth0的绑定

  2. MII监控
    检查MII监控是否开启:
    cat /sys/class/net/bond0/bonding/mii_status
    检查MII监控周期:
    cat /sys/class/net/bond0/bonding/miimon

  3. 修改bond模式
    nmcli connection modify bond0 mode broadcast 修改为广播模式
    nmcli con up bond0 生效

如果报错:‘bond0’: bond.options: ‘primary’ option is only valid for
‘mode=active-backup’ 则del 后再重新创建:
nmcli connection delete bond0
nmcli connection add con-name bond0 ifname bond0 type bond mode
active-backup ip4 192.168.1.112/24

  1. 指定当前活动网卡Currently(active-backup模式)
    nmcli connection modify bond0 primary eth1
    nmcli con up bond0 生效
    关闭:nmcli connection modify bond0 primary none

如果:
nmcli dev disconnect eth0 eth1
nmcli dev connect eth1 谁先connect的谁就做Currently
nmcli dev connect eth0

  1. 为bond0 添加ip、网关、dns
    nmcli connection modify bond0 ipv4.method manual ipv4.addresses xx.xx.xx.xx/yy ipv4.gateway xx.xx.xx.xx ipv4.dns xx.xx.xx.xx ipv6.method ignore

  2. 修改配置文件路径
    /etc/NetworkManager/system-connections

这篇关于linux环境下创建网口聚合实例的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/916789

相关文章

Linux join命令的使用及说明

《Linuxjoin命令的使用及说明》`join`命令用于在Linux中按字段将两个文件进行连接,类似于SQL的JOIN,它需要两个文件按用于匹配的字段排序,并且第一个文件的换行符必须是LF,`jo... 目录一. 基本语法二. 数据准备三. 指定文件的连接key四.-a输出指定文件的所有行五.-o指定输出

Linux jq命令的使用解读

《Linuxjq命令的使用解读》jq是一个强大的命令行工具,用于处理JSON数据,它可以用来查看、过滤、修改、格式化JSON数据,通过使用各种选项和过滤器,可以实现复杂的JSON处理任务... 目录一. 简介二. 选项2.1.2.2-c2.3-r2.4-R三. 字段提取3.1 普通字段3.2 数组字段四.

Linux kill正在执行的后台任务 kill进程组使用详解

《Linuxkill正在执行的后台任务kill进程组使用详解》文章介绍了两个脚本的功能和区别,以及执行这些脚本时遇到的进程管理问题,通过查看进程树、使用`kill`命令和`lsof`命令,分析了子... 目录零. 用到的命令一. 待执行的脚本二. 执行含子进程的脚本,并kill2.1 进程查看2.2 遇到的

一篇文章彻底搞懂macOS如何决定java环境

《一篇文章彻底搞懂macOS如何决定java环境》MacOS作为一个功能强大的操作系统,为开发者提供了丰富的开发工具和框架,下面:本文主要介绍macOS如何决定java环境的相关资料,文中通过代码... 目录方法一:使用 which命令方法二:使用 Java_home工具(Apple 官方推荐)那问题来了,

Java 虚拟线程的创建与使用深度解析

《Java虚拟线程的创建与使用深度解析》虚拟线程是Java19中以预览特性形式引入,Java21起正式发布的轻量级线程,本文给大家介绍Java虚拟线程的创建与使用,感兴趣的朋友一起看看吧... 目录一、虚拟线程简介1.1 什么是虚拟线程?1.2 为什么需要虚拟线程?二、虚拟线程与平台线程对比代码对比示例:三

k8s按需创建PV和使用PVC详解

《k8s按需创建PV和使用PVC详解》Kubernetes中,PV和PVC用于管理持久存储,StorageClass实现动态PV分配,PVC声明存储需求并绑定PV,通过kubectl验证状态,注意回收... 目录1.按需创建 PV(使用 StorageClass)创建 StorageClass2.创建 PV

Nginx搭建前端本地预览环境的完整步骤教学

《Nginx搭建前端本地预览环境的完整步骤教学》这篇文章主要为大家详细介绍了Nginx搭建前端本地预览环境的完整步骤教学,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录项目目录结构核心配置文件:nginx.conf脚本化操作:nginx.shnpm 脚本集成总结:对前端的意义很多

Linux云服务器手动配置DNS的方法步骤

《Linux云服务器手动配置DNS的方法步骤》在Linux云服务器上手动配置DNS(域名系统)是确保服务器能够正常解析域名的重要步骤,以下是详细的配置方法,包括系统文件的修改和常见问题的解决方案,需要... 目录1. 为什么需要手动配置 DNS?2. 手动配置 DNS 的方法方法 1:修改 /etc/res

Linux创建服务使用systemctl管理详解

《Linux创建服务使用systemctl管理详解》文章指导在Linux中创建systemd服务,设置文件权限为所有者读写、其他只读,重新加载配置,启动服务并检查状态,确保服务正常运行,关键步骤包括权... 目录创建服务 /usr/lib/systemd/system/设置服务文件权限:所有者读写js,其他

Linux下利用select实现串口数据读取过程

《Linux下利用select实现串口数据读取过程》文章介绍Linux中使用select、poll或epoll实现串口数据读取,通过I/O多路复用机制在数据到达时触发读取,避免持续轮询,示例代码展示设... 目录示例代码(使用select实现)代码解释总结在 linux 系统里,我们可以借助 select、