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

复杂组网还得是 Softether VPN,功能异常强大

  •  3
     
  •   thereone · 3 天前 · 3964 次点击


    拓扑图如上,我需求把 vlan 进行远程透传,同时互联网访问通过对应的出口就近出去,同时二层还可以互相访问
    C 城市的公网地址我也要使用,C 城市的双拨也需要使用在老家。不得不说 softether 的 L2 L3 桥接太好用了,自带的 OpenVPN 同时还支持 TCP 和 UDP ,通过 用户名 @hub 名称 就可以接入到不同的 hub 里面获取不同的地址。

    Softether 的 TCP 和 UDP 传输模式设置也简单,如下图


    各种访问控制也简单,两个地方的 vlan1 二层互通防止获取另一边的 dhcp 地址,在访问控制列表里面禁止 dhcp 报文就可以,当然也可以在用户安全策略里面禁止,这个安全策略可以禁止许多的东西





    自带的 openvpn 可以和 softether 使用同一个端口如下图,无需设置多余的端口,需要做的就是映射单一端口,我这里是 5555 这个端口,你也可以使用别的端口



    最终的简单流量走向图如下,实际可以设置的东西太多了,暂时没有找到可以替代 softether 的软件,softeher 支持的平台也全。L2 L3 模式不要太好用,就是自带的 secureNAT 不要使用,这个性能不行同时占用也比较高。
    第 1 条附言  ·  2 天前
    刚看了下 github 的开发版已经支持 wireguard 了,aes 加速也在开发版支持了开发版支持的特性比稳定版齐全,开发版自带的 openvpn 协议也在跟进新特性支持。具体功能特性和支持情况也都在页面有介绍 https://github.com/SoftEtherVPN/SoftEtherVPN
    第 2 条附言  ·  1 天前
    已经做了性能测试,在这个帖子里面 https://www.v2ex.com/t/1101054#reply0 ,具体测试方法和结果可以看看
    49 条回复    2024-12-29 00:19:20 +08:00
    yyzh
        1
    yyzh  
       3 天前 via Android
    这玩意最大问题就是那烂到无以复加的 nat 性能
    thereone
        2
    thereone  
    OP
       3 天前
    @yyzh #1 为什么要用这个自带的 nat 功能,本身就烂用 openwrt 自带的不就可以了
    NewYear
        3
    NewYear  
       3 天前
    “8 个连接数”
    好家伙,我就喜欢这种利用基础协议,然后在上面疯狂压榨的软件。

    这个软件确实蛮强大的,这种复杂软件一般开发者是不愿意做的(耗时费力,又有许多自己用不上的东西,免费又没有回报)
    thereone
        4
    thereone  
    OP
       3 天前
    @NewYear #3 8 个连接数没有啥,我跑满各个互联的带宽没有问题,确实是没有开发者做这种复杂的软件。
    thereone
        5
    thereone  
    OP
       3 天前
    Softether 这个可以基本实现一个跨越互联网的数据专线类似 L2 MPLS VPN 的 VPWS 和 VPLS 这种,在现网上面构建一个点对点或者点对多点的虚拟局域网,各个接入 Softethe 桥接的端口只需要设置同一个 IP 即可互相访问,同时还可以设置多点网关,让不同地域的设备就近走互联网出口当然也可以统一走一个地方的出口。同时支持限速等一些设置。
    thereone
        6
    thereone  
    OP
       3 天前
    @thereone #5 是桥接的端口只需要设置同一个网段的 IP 地址既可互相访问。
    thereone
        7
    thereone  
    OP
       3 天前
    在加上 Softether 自带 ddns 功能,完全可以不用其它的 ddns 软件。不仅可以同时解析 v4 v6 地址,还可以单独解析只需要在域名里面加上 v4 v6 就可以单独解析。这样你自己有域名就可以单独设置 v4 和 v6 的解析,如下图所示
    thereone
        8
    thereone  
    OP
       3 天前
    通过二层设置不同的网关可以走不同的出口,老家和工作城市之间 vlan1 下面设备设置不同的网关可以走不同地点的出口,一个例子就是科学上网的速度 自建 vps 老家速度只有几百 kb 工作地点 10 几兆每秒,在前面没有新买 vps 的时候一到晚上老家速度就上不去,在 linux 虚机从 github 拉东西就慢的不行此时将 linux 虚机的网关地址设置成工作城市的地址就可以跑满工作城市的上传带宽到老家的虚机 这个科学速度就上去了。
    thereone
        9
    thereone  
    OP
       3 天前
    最后能想到的复杂组网,可以使用 VRRP+FRR 跑 VRF BGP OSPF EVPN+softether 实现更复杂的网络组网当然还可以加上各种 nqa bfd 等技术。不过这种一般是真的用不到。
    ivan_wl
        10
    ivan_wl  
       3 天前
    softether 自带 ddns ,还有免费 vpn azure 中继做内网穿透,简直活菩萨
    kenvix
        11
    kenvix  
       3 天前
    @yyzh #1 通常不需要使用 SE 自带的 NAT 。直接使用 Linux 系统的就行了
    kenvix
        12
    kenvix  
       3 天前
    SE 最大的问题是协议太老了。OpenVPN 的实现已经严重过时
    thereone
        13
    thereone  
    OP
       3 天前
    @kenvix #12 需要多新的 ipsec 这种都还是企业主流国内组网只要够用就行不需要太新的,安全方面没有问题就可以。加上现在也没有开源和 softether 一样支持各种功能的。不然用 wg 加 vxlan 或者 nvgre 打通二层?我是不觉得隧道套隧道比较好。
    yunisky
        14
    yunisky  
       3 天前
    曾经深爱 SE ,甚至在有些重大项目上网络临时断了都是用 SE 顶上的。
    后来发现了两个问题,
    1 ,周期性的延时变大,不同环境的延迟变化周期长短不一。
    2 ,客户端非常牛逼,但是没有 macos 客户端。
    thereone
        15
    thereone  
    OP
       3 天前 via Android
    @yunisky 延迟变大还是和运营商有关的这个没有办法,我的老家联通和工作城市联通到晚上延迟就变大从 20 多 ms 到 60-70ms 左右,这个没有办法还有跨运营商也是一样。
    macos 没有客户端可以使用 openvpn 接入 softether 用 用户名 @hub 名称 就可以接入不同的 hub 里面。openvpn 配置文件修改成 tcp 就可以用 tcp 来接入了。基本上 tcp udp 可以分开成两个配置文件。
    fecat
        16
    fecat  
       3 天前
    感谢 OP 这么详细的分享,终于看到有人也喜欢玩这个 VPN 缝合怪了。OP 级联 hub 功能配置过吗?我级联一直没玩明白,连接上之后速度有点慢。
    thereone
        17
    thereone  
    OP
       3 天前
    @fecat #16 你要怎么玩,这个级联当成是一根网线连接两个 hub 上面就行,默认不限制任何报文的。远程级联最终是要桥接新建 tap 设备的,不要用自带的三层交换机功能。但凡在 softether 上面软件实现的效率都不怎么好。桥接 tap 设备后就可以随意用 openwrt 的 bridge 或者 linux 的 bridge 会玩的还可以在 openwrt 和 linux 上面装 openvswitch 然后把 tap 设备添加进去。
    fecat
        18
    fecat  
       3 天前
    @thereone 思路很棒也很专业,太感谢了~ 绝对的资深用户
    MFWT
        19
    MFWT  
       3 天前
    可惜这个东西没有官方安卓客户端,非官方的又不太好用,不然我也会考虑 SE
    kenvix
        20
    kenvix  
       3 天前
    @thereone #13 主要是实现与新版的 openvpn 不兼容,不兼容 DCO offload ,不兼容 AES-GCM ,必须额外加参数才能正常启动
    wg 嵌套 vxlan 说实话显得有点蠢
    bitfly
        21
    bitfly  
       3 天前 via Android
    10 年前用过这玩意实现虚拟桌面 让一个单机版用友可以变成多用户使用
    vopsoft
        22
    vopsoft  
       3 天前 via Android
    问题 1:桥接我一直没弄明白怎么弄,偶尔通了 ,过段时间就不行了,一直用 nat 就没这个问题。

    问题 2:两个用户连同一个 hub ,网段相同,但经常两个用户互相 ping 不通,没弄明白问题到底在哪儿

    问题 3:在关于那里,能看到该版本支持的功能,但那个集群模式 ,我在网上下载过多个版本 ,都没找到怎么开启
    by
        23
    by  
       3 天前
    @MFWT 你用的哪个非官方的客户端
    thereone
        24
    thereone  
    OP
       3 天前
    @MFWT 用 softether 自带的 openvpn 就可以接入,不支持的设备用 openvpn 客户端拨入即可。通过不同 hub 后缀可以接入不同的 hub 网络。

    @kenvix wg 嵌套 vxlan 是很蠢但架不住有的人就是这么用的,你说的与新版 openvpn 不兼容我没有遇到手机正常安装谷歌市场的 openvpn 软件导入就可以使用,其它 linux 系统使用 softether 官方客户端或者服务端即可 macos 不使用不清楚,软件本身没有安全漏洞用来做组网我觉得是没有问题的。
    thereone
        25
    thereone  
    OP
       3 天前
    @vopsoft
    问题 1 桥接采用 hub 然后新建 tap 网卡的模式,然后将 tap 网卡绑定到需要的网桥里面,或者直接用这个 tap 设备做接口上地址。不要采用直接桥接到已有的物理网卡上。
    问题 2 经常 ping 不通需要抓包看是在原 hub 发出去了还是没有发出去,在目的抓包看是收到没有,我这里无法给你解答,具体问题具体分析
    问题 3 集群我没有怎么做过,你可以看看官方文档。
    vopsoft
        26
    vopsoft  
       3 天前 via Android
    问题 1 假定新 tap 这种方式稳定 那 dhcp 和路由推送是用什么实现 毕竟手机连还是有 dhcp 方便些

    问题 2 默认就是不通 我在多个环境试过多次
    问题 3 官方文档只说集群怎么用,没说怎么开启,不过访问量不大也没必要集群
    wi11iamZ
        27
    wi11iamZ  
       3 天前
    长期 SE 用户路过,功能确实丰富,可以搞复杂的组网并且和 OpenWRT 协作良好,而且可以同时实现 OpenVPN+MSSTP 接入支持。
    不过比较遗憾不支持 IKEv2 ,有段时间因为 Android 不再支持 L2TP 之类的老协议被迫切去 strongswan ,结果本地电信直接把相关端口全 ban 了白忙活一场……
    laminux29
        28
    laminux29  
       3 天前
    这其实有点复杂,更简单的是,去咸鱼上,收 TPLink 早期的入门企业路由器,七八十元一台,自带 VPN 功能。公司与家里,各部署一台,稍微设置一下就能组网。

    更更更简单的是爱快,VPN 还自带了用户管理、用户限速、用户收费等功能。

    但为什么大佬们都不喜欢这些呢?因为这些傻瓜式的软件,功能有限,如果要加功能,就很麻烦了。
    deerpine
        29
    deerpine  
       2 天前 via Android
    虽然用了 但是没有用的这么牛逼 学习一下
    MFWT
        30
    MFWT  
       2 天前
    @by 看过,没用过,因为目前实现较好的好像不多,kittoku/Minimum-VPN-Client-for-SoftEther-VPN
    rulagiti
        31
    rulagiti  
       2 天前
    10 年前项目用过,这软件功能很强大。
    kenvix
        32
    kenvix  
       2 天前
    @thereone #24 我用的是最新 openvpn 社区版,必须要加参数 data-ciphers AES-128-CBC 启用旧版加密套件才能启动
    手机端那个是 openvpn connect ,大概是做了兼容的
    by
        33
    by  
       2 天前 via Android
    @MFWT 看了一下,这个确实不太行。还得是付费软件功能全 https://play.google.com/store/apps/details?id=it.colucciweb.vpnclientpro
    laucenmi
        34
    laucenmi  
       2 天前
    @wi11iamZ #27 确实,不知道为什么不能支持 IKEv2 ,以前也是用这个,后来不支持原生拨号就不用了。
    thereone
        35
    thereone  
    OP
       2 天前
    @vopsoft
    问题 1 你的 tap 设备绑定在哪个里面就用哪个的 dhcp ,比如生成的新 tap 你绑定到了 lan 设备 br-lan 这个桥里面那就用 lan 的 dhcp 分配,如果是用新 tap 设备做了一个接口并且上了地址 那就看这个接口有没有开启 dhcp 服务。这里假定你是绑定到了 lan 里面,由于是直接获取你的 lan 内网分配的地址所以没有路由推送,全看你的 lan 设备内网路由了。
    问题 2 如果不通那就抓包看看,或者贴出你的配置包括接口防火墙 softether 的桥接配置等。
    问题 3 集群我觉得是没什么必要的。


    @wi11iamZ 确实是不支持 ikev2 是个遗憾,这个就没办法了。


    @laminux29 不复杂,想简单也可以非常简单。做一个三层隧道不透传二层报文用三层转发就可以,全在 openwrt 写路由就可以。TP 企业级说实话聊胜于无,功能不如爱快我觉得可以这么说,这些官方的复杂需求都难以满足,就说一个 IPTV 盒子的按照我这个做法老家 IPTV 盒子直接拔电源拿到工作城市插上网线电源就可以使用,完全和老家网线直连光猫 IPTV 口效果一样。
    yunisky
        36
    yunisky  
       2 天前
    @thereone 现在对协议通用性没那么多要求了,基本上只存在电脑漫游登陆这一种场景了。用 openconnect+anyconnect 客户端基本上解决了这些问题
    tywtyw2002
        37
    tywtyw2002  
       2 天前
    不知道为什么要搞这么复杂。

    一般情况下 L2 没有意义。

    全网做 mesh 就好,没什么广播包的话,直接 DMVPN 就好了。既然都要上 VPN 了,业务也没必要跑带广播的。

    DMVPN 想加密就跑 gre over ipsec ,不加密就是 gre 裸跑。设计的时候就是 3 层 VPN+2 层代理寻址( opennhrp )。路由协议 OSPF dmvpn 能跑,bgp 本来就是 3 层的,跑起来也没问题。

    VLAN 的话不建议过 VPN 性能太低了,除非真的有 L2 的需求,不过现在真 L2 需求也就是双机异地热备份之类的了。
    thereone
        38
    thereone  
    OP
       2 天前
    @tywtyw2002 #3 复杂吗?你说的我不是没有弄过公司业务都做过了,DMVPN greoveripsec mgre 等,配置难道不麻烦?后期维护不麻烦?个人用一个 softether +openwrt 和 linux 就能简单搞定以上的难道不方便,非要搞的配置都复杂难道不麻烦。性能方面包括过 vlan 数据包可以跑满 100M 上行就我觉得就足够了除非上行在增加达到性能瓶颈。
    L2 是基本需求,跨城市用 IPTV 还有一部分的应用需要用到二层发现,还有使用其它地方的网络,简单给客户端改个网关就可以使用异地网络出口,不用做策略路由这个不是更方便。
    我是不觉得你说的有 softether 这个方便。
    tywtyw2002
        39
    tywtyw2002  
       2 天前
    @thereone #36

    网络环境,需求不同。

    我的环境都是,1G/1.5G 对等。速度还是要求能跑到 500+的。

    现在 linux 下配置都自动化了,加节点就改下配置然后脚本同步了。我是 3 年多没动过了,除了上次因为唯一的 master 挂了导致断网,然后搞了个双节点,就没怎么动过。
    datocp
        40
    datocp  
       2 天前
    当初测试无线 mesh ,测试一个远离本地的远程无线网就用的 l2 ,2 层网桥连接通过 vpn 隧道将无线网络应用于异地。
    一开始就用的 gre ,但是似乎,难道是微信?有些数据包无法通过 gre 建立的隧道,虽然它的呑吐性能更好。

    其它的就如官方的案例,桥接 2 地局域网,直接在支持 5G 的移动路由上,通过发射多个 ssid ,简单通过连接 wifi 就可以进入不同的 vpn 网络。就如直接在家里就可以 wifi 访问桥接到搬瓦工 vps 流量,全局出墙。

    另外它的级联也可以打破网络封锁,实现条条大路通过罗马。简单的通过命令行控制就可以随机不同的连接线路。

    其它一直没尝试实现的
    1.反向连接,通过访问 vps ,来反向连接建立在 lan 的服务器。
    2.官方给了一个 mesh vpn 的方法,但一直没尝试去做。
    thereone
        41
    thereone  
    OP
       2 天前
    @tywtyw2002 #39 那就结了,我这个满足我的需求没有任何问题,你的 1G/1.5G 的环境也是绝大部分人达不到的。你这个固定了环境,我这个随时可以更改拓扑 L2 L3 的都可以只要软件 5555 端口和 ipv6 在线不管任何地方都可以远程管理和修改拓扑,毕竟个人的需求随时会变。
    lin41411
        42
    lin41411  
       2 天前 via iPhone
    性能没有 wireguard 好,纯当个备用
    thereone
        43
    thereone  
    OP
       2 天前 via Android
    @lin41411 100 兆上传互联速度没什么区别我是做过测试性能拉不开差距,相反 wireguard 使用 udp 反而会遇上运营商的 qos 解决方法在套一个 tcp 的外层属实是没有必要。直接 softether 加上自带的 openvpn 反而 tcp/udp 都可以接入直接使用就行。
    by
        44
    by  
       2 天前
    @tywtyw2002 #39 softether 中日跨国,速度比 wireguard 好,还不会封端口
    https://www.speedtest.net/result/c/a6d13c02-88a5-4046-8fc7-f59b2843598b
    creepersssss
        45
    creepersssss  
       2 天前
    softether 是强图形化软件,还有日本政府支持,就算开源也难以编译出 hash 一样的 bin 文件,到处是现成的 release 软件,不敢用
    ranaanna
        46
    ranaanna  
       2 天前 via iPhone
    @creepersssss 日本政府支持倒谈不上啦。只是 04 年成立之初由于是学生创业得到了产学研府资金的资助而已。当时是 windows 下载一个小软件连到筑波大学的服务器就到可以到另一个大局域网,并不是专门的 vpn 软件。那时大家翻墙的需求并不很强烈,而且是一个实验性项目公认安全性堪忧,所以只是成为一段时间的现象级事件而已。变身为 vpn 软件,那是 10 年之后的事情了,跟日本政府更是压根儿没关系了
    killadm
        47
    killadm  
       2 天前 via Android
    我怎么感觉这个软件 20 年前就在电脑报还是黑防上看到过,现在竟然还活着
    volks
        48
    volks  
       2 天前 via Android
    开源版已经支持 wireguard 了 wireguard
    thereone
        49
    thereone  
    OP
       2 天前
    @volks 刚看了开发版确实是支持了这下再添一个协议助力,就是不知道什么时候能支持 ikev2 ,官网的版本没怎么更新了还停留在去年我以为不支持呢。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1082 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 22:52 · PVG 06:52 · LAX 14:52 · JFK 17:52
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.