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

2022-09-12 22:52:57 +08:00
 phpfpm

-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. 提升服务监控和诊断的能力,有问题及时预警
1507 次点击
所在节点    宽带症候群
20 条回复
huaes
2022-09-12 23:00:23 +08:00
我就全靠多线接入了。。。三家都断了还有向日葵控控加 4G 随身 Wi-Fi 控制内网机器桌面修复故障
phpfpm
2022-09-12 23:07:12 +08:00
@huaes 对,我也想写来着,未来可以单独给接入 vpn 一个移动出口哈
lianjin
2022-09-12 23:10:24 +08:00
用了快 8 年了就碰到一次断网,原因是楼宇交换机的问题。
弄这么复杂,值得吗?
phpfpm
2022-09-12 23:19:11 +08:00
@lianjin 我 不知道。
其实我也没怎么断过网。
更多的时候,是我想折腾下某个设备,比如重新刷个新系统啊什么的
希望在更换这个设备的时候,其他设备工作照常,而不是我花多久时间装系统其他设备就要有多久不可用
phpfpm
2022-09-12 23:21:07 +08:00
@lianjin 其实断网是一方面,更重要的是隔离

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

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

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

![]( )
ttvast
2022-09-14 13:23:44 +08:00
前两天吧网关从 nuc9 上换到了 2.5G 的 5105 的设备上。网关用的 kvm 的 centos8 ,另外一个备份网关泡在 gen8 的 kvm 上。
两个网关用 keepalived 热备,主网关故障或重启,备用网关 3s 内切换接替主网关的所有功能。
zxbiao
2022-09-15 20:18:06 +08:00
大佬牛逼,这么折腾,是开私家 IDC ?
phpfpm
2022-09-16 10:01:38 +08:00
@zxbiao 假如某一天世界末日了,至少还能用局域网自娱自乐。。至少先做 ICP ?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/879539

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX