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協定號)使用防火牆來攔截。

參考文獻

外部連結

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.