V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
mrzx
V2EX  ›  宽带症候群

想做 routeros site to site 内网互通,有什么可用的方案吗?

  •  
  •   mrzx · 2023-03-12 00:22:23 +08:00 · 3732 次点击
    这是一个创建于 656 天前的主题,其中的信息可能已经有所发展或是发生改变。

    2 套房子用的都是 routeros 的设备,都有公网 IPV4 地址,只是都是动态的,需要使用 ddns 我想把 2 套房子里的内网全部路由打通。

    打算 ipsec 加密,直接互指 pper 方式,发现配置不起来,目标 IP 是填不了域名,只能填 IP 地址,而公网 IP 地址是会变化的吗。

    请问 有没有即可以 site to site 互联,且还支持动态公网 IP 的 VPN 类型?或者类似方案?

    38 条回复    2023-03-14 14:38:06 +08:00
    BH1SMB
        1
    BH1SMB  
       2023-03-12 00:24:41 +08:00
    群晖貌似有 Site2Site
    dfly0603
        2
    dfly0603  
       2023-03-12 00:29:52 +08:00   ❤️ 1
    WireGuard ?
    scitec
        3
    scitec  
       2023-03-12 01:21:38 +08:00
    Meraki 方案?
    scitec
        4
    scitec  
       2023-03-12 01:22:34 +08:00   ❤️ 1
    我使用的 Meraki 方案,自动 site to site VPN ,接口为动态 ip 地址。
    Liku
        5
    Liku  
       2023-03-12 01:41:16 +08:00 via iPhone   ❤️ 1
    eoip 或者 gre 都行
    flyingfishzxf
        6
    flyingfishzxf  
       2023-03-12 01:49:28 +08:00 via Android   ❤️ 1
    买个域名,ddns+wireguard 吧
    Liku
        7
    Liku  
       2023-03-12 01:49:40 +08:00 via iPhone
    sentivcn
        8
    sentivcn  
       2023-03-12 02:55:13 +08:00   ❤️ 1
    eoip gre ipip wireguard 隧道都可以填域名
    gux928
        9
    gux928  
       2023-03-12 07:09:47 +08:00 via iPhone   ❤️ 1
    ddns+wireguard,ipv6,我这移动没有公网 v4
    fastcache
        10
    fastcache  
       2023-03-12 09:01:52 +08:00 via iPhone   ❤️ 1
    为了简单配置,我准备上 arm64+ zerotier
    dude4
        11
    dude4  
       2023-03-12 09:51:26 +08:00   ❤️ 1
    联通+电信+wireguard+ipv6+CF 的 DDNS 一直在用,两边网关都是 op ,装 wireguard 包很方便,还自带 watchdog 保活
    两边拨号 /重启后只要 CF 的 DDNS 及时更新都可以很快自动重连,网关设置 allowed ip 还可以分别限制互访权限,配合静态路由可以做到访问对面的下级网络
    缺点是基于 UDP ,目前发现即使是 ipV6 也时不时被 QOS ,传大文件还是要 webdav 直接暴露外网
    mouyong
        12
    mouyong  
       2023-03-12 09:53:50 +08:00
    有,openvpn 。欢迎联系我~


    winbox
        13
    winbox  
       2023-03-12 10:03:19 +08:00 via iPhone   ❤️ 1
    内网用 sstp 组网就行了
    memorybox
        14
    memorybox  
       2023-03-12 10:06:35 +08:00   ❤️ 1
    我们家做的小工具支持这种场景;但是遗憾的是目前只能在 openwrt 上部署;楼主有兴趣的话可以看一下文档,看看有没有帮助,连接:
    https://happyncn.feishu.cn/wiki/wikcn4131WTejreKoXrL5nLlCZd
    mandymak
        15
    mandymak  
       2023-03-12 10:12:41 +08:00   ❤️ 1
    @mrzx eoip 或 gre over ipsec 就可以,DDNS 用 3322 ,免费的。
    mrzx
        16
    mrzx  
    OP
       2023-03-12 12:59:55 +08:00
    谢谢楼上各位。

    routeros 自带 wireguard,我试试看吧。
    piku
        17
    piku  
       2023-03-12 14:14:36 +08:00 via Android   ❤️ 1
    在用,ros 的 ipip 协议和 eoip 协议可以用域名。
    piku
        18
    piku  
       2023-03-12 14:18:20 +08:00 via Android   ❤️ 1
    不对啊看了一下我家 ros 的一组 IPSec 就是走的域名连接啊,你版本不对吧
    JoeoooLAI
        19
    JoeoooLAI  
       2023-03-12 15:19:26 +08:00   ❤️ 1
    既然有公网 那 wireguard 应该是最好了
    ilylx2008
        20
    ilylx2008  
       2023-03-12 15:50:08 +08:00   ❤️ 1
    找一个 ros 作为服务端,开个 ppp 或者 l2tp ,另一个客户端连上,配下路由就行了。ovpn 的话稍微麻烦点。
    mrzx
        21
    mrzx  
    OP
       2023-03-12 18:50:39 +08:00
    @piku V7 版本 IP-IPsec-Peers-New IPsec Peer 里,local Address 这不能填域名,只能填自己本地的公网 IP (但我这个 IP 地址肯定会变化的吗)你的意思是 local Address 这项根本不用填?只填对面的 Adress 即可?这个倒是可以填域名
    mrzx
        22
    mrzx  
    OP
       2023-03-12 19:40:33 +08:00
    @piku 哈哈,搞定了,设置感兴趣流和 NAT 就行了,等会我把配置贴上来,希望能帮助更多人。
    mrzx
        23
    mrzx  
    OP
       2023-03-12 19:57:43 +08:00
    第一套房子内网网段 192.168.58.0/24 第 2 套房子内网网段 192.168.18.0/24
    第一套房子的公网公网域名是 xxx.3322.org 第 2 套房子公网动态域名 aaa.3322.org

    第一套房子配置
    /ip ipsec peer
    add address=aaa.3322.org name=aaa
    /ip ipsec identity
    peer=aaa auth-method=pre-shared-key secret="123456xx" generate-policy=no
    /ip ipsec policy 设置感兴趣流
    add dst-address=192.168.18.0/24 peer=aaa src-address=192.168.58.0/24 tunnel=yes

    想互通,得做 NAT
    add action=accept chain=srcnat dst-address=192.168.18.0/24 src-address=192.168.58.0/24
    记住,这个 NAT 也是有优先级的,优先级必须调成最首位的


    第二套房子配置
    /ip ipsec peer
    add address=xxx.3322.org name=xxx
    /ip ipsec identity
    peer=xxx auth-method=pre-shared-key secret="123456xx" generate-policy=no
    /ip ipsec policy 设置感兴趣流
    add dst-address=192.168.58.0/24 peer=xxx src-address=192.168.18.0/24 tunnel=yes

    想互通,得做 NAT
    add action=accept chain=srcnat dst-address=192.168.58.0/24 src-address=192.168.18.0/24
    记住,这个 NAT 也是有优先级的,优先级必须调成最首位的
    neroxps
        24
    neroxps  
       2023-03-12 20:17:13 +08:00 via iPhone
    emmm 我老爸家普通 wifi 路由器,刷老毛子的系统用 l2tp 和 ros 打通 丝滑的一批。
    neroanelli
        25
    neroanelli  
       2023-03-12 21:43:15 +08:00   ❤️ 1
    我两台 routeros ,其中一台有公网 ipv4 ,直接用 openvpn 组的 site2site ,ovpn 可以配置路由,连接之后就可以互相访问了。
    huaes
        26
    huaes  
       2023-03-12 22:02:32 +08:00   ❤️ 1
    自从路由器支持 wireguard 后就放弃 openVPN 了,因为 wireguard 可以手动选择优先 IPV6
    mrzx
        27
    mrzx  
    OP
       2023-03-12 22:08:27 +08:00
    谢谢楼上各位。
    看来方案也不少,各有各的长处
    1.最传统的 ipsec peer
    2.openvpn
    3.wireguard
    4.l2tp ipsec tunnel
    JoeoooLAI
        28
    JoeoooLAI  
       2023-03-13 11:35:55 +08:00   ❤️ 1
    @mrzx
    其实 4 种协议都真的用起来只有资源消耗上差别而已,如果你的 ros 是 x86 无需考虑资源消耗,你选个顺手的来用就行。

    openvpn 还有个小好处是可以 tcp 模式,如果 udp 被 qos ,tcp 模式就发挥作用了,但墙内而且是同一运营商这个就无所谓了。

    我个人感觉 wireguard 在 有一方不是公网 ip 的情况最容易配置,没有其他那么繁琐。(不过这个优点也不适合 op 目前情况
    SgtPepper
        29
    SgtPepper  
       2023-03-13 11:45:00 +08:00
    我 ros 上开了 IKEv2 ,有公网 IP ,ikev2 的服务器名就用的 ros 自带的 ddns 注册的域名
    不过我是给办公电脑 win10 用的
    flyingfishzxf
        30
    flyingfishzxf  
       2023-03-13 12:06:41 +08:00   ❤️ 1
    https://github.com/Nyr/wireguard-install
    WireGuard 一键安装脚本,超简单,准备一台 24 小时运行的虚拟机,运行脚本,填上几个简单的参数,把生成的客户端配置直接在另一台设备上粘贴连接就搞定啦。
    我折腾 OpenVPN 了好几天,都没搞定,WireGuard 的一键脚本很快解决了
    galaxyskyknight2
        31
    galaxyskyknight2  
       2023-03-13 12:26:38 +08:00
    ntop n2n
    jikky
        32
    jikky  
       2023-03-13 16:21:51 +08:00   ❤️ 1
    IP 也可以解决,你自己做个脚本 5 分钟检测下域名,然后把转换的 IP 配过去不就 OK 了。
    况且你的这个 PPPOE 也不会无故断掉。
    这个就跟你 DDNS 一个道理。
    jikky
        33
    jikky  
       2023-03-13 16:30:15 +08:00   ❤️ 1
    :global natout1 [:resolve www.google.com server=223.5.5.5]
    ip ipsec peer set [find name=peer1] local-address=$natout1

    在系统计划里面运行,5 分钟一次。
    mrzx
        34
    mrzx  
    OP
       2023-03-14 10:35:09 +08:00
    @jikky 可以,这个好,可以借用一下,在 ddns 失效的时候,做备份方案,我在研究下如何每次检测接口的 IP 后,自动发送到我的邮箱里。
    briancao
        35
    briancao  
       2023-03-14 11:35:11 +08:00
    @mrzx 我家里也是 2 台 routeros 组网,直接 wireguard 互联打通,ddns 直接就用的 routeros 自带的,但是目前碰到 2 个问题,1.wireguard 不支持组播的跨网 2.基于 udp 的 wireguard 容易被限速
    mrzx
        36
    mrzx  
    OP
       2023-03-14 13:16:54 +08:00
    @briancao 看看是否能采用 IGMP 协议解决组播的问题?
    mrzx
        37
    mrzx  
    OP
       2023-03-14 13:20:46 +08:00
    @briancao 我 DDNS 用的是脚本实现的,我共享出来给大家吧。

    :local ednsuser "用户名"
    :local ednspass "密码"
    :local ednshost "xxxxx.3322.org"
    :local ednsinterface "pppoe-out1"
    :local members "http://members.3322.net/dyndns/update?system=dyndns"
    :local status
    :local status [/interface get [/interface find name=$ednsinterface] running]
    :if ($status!=false) do={
    :local ednslastip [:resolve $ednshost]
    :if ([ :typeof $ednslastip ] = nil ) do={ :local ednslastip "0" }
    :local ednsiph [ /ip address get [/ip address find interface=$ednsinterface ] address ]
    :local ednsip [:pick $ednsiph 0 [:find $ednsiph "/"]]
    :local ednsstr "&hostname=$ednshost&myip=$ednsip"
    :if ($ednslastip != $ednsip) do={/tool fetch url=($members . $ednsstr) mode=http user=$ednsuser password=$ednspass
    :delay 2
    :local result [/file get $ednshost contents]
    :log info ($ednshost . " " .$result)
    /file remove $ednshost;
    }
    }


    记得把脚本调成定时执行即可。时间不宜太频繁,会触发 3322 站点的黑名单机制。建议在 1 小时以上的间隔时间。
    mandymak
        38
    mandymak  
       2023-03-14 14:38:06 +08:00
    @briancao eoip over wireguard 试试
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3576 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 00:10 · PVG 08:10 · LAX 16:10 · JFK 19:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.