V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
xivisi
V2EX  ›  路由器

Linux NAT 转发性能不如意?

  •  
  •   xivisi · 2018-10-19 09:41:45 +08:00 · 7925 次点击
    这是一个创建于 1987 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    19 条回复    2018-10-19 22:21:09 +08:00
    liwl
        1
    liwl  
       2018-10-19 09:47:10 +08:00
    架构不一样...通用集成电路和专用集成电路
    greenskinmonster
        2
    greenskinmonster  
       2018-10-19 10:12:38 +08:00
    是 ip forward 吗?好几台 gentoo 的服务器做转发,没发现这个问题。
    xivisi
        3
    xivisi  
    OP
       2018-10-19 10:13:37 +08:00
    @greenskinmonster 可以请教怎么配置的吗?
    xivisi
        4
    xivisi  
    OP
       2018-10-19 10:15:28 +08:00
    @greenskinmonster 有参考链接也可以,我的基础配置是按照官方 wiki 上面的 home router 配置的
    greenskinmonster
        5
    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
        6
    xivisi  
    OP
       2018-10-19 10:29:33 +08:00
    @greenskinmonster 我目前是功能正常,但是性能不行。
    因为我要做 QoS,所以把内核中的 Qos 配置全开
    其它:filter 也全开了,默认使用 bbr
    ryd994
        7
    ryd994  
       2018-10-19 10:35:13 +08:00 via Android   ❤️ 1
    已知 IP 的情况下,不要用 MASQUERADE 而应该用 SNAT,性能略好
    好的硬件 nat 吊打软件 nat 是很正常的事
    用 PC 做软路由的优势在于,硬件 nat 有一部分处理不了的,还是要靠软件。这时候 x86 就比路由器的 arm soc 强太多了。
    延迟方面还是有办法的。比如关闭节能设置,尽量保持高主频。使用低延迟内核。有必要的话也可以上 dpdk 这类。你肯下功夫的话,优化的空间还是很大的。
    greenskinmonster
        8
    greenskinmonster  
       2018-10-19 10:35:53 +08:00   ❤️ 1
    你一项一项排除呗
    在 gentoo 网关直接 ping 目标延迟情况
    不开 qos 时,客户机 ping 目标延迟情况
    看看问题出在哪里

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

    这都差了个位数毫秒了,只有可能是玄学问题(配置 /硬件)
    topbandit
        15
    topbandit  
       2018-10-19 12:32:40 +08:00
    我司生产环境用 nat
    0987363
        16
    0987363  
       2018-10-19 12:49:00 +08:00 via Android
    软路由再差也不会差 10 多 ms,估计哪里配置不对或者硬件或者驱动问题
    ryd994
        17
    ryd994  
       2018-10-19 16:07:22 +08:00 via Android
    @xivisi 虚拟机延迟高是必然的,因为是宿主机先接收再转发给虚拟机。就算是 macvtap 也有一部分需要宿主机内核参与。
    如果有 pcie 网卡的话试试 pci 直通,性能能达到物理机的水平
    carrionlee
        18
    carrionlee  
       2018-10-19 16:27:48 +08:00 via Android
    不如还是用硬路由,gentoo 做网关即可
    xivisi
        19
    xivisi  
    OP
       2018-10-19 22:21:09 +08:00
    感谢各位网友的热心帮助,目前已恢复。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5120 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 09:43 · PVG 17:43 · LAX 02:43 · JFK 05:43
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.