目前配置,先交代吓背景
如果你一直有跟開我嘅homelab系列文章,咁你應該已經知道呢個鏈路:MikroTik先接住互聯網流量,處理防火牆同NAT,然後交畀Traefik,由佢路由去正確嘅Docker容器。呢個一直運行得好穩。但最近我深入研究咗一下自己到底用緊邊款路由器,結果搞出咗一場小小嘅身份危機。
等等,我嘅hEX到底係邊一款
大約兩年前,我用咗大約3000比索買咗部MikroTik hEX。我一直幾肯定自己買嘅係較新嘅「refresh」版本。結果發現並唔係。我手上嘅其實係經典款RB750Gr3:雙核、880MHz、256MB記憶體。而refresh版本(E50UG)用嘅係更新嘅ARM SoC,記憶體翻倍到512MB,MikroTik宣稱根據配置唔同能帶嚟100%到134%嘅性能提升。兩款當初賣嘅係同一個價位,而家諗返起有啲刺痛。
不過,真正對我實際使用有影響嘅係呢一點。refresh版本有更闊嘅內部背板,呢個意味住區域網內嘅流量可以完全留喺交換晶片上,只有面向廣域網嘅流量先需要經過CPU。而我而家呢部經典款hEX冇呢種分離,所以喺NAT或防火牆規則負載較重嘅情況下,區域網吞吐量同廣域網吞吐量會爭搶同一批CPU週期。對於一個只跑幾個自行託管服務嘅家庭網絡嚟講,呢個仲未至於係致命問題,但佢解釋咗點解當幾個服務同時被訪問嗰陣,我會感覺到某種遲滯。
選項一:內置WiFi模組嘅MikroTik
目前我嘅WiFi完全唔係由MikroTik處理嘅。我用嘅係一個TP-Link接入點,再加一個訊號擴展器嚟覆蓋全屋。佢基本用得,但有一個真實存在嘅問題:當我連去擴展WiFi嘅時候,冇辦法訪問Immich。Immich跑喺同我嘅Traefik代理唔同嘅機器上,而擴展器橋接流量嘅某種方式,將呢條路徑破壞咗。正常情況下,我會用之前修復hairpin NAT嘅方法,即係DNS覆寫嚟解決,但處於擴展模式下嘅TP-Link擴展器唔容許我設定佢自己嘅DNS伺服器。所以呢度冇變通方案,純粹就係硬件本身嘅硬性限制。我要麼喺使用嗰項服務時避開擴展網絡,要麼就成套方案換咗佢。
一部帶內置WiFi模組嘅MikroTik裝置,可以令我將WiFi同防火牆合併到一部裝置上,一張路由表,一個流量走向嘅唯一可信來源。到嗰個時候,DNS本來就由MikroTik自己處理,呢成類問題就唔存在喇——路徑中間亦都唔再有擴展器要同你對住幹。缺點係價格。呢類裝置明顯比一部普通有線hEX貴唔少,而且我等於係喺為一項功能(長距離WiFi覆蓋)洗錢,而呢項功能通常一部專用接入點反而做得更好。
選項二:乾脆擁抱千兆
呢個選項喺紙面上冇我一開始以為咁令人興奮,主要係因為喺權衡呢件事嘅過程中,我先發現自己而家呢部hEX本來就自帶5個千兆以太網口。所以問題從來都唔係「要唔要攞到千兆端口」,而係我可唔可以真正將佢哋用到滿負荷。老實講,答案係:喺我嘅區域網內部,千兆確實有用(大檔案傳輸、Immich同步相片、機器之間嘅備份),但喺廣域網呢一側,我嘅PLDT套餐上限只有500Mbps,所以嗰部分頻寬餘量始終只喺本地先有意義。呢個唔係一條浪費嘅升級路徑,只係佢帶嚟嘅好處比聽落嚟窄啲。如果我真係行呢條路,咁真正嘅重點其實係refresh版本更好嘅內部交換能力,而唔係「攞到」我技術上其實已經有咗嘅千兆。
選項三:迷你主機加OPNsense
呢個係我一直反覆返嚟考慮嘅選項,主要係因為我想學佢,而唔係嚴格意義上「需要」佢。呢個諗法係將MikroTik由邊緣防火牆嘅位置退役,換成一部跑OPNsense嘅細型專用主機。
老實講,我目前仲完全冇OPNsense嘅實操經驗,所以呢個與其話係計劃,不如話更似係好奇心。我知道佢喺概念上處理NAT同防火牆嘅方式同MikroTik類似,但我要由零開始重新學成套介面,重新搞掂端口轉發、防火牆規則,大概仲要再經歷一次某種換咗名嘅hairpin NAT式問題。我亦唔肯定Traefik可唔可以合理咁同OPNsense跑喺同一部機器上,定係好似而家咁放喺自己獨立嘅機器上更好。呢一切都要等我真正裝上去、開始撳嚟撳去之後先可以真正搞明白。
目前落喺邊個方向
呢度冇咩急事,不過透過擴展WiFi訪問Immich呢個問題,比我一開始以為嘅更真實——因為唔換硬件嘅話,確實冇真正嘅解決辦法。喺呢三個選項當中,OPNsense迷你主機呢條路係我真正想去嘗試嘅,主要係為咗嗰條學習曲線,儘管一部支援WiFi嘅MikroTik可以更直接咁解決Immich嘅問題。最壞嘅情況下,我就將MikroTik留低做備用防火牆,將呢成件事當成一個週末項目,而唔係一次網絡遷移。