ISATAP(Intra-Site Automatic Tunnel Addressing Protocol)是一種IPv6轉換傳送機制,允許IPv6封包通過IPv4網路上雙棧節點傳輸。

不同於6over4,ISATAP視IPv4網路為一個非廣播多路訪問網路資料鏈路層,因此它不需要底層的IPv4網路基礎設施來支援多播。

執行方法

ISATAP包含一種基於IPv4位址生成IPv6本地鏈路位址的方法,和基於IPv4網路的鄰居發現機制。

位址產生

任何一個希望通過特定IPv4網路使用ISATAP的主機都可以建立虛擬的IPv6網路介面。將主機的IPv4位址位元串加上特定IPv6字首作為介面的IPv6位址,對於全球單播位址使用fe80::0200:5efe:,對於專用網路位址則使用fe80::0000:5efe:。例如,一個主機IPv4位址為192.0.2.143,則其ISATAP介面的IPv6位址為fe80::0200:5efe:192.0.2.143,轉為完整最短IPv6為fe80::200:5efe:c000:28fc000:28f為其IPv4位址192.0.2.143的十六進制值)。[1]

鄰居發現

由於ISATAP將IPv4基礎網路視為一個非廣播或多播多路訪問網路的資料鏈路層,不同於乙太網路,使其原有的ICMPv6鄰居發現不能如常操作,使ISATAP比6over4的運作有所困難。

對於IPv6封包來說,IPv4網路是它的物理鏈路層,由於其IPv6位址已經包含了作為鏈路層的位址,即IPv4位址,所以其無需進行鄰居發現。但是缺少多播功能導致其無法進行路由自動發現,所以ISATAP主機必須組態一個潛在路由器列表(potential routers list,PRL),這列表中的路由器通常不需要使用ICMPv6的路由發現來尋獲和確定其是否已線上可執行,並且其只進行單播位址自動組態(通常可以藉此為ISATAP的介面自動組態到其他IPv6字首)。

實際上,PRL是通過DNS查詢獲得,例如如果本地網路域名為example.com,可通過查詢isatap.example.com。本地網路域名通過IPv4網路上的DHCP或者本地靜態組態獲得。

實現

ISATAP已經在Microsoft Windows XPWindows VistaWindows 7Windows 8Windows 10(但在1703更新中預設關閉,1803更新後會移除)[2]Windows Server 2008Windows Server 2012Windows MobileLinuxCisco IOS(自IOS 12.2(14)S、 IOS XE Release 2.1)[3]中實現。

由於專利權利要求,早期在KAME英語KAME project(*BSD)和USAGI(Linux)的核心實現被移除過,然而,IETF智慧財產權披露搜尋引擎報道,該侵權專利的持有者不需要實現者的許可。[4]Linux核心自2.6.35版本實現了核心支援,[5]並提供了一個使用者空間組態工具isatapd[6]對於之前的Linux核心,開源專案Miredo提供了一個不完整的使用者空間實現,之後版本1.1.6中被移除。

批評

ISATAP通過查詢DNS來構建PRL,因此,對應於OSI模型,其依賴於一個高層協定來構建低層協定。其依賴於IPv4的DNS來避免迴圈,而不是IPv6路由的構建。然而,有些網路專家認為這這違反了他們認為普遍接受的設計原則,並進一步聲稱這些違規行為會導致協定不健全。[7]

ISATAP有著和6over4一樣的安全風險,也就是IPv4虛擬鏈路需要在網路邊緣被小心地分隔開,以便外部IPv4主機不能假裝成為ISATAP鏈路的一部分。通常是通過將IP協定號為41的IP包(也就是6in4等所使用的IP協定號)使用防火牆來攔截。

參考文獻

  1. ^ R. Hinden, S. Deering. RFC 4291: Section 2.2 - Text Representation of Addresses. IETF. February 2006 [2015-02-09]. (原始內容存檔於2020-03-07). 
  2. ^ lizap. Windows 10, version 1803 - Features that have been removed. docs.microsoft.com. [2018-05-28]. (原始內容存檔於2018-05-09) (美國英語). 
  3. ^ Cisco IOS IPv6 Command Reference. [2015-05-06]. (原始內容存檔於2015-05-16). 
  4. ^ Peter Marcotullio. SRI International's statement about IPR claimed in draft-ietf-ngtrans-isatap-24.txt. 2005-03-15 [2015-02-09]. (原始內容存檔於2015-02-10). 
  5. ^ Fred L. Templin. IPV6: Add RFC4214 support. 2007-11-29 [2015-02-09]. 
  6. ^ Sascha Hlusiak. ISATAP client for Linux. 2010 [2015-02-09]. (原始內容存檔於2015-02-10). 
  7. ^ itojun. Request to Publish ISATAP. v6ops Mailing List. 2002-12-25 [2015-02-09]. (原始內容存檔於2016-03-06). 

外部連結