最近家庭升级 Homelab 差不多告一段落,来写篇文章记录下我的折腾过程

正文

熟悉我的朋友都知道,我是个 SRE,所以吧,对于家里的网络环境质量要求非常高。一直以来,我家的网络环境都在不断的迭代,不过我的网络环境一直围绕三个方向迭代

  1. 稳定性毫无疑问的是第一要素,网络炸了,我就没法工作了
  2. 需要有足够优秀的内网速度,因为我有一些 NAS 之类的服务,承担我流媒体的需求
  3. 需要有一个可靠网关,来根据 GEO 和规则对于不同的流量做处理。
  4. 我家 IoT,电脑等移动设备的数量非常多,那么需要热点有足够的性能来保证网络的质量

那么围绕这个,从今年开始,我围绕 Homelab 做了一系列的演进

阶段1: 机柜与有线 Mesh

在今年4月搬到新家后,借着要重新安排所有东西的机会,我重新构造了家里的网络

首先来讲,从全屋的无线热点上,我做了这样的演进

  1. 引入了 TPLink 一个8口的千兆交换机,来扩展端口
  2. 引入了 TPLink XDR 6080 和我原本的 XDR 10280 来做有线 Mesh

在经过这样的改造后,我家里的网络结构变成了这样的模式

  1. 从光猫往下,一根线走向原本的小米 AX3600 作为家里 IoT 设备的联网端。另一根走向一个 Intel 6305+ 8GRAM 的 x86 机器。在 X86 机器上,我会根据 GEO 规则,对于不同的流量包做一些处理,同时会对 DNS 做 AD 过滤。
  2. 从 x86机器往下,那么接入 交换机+路由器 x3 成为家里的主干网。

另外,今年六月,好友赠送了我一个 Intel 12代 i7 的满配 NUC ,我自己也采购了两台零刻的机器做为家里的 NUC 集群,上面跑一些 Kubernetes 之类的自己用来测试的服务。

整体效果如下

v1

从上往下:

  1. NUC
  2. 交换机&光猫
  3. x86 网关 & UPS
  4. 群晖 DS1821+

但是在现有结构下,还存在一些问题

  1. TPLink 交换机易用性极差,要设置比如链路聚合之类的非常头疼
  2. 路由器非常不美观,
  3. x86 网关一旦 crash,如果我需要恢复网络,那么只能物理跳线。

基于这样一些逻辑,我考虑进行如下改造

  1. 替换交换机
  2. 将无线路由有线 Mesh 的方案切换为 AC+AP 的方案
  3. 将 x86 网关作为旁路网关

阶段2: 更大的机柜,更好的设备

基于上面的一些考虑,在经过多方面选择后,我选择 UBNT 作为我的接入设备

整体的理由如下:

  1. 性能不错
  2. 易用性极强
  3. 整体的设备美观度极高

所以最开始设备的选择如下

  1. UDM-Pro 作为主路由
  2. USW-24-Pro-POE 作为交换机
  3. U6-Mesh 2 + U6-IW 2 作为 AP

然后整体的效果如下

v2

但是在使用几天后,我发现了新的问题:我对容量的预估严重不足!

实际上千兆交换机理论吞吐是 1Gbps,但是实际上来说,刨除协议开销,有效负荷的速率大概在 940Mbps 左右。而这一点实际上对我现在的一些使用场景是有所不足的。比如在 PC 端转码然后回传 NAS 之类的。

而我目前又没有 10Gbps 常态化的传输需求。经过慎重考虑后,我决定将家中局域网的上限提升至 2.5Gbps。这样能达成性能与易用性的平衡点

那么我的设备选择如下、

  1. 主路路由替换至 UDM-SE
  2. 交换机替换至 USE-Enterprise-24-POE
  3. AP 替换两个为 U6-Enterprise-IW

整体效果如下

v3

当然中间穿插的小插曲是,在升级 2000M/200M 宽带后,我将家里的光猫替换成猫棒直接在主路由上接入光纤

然后我在网络上划分了三个 vlan

  1. 192.168.0.1/16 作为工作网段,其中网关会指向 x86 机器
  2. 10.0.0.1/16 为日常网段,确保 x86 机器挂了不会影响其余设备
  3. 172.28.0.1/16 为 IoT 网段,给家里的 IOT 设备使用
  4. 中间添加了防火墙策略,确保 IoT 网段无法访问工作网段和日常网段的设备

最后整体的网速差不多是这样

内网

公网

整体的拓扑如下

拓扑1

拓扑2

差不多就是这样

总结

经过改造,我相信这样的整体结构能够满足我使用很长时间。当然估计有很多人不理解为啥我租房还要这么折腾。我想除了职业习惯的原因以外,也还是想给自己的日常生活找点乐子。毕竟房子是租的,但是生活不是。