我的 5.10 代 homelab

也是一个小升级。

为什么又双叒叕升级了?

为了后续想部署一些 PoE+ 的设备,并且交换机还得有 VLAN 配置,所以购买了 Netgear 家的 GS316EPP。

然后,感觉现在的 9U 柜子太小,就想买个大点的柜子,然后为了让卧室变安静所以想放在客厅。结果当然是发现买的 12U 也太小了,里面真的超级热。

并且,我想将我的房间跟主干网(这个后续本来就想弄在客厅)之间使用光纤连接。正好我手上的 GS316EPP 和 CCR1009 都有 SFP 口。

现在是个什么样子?

2024.06 的构造.png

怎么在已有的上面配置?

客厅

首先将所有设备搬到客厅的机柜内,然后针对两个房间连接的需求拉明线(钉墙上)。因为我的移动光纤接入点在我的卧室,所以还需要买针对这个情况的光纤延长线。

之后,Mikrotik 上因为基本所有的设备都变动了,所以大改了一下。

随着网口设备的变动,VLAN 也要跟着变动:

基本就完成了。因为想把一些吵的设备放在客厅,其中包括了一些工作用的开发板,所以稍微对 Linksys 的 VLAN 进行调整:

VLAN ID Local lan1 lan2 lan3 lan4 wan
1 v - - - - U
10 v U U - - T
20 v - - - - T
30 v - - U U T
40 v - - - - T
100 v - - - - T
200 v - - - - T

基本就完成了。

卧室

卧室的新交换机上,16 号口为 SFP,插入的同样为 Mikrotik S-85DLC05D 光模块。

随后就是设置 VLAN,选择 802.1Q Advanced 之后开始设置。这里我就小小的偷懒一下了。

VLAN ID lan1 lan14 lan15 lan16
1 U T T U
10 - T T T
20 - T T T
30 - T T T
40 - T T T
100 - T T T
200 - T T T

其它口没有插,就空着吧。1 号口之所以 lan 设置成 Untagged 是因为想用这个口也能作为管理口。

然后卧室基本也大功告成了,因为剩下的设备不动,RX6000 还留着呢,有开发板可以往上面插。

遇到的坑

接好光纤没有网

我这样光纤内网对内网传输的话不要勾选 sfp-sfpplus(也就是 SFP+)口 Ehternet 内的 Auto Negotiation,需要手动选择 Speed 为 1G base X。这样的话你会遇到一个看似光纤通了,发送端有在发包但是接收端没有反应的情况。我被这个坑了快 1 个小时。

homepod 指定 Wi-Fi

因为 homepod 肯定跟你共用 Apple ID,而像我一样你自己的手机连上 Self Network 的话,在 IoT Network 的 homepod 会不时地尝试连接到跟你手机一样的 Wi-Fi 网络,这样就糟糕啦!

还好我们可以通过下发配置文件解决这个问题。当然,你需要一台 Mac。

首先,下载 Apple Configurator。然后打开它,点击 File > New Profile 来创建一个新的配置文件。

之后,找到程序左侧的 Wi-Fi,并填写好你的 IoT Wi-Fi 信息。最后不要忘记在 General 那里给自己的配置文件起个名字。最后点击 File > Save,编写配置文件大功告成了。

接下来,我们需要将配置文件 AirDrop 到你的 iOS 设备上。发送成功之后,你的 iOS 设备应该会自动弹出这个配置文件问你安装到哪里,选择其它装置,然后选择你的 homepod。接下来安装即可。

通常,你可能要多试几次——甚至要将你的手机靠近 homepod,或者临时的将手机和 homepod 放在同一个 Wi-Fi 下,不过成功之后,你的 homepod 就不会随着你的手机跑了。

homepod 跨 VLAN 通过别的苹果设备连接不上

本来有一个可以在 RouterOS 上部署 Bonjour-reflector 的(见参考链接第二条),但我的 Mikrotik 设备并不支持 container 特性。Mikrotik 官方说他们会有一个简单的关于 mDNS 的解决方法,但现在依然没兑现。

不过还好,在 Mikrotik 论坛内有人弄出来了只用 Bridge filter 的办法,试了一下还真的能用。

首先,创建你想让 homepod 在哪些 VLAN 工作的 MACVLAN:

/interface macvlan add interface=ServerVLAN name=macvlan10
/interface macvlan add interface=SelfVLAN name=macvlan20
/interface macvlan add interface=IoTVLAN name=macvlan100
/interface macvlan add interface=GuestVLAN name=macvlan200

然后,创建一个 non-VLANed 的桥,并将所有的 MACVLAN 添加进去。

/interface bridge add name=BridgemDNS protocol-mode=none
/interface bridge port add bridge=BridgemDNS interface=macvlan10
/interface bridge port add bridge=BridgemDNS interface=macvlan20
/interface bridge port add bridge=BridgemDNS interface=macvlan100
/interface bridge port add bridge=BridgemDNS interface=macvlan200

接下来,设置这个桥的 Filters 规则,在这个桥上只允许 mDNS 流量。

/interface bridge filter add action=accept chain=forward comment="Allow mDNS only" dst-address=224.0.0.251/32 dst-mac-address=01:00:5E:00:00:FB/FF:FF:FF:FF:FF:FF dst-port=5353 in-bridge=BridgemDNS ip-protocol=udp mac-protocol=ip out-bridge=BridgemDNS src-port=5353

/interface bridge filter add action=drop chain=forward in-bridge=BridgemDNS out-bridge=BridgemDNS comment="Drop all other L2 traffic"

最后,记录下你这个新桥的 MAC 地址,创建一个桥的 NAT 规则。将下方的 11:22:33:44:55:66 改成你桥的 MAC 地址。

/interface bridge nat add action=src-nat chain=srcnat dst-mac-address=01:00:5E:00:00:FB/FF:FF:FF:FF:FF:FF to-src-mac-address=11:22:33:44:55:66 comment="SNAT to Primary VLAN bridge"

大功告成了。

机柜太热

这个没办法,肯定要加散热的东西。不过现在硬盘在 50 多°C左右徘徊,感觉还行……估计又要买大一点的机柜了。

参考链接


如果喜欢本文,欢迎点击下方的「鼓掌」按钮!

如果上面没有加载出任何东西,可以点击这里