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

对抗单点故障:家庭网络子网拆分和隔离——拆成三个子网,搞定路由表

  •  
  •   phpfpm · 2022-09-12 22:52:57 +08:00 · 1477 次点击
    这是一个创建于 803 天前的主题,其中的信息可能已经有所发展或是发生改变。

    -2 写在最前面:为什么不用 All-in-one?

    1. 担心弱电箱比较小,一个小的软路由(J4125/N5105 扛不住)
    2. 穷,买不起核心路由器
    3. 一个大的 Pve 设备挂了就是全屋都挂,这个可靠性我不接受
    4. 各种设备都试一试( x86 主路由,arm 的旁路由,tp 的企业级多 wan 口路由),相互配合一下挺好玩的

    -1 几款核心设备

    1. TPLink XDR5480 && MA5671A 猫棒(192.168.10.0/24):
      1. TP 家的飞流系列的路由器,带有 2.5G SFP 接口,接了华为 MA5671A GPON stick (猫棒)
      2. 用无线 mesh 连接 AX1850 路由做房间覆盖
    2. 某家 J4125 1GbE 的软路由(192.168.0.0/24)
      1. 4 口软路由,2g+16g 的丐配置
      2. 本来开始打算上 5125+2.5GbE 的,无奈和某光纤转发器不太兼容,遂退货作罢
    3. TPLink R483G 企业级路由器(192.168.100.0/24)
      1. 之前有一段时间做多 wan 口聚合等用途,现在作为网桥服务&&vpn 接入
      2. 非常稳定可靠
      3. 买二手的性价比也不错
    4. 光纤转发器&&隐形光纤
      1. 当初某宝买的时候说 2Lan 口支持隔离,但是实际看下来并不支持隔离,坑爹啊这
      2. 需求点是弱电箱到机柜没有网线,所以拉了一根隐形光纤作为通信手段。
    5. R2s && N1
      1. 这俩就不多说了,R2s 两百多,N1 不带遥控器的话 100 不到
      2. 感觉性能上不分伯仲,R2s 多一个 Lan 口可以多整活

    0 前情提要

    XDR5480 与 R2s 做 Lan 口聚合——放弃,5480 提供的链路聚合功能有限。

    vpn&&网桥——TL-R483G 基本完美完成任务

    旁路由端口转发的一些坑——不依赖旁路由做端口转发

    1 梳理核心需求

    机柜,生产网络科学稳定

    这个真没啥说的,直接走软路由拨号,在软路由上进行流量分离等等, 这部分就走基于 J4125 的 x86 软路由去实现了。

    WiFi 路由 5G ax 覆盖,科学,稳定

    之前用的是 XDR-5430 ,升级成为 XDR-5480 之后,多了一个自定义的 SFP 接口,可以直接用猫棒就很香

    所以基于要使用猫棒,就必须路由拨号,科学上网使用旁路由网关实现。

    wifi 的 mesh 子路由选择的是 TP XDR1850 ,最开始的时候 200 一个,现在涨价到 250 了

    远程办公期间可以可靠访问机柜网络,修复和诊断家庭网络问题

    远程访问嘛,ssh/rdp/web 等各种服务直接用端口开放在公网上安全性问题很大,外面需要套一层 vpn 的壳子。

    如何实现 vpn server ?大概有这么几个方案

    1. 在 J4125 软路由上开启 vpn 服务器
    2. 在 XDR-5480 下的子网开 vpn 服务器,用端口转发访问(涉及到旁路由,可能需要两次端口转发)
    3. 在 J4125 软路由下面的某个设备上开启 vpn 服务器

    但是这些方案面临的共同问题是:

    如果接入的路由器出了问题了( 5480/J4125)挂了,vpn 不也是连不进去了?

    参考去年 B 站的复盘,一个核心原因是:生产网络挂了之后,缺乏旁路进入机房的手段

    B 站宕机事故复盘:2021.07.13 我们是这样崩的

    因此,在这个环节,我选择用 R483G 企业级有线路由器做 VPN 接入网关。

    同时,感谢 TP 厂家的客服支持,R483G 的 NAPT 功能启用之后,就可以实现一个简单的免配置的网桥功能,可以很方便的打通各个子网,作为 WiFi 网络和生产网络互访的一个 Backup 。

    使用 R483G 作为接入 VPN 路由之后,可以很方便的访问两个子网,实现远程接入。

    当然,如果偶尔 R483G 出了问题,还保留一个在 J4125 下的 vpn 服务作为备用接入。

    WiFi 网络和机柜网络可以实现互访

    在以上基础设施搭建完成之后,网络互访的路由表就可以配置了,而且可以有两条线路:

    1. 通过一个机柜网络的接口 DHCP 分配给 Wifi 网络,加入静态路由可以互访
    2. 通过 R483G 的接口互访,作为 Backup

    线路部署

    布线图

    弱电箱部分配合两个置物架,放置了

    电信光猫+XDR5480 (这家伙真大啊)+R483G+J4125+N1+R2s+光纤转发器的一端 这些都在弱电箱这里了。

    到机柜处基本就一根光纤了,从转发器接入交换机到各个设备。

    路由表设计

    路由表

    路由表比较复杂,请忽略黑字重点看彩色字就行。

    R483G 做了一层接入层网桥的功能,可以实现网间互访的备份。

    测速杂项

    wifi 能测到 800Mbps(三星 S20+,只能 1T1R 1200Mbps )

    LAN 测速( R2s+N1 一起),出口能跑到 1200Mbps ,证明猫棒是生效的。

    稳定性可靠性分析

    设计目标:任意一个设备单点故障,能做到自动 /手动切换,可用。

    1. R483G 挂了
      1. 内网互联不影响
      2. VPN 可以 fallback 到走 J4125 下面的 vpn
      3. wifi 和机柜网络不影响
    2. J4125 挂了
      1. wifi 不影响
      2. 机柜的内网访问不影响
      3. 未来可以在机柜加一个备用网关,走机柜的 XDR1850 的 Mesh 路由出公网
    3. XDR-5480 挂了
      1. 机柜网络不受影响
      2. mesh 路由和下面的有线设备几乎都得挂,这个暂时无解
      3. 无线可以用 N1 起一个同 SSID 的备用接入点+DHCP ,走机柜网络出(不一定,前提是 5480 的交换别挂)
      4. J4125 下面挂了一个很挫很小的路由器,作为 wifi 接入点可以直接进 J4125 的网络。
    4. R2s 挂了
      1. 机柜网络不受影响
      2. 用 N1 起 mac vlan 来代替 R2s 作为网关
      3. 内网互联可以走 R483G
    5. 光纤转发器 /光纤挂了
      1. wifi 不受影响
      2. 未来可以做一个备用网关,见 2.3
    6. 电信光猫 /光纤挂了
      1. wifi 不受影响
      2. 在 J4125 上加一个走 R2s 出的网关可以正常上网
    7. 移动光纤挂了
      1. 都不受影响,都是双路热备的

    服务监控和诊断

    目前主要靠内网的一些脚本实现 DDNS ,服务发现,服务心跳报警等,对于一些网络层不可达的问题也能提早发现。

    稳定性的核心是:如果我不在家,家里网络出了一些问题,至少我能尝试做点什么。

    未来一些迭代点:

    1. 在 N1 上整活,实现和 R2s 的 keep-alive
    2. 机柜侧做 WiFi 网络接入的 backup ,保证断线的时候对业务影响最小
    3. 提升服务监控和诊断的能力,有问题及时预警
    20 条回复    2022-09-16 10:01:38 +08:00
    huaes
        1
    huaes  
       2022-09-12 23:00:23 +08:00
    我就全靠多线接入了。。。三家都断了还有向日葵控控加 4G 随身 Wi-Fi 控制内网机器桌面修复故障
    phpfpm
        2
    phpfpm  
    OP
       2022-09-12 23:07:12 +08:00 via Android
    @huaes 对,我也想写来着,未来可以单独给接入 vpn 一个移动出口哈
    lianjin
        3
    lianjin  
       2022-09-12 23:10:24 +08:00   ❤️ 2
    用了快 8 年了就碰到一次断网,原因是楼宇交换机的问题。
    弄这么复杂,值得吗?
    phpfpm
        4
    phpfpm  
    OP
       2022-09-12 23:19:11 +08:00
    @lianjin 我 不知道。
    其实我也没怎么断过网。
    更多的时候,是我想折腾下某个设备,比如重新刷个新系统啊什么的
    希望在更换这个设备的时候,其他设备工作照常,而不是我花多久时间装系统其他设备就要有多久不可用
    phpfpm
        5
    phpfpm  
    OP
       2022-09-12 23:21:07 +08:00
    @lianjin 其实断网是一方面,更重要的是隔离

    把机柜作为一个自建的 ICP 就好,可以访问机柜的内容,但是机柜反过来访问家里的智能设备——no way 。
    huaes
        6
    huaes  
       2022-09-12 23:22:41 +08:00
    @phpfpm 三线接入最稳妥的就是用三台支持双线路的路由器,前两台负责故障转移,最后一台负责 AC+AP 哈哈哈,就是太贵了
    phpfpm
        7
    phpfpm  
    OP
       2022-09-12 23:32:27 +08:00
    @huaes 我觉得我已经快往这个目标发展了哈哈哈哈(主要是接入层弱电箱的地方空间实在是局促
    huangya
        8
    huangya  
       2022-09-13 11:09:17 +08:00
    OP 最好是对线路部署图进行一下基本的文字介绍,方便理解拓补图。
    yulgang
        9
    yulgang  
       2022-09-13 15:45:39 +08:00
    太折腾了。。。😂
    maoshen1234
        10
    maoshen1234  
       2022-09-13 16:01:58 +08:00
    太折腾了,我鞋柜用来 ALL IN ONE ,用服务器品质对抗 ALL IN ONE 的 BUG ,目前除了停电没出过问题。然后三家接入对抗某家挂了
    phpfpm
        11
    phpfpm  
    OP
       2022-09-13 17:56:42 +08:00
    @huangya

    啊其实就是三个路由器的 wan 口设置:

    5480:

    WAN1:电信宽带,接光猫; WAN2 ,SFP 接口:接移动光纤入户

    J4125:
    ETH1 ,WAN 口:电信宽带,接光猫

    R483G:

    WAN1:接 5480 的 LAN 口
    WAN2:电信宽带,接光猫
    WAN3:接 J4125 的 LAN 口


    然后各个机器的 LAN 口互联一下。
    aulong
        12
    aulong  
       2022-09-13 23:59:20 +08:00
    请教一下 xdr5480 不支持静态路由有没有办法解决
    jousca
        13
    jousca  
       2022-09-14 02:00:36 +08:00
    一个大的 Pve 设备挂了就是全屋都挂,这个可靠性我不接受

    ---------------我一台思科 C3700 路由器从 2002 年用到 2022 年才挂。你看这可靠性如何?
    phpfpm
        14
    phpfpm  
    OP
       2022-09-14 07:16:29 +08:00
    @aulong 没有,看看 tp 的企业级就知道了
    phpfpm
        15
    phpfpm  
    OP
       2022-09-14 07:35:19 +08:00
    @jousca 牛逼啊 那么多 10/100BaseT 的端口

    得多费电啊
    onecode
        16
    onecode  
       2022-09-14 09:57:55 +08:00
    搞得很复杂
    onecode
        17
    onecode  
       2022-09-14 10:02:36 +08:00
    就这样吧,懒得折腾

    ![]( )
    ttvast
        18
    ttvast  
       2022-09-14 13:23:44 +08:00
    前两天吧网关从 nuc9 上换到了 2.5G 的 5105 的设备上。网关用的 kvm 的 centos8 ,另外一个备份网关泡在 gen8 的 kvm 上。
    两个网关用 keepalived 热备,主网关故障或重启,备用网关 3s 内切换接替主网关的所有功能。
    zxbiao
        19
    zxbiao  
       2022-09-15 20:18:06 +08:00
    大佬牛逼,这么折腾,是开私家 IDC ?
    phpfpm
        20
    phpfpm  
    OP
       2022-09-16 10:01:38 +08:00
    @zxbiao 假如某一天世界末日了,至少还能用局域网自娱自乐。。至少先做 ICP ?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2758 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 08:24 · PVG 16:24 · LAX 00:24 · JFK 03:24
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.