Ipv6
IPv6 客戶端通過帶有 mod_cloudflare 的 CloudFlare 訪問帶有不支持 IPv6 的應用程序的 IPv4 伺服器
我們的伺服器目前僅支持 IPv4。
但是我們在它前面使用了CloudFlare,我們希望利用它提供的IPv6 兼容性。
同時,我們在伺服器上有一些不知道 IPv6 的應用程序(例如 vBulletin),我們不想在那裡引入任何意外行為。
我們還使用mod_cloudflare來獲取客戶端的實際 IP。
問題/尚未嘗試以下內容,想先確定:
通過閱讀 CloudFlare 文件,我了解到啟用 IPv6 兼容性後它會像這樣工作:
- 客戶端 w/ IPv4 > CF > CF w/ IPv4 > 伺服器 w/ IPv4 > mod_cf > 獲取客戶端 IPv4
- 客戶端 w/ IPv6 > CF > CF w/ IPv4 > 伺服器 w/ IPv4 > mod_cf > 獲取客戶端 IPv6
這裡的問題是我們得到了一個 IPv6 地址,這可能會在不支持 IPv6 的應用程序中引入錯誤。
進一步閱讀 CloudFlare,我看到他們有Pseudo IPv4 with Overwrite headers:
- CLIENT w/ IPv6 > CF > CF w/ IPv4 > SERVER w/ IPv4 > mod_cf > 獲取 CLIENT Pseudo IPv4
這是在不破壞伺服器上任何現有應用程序的情況下引入 IPv6 兼容性的正確方法嗎?這種方法有什麼缺點嗎?
參考資料:
代理服務通常會提供 IPv6 到 IPv4 的轉換。有一些可選的標頭可以包含 IP 地址。如果您不使用它們,那麼應該沒有問題。如果您的軟體支持 IPv6,而您只是沒有公共 IPv6 地址,則出現問題的可能性較小。
最有可能具有 IPv6 地址的標頭是 X-Forwarded-For。Cloudflare 還注入了一個標頭,該標頭指示其伺服器所看到的客戶端地址。他們的選項會清理兩個標頭,因此無法處理 IPv6 地址的應用程序將看到 IPv4 地址。您應該對此選項沒有任何問題。
我會敦促您升級到 IPv6 功能,即使您沒有立即獲得伺服器的 IPv6 地址。