複製鏈接
請複製以下鏈接發送給好友

isatap

鎖定
ISATAP(Intra-Site Automatic Tunnel Addressing Protocol)是一種IPv6轉換傳送機制,允許IPv6數據包通過IPv4網絡上雙棧節點傳輸。
不同於6over4,ISATAP視IPv4網絡為一個非廣播多路訪問網絡數據鏈路層,因此它不需要底層的IPv4網絡基礎設施來支持多播。
中文名
isatap
外文名
Intra-Site Automatic Tunnel Addressing Protocol
含    義
站內自動隧道尋址協議
作    用
一種地址分配和主機到主機
學    科
計算機
領    域
互聯網

isatap運行方法

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

isatap地址產生

任何一個希望通過特定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的十六進制值)。

isatap鄰居發現

由於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技術原理

ISATAP過渡技術基本原理如圖1所示。 [2] 
圖1 ISATAP技術基本原理 圖1 ISATAP技術基本原理
雙棧主機在與其他主機或路由器通信之前,首先要獲得一個ISATAP地址。雙棧主機先向ISATAP服務器發送路由請求,得到一個64位的IPv6地址前綴,然後再加上64位的接口標識符∷0:5EFE:X.X.X.X(這裏的X.X.X.X是雙棧主機的IPv4單播地址),這樣就構成一個ISATAP地址。雙棧主機配置了ISATAP地址後,就成了一個ISATAP客户機,進而就可以在IPv4域內和其他的ISATAP客户機進行通信了。一般來説,ISATAP地址的配置既支持無狀態地址自動配置方式,也支持手工配置方式。
1.同一個IPv4域內ISATAP主機間的通信過程
在同一個IPv4域內,兩台ISATAP客户機的通信過程如下:
①雙棧主機1獲得雙棧主機2的ISATAP地址後,將需要發送的數據包交給ISATAP接口進行發送;
②ISATAP從該數據包的IPv6源地址和目的地址中提取出相應的IPv4源和目的地址,並對該數據包用IPv4頭部進行封裝;
③封裝後的數據包按照其IPv4目的地址被髮送到雙棧主機2;
④雙棧主機2接收到該數據包後對其解封裝,得到原始IPv6數據包;
⑤雙棧主機2通過與上述過程類似的過程將應答數據返回給雙棧主機1。
從上面的通信過程中我們可以看出,ISATAP實際上是將IPv4網絡作為一個承載平台,通過在其上面建立一個IPv6-in-IPv4自動隧道來完成IPv6通信的。
2. ISATAP主機與其他網絡之間的通信過程
ISATAP主機除了可以在ISATAP域內與其他ISATAP主機通信外,還可以通過ISATAP路由器實現與其他網絡的通信。比如,ISATAP主機就可以通過ISATAP路由器與IPv6網絡中的IPv6服務器進行通信,其通信原理如圖2所示,通信過程如下:
圖2 ISATAP主機與IPv6網絡中的IPv6服務器之間的通信過程 圖2 ISATAP主機與IPv6網絡中的IPv6服務器之間的通信過程
①ISATAP主機獲得ISATAP地址(站點本地地址),並將下一跳躍點next hop 設為ISATAP路由器的ISATAP地址(站點本地地址);
②當ISATAP主機送出目的地為所在子網絡以外的地址時,ISATAP先將IPv6數據包進行IPv4封裝,然後以隧道方式送到ISATAP 路由器的IPv4地址
③ISATAP路由器除去IPv4包頭後,將IPv6 數據包轉送給IPv6網絡中的目的IPv6服務器;
④IPv6服務器直接將應答的IPv6數據包發回給ISATAP網絡;
⑤在應答IPv6數據包經過ISATAP路由器時,ISATAP路由器先將應答IPv6數據包進行IPv4封裝,然後再轉發給ISATAP主機;
⑥ISATAP主機收到應答數據包後,將數據包去掉IPv4包頭,恢復成原始IPv6數據包。
通過上述步驟,ISATAP主機與IPv6網絡中的IPv6服務器完成了一次完整的數據通信過程。

isatapISATAP過渡技術

ISATAP過渡技術通過IPv6的鄰居發現機制(參見IETF RFC 2461)來實現路由重定向、鄰居不可達檢測(NUD)和路由下一跳選擇。
ISATAP地址的獲得是由鏈路層IPv4地址通過靜態計算得到的。在獲得了ISATAP地址之後,主機通過發送鄰居請求和接收鄰居宣告消息來確認鄰居是否可達。另外,主機還需要執行鄰居不可達檢測。因為是在某一個ISATAP域內實現的,所以它假設IPv4地址是不重複的,這樣ISATAP地址也就不需要進行重複地址檢測。
ISATAP節點在執行路由器和前綴發現時,除了使用鄰居發現中的數據結構前綴列表和默認路由器列表外,ISATAP鏈路還增加了一個新的數據結構——潛在路由器列表(PRL),以及一個新的配置變量PrlRefreshInterval。潛在路由器列表列出潛在的、可供ISATAP節點使用的路由器;變量PrlRefreshInterval用來設置初始化之後連續兩次PRL重新刷新的間隔秒數。
ISATAP過渡技術具有如下優點:
①ISATAP過渡技術所使用的IPv6地址前綴可以是任何合法的IPv6 單點傳播的64 位前綴,包括全球性地址前綴(以2001:,2002:,3ffe:開頭)、鏈路本地前綴(以fe80:開頭)和站點本地前綴(以fec0: 開頭)等等,這使得該項技術很容易與其他過渡技術結合起來使用,尤其是在和6 to 4隧道技術相結合使用時,可以使內部網的雙棧主機非常容易地接入IPv6主幹網;
②ISATAP過渡技術不要求隧道端節點必須具有全球惟一的IPv4地址,只要雙棧主機具有IPv4單播地址即可,不管該地址公有的還是私有的都可以。這樣也就有效地避免了IPv4地址不足的問題;
③ISATAP過渡技術不需要站點提供特殊的IPv4服務(例如多播等),實現起來簡便易行;
④使用ISATAP過渡技術時,在邊界網關上不影響聚合範圍的情況下,能夠在IPv4站點內部署新的IPv6主機,因此可用於內部私有網中各雙棧主機之間進行IPv6通信。

isatap應對策略

由於ISATAP使用隧道技術,所以隧道技術所面臨的網絡安全問題也同樣是ISATAP所面臨的網絡安全問題,它最容易受到的攻擊就是地址欺騙攻擊。如果不加防範,可以很容易地通過地址欺騙攻擊將大量的協議類型為41的數據包注入到ISATAP鏈路中。ISATAP 網絡所受到的地址欺騙攻擊可能來自於ISATAP 網絡外部。由於在整個IPv4 站點中都使用ISATAP鏈路,所以對於來自於站點外的攻擊可以通過嚴格限制對站點的訪問來限制對鏈路的訪問,也就是要考慮在網絡入口處的數據過濾問題,通過在站點的邊界路由器入口處執行IPv4數據過濾、IPv6數據過濾和協議類型為41的數據包過濾來保證。
ISATAP 網絡所受到的地址欺騙攻擊也可能來自於ISATAP 網絡內部。站點內的地址欺騙攻擊可以通過一個偽裝成路由器節點來進行,ISATAP網絡內部所有的ISATAP主機都處於相同的鏈路上,這種來自於相同鏈路上的攻擊很難防止,尤其是在ISATAP網絡內部存在大量主機的時候。考慮到在PRL中提供了路由器ISATAP 公佈的IPv4接口地址,所以可以將這些地址用在安全防範的策略之中。可是,這種防範方法需要保證隨時更新PRL數據,這個操作通過手工實現幾乎是不可能的,而還沒有更好的自動實現的解決方案,這也就成了ISATAP技術的最大弱點。
再有,由於站點內的所有ISATAP主機都在同一個IPv6鏈接上,儘管可以像通常一樣在ISATAP路由器處監控流量,但是由於ISATAP路由器處於站點的邊緣,而且在站點內的主機之間通過ISATAP鏈路傳輸的包並不經過該路由器,因此根本沒有辦法監控和排除出現內部攻擊的可能性。為了有效地防止來自於ISATAP站點內源IPv6地址欺騙的攻擊,需要在路由器的ISATAP接口上啓用緩解地址欺騙攻擊的安全機制,至少ISATAP站點的邊界網關必須記錄地址欺騙源地址的來源。這樣,一旦出現了地址欺騙攻擊,還可以利用這些記錄進行分析,並能夠很快地找出產生地址欺騙攻擊的源頭。
由於ISATAP技術使用RFC 2461所述的鄰居發現協議,而鄰居發現協議最容易受到的攻擊是拒絕服務(DoS)攻擊。因此,這方面的安全問題也需要加以考慮。有關這方面的具體防範措施可參考IETF RFC 2461中的“安全考慮(Security Considerations)”一節。

isatap實現

ISATAP已經在MicrosoftWindows XPWindows VistaWindows 7Windows 8Windows 10(但在1703更新中默認關閉,1803更新後會移除)、Windows Server 2008Windows Server 2012Windows MobileLinuxCisco IOS(自IOS 12.2(14)S、 IOS XE Release 2.1)中實現。
由於專利權利要求,早期在KAME(*BSD)和USAGI(Linux)的內核實現被移除過,然而,IETF知識產權披露搜索引擎報道,該侵權專利的持有者不需要實現者的許可。Linux內核自2.6.35版本實現了內核支持,並提供了一個用户空間配置工具isatapd。對於之前的Linux內核,開源項目Miredo提供了一個不完整的用户空間實現,之後版本1.1.6中被移除。

isatap批評

ISATAP通過查詢DNS來構建PRL,因此,對應於OSI模型,其依賴於一個高層協議來構建低層協議。其依賴於IPv4的DNS來避免循環,而不是IPv6路由的構建。然而,有些網絡專家認為這這違反了他們認為普遍接受的設計原則,並進一步聲稱這些違規行為會導致協議不健全。
ISATAP有着和6over4一樣的安全風險,也就是IPv4虛擬鏈路需要在網絡邊緣被小心地分隔開,以便外部IPv4主機不能假裝成為ISATAP鏈路的一部分。通常是通過將IP協議號為41的IP包(也就是6in4等所使用的IP協議號)使用防火牆來攔截。
參考資料
  • 1.    Templin F, Gleeson T, Talwar M, et al. Intra-site automatic tunnel addressing protocol (ISATAP)[R]. 2005.
  • 2.    Templin F, Gleeson T, Talwar M, et al. Intra-Site Automatic Tunnel Addressing Protocol (ISATAP), draft-ietf-ngtrans-isatap-22[J]. 2004.