whyorwhynot

ros 软路由异地组网

  •  
  •   whyorwhynot · Aug 7, 2020 · 7672 views
    This topic created in 2111 days ago, the information mentioned may be changed or developed.

    楼主最近遇到了一个使用场景,需要让两地的局域网可以互相访问,于是寻找异地组网的方法。

    因为是网络小白,网上搜了搜决定两地使用 RouterOS Cloud Hosted Router 虚拟机建立 pptp 隧道,搭建旁路网关,宿主机为 e5-2670v3 的服务器,配置了 8 个 vcpu 。

    经过一番折腾网络终于通了,但是使用 iperf3 测速,发现只有 60mbps 的速度(两地间带宽都是千兆的上下行),测速时 ros 显示 CPU 使用率达到 80%,查询了 ros 官网,根据 https://rickfreyconsulting.com/mikrotik-vpns/ pptp 隧道貌似就这么慢,这与我的直觉差距很大,因为使用 openwrt 透明路由转发可以达到 500mbps 的速度。ros 官网指出 ipsec 的速度很快,但是搜索的 ros ipsec 教程都是 ip tunnel 之类的,搭建了 ip tunnel 隧道依旧是不到 100mbps 的速度。想请教一下大家隧道是不是真的就这么慢,大家又是用的什么异地组网方案(开源、傻瓜最好了),能跑满千兆吗?

    21 replies    2020-08-24 17:11:52 +08:00
    Xusually
        1
    Xusually  
       Aug 7, 2020
    有没有可能是运营商协议限速,QoS ?
    terrancesiu
        2
    terrancesiu  
       Aug 7, 2020
    我同城 3 点组网,全部用的 gre,没有加 ipsec,用最垃圾的 mikrotik 设备,也能跑 200m 上下行。你可以测下两地之间的 udp,如果 udp 很好,那么可以考虑 GRE over IPEsec 。
    whyorwhynot
        3
    whyorwhynot  
    OP
       Aug 7, 2020
    @Xusually 这个不会,因为两地都是走自建的大内网,ros 的 cpu 利用率也很高
    whyorwhynot
        4
    whyorwhynot  
    OP
       Aug 7, 2020
    @terrancesiu 换了 gre tunnel,测速 60mbps,cpu 利用率 85%。。
    terrancesiu
        5
    terrancesiu  
       Aug 7, 2020
    @whyorwhynot 先用 ros 自带的工具针对公网 ip 进行 udp/tcp 端对端打流测测。也看看 cpu 。然后在隧道内进行端对端打流
    kennylam777
        6
    kennylam777  
       Aug 7, 2020
    自建的大內網,根本就是 IPSec Site-to-Site tunnel 的理想場境, GRE over IPSec 應該是不用的,以這樣的 CPU 即使沒有 AES-NI 都應該能跑 500Mbps 。不要用 PPTP 了這東西是過時的,而且主要是 client-to-site 的 NAT 方案,跑 Site-To-Site 是自討苦吃。

    只問一句,IPSec tunnel 內的 MTU 值是?有做 MSS Clamping 嗎?

    可以在 client 先用 iperf3 -M 1280 限住 MTU 測測看
    chinawrj
        7
    chinawrj  
       Aug 7, 2020
    wireguard ?估计 openvpn 都比你这个强。
    yingfengi
        8
    yingfengi  
       Aug 7, 2020 via Android
    为何不用 IPSec ?
    cest
        9
    cest  
       Aug 7, 2020
    不会是用了 policy routing 又开了 fast track 吧
    不过有 fast track, 60Mbps cpu 不该这麽高
    reset, 做最简设置看看 cpu 用多高
    mason961125
        10
    mason961125  
       Aug 7, 2020 via iPhone
    ros 现在还没 wg 支持吧,不过为啥不用 eoip 呢?
    ericbize
        11
    ericbize  
       Aug 7, 2020   ❤️ 1
    ros 自带的 EOIP 可以达到使用场景, 跨越公网的时候考虑使用 ,l2tp, 应该速度可以了。

    sstp 和 openvpn 的 cpu 消耗有点大, 我在云上面 双核 可以跑到 400Mbps 64 的小包, 你调一下别的参数试试
    ericbize
        12
    ericbize  
       Aug 7, 2020
    pptp 使用的是 gre tunnel,eoip 也是使用 gre 封装的, 不知道重叠会不会很大损耗。 7.0 版本支持 vxlan,可以考虑去尝鲜, 反正虚拟机,不行就重启一台新的好了。
    whyorwhynot
        13
    whyorwhynot  
    OP
       Aug 7, 2020
    @kennylam777 ros 系统重置了,配置了 ipsec tunnel,参数都是默认,速度还是只有 60mbps 左右,iperf3 -M 1280 也是一样。折腾过程中调小了一个路由规则涉及的 ip 范围,iperf3 tcp 单线程速度可以跑到 500mbps 了。但是 udp 不知道为啥才 1mbps 。。。
    jousca
        14
    jousca  
       Aug 7, 2020
    @whyorwhynot 运营商对 UDP 有时候有 QOS 规则。因为那东西不像 TCP 有连接,也没有流控能力。
    kennylam777
        15
    kennylam777  
       Aug 8, 2020 via iPad
    @whyorwhynot 很簡單,iperf3 udp default 1Mbps, 請用-b
    mandymak
        16
    mandymak  
       Aug 8, 2020
    @whyorwhynot 千兆上下行?你的宽带是在境外?亲测 ros 实体 x86 pptp 跑满 300M 不成问题。
    Actrace
        17
    Actrace  
       Aug 8, 2020
    openvpn 比较简单。现成的解决方案。
    whyorwhynot
        18
    whyorwhynot  
    OP
       Aug 8, 2020
    @kennylam777 惊讶
    lin559671
        19
    lin559671  
       Aug 10, 2020 via Android
    @terrancesiu 最垃圾的 rb941 你跑个 200M 来看看。我反正各种协议死活过不了 60M
    teky
        20
    teky  
       Aug 17, 2020
    不如用 SRv6
    thtznet
        21
    thtznet  
       Aug 24, 2020
    你问题解决了么?我最近也发现用 IP Tunnel 连接 2 端,测试速度只有 2 ~ 4 Mbps(家宽),于外网上行差距巨大。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3503 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 82ms · UTC 05:02 · PVG 13:02 · LAX 22:02 · JFK 01:02
    ♥ Do have faith in what you're doing.