V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
tiscool
V2EX  ›  Linux

用 iptables 做端口转发的延时抖动问题

  •  
  •   tiscool · 232 天前 · 1623 次点击
    这是一个创建于 232 天前的主题,其中的信息可能已经有所发展或是发生改变。

    背景是这样的:

    现在有个 openvpn 的隧道,需要从 A 点连到 B 点(B 点有公网 IP),但是如果通过公网线路不优,延时比较大,想利用地理位置靠近 B 的 AWS EC2 上开一个 VM (C 点)去转发包,来改善延时

    开始线路如下:

    IP A (openvpn client) -> IP B (openvpn server) 直连 ping 值 300 ms

    通过 EC2 端口转发后:

    IP A (openvpn client) -> IP C(AWS EC2 NAT)-> IP B (openvpn server) 通过 AWS EC2 / IP C 的转发,IP A 到 IP B 的端到端延时的确降低不少,但不是很稳定,低的话 150ms ,但是有的时候经常性抖到 250ms 应该是端口转发带来的抖动,有什么优化思路或者更好的实现方法吗

    IP A 到 IP C ,IP C 到 IP B 的公网 ping 值都非常稳定,加起来一直是 150 ms 这个量级。

    希望优化方案不需要碰 openvpn server 端的配置,谢谢 V 友指导

    4 条回复    2024-09-14 16:47:39 +08:00
    nkloveni
        1
    nkloveni  
       231 天前
    你这个应该不是端口转发的问题,这个坑很小,应该还是被 QoS 了,你用的 tcp 还是 udp ,用对应协议,大包 ping 下试试。
    sendi
        2
    sendi  
       221 天前
    sudo sysctl -w net.ipv4.tcp_window_scaling=1
    sudo sysctl -w net.ipv4.tcp_rmem='4096 87380 6291456'
    sudo sysctl -w net.ipv4.tcp_wmem='4096 65536 6291456'
    试试优化下内核 如果不行就用 haproxy 转发 tcp 和 udp 试试 可以优化更多呢
    Charlie17Li
        3
    Charlie17Li  
       97 天前 via iPhone
    @sendi 有个小疑问,基于 haproxy 为什么会比 iptables 更优呢?从数据包在 nat 节点的流转路径来看,iptables 的方式不需要将数据包从内核态拷贝到用户态,不是消耗更小吗
    sendi
        4
    sendi  
       95 天前
    @Charlie17Li haproxy 对 tcp 的优化多些 但是还是可以减少抖动 iptables 的消耗更小是肯定的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2694 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 15:32 · PVG 23:32 · LAX 07:32 · JFK 10:32
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.