分類
技術 發展
瀏覽次數
85
在經過 Private Preview 與 Public Preview 後,Microsoft 已開始透過 Controlled Feature Rollout(CFR),逐步向 Windows 11 用戶端推出 Windows Customer-side Translator(WinCLAT)。
WinCLAT 可讓依賴 IPv4 的應用程式,在 IPv6-Only 及 IPv6-Mostly 網路環境中正常運作,從而消除了企業從原生 IPv4 過渡到 IPv6 時面臨的重要相容性問題。截至 2026 年 9 月 23 日,預估約有一半符合條件的 Windows 電腦已取得此功能,預計未來幾週將持續擴大推出範圍。
CLAT(Customer-side Translator)是 464XLAT IPv6 過渡與轉換技術的一部分。
CLAT 使用 SIIT(Stateless IP/ICMP Translation Algorithm),將用戶端產生的 IPv4 封包轉換成 IPv6。網路另一端則由 PLAT(Provider-side Translator),通常是 NAT64 Gateway,將封包再轉換回 IPv4,最後傳送至 IPv4 目的地。
雖然目前越來越多應用程式已支援 IPv6,但仍有許多應用程式與服務依賴 IPv4。
部分應用程式使用 IPv4-only Socket 或相關 API,另一些應用程式則會直接連線至 IPv4 位址。這些應用程式無法利用 DNS64 所產生的 AAAA 記錄,因此在 IPv6-Only 網路中,需要另一種機制才能與 IPv4 網路上的服務通訊。
WinCLAT 正是提供這項相容性機制,讓網路本身可以不提供原生 IPv4,仍能支援需要 IPv4 的應用程式。
啟用後,WinCLAT 會判斷用戶端是否處於沒有原生 IPv4 連線的環境。
這可能是 IPv6-Only 網路,也可能是 IPv6-Mostly 網路。在 IPv6-Mostly 網路中,DHCPv4 Option 108 可以通知支援此功能的用戶端不要取得 IPv4 位址。
接著,WinCLAT 會透過 IPv6 Router Advertisement(RA)或 DNS 與 ipv4only.arpa 網域,取得網路使用的 NAT64 Prefix。
WinCLAT 隨後會在網路介面上建立一個合成的 IPv4 位址。當應用程式產生 IPv4 流量時,WinCLAT 會使用所取得的 NAT64 Prefix,將 IPv4 封包以無狀態方式轉換成 IPv6,再送往網路。回傳流量則會再轉換回 IPv4。
因此,對大多數應用程式而言,這個過程是透明的,應用程式仍可使用 IPv4 Socket,而不需要網路提供原生 IPv4 連線。
目前 WinCLAT 要求用戶端透過 SLAAC(Stateless Address Autoconfiguration) 取得 IPv6 位址。
因此,如果網路僅透過 Stateful DHCPv6 指派 IPv6 位址,WinCLAT 將無法運作。
使用 DHCPv6 進行 IPv6 位址配置的組織,在部署 WinCLAT 時,也必須同時啟用 SLAAC。
DNS64 與 NAT64 可以與 WinCLAT 搭配,在 IPv6-Only 網路中提供連線至 IPv4-only 資源的能力,但兩者所處理的情境有所不同。
DNS64 會根據 IPv4 的 A 記錄產生合成的 AAAA 記錄,讓支援 IPv6 的應用程式能夠透過 NAT64 Gateway,與 IPv4-only 目的地通訊。
但使用 IPv4 Socket,或直接連線至 IPv4 位址的應用程式,無法使用這些合成的 AAAA 記錄,因此需要 WinCLAT 提供相容性。
DNS 也是 WinCLAT 探索 NAT64 Prefix 的其中一種方式。
WinCLAT 可以查詢 ipv4only.arpa 來取得 Prefix,不過較優先的方式,是透過 IPv6 Router Advertisement 中的 PREF64 選項取得 NAT64 Prefix。
DNS64 與 NAT64 對 Microsoft DirectAccess 管理員而言並不陌生,因為這些技術早已在 Windows Server 2012 的 DirectAccess 中導入。
當 WinCLAT 功能已經在 Windows 11 裝置上提供後,可以透過 netsh.exe 進行啟用與設定。
netsh.exe
若要允許 WinCLAT 在非行動網路介面上運作,可使用系統管理員權限開啟命令提示字元,執行:
netsh.exe interface clat set global permit=enabled
若要查看目前的全域設定,可以執行:
netsh.exe interface clat show global
也可以針對特定網路介面查看設定:
netsh.exe interface clat show instance interface=<interface name>
WinCLAT 可以設定是否啟用透過 DNS 或 Router Advertisement 進行 NAT64 Prefix 探索。
啟用方式:
netsh.exe interface clat set global pref64fromdns=enabled netsh.exe interface clat set global pref64fromra=enabled
停用方式:
netsh.exe interface clat set global pref64fromdns=disabled netsh.exe interface clat set global pref64fromra=disabled
至少必須保留一種 Prefix 探索方式。當兩種方式都啟用時,WinCLAT 會優先使用 IPv6 Router Advertisement 中的 PREF64 選項;如果無法取得,則會使用 DNS 方式作為備援。
WinCLAT 會在網路介面上配置 192.0.0.1/32,供本機 IPv4 Stack 使用。
這個位址來自 IANA 保留的 192.0.0.0/29 IPv4 Service Continuity Prefix,定義於 RFC 7335。
這個 Prefix 中的位址是用於本機 IPv4 相容性,不會以 IPv4 封包的形式直接傳送到實體網路上。
啟用 WinCLAT 後,可以在 IPv6-Only 網路環境中,嘗試瀏覽 IPv4-only 網站或連線至 IPv4-only 資源,以確認功能是否正常。
例如,可以連線至 Google 的 IPv4-only 網站:
https://ipv4.google.com/
如果連線成功,即代表 Windows 可以透過 WinCLAT,將應用程式產生的 IPv4 流量轉換成 IPv6,並經由 NAT64 Gateway 連線至 IPv4 網路。
WinCLAT 將 Windows 的 464XLAT 支援延伸至非行動網路介面,讓依賴 IPv4 的應用程式可以在 IPv6-Only 與 IPv6-Mostly 網路中繼續運作。
WinCLAT 會將本機產生的 IPv4 流量轉換成 IPv6,再送往 NAT64 Gateway;對於支援 IPv6 的應用程式,則可透過 DNS64 與 NAT64 直接連線至 IPv4-only 服務。
系統管理員可以使用 netsh.exe 或 Group Policy 管理 WinCLAT,並可透過 Router Advertisement 或 DNS 進行 NAT64 Prefix 探索。
目前 WinCLAT 要求用戶端使用 SLAAC 取得 IPv6 位址,因此僅使用 Stateful DHCPv6、未啟用 SLAAC 的網路環境,仍無法使用 WinCLAT。本文為作者個人想法,不代表TWNIC之立場,若對此內容有興趣,請參閱原文:https://directaccess.richardhicks.com/2026/09/23/microsoft-begins-rolling-out-windows-clat-for-ipv6-only-networks/
網路威脅觀測月報|2026年8月
【歡迎報名】2026年網際網路工程任務組(IETF)實體暨線上研習課程
2026/10/17 ~ 2026/10/22
2026/11/14 ~ 2026/11/20
2027/02/28 ~ 2027/03/04
2026/09/29