不建议看:软路由是坑,非必要不尝试

2023-08-17 17:52:20 109点赞 441收藏 148评论

这几天在讨论组网,说了一句“软路由是坑 能不用就不要o”

不建议看:软路由是坑,非必要不尝试

就有网友回复要问软路由有什么问题,今天咱们就来系统的说一下。

要搞懂路由(Routing)咱们得从IP网络来说起IP网络协议规定了主机和子网的概念。通常我们在设置一台电脑或者其他设备让它可以连接到互联网,就需要三个基本IP网络:IP地址、子网掩码和网关。

不建议看:软路由是坑,非必要不尝试

利用子网掩码就可以区分出子网和主机,例如上面这张图片,我们就可以清楚的看出子网地址是192.168.1.0/24,主机地址是147。

在IP网络中如果是相同子网的信息传递一般的情况下会以广播的方式建立连接,并不会进入到路由器中,但是如果是一个IP的目的地址并不在子网内,也就是192.168.1.0/24的子网地址不同,就会转入到IP设定到“默认网关”内进行传递。在一个一个路由器依次传递后,数据包就可以达到在子网外的目的主机,这是IP网络的基本设计思路。

不建议看:软路由是坑,非必要不尝试

这里的一个重点词汇叫做“默认网关”,“网关”的定义是一种连接两个不同网络或协议的设备,它负责将数据从一个网络或协议转换为另一个网络或协议的格式,以实现不同网络之间的通信。

通常路由(Routing)的概念是由设备发起IP网络数据连接就开始的。所以呢,你在你的电脑上如果输入路由查看命令你会看到大致如下的返回信息:

不建议看:软路由是坑,非必要不尝试

这个东西叫做路由表,在里面确定了不同IP数据包的目标和网关的发送关系。既然有“默认网关”那么就还会有其他的“网关”。因此你如果看路由器的路由表你会发现路由器上的路由表更加复杂一些:

不建议看:软路由是坑,非必要不尝试

会根据不同的地址规则将数据发往不同的网关。在这里面就有路由器的路由决策功能使数据可以按照最优的路径进行发送。

现在咱们来说说路由器,其实世界上最早的路由器就是一台软路由。

不建议看:软路由是坑,非必要不尝试

在Internet网络的前身ARPANET建设初期,就基于霍尼韦尔的DDP-516小型机定制了一批接口消息处理机(Interface Message Processor),完全依靠软件形式来处理ARPANET中不同子网之间的数据传递。

IMP的核心代码利用汇编编写源程序也没有多复杂:

DATA SEGMENT routingTable DB 10 DUP ('$') routingTableSize DW 0 DATA ENDS CODE SEGMENT ASSUME DS:DATA, CS:CODE initRoutingTable PROC MOV SI, OFFSET routingTable MOV CX, 10 MOV AL, '$' INIT_LOOP: MOV [SI], AL INC SI LOOP INIT_LOOP MOV routingTableSize, 0 RET initRoutingTable ENDP addRouteEntry PROC MOV BX, routingTableSize CMP BX, 10 JAE ROUTE_TABLE_FULL MOV AL, [BP+6] MOV [SI+BX], AL INC BX MOV routingTableSize, BX RET ROUTE_TABLE_FULL: RET addRouteEntry ENDP findRouteEntry PROC MOV SI, OFFSET routingTable MOV BX, routingTableSize FIND_LOOP: CMP BX, 0 JE NO_ROUTE_FOUND MOV AL, [SI] CMP AL, [BP+6] JE ROUTE_FOUND INC SI DEC BX JMP FIND_LOOP ROUTE_FOUND: RET NO_ROUTE_FOUND: RET findRouteEntry ENDP routePacket PROC CALL findRouteEntry RET routePacket ENDP MAIN PROC CALL initRoutingTable MOV AL, "5" PUSH AX CALL routePacket POP AX MOV AL, "10" PUSH AX CALL routePacket POP AX MOV AL, "1" PUSH AX CALL routePacket POP AX MOV AH, 4CH INT 21H MAIN ENDP CODE ENDS END

编译到这台小型机的可执行文件大小也仅仅只有6K字节。但这段程序的确完成了DDP-516上路由表管理、路由转发、简单的决策功能。

随着路由技术在逻辑层面的实现,基于电子电路的路由器专用处理芯片也就诞生了。之后类似于cisco一系列的硬件路由器就渐渐的诞生了。

不建议看:软路由是坑,非必要不尝试

和软件依靠存储转发所完成的路由操作不同,基于电路的硬件路由器的真正的实现了路径的转发操作,其效率仅仅和电路运行的时钟脉冲相关。如果说生动一点的比喻就是把一个杯子里的水转移到另一个杯子里面,硬件路由器是直接拿起杯子倒进去,而软件路由器则是用一把勺子从一个杯子不断的舀到另一个杯子。两者的效率大家可以自行脑补,而用更快的CPU实际上也仅仅是舀水的速度提高而已。

不建议看:软路由是坑,非必要不尝试

当然了,现代路由器功能繁多,也远远比早期的路由器复杂。本质上利用固件软件加上NPU的现代路由器也不仅仅是硬件部分,还有一系列的功能需要软件实现。但对比于现在依旧是依靠X86或者arm芯片的通用CPU来支撑起来的软路由,本身的效率优势、可靠性和成本优势都是软路由所不能比拟的。

在很多情况下可能你花费了2-3千组起来的软路由,实际上就网络性能来看仅仅相当于价格2-300块钱真正使用硬件芯片的硬件路由器。这件事实际上还是因为“舀水”的本质并没有得到改变而决定的。

不过,在目前来看普通用户所接触到的其实都是软路由。这是因为大多数尚有的电子厂商开始推出了很多的SoC(System on Chip)方案。将CPU和一些必要的网络接口电路做在了一个芯片里面。

不建议看:软路由是坑,非必要不尝试

例如最近新出的红米AX6000,就是使用了一块联发科Filogic SoC芯片做的系统级解决方案。像这类的解决方案芯片配上相应的固件就组成了一套多功能的网络路由器系统,为用户提供交换、路由、无线等一系列的功能。对于设备厂商来说大幅度的降低研发成本,只需要集中精力去搞产品外形和市场营销就好了,但对于路由器本身来看——历史的倒退又回到了“舀水”的境地。

最前面网友提到的“软路由”系统其实更坑。这也是为什么iN说非必要不尝试的一个区域了。好歹SoC的软路由方案还有部分电路做了网络加速和优化,但基于X86的计算架构搞起来的软路由实际上也就又回到了DDP-516的方案上。一切硬件设计并非为网络而优化,仅仅依靠软件让CPU搬砖来实现各种网络功能。

这类的软路由方案iN最早接触的是DDWRT。这是WRT的一个很早期版本记得是08或者09年的事情了,当时家里的网络系统、NAS等等设备清一水的采用巴福禄的方案。他家的无线路由器hp-G300h除了巴福禄的官方固件之外还可以安装官方支持的DD-WRT系统。

不建议看:软路由是坑,非必要不尝试

其余的类似软路由系统基本上都用过。这里得说的一个概念固件和系统。

这两个东西实际上差别并不是特别大,一般的来说固件存储在设备的非易失存储器内,例如这台hp-G300h的闪存中,而大部分系统都会存储在容量更大的存储介质中,例如很多X86软路由的硬盘中。它们两个的区别在于固件本身相当简陋,仅仅能响应简单的指令,甚至只提供一些必要的命令行接口,但系统就可以加载功能扩展模块并使用更多的图形界面了。

但对于一个路由器设备来说,本身的需求是开机之后不要去管也不要去看的设备实际上是没有太大的管理需求的,而很多软路由系统,不仅仅被设置了要收集数据例如(NetData)还承担着过多的广告拦截、DNS“优化”等功能,本身紧张的CPU性能用在网络数据处理上也就所剩无几了。

对于读者提到的几种软路由这里给做个分类:一类是开源系统,大部分基于Linux开发,这个和当初WRT出来的原因是一致的。另一类是私有化软件给出的免费版。

例如大家常用的OpenWRT、LEDE、潘多拉等都是基于Linux系统开发的一类软路由系统。而Vyos实际上也是基于Linux的Debain发行版进行开发,也属于Linux系统。

通常,这类的基于Linux系统的软路由系统都要事先运行一个Linux的内核,这就造成了路由系统所需要之外的开销。

另外提到的pfSense是基于FreeBSD的系统进行开发,因此也会有额外的BSD内核加载。

对于额外的操作系统内核的开销,BSD要远大于Linux内核。对于计算能力和存储能力很小的系统,这些系统开销占比就更不能忽视了。

对X86系统的软路由来说则需要加大内存和CPU处理能力这些软路由才可以真正的跑起来。但话说回来……软路由的软件都是谁开发的呢?

以WRT系列为例子,这是因为当初发现cisco的一款家用路由器使用了Linux内核,开源社区就给了Cisco压力,使之公布了WRT54G系列的路由器源代码。在此基础上开发出了openWRT,这时候大家可以理解为什么叫做“WRT”了吧?但对于开源开发者来说实际上并没有任何开发者真正的掌握和理解了路由器内部的硬件构成和硬件接口。因此虽然可以替换某些商品路由器的固件,但一些商品路由器本身基于原始固件的硬件特性也被消除。这也是为什么当初iN觉得hp-G300h的DDWRT聊胜于无的原因了。在使用了DDWRT后hp-G300h的AOSS(AirStation一键式安全系统)功能直接消失。

不建议看:软路由是坑,非必要不尝试

还有一些半官方支持的软路由系统,例如梅林,这是一个加拿大人基于华硕路由器开发的软路由系统,主要运行于华硕的路由器,在一些基于博通SoC的路由器上也可以使用。但是就是因为开发团队无法得到博通的真正接口文档导致路由器在运行的时候过热问题至今无法解决。

再有就是那种原来WRT的各种分支了。这些分支做大的不多,但是还是因为厂商支持的问题导致一些功能缺失。

不建议看:软路由是坑,非必要不尝试

例如看了一些路由器系统的源代码,至今系统上承诺对某某性能进行优化的选项到源代码里面依旧是空函数。十多年了,优化了个寂寞。

回头再看X86的软路由——简单的理解就是在一个操作系统上安装了一套有路由功能的软件。

以windows的RRA为例:

不建议看:软路由是坑,非必要不尝试

在windows server版中安装远程访问服务,其中就有Routing选项。这个服务叫做 windows Routing and Remote Access。

不建议看:软路由是坑,非必要不尝试

安装后经过设置你的windows server 就具备了路由器功能。当然了,你也可以为windows server 再加入DNS、DHCP等一系列的功能,让它看起来更像是一个家用路由器,当然了如果这台机器上还有无线网卡,你也可以开启AP功能。

代价就是明明可以利用几十块钱的小路由完成的工作,需要拖上几千块的电脑来做,而且由于优化问题其效率并不比几十块的小路由器更好。

还有一些路由器软件例如前面咱们提到的pfSense,本身是一套防火墙的操作系统。主要用于Netgate防火墙内。

不建议看:软路由是坑,非必要不尝试

有更多的功能是为了防火墙服务的。由于这个软件有一定程度的开源,同时也支持多个接口的设置和转换,因此也被很多人用来作为软路由系统来使用。本质上还是和用windows架起来一个“路由器”一样冗余不用的功能太多。实际上用户并不会在这这种软路由上获得太好的网络性能。

目前宽带进入千家万户,很多人想提高网络性能,想象着换一个软路由就可以达到让家庭网络速度狂涨的目的实际上是不切实际的,这是一个从原理上就可以知道的坑。当然了,你有其他的软路由的用途,并不以提高网速为目的还是可以用一下的。

不过,在大多数情况下,软路由还就真的不是一个家庭用户的刚需。还是之前和大家提到的,家庭网络,能不折腾就别折腾。

不过,在大多数情况下,软路由还就真的不是一个家庭用户的刚需。还是之前和大家提到的,家庭网络,能不折腾就别折腾,软路由,非必要无需尝试。

对于安装软路由系统这类所谓的技巧,你看过非酋门相互讨论如何用好“并列式隔热食品输送器”吗?专门干网络的看很多数码博主讨论和评测软路由的时候就是这个感觉。

不建议看:软路由是坑,非必要不尝试

作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

展开 收起

Redmi 红米 AX6000 双频5952M 家用千兆Mesh无线路由器 Wi-Fi 6 单个装黑色

Redmi 红米 AX6000 双频5952M 家用千兆Mesh无线路由器 Wi-Fi 6 单个装黑色

319元起

Redmi 红米 AX5400 双频5400M 家用千兆Mesh无线路由器 Wi-Fi 6 增强版 单个装 白色

Redmi 红米 AX5400 双频5400M 家用千兆Mesh无线路由器 Wi-Fi 6 增强版 单个装 白色

235元起

Redmi 红米 AX系列 AX3000 双频3000M 千兆家用无线路由器 Wi-Fi 6 单个装 白色

Redmi 红米 AX系列 AX3000 双频3000M 千兆家用无线路由器 Wi-Fi 6 单个装 白色

137元起

Redmi 红米 AX系列 AX6S 双频3200M 家用千兆Mesh无线路由器 Wi-Fi 6 单个装 黑色

Redmi 红米 AX系列 AX6S 双频3200M 家用千兆Mesh无线路由器 Wi-Fi 6 单个装 黑色

188.9元起

Redmi 红米 AX5400 双频5400M 家用千兆无线路由器 Wi-Fi 6 增强版 单个装 黑色

Redmi 红米 AX5400 双频5400M 家用千兆无线路由器 Wi-Fi 6 增强版 单个装 黑色

368元起

Redmi 红米 AX3000 双频3000M 家用千兆Mesh无线路由器 Wi-Fi 6

Redmi 红米 AX3000 双频3000M 家用千兆Mesh无线路由器 Wi-Fi 6

178元起

Redmi 红米 AX6 3000M 家用千兆无线路由器 Wi-Fi 6 白色

Redmi 红米 AX6 3000M 家用千兆无线路由器 Wi-Fi 6 白色

189元起

Redmi 红米 AX5 双频1775M 千兆Mesh家用有线路由器 WiFi 6 白色

Redmi 红米 AX5 双频1775M 千兆Mesh家用有线路由器 WiFi 6 白色

119元起

Redmi 红米 AC2100 双频2033M 家用千兆无线路由器 Wi-Fi 5 单个装 白色

Redmi 红米 AC2100 双频2033M 家用千兆无线路由器 Wi-Fi 5 单个装 白色

159元起

Redmi 红米 AX1800 双频1800M 家用千兆Mesh无线路由器 Wi-Fi 6 单个装 白色

Redmi 红米 AX1800 双频1800M 家用千兆Mesh无线路由器 Wi-Fi 6 单个装 白色

129元起

HP 惠普 T620 桌面云终端机

HP 惠普 T620 桌面云终端机

暂无报价

Redmi 红米 双频5400M家用千兆Mesh无线路由器 Wi-Fi 6 单个装 黑色

Redmi 红米 双频5400M家用千兆Mesh无线路由器 Wi-Fi 6 单个装 黑色

519元起

Xiaomi 小米 AX3000T 双频3000M 家用千兆Mesh路由器 Wi-Fi 6 白色 单个装

Xiaomi 小米 AX3000T 双频3000M 家用千兆Mesh路由器 Wi-Fi 6 白色 单个装

99元起

Ruijie 锐捷 雪豹 X30E 双频3000M 家用千兆Mesh无线路由器 Wi-Fi 6 白色 单个装

Ruijie 锐捷 雪豹 X30E 双频3000M 家用千兆Mesh无线路由器 Wi-Fi 6 白色 单个装

159元起

Xiaomi 小米 BE6500 Pro 双频6500M 家用千兆Mesh无线路由器 Wi-Fi 7

Xiaomi 小米 BE6500 Pro 双频6500M 家用千兆Mesh无线路由器 Wi-Fi 7

535元起

ZTE 中兴 AX3000 巡天版 双频3000M 家用千兆Mesh无线路由器 Wi-Fi 6 单个装 白色

ZTE 中兴 AX3000 巡天版 双频3000M 家用千兆Mesh无线路由器 Wi-Fi 6 单个装 白色

146元起
148评论

  • 精彩
  • 最新
  • 揣着明白装糊涂,上软路由的目的是啥?是为了那个路由功能?

    校验提示文案

    提交
    反正我是为了访问互联网!!!

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 说实话,大多数捣鼓这个的,是有需求的,这个需求往往是不能说的你懂的需求,你说不搞软路由怎么实现吧?总不能每个终端都搞

    校验提示文案

    提交
    最开始用k2跑,那小内存只能跑跑ss,后面机场主全面搞v2去了,没办法,又用极路由跑,一周必重启路由一次,不然老是失联。最后上了软路由上了clash,世界清宁了

    校验提示文案

    提交
    大妈上这么多程序员??

    校验提示文案

    提交
    还有5条回复
    收起所有回复
  • 如果你不能忍受那AD钙奶的滋味,那软路由就是刚需,不过100块就能满足,比一般硬路由还便宜

    校验提示文案

    提交
    ad钙奶是啥

    校验提示文案

    提交
    还有14条回复
    收起所有回复
  • 软路由确实是个坑,但是玩软路由的几个是单纯为了上网来的?

    校验提示文案

    提交
    所谓的openwrt科学上网本身效率并不高

    校验提示文案

    提交
    现在有解码AES-256的SOC芯片啦?

    校验提示文案

    提交
    还有3条回复
    收起所有回复
  • 软路由是为了翻墙吧? 一般几十块的硬路由没有这功能。

    校验提示文案

    提交
    想翻都能翻

    校验提示文案

    提交
    建议出个方案让九成软路由玩家崩溃掉 [傻笑]

    校验提示文案

    提交
    还有10条回复
    收起所有回复
  • 长篇大论,最后得出一个很正确的废话结论:不过,在大多数情况下,软路由还就真的不是一个家庭用户的刚需。还是之前和大家提到的,家庭网络,能不折腾就别折腾,软路由,非必要无需尝试。

    校验提示文案

    提交
    证明1+1=2 是很有必要性的

    校验提示文案

    提交
    收起所有回复
  • 我也知道是坑,可我有在路由上搭建某样东西的需求啊,直接上Mikrotik?

    校验提示文案

    提交
    mikrotik 也可以的

    校验提示文案

    提交
    收起所有回复
  • 折腾几百元软路由用来科学的。。为啥不直接搞个几百的梅林固件的路由器

    校验提示文案

    提交
    梅林路由器的效能和可管理性都不行的

    校验提示文案

    提交
    收起所有回复
  • iN在很专业。连我这个做了20+的数通工程师都忘了好多东西。我用软路由仅仅是做tizi用。软路由的功能其实已经不算路由器了。路由器是链接两个不同网络或是协议的设备,软路由现在多数功能是完成功能性。更像一台内容服务器。

    校验提示文案

    提交
    大多数非专业用户仅仅就用了皮毛 但对于真正的路由功能却一点不了解 tizi非得要用软路由么? [吐舌]

    校验提示文案

    提交
    收起所有回复
  • 说了一大堆废话,就最后一句还行。软路由不是一般家庭的刚需,没毛病

    校验提示文案

    提交
  • 太长不看版:软件实现的转发效率低于硬件实现,同等效率下通用硬件比专用硬件贵太多,不出国别折腾

    校验提示文案

    提交
  • 确实坑,我从j3455小主机一路干到了现在epyc 7282+128g内存+10t ssd+60t hdd的aio软路由。。。根本管不住手

    校验提示文案

    提交
    哈哈,我最开始是g1840t跑,跑了半年性能弱鸡,果断换i3 4150t,跑了一年,又想尝试vt-d网卡直通,再换i5 4590t,跑了半年,玩虚拟机win10不得劲,昨天又换了e3 1345v5,功耗性能直接拉满

    校验提示文案

    提交
    国家电网战略合作伙伴

    校验提示文案

    提交
    还有9条回复
    收起所有回复
  • 捣腾软路由的谁不是当爱好没事给自己找点事做,个人爱好谈什么刚需

    校验提示文案

    提交
  • 反正搭了软路由以后,进我家就自动打开世界之门,没觉得是坑

    校验提示文案

    提交
  • 喜欢出国留学,做nas访问的.那这个软路由就比较有用了.

    校验提示文案

    提交
  • 谁叫现在处理器性能强呢,还便宜。一力降百会。软路由真好用。当然百分之99的家庭是不需要的。本来就是留给需要的人的。

    校验提示文案

    提交
    没毛病,弄软路由的基本都是爱折腾的人。

    校验提示文案

    提交
    收起所有回复
  • 有需求的你说了也没用,没需求的不用你说 [邪恶] 不要劝人做选择,把优缺点列出来让人选择就行

    校验提示文案

    提交
  • 大抵没错,不要玩软路由,会变成机柜

    校验提示文案

    提交
  • 如果没有墙的话,我完全不需要软路由。

    校验提示文案

    提交
  • 一本正经的胡说八道

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关好价推荐
查看更多好价

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
441
扫一下,分享更方便,购买更轻松