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:28f
(c000: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 XP、Windows Vista、Windows 7、Windows 8、Windows 10(但在1703更新中預設關閉,1803更新後會移除)[2]、Windows Server 2008、Windows Server 2012、Windows Mobile、Linux和Cisco IOS(自IOS 12.2(14)S、 IOS XE Release 2.1)[3]中實現。
由於專利權利要求,早期在KAME(*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協定號)使用防火牆來攔截。
參考文獻
外部連結
Wikiwand in your browser!
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.