你真的懂NAS网络?以极空间为例,介绍解绑Bond、虚拟网桥、Bond
gudong366 2025-04-09 12:30 15 浏览
本内容来源于@什么值得买APP,观点仅代表作者本人 |作者:可爱的小cherry
大家好,这里是Cherry,喜爱折腾、玩数码,热衷于分享自己的数码玩耍经验~
前言
想玩好NAS,除了Linux知识、NAS操作系统知识、存储知识外,最最重要的就是得学习网络知识。
毕竟NAS全称"网络存储设备",是依附网络而存在的,想要真正的玩好NAS,网络的基础知识是必不可少的。
举个例子,我们常用的虚拟机和容器,它就是在linux自身的网络上,又增加了一层虚拟网络,如何将虚拟机、容器内的端口和服务转发出来,并且让公网访问,就是一门学问。
再举个例子,局域网内多网口策略,以及多Lan下网络转发如何处理。
我之前分享过一遍我自己的双宽带入户网络布局,里面有详细的网络拓扑和家装布局,感兴趣的可以看看。
今天,咱们围绕双网口中最常见的几种网络管理内容,介绍一下极空间私有云在不同网络模式下的使用场景,并为大家推荐最实用的网络模式。
一、解绑Bond
在极空间里,网络被分为解绑bond,bond,网桥模式三种。
解绑bond就是最普通的双网口,每一个网口有对应的网关,可以一样,也可以配置不同的运营商网络。
默认情况下,极空间及内部的虚拟机、docker等,都会优先使用网口1对应的网关(Z423比较特殊,优先使用网口2)。
解绑Bond的场景,更适合家庭有两个LAN区域,并且都需要接入极空间的时候配置使用。
比较可惜的就是,在极空间界面上,我们没有办法配置路由表,因此就无法在极空间侧实现网络分流。而通过SSH查询,我们完全可以在debian的环境下配置网络分流,但是这件事情很危险,不建议非专业人员操作,否则就会重置极空间才能恢复。
对于极空间来说,主要可以通过多通道,配合SMB 3.0聚合增加局域网内的SMB速度。(Bond6和软路由网桥模式也可以,但不推荐)。
二、网桥模式
网桥模式下,极空间会新创建数个虚拟机的虚拟网卡。
如果是网桥模式(使用于虚拟交换机),会创建一个kvmbr0,也就是将eht0和eth1的两个物理网口绑定在了一起,形成一个逻辑网口。
这是路由器默认的防回机制作用,该机制使物理双网口在逻辑上表现为单一通道,既保证链路冗余又避免数据回环,实际流量通过策略路由(如默认eth1)实现负载可控。
如果是网桥模式(适用于软路由),那就创建kvmbr0和kvmbr1,分别对应eth0和eth1的物理网口。
1、网桥模式(适用于虚拟交换机)
注意交换机模式下两个网口如果都连接路由器会导致环路故障,改变模式前务必按照下图正确连接网络
该模式下,物理网口变成了一个逻辑网口,极空间也变成了一台交换机,主要是用于将电脑终端接入极空间,实现上网使用。
电脑只要连接到极空间的另外一个网口,然后配置DHCP或者静态IP就行。
比较特殊的是,虚拟机要使用bridge网络(即获取到局域网ip),必须使用网桥模式。
2、网桥模式(适用于软路由)
与交换机模式唯一的区别,就是分别对应物理窗口创建虚拟网口。所以在虚拟机中可以选择不同的虚拟网卡对应的物理网口。
比如在openwrt中,除了默认的eth0(lan)外,还会多一个未分配的eth1,大家就可以根据自己的需求去配置网络了。
三、Bond模式
Bond模式是一种属于Linux的网络绑定(bonding)技术,网络绑定是将多个物理网络接口(NIC)组合成一个逻辑接口,以提高带宽、冗余或负载均衡。不同的绑定模式(bonding mode)决定了数据包如何在这些接口间分配和处理。
Bond一共有7种模式,mod 0,2,3,4需要交换机支持,mod 1,5,6不需要交换机支持。目前极空间内支持1、4、6三种模式。
1、Bond1(主备模式)
Bond 1就是常说的主备模式,极空间两个网口都接入交换机以后,会自动启用一个网口为主要流量传输用,当网口1断网后,会启用网口2。
1工作原理:
主动备份(Active-Backup):仅一个网卡处于活动状态(Active),其余处于备用状态(Backup)。
故障切换:当活动网卡故障时,系统自动切换到备用网卡,切换时间通常在秒级。
MAC地址:对外使用单一MAC地址,避免交换机学习多个地址。
2核心特点:
高可用性:确保网络永不中断
带宽不叠加:总带宽=单个网卡带宽
无负载均衡:仅故障容错
在这种模式下,网口会自动获取主路由器的DHCP,并且在备网启用后保持不变,保证NAS服务7 * 24不中断。
实测一下,当我拔掉网口1,实现物理断网以后,系统会自动切换到网口2,并且保护传输不会中断。
需要注意的是,bonding驱动的故障检测依赖于链路状态(Layer2),也就是物理连接是否正常。所以我们说的断网都是指电信号丢失以后的物理断网,如果因为上层网络故障的故障,但是链路状态是UP的,bonding驱动是不会切换网络的。
2、Bond4(动态链路聚合)
Bond4又称为M:N模式,由交换机的LACP确定聚合组中的活动和非活动链路,即M条活动链路与N条备份链路的模式。这种对于高并发的情况下会很有效果,但是如果一台电脑连接NAS,那基本是没效果的。
1工作原理:
IEEE 802.3ad标准:需交换机支持LACP协议
动态聚合:自动协商聚合参数,实时监控链路状态
负载均衡算法:支持多种哈希策略(如源MAC、IP、端口等)
2核心特点:
带宽叠加:总带宽=所有活动网卡之和
智能负载均衡:基于流量特征分配
依赖交换机:必须配置LACP(channel-group mode active)
这种模式下,必须和支持LACP的交换机一起使用,否则会导致极空间无法连网,需要重置才可以,一般不建议大家使用。
3、Bond 6(自适应负载均衡)
Bond 6包含了Bond 5,在此基础上加上针对IPv4的接收负载均衡。 该模式下,主要针对两个网口都连接了路由器,然后极空间自动分配流量走向,确保流量走向均衡。但是该模式也不推荐大家使用,因为PC对Bond 6的支持不是很好,兼容性还有问题。
1工作原理:
ALB(Adaptive Load Balancing):
发送负载均衡:基于ARP协商
接收负载均衡:通过修改ARP应答实现
无需特殊交换机:工作在二层透明模式
2核心特点:
兼容性强:适用于任何交换机
双向负载均衡:发送+接收流量均优化
CPU消耗较高:需要处理ARP欺骗逻辑
总结
本文通过介绍极空间的网络配置模式,大致介绍了一下普通网络、虚拟网桥、Bond模式下的使用场景。这些场景不仅仅是极空间,对于所有的linux和NAS操作系统都是通用的,有些NAS系统会支持更多的Bond模式,而有些需要自行配置。
除了这些模式外,对于docker来说,还有macvlan和ipvlan两种虚拟网络配置模式,支持将docker直接分配到路由器下获取局域网DHCP,并区别于Host模式,不会造成端口冲突。
对极空间用户来说,我的个人建议如下:
普通用户:解绑Bond ,或者双联路 Bond 1做聚合。
虚拟机用户:网桥模式(软路由)。
缺交换机用户:网桥模式(交换机)。
网络极客:Bond 4 叠带宽或自行分配流量。
相关推荐
- linux进程间的通信方式有哪些(linux怎么看这个进程在哪个路径下)
-
管道通信(PIPE)两个进程利用管道进行通信时.发送信息的进程称为写进程.接收信息的进程称为读进程。管道通信方式的中间介质就是文件.通常称这种文件为管道文件.它就像管道一样将一个写进程和一个读进程连接...
- Linux守护进程 daemonize 命令(linux 守护进城)
-
daemonize:作为守护进程运行命令的工具daemonize是一个命令行实用程序,它作为Unix/Linux守护进程运行命令。daemonize工具是用C语言编写的。大多数程序被设计为作为守护...
- linux进程间通信—信号(linux查看进程之间的通信指令i)
-
Linux环境进程间通信(二)信号(下)一、信号生命周期从信号发送到信号处理函数的执行完毕对于一个完整的信号生命周期(从信号发送到相应的处理函数执行完毕)来说,可以分为三个重要的阶段,这三个阶段由四个...
- Linux 上以树状查看文件和进程(linux如何查看进程树)
-
提供了一些方便的命令,用于以树状分支形式查看文件和进程,从而易于查看它们之间的关系。在本文中,我们将介绍、和命令以及它们提供的一些选项,这些选项可帮助你将注意力集中在要查看的内容上。ps我们用...
- 文件搜不到?进程理不清?掌握这3个Linux技巧,效率直接翻倍!
-
哎家人们,今天必须跟你们唠唠Linux里那些“用了就回不去”的效率神器!我猜屏幕前肯定有不少朋友跟我之前一样——明明装着Linux当开发机/服务器,结果每天被命令行折腾得够呛:找个文件翻遍目录,看进程...
- 如何在 Linux 中使用 PID 号查找进程名称?
-
在Linux的复杂世界中,进程是系统运行的核心,每个进程都由一个唯一的「进程ID」(PID)标识。无论是系统管理员在排查失控进程,还是开发者在调试应用程序,知道如何将PID映射到对应的进程名称都是一项...
- Linux进程深度解析(1):进程结构、内存布局与资源管理
-
0.简介进程是系统执行的核心单元,理解进程是我们诊断性能问题、开发高并发程序的基础。Linux进程深度解析系列将会从原理角度对进程进行深入分析,帮助读者系统的理解其设计的思路,让读者在理解原理的基础...
- Linux 下如何查看进程的资源限制信息?
-
简介Linux上的cat/proc/$pid/limits命令提供有关特定进程的资源限制的信息,其中$pid是相关进程的进程ID(pid)。该文件是`/proc文件系统的一部分,该...
- Linux 8种进程状态及状态转换(linux进程状态切换)
-
Linux8种进程状态通过psaux可以看到进程的状态。O:进程正在处理器运行,这个状态从来没有见过.S:休眠状态(sleeping)R:等待运行(runable)RRunningorrun...
- 如何查看linux后台运行的进程?如何查看后台运行进程的状态?
-
linux系统中挂在后台的进程,如何能够被运维人员知道呢?以及挂在后台的进程当前状态是怎样的?是否可以继续执行?如何杀死一个在后台挂起的进程?后台进程可以通过‘&’符号或nohup命令,让程序进入...
- 最新保姆级、超详细介绍VMware的使用(一)软件的安装
-
一、VMware简介VMWare虚拟机软件是一个“虚拟PC”软件,它使你可以在一台机器上同时运行二个或更多Windows、DOS、LINUX系统。与“多启动”系统相比,VMware采用了完全不同的概...
- Shell脚本怎么写?(0)(shell脚本怎么写变量)
-
各位不好意思,最近加班+感冒,有三四天没更新了,python自动化脚本系列总共六期,基本已经囊括了编写python自动化脚本的所有基础函数和语法了。大家如果没看过这个系列的话,可以参考下面的链接:...
- 用Python从头开发一个自己的Shell(下)
-
编程派微信号:codingpy平常工作中经常用到shell吧?好不好奇shell的具体执行方式?今天推送的这两篇文章,将利用Python实现一些简单的shell功能。本文原作者为Su...
- Linux编程Shell之入门——Shell函数返回值
-
在Shell中,函数可以通过返回值将结果传递给调用者。返回值可以是一个整数、字符串或其他类型的数据。以下是关于Shell函数返回值的详细介绍:使用return语句在Shell函数中,使用return...
- Linux shell编程中易混淆的符号(linux中shell编程详解)
-
符号主要功能执行环境是否解析变量典型用例()子Shell执行命令子进程是隔离环境操作{}代码块或扩展当前Shell是(代码块内)组合命令或生成序列""弱引用字符串-是含变量...
- 一周热门
- 最近发表
-
- linux进程间的通信方式有哪些(linux怎么看这个进程在哪个路径下)
- Linux守护进程 daemonize 命令(linux 守护进城)
- linux进程间通信—信号(linux查看进程之间的通信指令i)
- Linux 上以树状查看文件和进程(linux如何查看进程树)
- 文件搜不到?进程理不清?掌握这3个Linux技巧,效率直接翻倍!
- 如何在 Linux 中使用 PID 号查找进程名称?
- Linux进程深度解析(1):进程结构、内存布局与资源管理
- Linux 下如何查看进程的资源限制信息?
- Linux 8种进程状态及状态转换(linux进程状态切换)
- 如何查看linux后台运行的进程?如何查看后台运行进程的状态?
- 标签列表
-
- linux一键安装 (31)
- linux运行java (33)
- ln linux (27)
- linux 磁盘管理 (31)
- linux 内核升级 (30)
- linux 运行python (28)
- linux 备份文件 (30)
- linux 网络测试 (30)
- linux 网关配置 (31)
- linux jre (32)
- linux 杀毒软件 (32)
- linux语法 (33)
- linux博客 (33)
- linux 压缩目录 (37)
- linux 查看任务 (32)
- 制作linux启动u盘 (35)
- linux 查看存储 (29)
- linux乌班图 (31)
- linux挂载镜像 (31)
- linux 软件源 (28)
- linux题目 (30)
- linux 定时脚本 (30)
- linux 网站搭建 (28)
- linux 远程控制 (34)
- linux bind (31)