使用常見 DDNS 子網域可能導致電信寬頻服務降級
Categories:
IPv6 斷連和打洞失敗問題折騰了三個多月,終於確認原因,分享給大家。
第一次發帖求助 IPv6 斷連問題
IPv6 一直可以正常訪問,沒有修改設定的情況下,且設備均有獨立 IPv6,但連不通 IPv6 網路。
curl 6.ipw.cn 拿不到回傳,ping6 和 traceroute6 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 做子網域有玄學加速作用。