diff --git a/PVECluster_Architecture.md b/PVECluster_Architecture.md index 5faf619..bed7748 100644 --- a/PVECluster_Architecture.md +++ b/PVECluster_Architecture.md @@ -1,6 +1,6 @@ # PVECluster 叢集架構文件 -> 最後更新:2026-04-18(CT101 新增 NetBird client 100.71.200.94) +> 最後更新:2026-04-18(CT124 新增 NetBird client 100.71.40.35) ## 一、叢集概覽 @@ -130,7 +130,7 @@ Proxmox Backup Server (192.168.42.30, VM 111) | **116** | CT116 | pve | running | 1C | 128 MB | 8G (syno-lvm) | .42.116 | Bark 推播通知 (finab/bark-server:8080) + Watchtower | | **117** | CT117 | pve-02 | running | 2C | 2 GB | 60G (syno-lvm) | .42.117 | Lydia Test — Python (:5000) + MSSQL Express | | **118** | CT118 | pve-03 | running | 1C | 1 GB | 8G (syno-lvm) | DHCP | PostgreSQL 16 + Redis + Proxy Pool (10x Tor) + Podman | -| **124** | CT124 | pve-03 | running | 2C | 8 GB | 80G (syno-lvm) | .42.124 | Docker 服務集中台 (20+ 服務: NPM, Gitea, Karakeep, Vaultwarden, Jellyfin 等) | +| **124** | CT124 | pve-03 | running | 2C | 8 GB | 80G (syno-lvm) | .42.124 | Docker 服務集中台 (20+ 服務: NPM, Gitea, Karakeep, Vaultwarden, Jellyfin 等) + Tailscale (kernel-mode) + NetBird (100.71.40.35, ct124.netbird.selfhosted) | | **126** | CT126 | pve | running | 1C | 256 MB | 8G (syno-lvm) | .42.126 | Headscale v0.28.0 控制伺服器 (17 節點) + Tailscale + Watchtower | ### 狀態統計 @@ -186,7 +186,7 @@ Proxmox Backup Server (192.168.42.30, VM 111) │ PPPoE HiNet / WireGuard VPN (10.0.0.1) │ │ DNAT: SSH Jump, Bore, NPM, RustDesk, Headscale, SQL │ │ CT104 Caddy ───── 反向代理(80/443) │ -│ CT124 ─────────── NPM + Gitea + 20 服務集中台 │ +│ CT124 ─────────── NPM + Gitea + 20 服務集中台 + Tailscale + NetBird │ │ │ │ 【認證/安全】 │ │ CT124 Vaultwarden ── 密碼管理 │ @@ -232,6 +232,29 @@ Proxmox Backup Server (192.168.42.30, VM 111) ## 八、已知問題與注意事項 +### Tailscale kernel-mode + NetBird 共存:iptables-legacy 封包丟棄 + +適用場景:同一台容器/主機上 **Tailscale 以 kernel mode 運行**(非 userspace),又要加掛 NetBird client。目前 **CT124** 是此情境(CT100/CT101 的 Tailscale 是 userspace,不受影響)。 + +**症狀**:NetBird tunnel `wt0` 建立成功、peer 狀態 Connected,但從其他 NetBird peer ping CT124 的 `100.71.40.35` 完全不通,CT124 本地也收不到任何 NetBird 流量。 + +**成因**:Tailscale kernel mode 會在 `iptables-legacy` 裝 `ts-input` 和 `ts-forward` chain,預設把 `100.64.0.0/10`(CGNAT)範圍內、且 **不是** 從 `tailscale0` 進來的封包全部 DROP。NetBird 的 `100.71.0.0/16` 剛好落在這個 CGNAT 區段內,於是 `wt0` 收到的 NetBird 封包會被 Tailscale 的 rule 靜默丟掉。 + +**修復**:在 `iptables-legacy` 裡針對 `wt0` 介面放行,並放在 chain 最前面(`-I ... 1`)以搶在 Tailscale rule 之前: + +```bash +iptables-legacy -I INPUT 1 -i wt0 -j ACCEPT +iptables-legacy -I FORWARD 1 -i wt0 -j ACCEPT +iptables-legacy -I FORWARD 1 -o wt0 -j ACCEPT +``` + +**開機持久化**(CT124 上已部署): + +- `/usr/local/sbin/netbird-iptables-legacy-fix.sh` — 執行上述三條規則的腳本 +- `/etc/systemd/system/netbird-iptables-fix.service` — 開機時呼叫該腳本的 oneshot unit + +未來若有其他 CT 同時跑 Tailscale kernel mode + NetBird,需套用相同 workaround。 + ### Ubuntu 25.04 LXC 容器 Console 無法登入 Ubuntu 25.04 的 systemd 新增了 `ImportCredential` 指令,在 LXC 容器中不支援,導致 `console-getty.service` 啟動失敗(exit 243/CREDENTIALS),Web Console 看不到登入提示。 diff --git a/SUMMARY.md b/SUMMARY.md index 3010dcb..12382fc 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -41,7 +41,7 @@ |---|---|---|---|---| | OpenWRT 24.10.4 路由器 | VM 110 | .42.10 (GW) | pve | running | | Caddy (:80) + Tailscale | CT 104 | .42.104 | pve | running | -| NPM + Gitea + 20 服務集中台 | CT 124 | .42.124 | pve-03 | running | +| NPM + Gitea + 20 服務集中台 + Tailscale + NetBird | CT 124 | .42.124 | pve-03 | running | | PBS (78GB, 41 筆備份) | VM 111 | .42.30 | pve-02 | running | ### 遠端存取 / VPN