软路由那么强大, 为什么硬路由不上 x86 平台呢?

2018-10-31 16:00:31 +08:00
 snail00

软路由, 内存大, 存储大, cpu 也给力, 为什么硬路由不上呢.

硬路由的优势是什么, 稳定性 /系统 /无线 还是什么?

29075 次点击
所在节点    路由器
46 条回复
Maskeney
2018-10-31 20:17:15 +08:00
单纯的转发用 x86 就是大炮打蚊子 这么说你懂了吧
silencefent
2018-10-31 20:29:28 +08:00
FPGA 太强了,软路由的稳定性在增加到成百上千的规模后,宕机概率不是前者可比
alcarl
2018-10-31 21:50:49 +08:00
思科几十年前就是 x86 架构。。。。。。。
ADragon3
2018-10-31 21:54:31 +08:00
我觉得是稳定性和连续运行吧,毕竟很多家用路由器都几个月甚至一年不断电一次。x86 不太清楚,直觉感觉故障率高一些
tcsky
2018-10-31 21:56:51 +08:00
硬件路由效率更高吧. 都实时系统 硬件加速的
abcbuzhiming
2018-10-31 22:37:46 +08:00
x86 这种复杂指令集架构,如果专门用来做某个特定领域的事情,远不如精简指令,特别定制的芯片好。至于为啥不上?没需求呗
xenme
2018-10-31 22:51:19 +08:00
看看防火墙啥的不都是软路由么,只是功能更复杂而已,所以选择通用 CPU 更方便,开发成本更低。

吞吐几十上百 G 都不是问题。


单纯路由,上面也提到了,功能单一,选择通用 CPU 更浪费和不划算
annoy1309
2018-10-31 23:08:20 +08:00
那我举个不太恰当的例子,专业交换机,单板上 30+的 100G 口,50+的万兆口,单机总交换能力 500T 起步,你用什么 x86 能撑住?
再举个例子,台式机 /服务器插 pcie 口的网卡,双 QSFP,两条 56G 的聚合,你 x86 拿什么抗?
mydns
2018-10-31 23:19:08 +08:00
功耗 发热
Mac
2018-10-31 23:57:15 +08:00
讲道理,现在博通的几个高端路由,未必比 j1900 和 n3150 的功耗低。讲购买成本,其实差不多。
msg7086
2018-11-01 00:16:10 +08:00
同样的转发速度,软路由方案比硬路由成本和性能要求高得多,更不提 @annoy1309 说的在高吞吐量情况下你上一万刀的 8180 都不见得能跑起来。

PS 如楼上所说,为什么要把 N2600 说成 2600,完全两个东西好吗。
wwhc
2018-11-01 03:38:03 +08:00
楼上的几位,WPA2 加密使用的是 AES 算法,x86 CPU 早就包含 AES 指令集,软件无线路由实现毫无压力
sinxccc
2018-11-01 03:58:56 +08:00
Control plane 用 x86 的挺多的啊,倒是 data plane 没人敢用 x86 …
dndx
2018-11-01 06:18:31 +08:00
如果是家用网络,那软路由的确是足够了。只要规模稍微大一点,谁敢用软路由啊...

原来工作的地方用的是 ASR 9006,供 40000 多人同时上网,跑 Full BGP,多条 10Gbps 光纤接入然后用 100Gbps 的线卡连接内网:

1. 内存大存储大没什么用。路由做为转发设备,把包用最快的速度发出去才是王道,buffer 太大只是在增加转发延迟,内存的用处主要也就是存一存有限的路由表信息,不是越大越好。而 ASR 的包 buffer 用的是 SDRAM,虽然比较小但是速度要比 x86 的 DRAM 快了太多。另外 ASR 的路由查询是通过 TCAM 这种专门的内存进行的,只需要一个时钟周期就可以搜寻完整个路由表,试问 x86 有什么算法能做到这种效率?这也是为什么硬路由可以轻松做到小包线速,而 x86 就很难的原因。
2. CPU 给力同理,专用转发硬件基本上都是 ASIC 处理的转发,追求 CPU 性能意义不大。
3. 硬路由支持各种高级的防灾措施,比如带电带流量更换线卡,路由卡,电源等等。而硬件也都有冗余,就算一张卡坏了,另一张会自动顶上,用户甚至都不会察觉。x86 如果 CPU 坏了或者主板、网卡坏了就只能哭了。
4. 硬路由总线带宽大,ASR 9006 这种比较低端的型号吞吐都已经 12 Tbps 了,x86 还没有发布的 PCI Express 5.0 x16 也只有 63GB/s 的带宽,差不多 0.5Tbps。而 ASR 9922 这种顶尖型号已经能达到了 160Tbps。对这种用户来说,x86 根本就无法考虑。

当然软路由也不是没有意义。如果对成本比较敏感,流量没有到一定规模,偶尔宕机可以接受,那是完全可以考虑的。
wwhc
2018-11-01 07:00:45 +08:00
给楼上某位,x86 主板可以按芯片组不同提供多条 PCIe 通道,几年前的 intel 主板已经可以提供 8 GT/s 的总带宽了,服务器上的多端口网卡也早就具有各类容灾功能
tangbao
2018-11-01 07:09:19 +08:00
@dndx 40000 多人!敢问是什么地方?
dndx
2018-11-01 07:40:32 +08:00
@wwhc Intel 最高端的 Xeon Platinum 8180 这种 $10000+ 的 CPU 最高也就是 48 条 PCIe 3.0。就算全部用来插网卡,想跑到 10 Tbps 恐怕也有点困难吧。如果要跑 10 几个槽位,又牵扯到 CPU 之间的数据交换,故障率也增加了,而且成本不见得就比直接买硬路由要低。

容灾的话,我不知道 x86 能不能做到在一个 CPU 或者主板坏了的情况下继续正常服务。CPU 热插拔这种似乎也没见有多少软路由支持。
cloudyi666
2018-11-01 07:45:47 +08:00
@dndx 是的涉及到一堆的规则,路由表项的查询 x86 是扛不住的
sinxccc
2018-11-01 07:48:00 +08:00
这种鸡同鸭讲的问题…

我觉得基本上见过大点的交换机或者边缘路由器长什么样的自然不会问出这种问题,至于家用 /小企业用的十几二十个口的「路由器」,随便什么方案都是能应付的。
zhjits
2018-11-01 10:00:50 +08:00
谁说没有? DPDK 了解一下?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/503057

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX