请教软路由相关问题 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
unidentifiedme
V2EX    路由器

请教软路由相关问题

  •  
  •   unidentifiedme 2017 年 8 月 27 日 9966 次点击
    这是一个创建于 3082 天前的主题,其中的信息可能已经有所发展或是发生改变。

    主要需求是目前的 R6300v2 跑不满 200Mbps 的众所周知的某种服务,所以想考虑上软路由+NAS (不是强需求)。 考虑的解决方案是 ESXi 虚拟一个路由器和一个黑群晖,然后软路由连光猫,R6300v2 只作为 AP。

    目前纠结在两种方案:

    1. 淘宝 N3700 (半)成品。优点是不用折腾,自带多个网卡,但是感觉扩展性略弱,并且是山寨主板(据称是工控板)。
    2. 自己 DIY N3150。华擎的 BGA 板子。优点是能硬解 HEVC,缺点是折腾和略。

    方案 2,主要是多个 HEVC 硬解,我也有偶尔看 HEVC 的视频的需求,不过大部分时间也就是弄个 Plex 在 iPad 上看看。

    主要是来这想问问玩过软路由的 dalao:

    1. 方案 1 靠谱么?感觉性价比很高的样子,但是比较担心山寨板子的质量。
    2. 有必要上个小的 SSD 作为系统盘嘛?
    3. 咨询了一下方案 1 的卖家,N3700 是可以满足 200Mbps 的 AES-256-CFB 加密的。N3150 应该也可以吧?

    3150 方案主要参考这篇文章 https://saier.me/n3150-router/

    36 条回复    2017-11-03 10:12:28 +08:00
    xspoco
        1
    xspoco  
       2017 年 8 月 27 日
    上小马 V5 吧
    songdezu
        2
    songdezu  
       2017 年 8 月 28 日 via Android
    @xspoco 这是什么?路由器和 nas 合体的产物?有没有更好的选择
    waltcow
        3
    waltcow  
       2017 年 8 月 28 日 via Android
    我现在用的是 华擎 n3150 + Ubuntu 16.04 + KVM + lede x64
    lan894734188
        4
    lan894734188  
       2017 年 8 月 28 日 via Android
    RE6500 padavab 500m 测试通过 原生千兆跑满
    carrionlee
        5
    carrionlee  
       2017 年 8 月 28 日 via Android
    我是 n3150 + 2012 server + hyper-v 方案
    hyper-v 跑 openwrt,ubuntu server 和 黑群。
    AES-256-CFB 性能没问题,plex 服务器转码性能倒是不够
    0ZXYDDu796nVCFxq
        6
    0ZXYDDu796nVCFxq  
       2017 年 8 月 28 日 via iPhone
    1. 稳定性还行,芯片集成度极高,其实主板主要是供电和 IO 了。
    2. mSATA 之类的内部接口可以考虑上,SATA SSD 就算了。
    3. N3150 支持 AES-NI,如果软件支持,跑几百 MB 肯定没问题

    ESXi 并不支持 broadwell 的集显,如果出故障无法远程,只能摸黑处理。
    另外 N3150, N3700 都不支持 VT-D,硬解在 ESXi 下毫无用处。
    建议用 Proxmox,最起码有途径可以解决上面两点问题。
    unidentifiedme
        7
    unidentifiedme  
    OP
       2017 年 8 月 28 日 via iPhone
    @gstqc 虚拟化一个路由和一个黑群晖的话,内存 4GB 够吗,还是要上 8GB ?
    xspoco
        8
    xspoco  
       2017 年 8 月 28 日
    @songdezu #2 可以单独做,软路由或 NAS,也可以合在一起。不过 nas 的话要换机箱吧。不然塞不下几个硬盘。
    0ZXYDDu796nVCFxq
        9
    0ZXYDDu796nVCFxq  
       2017 年 8 月 28 日   1
    @unidentifiedme 4G 足够了
    Proxmox 本身要占 700M 左右内存
    路由器 128-256M,黑群晖 1-2G,群晖的中端型号好像极少 2G 以上的内存
    如果你还想跑一下解码、虚拟机、lxc 容器等,8G 当然更好

    我的配置:
    N3700 四核
    8G 内存
    4 千兆
    16G mSATA+机械 SATA

    主要用途:
    1. 虚拟机跑软路由 LEDE,还有 SS
    2. lxc 的容器跑 PT 下载,下载完需要保存的手动挪到 Gen8 的存储中,不需要保存的共享看完删
    3. lxc 容器做测试,比如自己写的代码直接在容器里部署个环境跑,容器比虚拟机轻便很多
    4. kvm 虚拟机做 kernel 层的测试,比如我要改 kernel、加 mod 等等,就在 kvm 虚拟机里跑
    5. Proxmox 跑个 git,和 Gen8 同步。
    通过 2 和 5,Gen8 可以少开机,毕竟 E3 CPU + 5 块硬盘空载都有 60W
    enihcam
        10
    enihcam  
       2017 年 8 月 30 日
    参考 t/386857
    unidentifiedme
        11
    unidentifiedme  
    OP
       2017 年 9 月 6 日 via iPhone
    @gstqc 和你弄了差不多的配置,但是主要的需求还是没有达到,ESXi 虚拟化下的 LEDE 挂 Chacha20 的代理还是不能跑满 200Mbps,你试过能跑多少吗?(等待本身是没有问题的,我用 Surge 可以跑满
    unidentifiedme
        12
    unidentifiedme  
    OP
       2017 年 9 月 6 日 via iPhone
    @gstqc 我发现 libev 版本自带了 iperf 测试脚本,晚上回去试试
    0ZXYDDu796nVCFxq
        13
    0ZXYDDu796nVCFxq  
       2017 年 9 月 6 日   1
    @unidentifiedme 用 AES-128-GCM 吧
    Chacha20 在 N3150 N3700 下性能不是很好,另外也受服务器影响

    另外你看下服务器的 CPU 是否支持 AES, AVX, AVX2

    大多数加密方式在 N3150 的性能下肯定不止 25 MB/s 的加解密速度,你可以看下网络、网卡、网线是否达到这个性能
    unidentifiedme
        14
    unidentifiedme  
    OP
       2017 年 9 月 6 日 via iPhone
    @gstqc
    蛋疼的是这个加密模式不是我能控制的

    我在同一个网络下,关闭 LEDE 上的透明代理,使用 Mac 上的 Surge 连接同一个服务器,能跑满 200Mbps (长时间跑 CPU 温度显著上升,看来即使移动低压版的 i5 应付这种情况也不是想象中那么轻松)

    目前看来瓶颈只能是 CPU。回去跑跑 iperf 基本上就能确认了。

    https://github.com/shadowsocks/shadowsocks-libev/issues/1242
    0ZXYDDu796nVCFxq
        15
    0ZXYDDu796nVCFxq  
       2017 年 9 月 6 日 via iPhone
    @unidentifiedme 用代理的方式测试下,瓶颈也可能是 ipset 或 iptables
    unidentifiedme
        16
    unidentifiedme  
    OP
       2017 年 9 月 6 日
    @gstqc #15

    带着代理测了一下,果然和实际速度差不多。瓶颈果然还是 CPU。
    脚本在这
    https://raw.githubusercontent.com/shadowsocks/shadowsocks-libev/master/scripts/iperf.sh

    这是在 N3700 上( ESXi )
    root@LEDE:~# sh iperf.sh 40960000 chacha20-ietf-poly1305

    [ 3] local 127.0.0.1 port 40372 connected with 127.0.0.1 port 8387
    [ 4] local 127.0.0.1 port 8388 connected with 127.0.0.1 port 36980
    [ ID] Interval Transfer Bandwidth
    [ 3] 0.0- 3.8 sec 39.1 MBytes 86.7 Mbits/sec
    Waiting for server threads to complete. Interrupt again to force quit.
    [ ID] Interval Transfer Bandwidth
    [ 4] 0.0- 4.8 sec 32.8 MBytes 57.1 Mbits/sec


    这是在 2015 MacBook Pro 13 上
    ./iperf_test.sh 40960000 chacha20-ietf-poly1305
    Client connecting to 127.0.0.1, TCP port 8387
    TCP window size: 144 KByte (default)
    ------------------------------------------------------------
    [ 4] local 127.0.0.1 port 50396 connected with 127.0.0.1 port 8387
    [ 4] local 127.0.0.1 port 8388 connected with 127.0.0.1 port 50398
    [ ID] Interval Transfer Bandwidth
    [ 4] 0.0- 0.5 sec 39.1 MBytes 727 Mbits/sec
    [ ID] Interval Transfer Bandwidth
    [ 4] 0.0- 0.5 sec 39.1 MBytes 703 Mbits/sec
    Test Finished

    大概是 10 倍左右的差距
    0ZXYDDu796nVCFxq
        17
    0ZXYDDu796nVCFxq  
       2017 年 9 月 7 日
    @unidentifiedme #16
    cat /proc/cpuinfo

    model name : Intel(R) Celeron(R) CPU N3150 @ 1.60GHz
    flags : sse4_1 sse4_2 aes
    # flags 支持 aes,其他信息省略掉了


    shadowsocks-libev 3.0.8


    sh iperf-ss.sh 1024M chacha20-ietf-poly1305

    [ 4] local 127.0.0.1 port 8388 connected with 127.0.0.1 port 46898
    [ 3] local 127.0.0.1 port 53200 connected with 127.0.0.1 port 8387
    [ ID] Interval Transfer Bandwidth
    [ 3] 0.0-36.3 sec 1.00 GBytes 237 Mbits/sec
    [ ID] Interval Transfer Bandwidth
    [ 4] 0.0-36.8 sec 1.00 GBytes 234 Mbits/sec


    sh iperf-ss.sh 1024M aes-128-gcm

    [ 3] local 127.0.0.1 port 53206 connected with 127.0.0.1 port 8387
    [ 4] local 127.0.0.1 port 8388 connected with 127.0.0.1 port 46904
    [ ID] Interval Transfer Bandwidth
    [ 3] 0.0-41.4 sec 1.00 GBytes 208 Mbits/sec
    [ ID] Interval Transfer Bandwidth
    [ 4] 0.0-42.0 sec 1.00 GBytes 205 Mbits/sec


    sh iperf-ss.sh 1024M aes-128-cfb
    [ 4] local 127.0.0.1 port 8388 connected with 127.0.0.1 port 46912
    [ 3] local 127.0.0.1 port 53214 connected with 127.0.0.1 port 8387
    [ ID] Interval Transfer Bandwidth
    [ 3] 0.0-29.2 sec 1.00 GBytes 294 Mbits/sec
    [ ID] Interval Transfer Bandwidth
    [ 4] 0.0-29.7 sec 1.00 GBytes 289 Mbits/sec
    unidentifiedme
        18
    unidentifiedme  
    OP
       2017 年 9 月 7 日 via iPhone
    @gstqc 这就很奇怪了
    那看来只能是 ESXi 的锅了
    unidentifiedme
        19
    unidentifiedme  
    OP
       2017 年 9 月 7 日 via iPhone
    @gstqc 对了你是在你推荐的那个 kvm 环境跑的还是裸机?是 LEDE 嘛
    0ZXYDDu796nVCFxq
        20
    0ZXYDDu796nVCFxq  
       2017 年 9 月 7 日 via iPhone
    @unidentifiedme 容器里跑的,我弄个 KVM 试下
    0ZXYDDu796nVCFxq
        21
    0ZXYDDu796nVCFxq  
       2017 年 9 月 19 日 via iPhone   1
    @unidentifiedme 家里网络断了很久
    CPU 同样是 N3700
    Proxmox KVM
    虚拟机双核,LEDE 17.1.2
    SS 3.1.0


    sh iperf-ss.sh 1G aes-128-gcm

    ------------------------------------------------------------
    Server listening on TCP port 8388
    TCP window size: 85.3 KByte (default)
    ------------------------------------------------------------
    Client connecting to 127.0.0.1, TCP port 8387
    TCP window size: 2.50 MByte (default)
    ------------------------------------------------------------
    [ 3] local 127.0.0.1 port 35388 connected with 127.0.0.1 port 8387
    [ 4] local 127.0.0.1 port 8388 connected with 127.0.0.1 port 43496
    [ ID] Interval Transfer Bandwidth
    [ 3] 0.0-35.9 sec 1.00 GBytes 240 Mbits/sec
    [ ID] Interval Transfer Bandwidth
    [ 4] 0.0-36.3 sec 1.00 GBytes 237 Mbits/sec




    sh iperf-ss.sh 100M chacha20-ietf-poly1305

    ------------------------------------------------------------
    Server listening on TCP port 8388
    TCP window size: 85.3 KByte (default)
    ------------------------------------------------------------
    Client connecting to 127.0.0.1, TCP port 8387
    TCP window size: 2.50 MByte (default)
    ------------------------------------------------------------
    [ 3] local 127.0.0.1 port 35364 connected with 127.0.0.1 port 8387
    [ 4] local 127.0.0.1 port 8388 connected with 127.0.0.1 port 43472
    [ ID] Interval Transfer Bandwidth
    [ 3] 0.0- 2.7 sec 100 MBytes 315 Mbits/sec
    [ ID] Interval Transfer Bandwidth
    [ 4] 0.0- 3.1 sec 100 MBytes 274 Mbits/sec






    sh iperf-ss.sh 100M aes-256-gcm
    ------------------------------------------------------------
    Server listening on TCP port 8388
    TCP window size: 85.3 KByte (default)
    ------------------------------------------------------------
    Client connecting to 127.0.0.1, TCP port 8387
    TCP window size: 3.01 MByte (default)
    ------------------------------------------------------------
    [ 3] local 127.0.0.1 port 35370 connected with 127.0.0.1 port 8387
    [ ID] Interval Transfer Bandwidth
    [ 3] 0.0- 3.8 sec 100 MBytes 221 Mbits/sec
    [ ID] Interval Transfer Bandwidth
    [ 4] 0.0- 4.2 sec 100 MBytes 202 Mbits/sec
    0ZXYDDu796nVCFxq
        22
    0ZXYDDu796nVCFxq  
       2017 年 9 月 19 日 via iPhone
    这种单机环境
    Proxmox 比 ESXi 好太多了
    unidentifiedme
        23
    unidentifiedme  
    OP
       2017 年 9 月 20 日
    @gstqc #22 雾草,我这就换掉 ESXi。没想到 ESXi 性能这么惨不忍睹
    unidentifiedme
        24
    unidentifiedme  
    OP
       2017 年 9 月 20 日
    @gstqc #22 遇到了一点问题,我在 Proxmox 里面新建 VM 的时候,只能使用 ISO,我将 LEDE 的 IMG 用转换成 ISO。但是在 Proxmox 里面启动 VM 之后报错 “ Could not read from CDROM (code 0005)”

    Google 没有结果,请问你是用什么工具将 IMG 转换到 ISO 的?
    0ZXYDDu796nVCFxq
        25
    0ZXYDDu796nVCFxq  
       2017 年 9 月 20 日 via iPhone   1
    @unidentifiedme
    下载 Debian 的 LiveCD,可以用 8.8 的 standard,没有 GUI
    上传 iso 到 Proxmox,创建虚拟机,启动
    然后在 Debian Live 里下载 LEDE,看你安装方式,combined-ext4.img.gz 或者 rootfs-ext4.img.gz generic-rootfs.tar.gz 都可以
    然后把系统写到硬盘里,dd 或者手动分区 cp 文件,设置启动分区
    最后重启虚拟机就行。
    unidentifiedme
        26
    unidentifiedme  
    OP
       2017 年 9 月 20 日
    @gstqc #25 意思是随意先弄一个 Linux,然后在这个 Linux 里面用 dd img 到磁盘分区,然后换掉启动分区。这样么?
    0ZXYDDu796nVCFxq
        27
    0ZXYDDu796nVCFxq  
       2017 年 9 月 20 日
    @unidentifiedme #26
    对,不过建议用 livecd 启动到系统
    这样不用安装一个 Linux 到硬盘那么麻烦

    下载 combined-ext4.img.gz
    gzip -d combined-ext4.img.gz -c | dd of=/dev/sda
    重启即可
    unidentifiedme
        28
    unidentifiedme  
    OP
       2017 年 9 月 20 日
    @gstqc #27 我简直不敢相信我的眼睛,给了 2 个核,感觉是假的 N3700
    难道是山寨主板的锅?(不支持一些 CPU 相关的功能?) KVM 的 CPU 配置的不对?(我的设置是默认的 kvm64 )

    sh iperf.sh 100M aes-128-gcm
    2017-09-20 11:36:25 INFO: initializing ciphers... aes-128-gcm
    2017-09-20 11:36:25 INFO: listening at 127.0.0.1:8387
    2017-09-20 11:36:25 INFO: running from root user
    2017-09-20 11:36:25 INFO: initializing ciphers... aes-128-gcm
    2017-09-20 11:36:25 INFO: tcp server listening at 127.0.0.1:8389
    2017-09-20 11:36:25 INFO: running from root user
    ------------------------------------------------------------
    Server listening on TCP port 8388
    TCP window size: 85.3 KByte (default)
    ------------------------------------------------------------
    ------------------------------------------------------------
    Client connecting to 127.0.0.1, TCP port 8387
    TCP window size: 2.50 MByte (default)
    ------------------------------------------------------------
    [ 3] local 127.0.0.1 port 35600 conncted with 127.0.0.1 port 8387
    [ 4] local 127.0.0.1 port 8388 connected with 127.0.0.1 port 35170
    [ ID] Interval Transfer Bandwidth
    [ 3] 0.0-22.2 sec 100 MBytes 37.8 Mbits/sec
    Waiting for server threads to complete. Interrupt again to force quit.
    2017-09-20 11:36:50 ERROR: send: Connection reset by peer
    [ ID] Interval Transfer Bandwidth
    [ 4] 0.0-23.2 sec 94.5 MBytes 34.2 Mbits/sec
    Test Finished
    unidentifiedme
        29
    unidentifiedme  
    OP
       2017 年 9 月 20 日
    @gstqc #27 从 kvm64 换成 host 之后,性能有所提升,之前设置为 kvm64 的时候少了很多指令集。不过还是和你的测试结果有很大差距。
    0ZXYDDu796nVCFxq
        30
    0ZXYDDu796nVCFxq  
       2017 年 9 月 20 日
    @unidentifiedme #29
    我没有做任何设置,选 CPU 时就选 host,512M 内存,其他限制都是默认的
    安装的二进制包是这个
    https://bintray.com/aa65535/opkg/shadowsocks-libev/3.1.0#files/shadowsocks-libev%2F3.1.0%2FLEDE%2Fx86_64
    unidentifiedme
        31
    unidentifiedme  
    OP
       2017 年 9 月 20 日
    @gstqc #30 你的机器是什么主板? Proxmox 是啥版本?我装的 5.0
    感觉很神奇,搞不懂这个性能差距在哪里。
    0ZXYDDu796nVCFxq
        32
    0ZXYDDu796nVCFxq  
       2017 年 9 月 20 日
    unidentifiedme
        33
    unidentifiedme  
    OP
       2017 年 9 月 20 日
    @gstqc #32 这可能真的是玄学,我的是这家的 V2+,甚至可能主板都是一毛一样的。。。只有网卡不一样,但是网卡根本不影响这个
    0ZXYDDu796nVCFxq
        34
    0ZXYDDu796nVCFxq  
       2017 年 9 月 20 日 via iPhone
    @unidentifiedme #33 裸机或者容器跑一下试试
    0ZXYDDu796nVCFxq
        35
    0ZXYDDu796nVCFxq  
       2017 年 9 月 20 日 via iPhone
    @unidentifiedme #33
    我写了个脚本下载 lxc 容器镜像的
    你可以下载容器,然后容器里安装二进制 ss,跑一下试试
    RedHat 系和 Debian 都有官方仓库

    https://gist.github.com/travislee8964/bbc25e5e74f17cfa428c3343c545c9ac

    创建容器,启动,然后在 Proxmox 的 shelllxc-attach -n 100(容器 ID)进入容器即可
    cdh1075
        36
    cdh1075  
       2017 年 11 月 3 日
    用 d525 便宜啊,也不需要什么 exsi 虚拟化,nas 直接跑在 d525 上,然后在上面开个 nat 和 dhcp 不就行了,或者装个 debian 更方便,也不用什么群辉了,nas 自己实现
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2911 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 104ms UTC 10:31 PVG 18:31 LAX 02:31 JFK 05:31
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86