使用常見 DDNS 子網域可能導致電信寬頻服務降級

IPv6 斷連和打洞失敗問題折騰了三個多月,終於確認原因,分享給大家。

第一次發帖求助 IPv6 斷連問題

IPv6 一直可以正常訪問,沒有修改設定的情況下,且設備均有獨立 IPv6,但連不通 IPv6 網路。

curl 6.ipw.cn 拿不到回傳,ping6traceroute6 2400:3200::1 都中斷。

光貓橋接路由,可以拿到路由器的 IPv6 地址,這是可以訪問 IPv6 的地址。

可以拿到 /56 前綴,路由器下設備都可以拿到分配的 IPv6 地址 240e:36f:15c3:3200::/56,但都無法連接到 IPv6 網站。

懷疑是運營商沒有建好 240e:36f:15c3:3200:: 的路由,但無法確認。

網友說可能是 PCDN 上傳流量過大導致,但上傳流量很小,也沒有開啟 PCDN。

也可能是使用了 Cloudflare 和 Aliyun ESA 反代導致。

第二次發帖確認直接原因

確認部分地區的電信運營商會因為 IPv6 入站 HTTP/HTTPS 連接較多而降級服務,表現為:

  • 假 IPv6,IPv6 可以獲得 /56 前綴,各設備 IPv6 分配正常,但 tracert 缺路由,導致 IPv6 實際無法聯網。
  • 假穿牆,Tailscale 測試連接顯示是直連,但延遲超高,實際網速極慢。

關閉 Cloudflare/Aliyun ESA 的反代,經過多次重啟路由後,可以恢復 IPv6 和真直連。

關閉反代後仍然斷連

即使關閉了反代,關閉 Cloudflare 和 Aliyun ESA 回源,也會偶發斷鏈,持續時間較長。

可能有網域洩露,或被人使用常見子網域進行掃描,長期 HTTP 攻擊。

禁用 DDNS 網域的解析,一段時間後,IPv6 恢復正常,Tailscale 打洞直連也正常。

至此再沒有發生斷連問題。

最終解決方案

在此建議大家不要使用常見的 DDNS 子網域,如:

  • home.example.com
  • nas.example.com
  • router.example.com
  • ddns.example.com
  • cloud.example.com
  • dev.example.com
  • test.example.com
  • webdav.example.com

這裡邊有幾個就是我之前一直使用的,可能被人一直在掃,導致電信寬頻服務降級,公網 IPv6 不能正常使用,總是無法打洞直連。

大家都知道在網路安全中,隱藏 IP 的重要性,這裡額外建議保護自己用於 DDNS 的網域,它本質上也是在暴露 IP。

但仍然有暴露服務的需求怎麼辦?

這裡有兩個實踐方案:

  • 回源方案,是一種中轉服務,請求先到 VPS 再到 Home Server。由於流量跳轉繞路,延遲和頻寬都會受到一定影響。
  • DDNS 方案,是直連方案,連接體驗會好很多,推薦這種方案。個人用一般不會超連接數限制,但如果公開網域,鋪天蓋地的 bot 幾下就會把連接數升上去。

回源方案(反代)

Cloudflare Tunnel

使用 Cloudflare 的 Tunnel,這樣就不會像普通回源那樣幾十上百個 IP 來訪問。

Tailscale 或 ZeroTier

自建 VPN,前面套一個 VPS,透過 VPN 來訪問內網服務,這樣可以避免同時連接數過高。

DDNS 方案(直連)

公網解析

生成隨機字串比如 GUID,用於 DDNS 網域,雖然幾乎無法記憶,但個人實際使用時影響不大,可以自行評估。

私有解析

使用個人 DNS 服務,如:

用於 DDNS 解析。

這樣只有能連接到個人 DNS 伺服器的人才能取得指定網域的自訂解析 IP。

在這種方案下,就可以使用常見的 DDNS 網域,但需要避免洩露自己的 DNS 服務地址。

補充

坊間傳聞,使用 speedtest 做子網域有玄學加速作用。