Linux NAT 转发性能不如意?

2018-10-19 09:41:45 +08:00
 xivisi

搞了一套 NAS,DQ77KB+E3-1265LV2+8G*2, 软件用 gentoo+zfs+samba+mininlda+kodi ……。 得益于 linux 的扩展性,也没有虚拟机那样耗资源,本着不浪费资源的想法,顺便把 软路由功能做上去。 但是,发现配出来的软路由,性能不咋的

比如,内网一台 PC,通过 gentoo 去 ping 一个外网地址需要 66ms,而通过华硕路由器 ping 同一个地址,才 50ms …… 这也差太多了………… 请问怎么优化???

8190 次点击
所在节点    路由器
19 条回复
liwl
2018-10-19 09:47:10 +08:00
架构不一样...通用集成电路和专用集成电路
greenskinmonster
2018-10-19 10:12:38 +08:00
是 ip forward 吗?好几台 gentoo 的服务器做转发,没发现这个问题。
xivisi
2018-10-19 10:13:37 +08:00
@greenskinmonster 可以请教怎么配置的吗?
xivisi
2018-10-19 10:15:28 +08:00
@greenskinmonster 有参考链接也可以,我的基础配置是按照官方 wiki 上面的 home router 配置的
greenskinmonster
2018-10-19 10:25:25 +08:00
按照 wiki 来没问题,主要就是下面几条

sysctl.conf:
net.ipv4.ip_forward = 1
net.ipv4.conf.default.rp_filter = 1

iptables -t nat -A POSTROUTING -o ${WAN} -j MASQUERADE

不行的话,换下内核版本,tcpdump 抓包试试看
xivisi
2018-10-19 10:29:33 +08:00
@greenskinmonster 我目前是功能正常,但是性能不行。
因为我要做 QoS,所以把内核中的 Qos 配置全开
其它:filter 也全开了,默认使用 bbr
ryd994
2018-10-19 10:35:13 +08:00
已知 IP 的情况下,不要用 MASQUERADE 而应该用 SNAT,性能略好
好的硬件 nat 吊打软件 nat 是很正常的事
用 PC 做软路由的优势在于,硬件 nat 有一部分处理不了的,还是要靠软件。这时候 x86 就比路由器的 arm soc 强太多了。
延迟方面还是有办法的。比如关闭节能设置,尽量保持高主频。使用低延迟内核。有必要的话也可以上 dpdk 这类。你肯下功夫的话,优化的空间还是很大的。
greenskinmonster
2018-10-19 10:35:53 +08:00
你一项一项排除呗
在 gentoo 网关直接 ping 目标延迟情况
不开 qos 时,客户机 ping 目标延迟情况
看看问题出在哪里

这个级别的 cpu,感觉性能足够
xuhaoyangx
2018-10-19 10:56:01 +08:00
表示 nas 用 esxi。freenass +直通 HBA 卡+zfs ;软路由 lede x64 做分流+fq,ikuai 做流控; Windows 虚拟机一天跑渲染压制; Centos 一台跑常规任务
xenme
2018-10-19 11:01:29 +08:00
随意软 nat,加上广告过滤延迟基本都是 1ms 内差异。
xivisi
2018-10-19 11:37:23 +08:00
@xenme ESXI 虚拟 ROS 6.42 ( PPPoE,NAT 基础配置),也比华硕路由器多 7ms,不确定是虚拟系统造成的,还是因为华硕路由内置硬件转发
xivisi
2018-10-19 11:38:45 +08:00
@greenskinmonster
在 gentoo 网关直接 ping 目标延迟 60 ms
测试时,没开 QoS
xuhaoyangx
2018-10-19 11:44:24 +08:00
@xivisi #11 有可能是硬件导致的。以前遇到过,换了一块山寨四口 intel 的网卡,期初觉得没发现什么。到后期网卡不太稳定了,咬牙上了个正品,发现延迟比以前小
denghongcai
2018-10-19 12:18:13 +08:00
都直接插 wan 口再试试

这都差了个位数毫秒了,只有可能是玄学问题(配置 /硬件)
topbandit
2018-10-19 12:32:40 +08:00
我司生产环境用 nat
0987363
2018-10-19 12:49:00 +08:00
软路由再差也不会差 10 多 ms,估计哪里配置不对或者硬件或者驱动问题
ryd994
2018-10-19 16:07:22 +08:00
@xivisi 虚拟机延迟高是必然的,因为是宿主机先接收再转发给虚拟机。就算是 macvtap 也有一部分需要宿主机内核参与。
如果有 pcie 网卡的话试试 pci 直通,性能能达到物理机的水平
carrionlee
2018-10-19 16:27:48 +08:00
不如还是用硬路由,gentoo 做网关即可
xivisi
2018-10-19 22:21:09 +08:00
感谢各位网友的热心帮助,目前已恢复。

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

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

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

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

© 2021 V2EX