DNS64與NAT64運作原理

邱顯智 Ozzy Chiou

  • 精誠資訊/恆逸教育訓練中心-資深講師
  • 技術分類:網路管理與通訊應用

 

 

IPv6升級方案大致上分為以下三種:

  1. 雙堆疊(Dual Stack)

    雙堆疊方案就是保留現有IPv4連線能力,另外再加上IPv6的連線能力,因此主機就具備「見人說人話,見鬼說鬼話」的能力,如果要連線的對象是IPv4主機的時候,仍然能夠透過IPv4封包繼續與該主機溝通;如果要連線的對象是先進的IPv6主機的時候,也有能力可以發出IPv6封包與該主機通訊。

    雙堆疊網路雖然部署非常簡單,但是由於要同時管理IPv4以及IPv6兩套網路,傳統IPv4的安控機制也必須要複製一份成為IPv6的版本,另外如果使用者的網路連線出了問題,您第一步要釐清的問題究竟是因為IPv4抑或是IPv6造成的,一旦問題疑難排除查錯方向,您將會浪費許多寶貴的時間,因此雙堆疊網路長期的維護成本非常的高昂。

  2. 純正IPv6(NATive IPv6)

    純正IPv6網路也就是移除IPv4的連線能力,只保留IPv6的聯網能力,日後只需要維護IPv6一套網路即可。 不過由於純正IPv6主機喪失了發出IPv4封包的能力,無法直接與傳統老舊的IPv4主機繼續通訊,所以您需要在純正IPv6網路以及僅支援IPv4的老舊網路交界處安裝翻譯服務,目前業界普遍採用的翻譯服務是NAT64。

    NAT64可以將純正IPv6主機所發的IPv6封包翻譯成IPv4封包傳給不長進的老舊IPv4主機;相反的,也可以把IPv4主機所發的IPv4封包翻譯成IPv6封包傳給純正IPv6主機。 但是要特別注意的是,由於善良老百姓上網的時候不會直接輸入IP位址,只會輸入網址,因此需要動用到DNS名稱解析,然而老舊IPv4主機透過正常DNS查詢流程得到的IP位址一定是IPv4格式,因此需要搭配DNS64的輔助進行以下轉換:

    • 用戶在純正IPv6主機輸入https://www.example.com/,觸發DNS名稱解析。
    • 名稱解析請求透過DNS64伺服器進行正常的遞迴查詢流程,解析出www.example.com網站的IP位址為203.0.113.1。
    • DNS64伺服器將上述A記錄加上NAT64專用的前綴(64:FF9B::/96),組合成128 bits的IPv6位址格式(64:FF9B::203.0.113.1),回應給純正IPv6主機。
    • 純正IPv6主機以上發出IPv6封包,目的地位址標示為64:FF9B::203.0.113.1。
    • NAT64路由器收到上述封包,將目的地位址的前綴(64:FF9B::/96)移除,還原出老舊IPv4主機的原始IPv4位址為203.0.113.1。
    • NAT64路由器將封包重新封裝為IPv4封包,目的地IPv4位址標示203.0.113.1,來源IPv4位址可以標示自己外網介面的IPv4位址,發送給老舊IPv4主機。
    • 當NAT64路由器收到來自老舊IPv4主機的回應封包的時候,會逆向把封包重新封裝為IPv6封包回傳給純正IPv6主機。

如此一來您的架構就可以非常單純,內部純正IPv6網路的連線問題必定出在IPv6,而不會有IPv4問題來湊熱鬧;一旦與外部不長進的IPv4主機連線發生問題只要檢查NAT64路由器以及DNS64伺服器即可。


您可在下列課程中了解更多技巧喔!