软路由小包转发
本帖最后由 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+ROS5万流并发,双向1.16Mpps CPU 30%
E5+ROS6万流并发,双向2.38Mpps CPU 38%
E5+ROS10万流并发,双向1.31Mpps CPU 29%
E5+ROS26万流并发,双向2.77Mpps CPU 36%
E5+Vyos6万流并发,双向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牛逼!
ROS双向转发19.29Mpps,Trex和ROS流量显示一致
ROS双向桥接17.54Mpps,Trex和ROS流量显示一致
Vyos双向转发8.36Mpps,比ROS差一大截
Vyos双向桥接12.65Mpps,还是比ROS差一大截
W2150B的跑分和E5差不多,但是转发性能明显差很多,C422还是四通道内存,精粤只有两通道
W2150B Vyos桥接性能也差很多
硬路由代表Erpoe-5居然性能虚标,怎么测都是这个数值,硬件转发只有446Kpps,软转发48.82Kpps
5万流做NAT,链接跟踪10万条,转发1.16Mpps,CPU30%
6万流做NAT,转发2.38Mpps,CPU38%
10万流做NAT,链接跟踪25万条,转发1.31Mpps,CPU29%
26万流做NAT,链接跟踪37万条,转发2.77Mpps,CPU36%
Vyos 预料中的拉跨,这玩意不好看连接数,Trex显示6W流,有丢包,有NAT超时,CPU应该是跑满炸掉了,转发有2.29Mpps
硬路由代表Erpoe-5 直接卡死,UI打不开,CPU 100%,NAT超时,转发407Kpps
R86S双向转发2.07Mpps
R86S 2万流做NAT,链接跟踪6万条,转发1.34Mpps,降低流数量是为了避免出现丢包,导致PPS统计误差。
TL-R473G双向转发高达133.8Kpps,CPU占用53%
TL-R473G 2842流并发,CPU 85%,大量丢包和NAT超时,并发也上不去,转发高达75.5Kpps
小包转发具体用在什么场景里啊,我知道的就玩游戏,还是手游影响大,端游都不咋影响。问题是家用有多少手机会同时玩游戏啊 wolfing 发表于 2024-8-29 19:05
小包转发具体用在什么场景里啊,我知道的就玩游戏,还是手游影响大,端游都不咋影响。问题是家用有多少手机 ...
小包转发只体现在,你在网上讨论网络又吵不赢对方,恰好发现对方用的是软路由,为了让对方闭嘴,达到一箭封喉的作用。
上述纯属玩笑,如有雷同请对号入座。
小包转发一个薛定谔的指标,只要没人测,那么软路由永远比不上硬路由。
LZ能测下R86S能跑多少么?我正好有一个闲置着 X86阵营这规模 撵着2006年的cn5020猛锤 脸上无光[偷笑] 本帖最后由 525165 于 2024-8-29 21:33 编辑
64,128 小包占比,比想象中大的多,有时候可能还是主要占比
同档次(价格)的软路由小包转发性能一般都低于 或远远低于 硬路由,没见过例外
另外一般来讲,软路由的转发延迟也高,功耗也高。这两点也是无解死穴 建议再叠加一层PPPOE的buff[偷笑] 话说x86的软路由小包转发能力openwrt和ros的差别大吗 abbot 发表于 2024-8-29 19:34
LZ能测下R86S能跑多少么?我正好有一个闲置着
LZ不是有测么? 看之前一篇评测,牙膏的网卡普遍要比螃蟹卡小包性能要高 ROS用的是什么网卡?虚拟出来的网卡性能超拉跨,我用SR-IOV出来的网卡测试,跟vmnet3对比,差了很多 kevinho86 发表于 2024-8-29 22:07
LZ不是有测么?
那不是发包么? 理论是对的,不过实践中没啥用。现在越来越多跑分项目都有类似的效果了。非专业使用,各方面全是性能过剩的。 多崎作 发表于 2024-8-29 22:36
看之前一篇评测,牙膏的网卡普遍要比螃蟹卡小包性能要高
深有体会,15年前用螃蟹卡8111+ROS给1500台电脑供网,会莫名其妙卡顿,占用率也不算高,后来花了两千块换了个82576,瞬间不卡了,甚至峰值流量提高了一倍,平均流量也提高了百分之十五左右 在黑群上docker搭了个猫咪,目前使用也够了 x86百兆网络用intel 1000网卡就能到线速
千兆网络用万兆网卡能线速
x86 io没专有硬件强,但实际应用流量肯定强一大截,比如高并发应用等等实际流量测试。 话说 10510U + I210 这种组合,能打得过800以下得硬路由咩[吃惊]
打不过就考虑买个硬得了 shadow404 发表于 2024-8-30 09:30
话说 10510U + I210 这种组合,能打得过800以下得硬路由咩
打不过就考虑买个硬得了 ...
完全可以,很对人测速跑不满千兆,是因为MTU设置的不对,每个地方运营商的MTU值都不一样,自己调一调就好了 ERPoe-5的配置已经落后有一整子了,有条件可以拿2260t测试下,价格很合适
本想赞助楼主测试的,可惜我那台刷了OP改了U,目前不太稳定 chnfeeeeeef 发表于 2024-8-30 09:57
完全可以,很对人测速跑不满千兆,是因为MTU设置的不对,每个地方运营商的MTU值都不一样,自己调一调就好 ...
我们这边运营商下发给光猫的配置MTU默认是1492,改为桥接以后用电脑拨号的话系统查询就是1480,这种情况应该用哪个 "小包转发不稳定",这是大家对于软路由的刻板印象。
是不是真的,不好说,但我觉得这个刻板印象的缘由,是因为大部分软路由本身不稳定,然后人云亦云。
虽然,但是,你不得选个价格差不多的硬路由比较么 wswcx 发表于 2024-8-30 10:09
我们这边运营商下发给光猫的配置MTU默认是1492,改为桥接以后用电脑拨号的话系统查询就是1480,这种情况 ...
我选的是1492,目前用百度云试了下,可以跑满千兆 10核/16核的软路由,秒杀家用硬路由毫无意外。而且还是个老的千兆“硬”路由。
不过就算比较新的高通ipq9系方案,也就低流(小于2K)下性能还可以,基本做到NAT小包跑满10G。上万流,直接1Mpps以内了,小包千兆线速都达不到。毕竟家用路由方案,高并发不在设计范围内的。 本帖最后由 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强多少。 weisir 发表于 2024-8-29 20:45
你这样说出真相会让大家都伤心的[偷笑] 这看下来,MikroTik的ROS真香。 chnfeeeeeef 发表于 2024-8-30 09:57
完全可以,很对人测速跑不满千兆,是因为MTU设置的不对,每个地方运营商的MTU值都不一样,自己调一调就好 ...
2024年了我想没人会缺那0.0001的CPU,不想出问题直接1280或者1360都是可以的 vyos从1.5版本开始支持vpp offlaod,因此转发能力就上去了。但是它目前不支持nat端口映射,需要再等一等。软路由性能并不差,只是跟硬路由比起来功耗高,发热大而已。我年前就用netgate的tnsr,最后退烧用了硬路由加arm旁路由。性能上万兆跑满,功耗上万兆内外网不到50w。这已经是极限了。