找回密码
 加入我们
搜索
      
查看: 15498|回复: 171

[网络] 软路由小包转发

  [复制链接]
发表于 2024-8-29 18:54 | 显示全部楼层 |阅读模式
本帖最后由 rx_78gp02a 于 2024-9-3 15:32 编辑

小包转发一直是软路由饭圈不可触碰的G点,任凭你把功能描绘得天花乱坠,对方一句“你小包转发垃圾”,即便有千言万语也瞬间沉默,如鲠在喉。

编辑原因:更正拓扑图错误
编辑原因:新增R86S测试结果
编辑原因:新增TL-R473G “企业级”路由测试结果
软件版本:
Trex V3.05
Promox VE 8.2
Ros 7.15.2/7.15.3
Vyos-1.5-rolling-202408260022

硬件配置:
发包主机:型号-R86S
N5105 + 16G + MCX542B + I225
被测主机A:999包邮三件套
精粤X99I + E5-2697A V4 + 32G + MCX4121A
被测主机B:N手咸鱼三件套
C422WSI + W-2150B + 64G + MCX4121A
被测主机C:EdgeRouter(传说中1Mpps牛逼PLUS的存在)
ERPoe-5
被测主机D:TL-R473G “企业级”路由
QCA9563+64M+16M

结论:
R86S发包极限单向14.7Mpps双向29.34Mpps
转发测试:
R86S+ROS转发单向2.44/2.29Mpps
R86S+ROS转发双向2.07Mpps

E5+ROS转发单向12.63/12.83Mpps
E5+ROS转发双向19.29Mpps
E5+ROS桥接双向17.54Mpps

E5+Vyos转发双向8.36Mpps
E5+Vyos桥接单向10.82/10.72Mpps
E5+Vyos桥接双向12.65Mpps

C422+ROS转发单向9.59/9.06Mpps
C422+ROS转发双向7.93Mpps

C422+Vyos转发单向6.46/6.41Mpps
C422+Vyos转发双向6.72Mpps

ERPoe-5硬件转发单向426.98/445.41Kpps
ERPoe-5硬件转发双向446.86Kpps
ERPoe-5软件转发单向48.82/46.88Kpps
ERPoe-5软件转发双向25.32Kpps

TL-R473G转发单向126.78/124Kpps
TL-R473G转发双向133.8Kpps

NAT测试:测试结果和并发量、活动量、转发量有很大差异,仅供参考。
R86S+ROS 2万流并发1.35Mpps CPU 91%
E5+ROS  5万流并发,双向1.16Mpps CPU 30%
E5+ROS  6万流并发,双向2.38Mpps CPU 38%
E5+ROS  10万流并发,双向1.31Mpps CPU 29%
E5+ROS  26万流并发,双向2.77Mpps CPU 36%
E5+Vyos  6万流并发,双向2.29Mpps CPU 100%

ERPoe-5 直接挂逼升天原地去世,CPU 100%,GUI打不开,SSH卡死,转发407Kpps
TL-R473G 2842流并发,CPU 85%,转发高达75.5Kpps
测试环境:
ROS路由设置
/ip address
add address=172.16.1.1/24 interface=P0 network=172.16.1.0
add address=172.16.2.1/24 interface=P1 network=172.16.2.0
/ip arp
add address=172.16.1.2 interface=P0 mac-address=0C:42:A1:E0:B1:7C
add address=172.16.2.2 interface=P1 mac-address=0C:42:A1:E0:B1:7D
/ip route
add disabled=yes distance=1 dst-address=16.0.0.0/8 gateway=172.16.1.2 \
    routing-table=main scope=30 suppress-hw-offload=no target-scope=10
add disabled=yes distance=1 dst-address=48.0.0.0/8 gateway=172.16.2.2 \
    routing-table=main scope=30 suppress-hw-offload=no target-scope=10
Vyos路由设置
set interfaces ethernet eth1 address '172.16.2.1/24'
set interfaces ethernet eth1 description 'P0'
set interfaces ethernet eth2 address '172.16.1.1/24'
set interfaces ethernet eth2 description 'P1'
set protocols static arp interface eth1 address 172.16.2.2 mac 0c:42:a1:e0:b1:7d
set protocols static arp interface eth2 address 172.16.1.2 mac 0c:42:a1:e0:b1:7c
set protocols static route 16.0.0.0/8 next-hop 172.16.1.2 interface eth2
set protocols static route 48.0.0.0/8 next-hop 172.16.2.2 interface eth1
ROS NAT设置
/ip firewall nat
add action=masquerade chain=srcnat out-interface=P1 src-address=172.16.1.0/24
Vyos NAT设置
set nat source rule 100 outbound-interface name ' eth1'
set nat source rule 100 source address '172.16.1.0/24 '
set nat source rule 100 translation address masquerade

测试拓扑:转发测试只做静态路由不做NAT,无防火墙,NAT测试因为并发不同只能参考

测试拓扑

测试拓扑

R86S使用VPP发包最大性能在29.34Mpps,VPP牛逼!

R86S发包极限

R86S发包极限

ROS双向转发19.29Mpps,Trex和ROS流量显示一致

ROS双向转发

ROS双向转发

ROS双向桥接17.54Mpps,Trex和ROS流量显示一致

ROS双向桥接

ROS双向桥接

Vyos双向转发8.36Mpps,比ROS差一大截

Vyos双向转发

Vyos双向转发

Vyos双向桥接12.65Mpps,还是比ROS差一大截

Vyos双向桥接

Vyos双向桥接

W2150B的跑分和E5差不多,但是转发性能明显差很多,C422还是四通道内存,精粤只有两通道

C422 ROS转发

C422 ROS转发

W2150B Vyos桥接性能也差很多

C422 Vyos桥接

C422 Vyos桥接

硬路由代表Erpoe-5居然性能虚标,怎么测都是这个数值,硬件转发只有446Kpps,软转发48.82Kpps

Erpoe-5

Erpoe-5

5万流做NAT,链接跟踪10万条,转发1.16Mpps,CPU30%

5W NAT

5W NAT

6万流做NAT,转发2.38Mpps,CPU38%

6W NAT

6W NAT

10万流做NAT,链接跟踪25万条,转发1.31Mpps,CPU29%

10W NAT

10W NAT

26万流做NAT,链接跟踪37万条,转发2.77Mpps,CPU36%

26W NAT

26W NAT

Vyos 预料中的拉跨,这玩意不好看连接数,Trex显示6W流,有丢包,有NAT超时,CPU应该是跑满炸掉了,转发有2.29Mpps

Vyos NAT

Vyos NAT

硬路由代表Erpoe-5 直接卡死,UI打不开,CPU 100%,NAT超时,转发407Kpps

ERL硬件转发

ERL硬件转发

R86S双向转发2.07Mpps

R86S转发

R86S转发

R86S 2万流做NAT,链接跟踪6万条,转发1.34Mpps,降低流数量是为了避免出现丢包,导致PPS统计误差。

R86S NAT

R86S NAT

TL-R473G双向转发高达133.8Kpps,CPU占用53%

TP转发

TP转发

TL-R473G 2842流并发,CPU 85%,大量丢包和NAT超时,并发也上不去,转发高达75.5Kpps

TP NAT

TP NAT

发表于 2024-8-29 19:05 | 显示全部楼层
小包转发具体用在什么场景里啊,我知道的就玩游戏,还是手游影响大,端游都不咋影响。问题是家用有多少手机会同时玩游戏啊
 楼主| 发表于 2024-8-29 19:19 | 显示全部楼层
wolfing 发表于 2024-8-29 19:05
小包转发具体用在什么场景里啊,我知道的就玩游戏,还是手游影响大,端游都不咋影响。问题是家用有多少手机 ...

小包转发只体现在,你在网上讨论网络又吵不赢对方,恰好发现对方用的是软路由,为了让对方闭嘴,达到一箭封喉的作用。
上述纯属玩笑,如有雷同请对号入座。

小包转发一个薛定谔的指标,只要没人测,那么软路由永远比不上硬路由。
发表于 2024-8-29 19:34 | 显示全部楼层
LZ能测下R86S能跑多少么?我正好有一个闲置着
发表于 2024-8-29 19:45 | 显示全部楼层
X86阵营这规模 撵着2006年的cn5020猛锤 脸上无光
发表于 2024-8-29 20:28 | 显示全部楼层
本帖最后由 525165 于 2024-8-29 21:33 编辑

64,128 小包占比,比想象中大的多,有时候可能还是主要占比

同档次(价格)的软路由小包转发性能一般都低于 或远远低于 硬路由,没见过例外

另外一般来讲,软路由的转发延迟也高,功耗也高。这两点也是无解死穴
发表于 2024-8-29 20:43 | 显示全部楼层
建议再叠加一层PPPOE的buff
发表于 2024-8-29 20:45 | 显示全部楼层
002.png 0001.png
发表于 2024-8-29 22:00 | 显示全部楼层
话说x86的软路由小包转发能力openwrt和ros的差别大吗
发表于 2024-8-29 22:07 | 显示全部楼层
abbot 发表于 2024-8-29 19:34
LZ能测下R86S能跑多少么?我正好有一个闲置着

LZ不是有测么?
发表于 2024-8-29 22:36 来自手机 | 显示全部楼层
看之前一篇评测,牙膏的网卡普遍要比螃蟹卡小包性能要高
发表于 2024-8-29 22:40 | 显示全部楼层
ROS用的是什么网卡?虚拟出来的网卡性能超拉跨,我用SR-IOV出来的网卡测试,跟vmnet3对比,差了很多
发表于 2024-8-29 23:34 | 显示全部楼层

那不是发包么?
发表于 2024-8-29 23:43 | 显示全部楼层
理论是对的,不过实践中没啥用。现在越来越多跑分项目都有类似的效果了。非专业使用,各方面全是性能过剩的。
发表于 2024-8-30 07:46 | 显示全部楼层
多崎作 发表于 2024-8-29 22:36
看之前一篇评测,牙膏的网卡普遍要比螃蟹卡小包性能要高


深有体会,15年前用螃蟹卡8111+ROS给1500台电脑供网,会莫名其妙卡顿,占用率也不算高,后来花了两千块换了个82576,瞬间不卡了,甚至峰值流量提高了一倍,平均流量也提高了百分之十五左右
发表于 2024-8-30 08:09 | 显示全部楼层
在黑群上docker搭了个猫咪,目前使用也够了
发表于 2024-8-30 09:07 | 显示全部楼层
x86百兆网络用intel 1000网卡就能到线速
千兆网络用万兆网卡能线速
x86 io没专有硬件强,但实际应用流量肯定强一大截,比如高并发应用等等实际流量测试。
发表于 2024-8-30 09:30 | 显示全部楼层
话说 10510U + I210 这种组合,能打得过800以下得硬路由咩

打不过就考虑买个硬得了
发表于 2024-8-30 09:57 | 显示全部楼层
shadow404 发表于 2024-8-30 09:30
话说 10510U + I210 这种组合,能打得过800以下得硬路由咩

打不过就考虑买个硬得了 ...

完全可以,很对人测速跑不满千兆,是因为MTU设置的不对,每个地方运营商的MTU值都不一样,自己调一调就好了
发表于 2024-8-30 10:09 | 显示全部楼层
ERPoe-5的配置已经落后有一整子了,有条件可以拿2260t测试下,价格很合适
本想赞助楼主测试的,可惜我那台刷了OP改了U,目前不太稳定
发表于 2024-8-30 10:09 | 显示全部楼层
chnfeeeeeef 发表于 2024-8-30 09:57
完全可以,很对人测速跑不满千兆,是因为MTU设置的不对,每个地方运营商的MTU值都不一样,自己调一调就好 ...

我们这边运营商下发给光猫的配置MTU默认是1492,改为桥接以后用电脑拨号的话系统查询就是1480,这种情况应该用哪个
发表于 2024-8-30 10:09 | 显示全部楼层
"小包转发不稳定",这是大家对于软路由的刻板印象。
是不是真的,不好说,但我觉得这个刻板印象的缘由,是因为大部分软路由本身不稳定,然后人云亦云。
发表于 2024-8-30 10:10 | 显示全部楼层
虽然,但是,你不得选个价格差不多的硬路由比较么
发表于 2024-8-30 10:11 | 显示全部楼层
wswcx 发表于 2024-8-30 10:09
我们这边运营商下发给光猫的配置MTU默认是1492,改为桥接以后用电脑拨号的话系统查询就是1480,这种情况 ...

我选的是1492,目前用百度云试了下,可以跑满千兆
发表于 2024-8-30 10:23 | 显示全部楼层
10核/16核的软路由,秒杀家用硬路由毫无意外。而且还是个老的千兆“硬”路由。

不过就算比较新的高通ipq9系方案,也就低流(小于2K)下性能还可以,基本做到NAT小包跑满10G。上万流,直接1Mpps以内了,小包千兆线速都达不到。毕竟家用路由方案,高并发不在设计范围内的。
发表于 2024-8-30 10:36 | 显示全部楼层
本帖最后由 Jimmy_Qiu 于 2024-8-30 10:39 编辑
Emmerich 发表于 2024-8-30 10:09
ERPoe-5的配置已经落后有一整子了,有条件可以拿2260t测试下,价格很合适
本想赞助楼主测试的,可惜我那台 ...


2260T是IPQ8系,大概在1k流NAT,单向9Mpps、双向18Mpps(也有人测出14Mpps,参考)。
超过2k流性能下降。
按lz的测量方式,NAT 5万流起步。
考虑到新一代IPQ9570的5万流NAT结果868kpps,IPQ8系恐怕不会比ERPoe-5强多少。
发表于 2024-8-30 10:40 | 显示全部楼层

你这样说出真相会让大家都伤心的
发表于 2024-8-30 10:40 | 显示全部楼层
这看下来,MikroTik的ROS真香。
发表于 2024-8-30 10:43 | 显示全部楼层
chnfeeeeeef 发表于 2024-8-30 09:57
完全可以,很对人测速跑不满千兆,是因为MTU设置的不对,每个地方运营商的MTU值都不一样,自己调一调就好 ...

2024年了我想没人会缺那0.0001的CPU,不想出问题直接1280或者1360都是可以的
发表于 2024-8-30 10:44 来自手机 | 显示全部楼层
vyos从1.5版本开始支持vpp offlaod,因此转发能力就上去了。但是它目前不支持nat端口映射,需要再等一等。软路由性能并不差,只是跟硬路由比起来功耗高,发热大而已。我年前就用netgate的tnsr,最后退烧用了硬路由加arm旁路由。性能上万兆跑满,功耗上万兆内外网不到50w。这已经是极限了。
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

Archiver|手机版|小黑屋|Chiphell ( 沪ICP备12027953号-5 )沪公网备310112100042806 上海市互联网违法与不良信息举报中心

GMT+8, 2024-11-25 18:50 , Processed in 0.015450 second(s), 6 queries , Gzip On, Redis On.

Powered by Discuz! X3.5 Licensed

© 2007-2024 Chiphell.com All rights reserved.

快速回复 返回顶部 返回列表